Skip to main content
The base-building loop: two architecturally distinct “queue” systems that share a confusing name, a building-id encoding worth knowing, and a resource economy that’s really two separate systems.

Two “queues”: don’t conflate them

  • Build-queue slots (BuildQueueManager): the small number of concurrent construction slots a player has. A building upgrade occupies one until it finishes.
  • Production queue (QueueDataManager): a generic per-item timer reused by farming, pasture barns, troop training, hospital healing, and research alike. Same wire schema across all of them.

Building ID encoding

Game-data rows are keyed id = base_type_id + level, where base_type_id is always a multiple of BuildLevelCap = 1000. So bId=10100000, lv=5 → row id 10100005.

Core commands

cmdPurposeKey request fields
free.building.place.newPlace a new buildingbuildingId, pointId, itemUuid?, robotUuid
free.building.up.newStart an upgrade (occupies a queue slot)uuid, upLevel, gold, workerUuid, robotUuid
free.building.upgrade.finishInstantly finish (premium currency)uuid
queue.finish / .batchInstantly finish production item(s)uuid / queueList[]
building.camp.trainingStart camp production (soldiers/equip/chips)uuid, type, sLevel, sNum, itemId (“id;count|id;count|…” encoded string, not a true array)
building.camp.collectCollect finished camp output (Military Camp, Smith Shop, Tactical Chip Factory, NOT Training Base, despite the name)uuid
building.production.collectCollect finished production-line building output: 13 confirmed building types live with real resource collection (Farmland, Iron Mine, Gold Mine, Smelter, Material Workshop, Training Base, Oil Well, Drone Parts Workshop, Component Factory, and the four Season 6 Spore Factory tiers), plus 7 more (Tactical Center, Armament Institute, Tactical Institute, and 4 Truck Station tiers) wired in but still unconfirmed, see Live validation against production. Not to be confused with account-level (non-building, no building uuid) commands also documented there: lw.pve.idle.reward (collects both the “Armed Truck” and “Overlord” idle/AFK tracks in one call), visitor.operate (greets city visitors), al.help.all, alliance.reward.allreceive, and mail claiming.uuid
worker.assign.all / assign.single.buildingAssign idle workers to production slotsbuildingUuid?
ub.store.upgradePre-stock resources toward a pending upgradebUuid, resources{}, items{}

Resource economy: two systems

12 base resources (oil, metal, money, electricity, water, pvePoint, wood, people, dragonHonorScore, obsidian, flint, petroleum) arrive embedded in most responses and standalone via push.resource.info. Separately, “resource items”, a keyed bag of stackable goods (soldiers-as-items, crafting materials), sync via push.resource.item.update / user.get.all.resource.items. There is no get.storage.info command; storage capacity is a client-computed sum over a stream of server-pushed effect deltas (push.effect.change), not a directly queryable value.