Content API

Content operations

Every operation a manifest's content list can contain.

The content list is the heart of a mod. Each entry is one operation, applied in order.

tower

{"op": "tower", "id": "quickstart.dart", "base": "DartMonkey", "patch": {"cost": 100}}

Clones a non-hero tower: its upgrade tiers, shop entry and shared visual references. patch changes existing base fields such as cost, range or icon. No game assets are copied or distributed. Heroes can't be clone bases.

bloon

{"op": "bloon", "id": "quickstart.durable-red", "base": "Red", "patch": {"maxHealth": 5}}

Clones a bloon and adds it to the Sandbox list. Native camel-case fields include maxHealth, isCamo, speed, radius and children. Children must exist and can't form cycles.

mode and all_modes

{"op": "mode", "id": "quickstart.training", "base": "Medium", "patch": {"cash": 2000}}
{"op": "all_modes", "patch": {"lives": 500}}

mode clones a mode; new IDs appear in the mode screen's custom selector (IDs are stable names, not indices). all_modes patches every mode present at that point in the list.

set

{"op": "set", "path": "/modes/Medium/cash", "value": 1500}
{"op": "set", "path": "/towers/DartMonkey/cost", "value": 100}

Replaces an existing field addressed by a JSON Pointer. Roots:

RootContains
towersTower definitions (shop cost, range, footprint…)
tower_tiersPer-tier attacks, weapons, projectiles and upgrades
bloonsBloon definitions
modesDifficulties and modes
startStarting values
rounds, round_setsRound groups and round sets
freeplayFreeplay round groups

Inspect your own local_extracted/game/game.json for native field names and supported behaviours.

copy

{"op": "copy", "from": <pointer>, "path": <pointer>} copies an existing native definition to another existing path. The SDK's projectile templates use it, so you rarely write it by hand.

insert and remove

Change arrays, including attacks, weapons, abilities and round groups. Values must match native data types; adding an array entry doesn't create a new native behaviour type.

{"op": "menu", "page": "MainMenuUI", "path": "<node path from ui/prefabs/MainMenuUI.json>", "text": "Hello"}

Changes an existing frontend node's text or visible state when that scene loads. page is the prefab filename without .json; paths are relative to the node hierarchy in your local ui/prefabs export. Values the game updates dynamically may overwrite a load-time edit.

Unofficial fan project. Not affiliated with Ninja Kiwi. rusttd6.com