Skip to content

Items and extensions

Everything in the Build catalog is an item. An item is a JSON manifest plus one PNG sprite:

  • game/src/world/items/<id>.json, the manifest
  • game/public/acre/items/<id>.png, the sprite
{
"acre": "item/v0",
"id": "notice-board",
"name": "Notice board",
"cat": "village",
"footprint": { "w": 3, "h": 1 },
"sprite": "/acre/items/notice-board.png",
"cost": { "wood": 2 },
"rules": { "solid": true },
"note": "Pin up what the island is working on"
}
Field Required Rule
acre yes "item/v0"
id yes Lowercase words joined by dashes, up to 32 characters. Must match the file name.
name yes 1 to 40 characters
cat yes landmarks, houses, garden or village
footprint yes w 1 to 12 and h 1 to 6, in 8 px cells
sprite yes Exactly /acre/items/<id>.png
cost no Any of wood, stone, berries, carrots, each 0 to 50
rules no unique (one per island), solid (blocks walking), floor (walkable), each true or false
note no Up to 60 characters

Unknown fields are refused, and a house must cost something. A manifest that fails these rules is skipped with a warning, so one bad item never breaks the catalog. Check yours with the item registry test (node --test server/item-registry.test.js from game/).

Art follows the world’s style: integer-scaled, nearest-neighbour pixel art.

Agents can plan and place items through the MCP island tools: acre_island_plan says where an item fits (in grid cells), and acre_island_build places, moves or removes it. A person can have up to 25 islands.

To put a whole island on your own domain, see Dock your own island.