Skip to content
Nick R. edited this page Oct 14, 2026 · 18 revisions

The Data tab holds data tables — fixed lists of byte values (0-255 each) that your game logic can read from at runtime. A data table is read-only from inside your blocks: you set its values up front here on the Data tab, and your game reads them back by index, but never writes to them.

Desktop 2026-10-03 5-10-54 PM-104

Data tables are useful for anything that's really a lookup table: level layouts, dialogue sequences, enemy spawn patterns, animation timing, or packing several true/false flags into a single byte.

Click the + button in the bottom-right corner to add a new table.

Table basics

Every table has:

  • Table name — shown in the "Data table" dropdown wherever you read from it in your blocks. A table that no block reads is left out of the ROM entirely, so unused tables cost nothing.
  • ID (the badge in the card's top-left) — a permanent number, separate from the table's name or its position in the list. Use this with the "Data table ID" block (see below) when you want to choose which table to read from at runtime instead of picking a fixed one at edit time.
  • Columns — purely a display setting for this tab, controlling how many value fields are shown per row before wrapping to the next one. It doesn't affect your compiled game at all.
  • Notes — a free-text box between the name/columns row and the values, for reminders (what each index means, which level it belongs to, and so on). Click a value cell (it gets a blue outline) and the box shows and edits that value's note; with no cell selected it is the note for the whole table. To deselect a cell, click it again, or click anywhere else on the card. Like Columns, notes are only for you: they never reach your compiled game. They're included in the table's undo/redo history and are copied when you duplicate the table or copy/paste its contents.

Click the chevron in the top-left corner to collapse a table down to just its name/columns row (the Notes and values are hidden until you expand it again), useful once you have several tables and want to see more of them at once. Drag the strip at the top of a card to reorder tables in the list.

Values

image

Each table can hold up to 256 values, shown 0-255 each. Two buttons below the grid manage them:

​plus icon
Add value — appends a new value (0) to the end of the table.

​minus icon
Subtract value — removes whichever value cell you last clicked into, or the table's last value if you haven't clicked into one yet.

Drag a value's index label to reorder it within its table.

Value entry formats

Click the icon button next to a value to open a menu of every way that one cell can be entered and displayed. This only changes how you type the value — the underlying byte stored in the table is always the same plain 0-255 number either way. The formats are:

  1. Decimal (default) — a plain number field.
  2. Binary — an 8-digit 0/1 field.
  3. Hex — a 2-digit field.
  4. Color — a color swatch picker, for a value that's meant to be a TIA color byte.
  5. Title screen — a dropdown of every title screen in your project, storing whichever one you pick's ID.
  6. Sprite animation — a dropdown of the Sprites tab's shared animation pool, storing the position a Player's "Animation" block would use (both players share the same list).
  7. Background — a dropdown of every background in your project, storing whichever one you pick's ID. If you reorder the backgrounds, these cells are updated to the new IDs automatically.
  8. Sound effect — a dropdown of your Sound tab entries.
  9. Song — a dropdown of your Music tab's songs.
  10. Text string — a dropdown of your Text tab's entries.
  11. Data table — a dropdown of the names of your data tables, storing whichever one you pick's ID, so a cell can point at another table. Read it back with the "Data table ID" block to choose a table at runtime.

These dropdown formats are a convenience for building tables that reference other parts of your project (e.g. "which background to show at each level") without having to look up and type an ID by hand.

Toolbar

The toolbar under the tab's description acts on whichever table card is selected (click a card to select it). Its buttons are disabled while no card is selected. After the buttons, the Columns switch lays the table cards out in multiple columns when there's room, instead of one full-width column.

The buttons are:

​undo icon redo icon
Undo (Ctrl+Z) / Redo (Ctrl+Y) — steps back and forward through this table's edit history (name, columns, notes, values, and value formats). Each table keeps a separate undo/redo history from every other table.

​export icon
Export to .CSV — downloads this table's values as a single comma-separated row.

​import icon
Import from .CSV — replaces this table's values with numbers read from a CSV file (comma or whitespace separated). A cell that isn't a valid number becomes 0 rather than stopping the import.

​content duplicate icon
Duplicate this table — creates a brand new table with a copy of this one's values, columns, value formats and notes.

​content copy icon
Copy this table's contents — copies this table's values, columns, and value formats.

​content paste icon
Paste copied contents onto this table — overwrites this table's values/columns/formats with whatever was last copied.

​delete icon
Delete this table (or select it and press Delete) — asks for confirmation, then removes the table. Only shown when there's more than one table in the project (you can't delete your last remaining table).

Using data tables from your blocks

On the Actions tab, the Data category has blocks for reading values back out:

  • Data table [name] at index — reads one value, picking the table by name from a dropdown.
  • Data table ID [n] at index — same, but the table is chosen by typing its ID number instead of picking a name — useful when you want to compute which table to read from at runtime rather than hardcoding one.
  • Data table [name] bit [0-7] at index — reads a single true/false bit out of a value, letting one byte pack up to 8 flags. Also available with the ID-based table lookup.

All of these are plain read-only lookups: nothing in your game logic can write back into a data table.

See the Actions tab's Data category for every Data block: reading a value, or a single bit of a value, out of a table - picked by name or by typing its ID.

Clone this wiki locally