---
name: REBNO extracted constants — floor tile is 44×40 px (NOT 32×32)
description: Load-bearing extracted constants for BN Online rebuild — floor tile dim, room tick rate, view size. Treat as locked, never assume defaults.
type: project
originSessionId: 167a3baa-7e15-4b75-99cc-e13aff5f6e13
---
**Locked extracted constants for BN Online rebuild.** These are non-obvious values pulled from extracted GML/meta.json that cause silent rendering/collision bugs if assumed.

| Constant | Value | Source |
|---|---|---|
| Floor tile | **44 × 40 px** (W × H) | `extracted/client-5-8/sprites/0023-Tile1/meta.json` |
| Room tick | 30 steps/sec | room `meta.json` `speed` |
| Viewport | 640 × 480 px | room `meta.json` `views[0]` |
| BNCentral room | 8000 × 6400 px | `rooms/0058-BNCentral/meta.json` |
| 20×20 MVP room | 880 × 800 px | derived 20·44 × 20·40 |

**Why:** GameMaker editor defaults to 32×32 — BNO does NOT. Anyone reasoning about renderers, collision grids, atlas slicers, or test rooms will get wrong dimensions if they assume 32 or any power-of-two. User flagged this 2026-05-11 during Phase 6 gap-closure replan after Codex review of plan 06-14 (BMP atlas + room conversion).

**How to apply:** Whenever planning or implementing anything that touches floor tile geometry, asset-pipeline atlas frame size, collision cell size, camera math, or synthetic test rooms — quote 44×40 (or read live from `meta.json`). Never hard-code 32. Documented in `CLAUDE.md` "Extracted Constants" table and `docs/extracted-engine/scene-room-model.md` "Canonical floor tile" section. Phase 6/7 planners and executors must respect.
