Every placed unit and building is more than a type and a position. The inspector gives each one health, mana, veterancy, facing, a rally point, build progress, inventory, equipment, garrison contents, shop stock and an arbitrary key-value bag that triggers can read.
None of that is stored unless you set it. A map that places a plain barracks writes a type, a position and an owner, exactly as before.
Placing
Pick from the palette, click to place. Hold a number key while placing to set the owner. The ghost under the cursor is the real unit or building, translucent, tinted green where it can be placed and red where it cannot, in both 2D and 3D. The 3D ghost plants on the terrain the same way the finished entity does, so a building ghost on a slope sits where the building will sit.
Footprints are read from the unit and building definitions rather than guessed. Ground units are 1x1, flying and naval units are 2x2, buildings vary from 1x1 to 4x4. Air is allowed to overlap ground entities, because air has its own occupancy map and a gyrocopter hovering over a town hall is not a conflict.
Selection is a set. Rubber-band to select several, drag them together (every member's footprint is validated before the move commits, so a group drag cannot quietly drop entities at load), nudge with the arrow keys, align and distribute, and mirror across an axis with seat remapping. Mirroring with seat remapping is the fastest way to build a symmetrical competitive map: build one quarter, mirror it three times, and the seat ids come out right.
Authored ids and tags
Two string fields on any entity, and the difference matters.
aid is a stable authored id, unique across the map. Triggers reference
entities by aid, never by anything the engine assigns at runtime, because
runtime ids depend on spawn order and are not stable across a save and reload.
Two entities sharing an aid is a publish error: a trigger resolving that id
finds exactly one of them, so the other is unreachable and nothing tells you.
tag is shared on purpose. Many entities may carry the same tag, and that
is what a unit group is. A trigger that orders "everything tagged wave_1" to
attack-move is one action.
Health, veterancy and state
The property fields are applied in a fixed order, because several of them depend on each other. Maximum health override first, then veterancy rank, then the hero block (level, then abilities, then stats), then equipment and inventory, then equipment is re-applied, then the health and mana fractions, then facing, rally point, build progress, garrison contents and the key-value bag.
That order is why health is a fraction rather than an absolute number. Setting a hero to level 6 changes its maximum health, and an absolute value set before that would be silently wrong. A fraction of 0.5 means half, whatever half turns out to be.
Build progress does what it sounds like: a building at 0.4 starts the match under construction, four tenths built, with the scaffolding and the vulnerable health that implies.
Heroes, and placing more than one of the same hero
You can place four copies of the same hero, and they are four independent heroes. They level separately, carry separate gear, and die separately.
This used to be impossible in a way that was hard to see. Several runtime registries were keyed by hero id rather than by entity, so two copies of one hero shared experience, duplicated gear on respawn and lost mission-fail tracking between them. The fix separates three concepts that were one string: the hero definition, the entity instance, and the key that campaign progress is saved under.
That last one is exposed as a per-entity setting. A hero whose progress key is empty is an instance whose progress dies with it, which is the right default for the fourth copy of a hero placed as a lane guard on a Tower Defense map. A hero that carries a progress key is one whose experience and gear persist across a campaign, which is the right default for a campaign protagonist.
Map rules control whether the same hero may be picked twice by one player or across the whole match. A DOTA-style map needs five players able to pick the same hero, so both limits are settings rather than constants.
Spawners
Any building can be given a spawner, and a spawner is entirely data:
{
"squad": ["high_elf_crystal_walker", "high_elf_battering_ram"],
"respawn": [300, 480],
"leash": 12,
"hardLeash": 20,
"activation": 18,
"owner": 3,
"hostile": false
}squad is any list of unit type ids, and cross-faction is fine. respawn is a
minimum and maximum in ticks (the simulation runs at 20 ticks per second).
leash and hardLeash control how far the spawned units chase before
returning; activation is how close a player has to get before the camp wakes
up. owner defaults to the neutral creep player, and setting it to a real seat
makes the spawner produce units that fight for that seat. hostile: false
removes the creep behaviour entirely, so the units have no leash, no bounty and
no dormancy.
A dwarf barracks that produces high-elf cavalry for player 3 every twenty seconds is a placement, not a code change.
Two things to know. A spawner with an empty squad is a publish error, because it ticks forever and produces nothing. And spawned units cost no population, which is a real balance lever and a real trap: a spawner is not a free substitute for a production building unless you meant it to be.
Ground items and shops
Items can be placed on the ground for a hero to pick up. A ground item has no health, no owner and does not block movement.
Shop stock is a per-entity override, so the same neutral shop can sell different things on different maps. Hero starting inventory and equipment are covered by the inventory and equipment fields on the hero itself.
Custom item definitions are not placed here; they belong to the Data module, so that one override path covers units, buildings, items and spells rather than four separate ones. See Data Overrides.
Dungeon content
Elite variants and dungeon bosses are hidden behind a Dungeon filter in the palette. They exist and can be placed, but for most maps the inspector's health and stat overrides on a normal unit do the same job more legibly. The four authored bosses (the ogre warlord, the ancient wyrm, the shaper and the rune golem) stay in the normal palette, because those are characters rather than scaled-up versions of something else.
Next: Players & Teams.