DOCS
Building games

Data tables

Tune prices, stats, loot and level configs in a spreadsheet — without touching code.

Most of what makes a game feel right is numbers. How fast a crop grows, what a sword costs, how much damage the second enemy does, what drops from a chest. Those belong in data, not scattered through code — and umicat gives you a spreadsheet for them.

How a table gets there

You don't create tables from a blank page. When the agent writes a system that has tunable content, it authors the table and the code that reads it, then opens it for you:

Add a shop that sells seeds, tools and decorations, each with a price.

The agent writes the shop code and a table of items, then hands you the grid. From then on, changing a price is your job and does not cost a turn.

Ask for a specific table any time:

Open the crops table — carrots grow too slowly.

The grid

The Data Tables tool lists the project's tables with their field names, row count and when each changed. Click one to edit it.

  • Cells — type a value. Numbers are right-aligned, booleans are checkboxes, text is text.
  • Add row — the ghost row at the bottom. Delete a row from its hover action.
  • Columns — the ▾ on a column header renames it, changes its type, inserts a column beside it, or deletes it.
  • Save — the button, or ⌘/Ctrl+S.

Saving a table rebuilds the preview, because the data is bundled into the game. That takes a few seconds and then the running game is using your new numbers. (This is the one tool that rebuilds on save — the others just write a file.)

Where the line is between you and the agent

The table is pure data. It holds values. It does not hold what those values mean, and it does not hold art.

You doThe agent does
Change a number, add a row, rename a thingWrite the code that reads the column
Add a new item using existing columnsAdd a new column and the code to use it
Decide the balanceBind a row to a sprite or sound

That middle row is the one to remember. Adding a column does nothing on its own — it sits there until code reads it. And renaming or deleting a column breaks the code that was reading it. The tool warns you when you do either. If you want a new field to actually do something, say so:

Add a "rarity" column to the loot table and make rarer items drop less
often.

Same for content: a new crop row needs art before it can be planted. The agent wires that; the table just says the crop exists.

Good candidates for a table

  • Prices, costs, rewards, currency rates
  • Enemy stats — health, speed, damage, spawn weight
  • Loot and drop tables
  • Crafting recipes and shop inventories
  • Level or wave configuration
  • Growth, cooldown and timing curves

Anything you expect to change fifty times while tuning the game is a table. Anything that changes the rules is code.

Duplicate, delete, and the agent's turn

Each row in the table list has Duplicate (copy a whole table under a new name — handy for a difficulty variant) and Delete.

If a save is refused because the agent is mid-turn on the same file, wait for the turn to finish and save again. Two writers on one file is the one thing the platform will not guess about.

Next steps

On this page