Manual/Gameplay Systems/City & building
v1.0.364 notes · build 2026-11-07 12:10 UTC

City & building

two queue systems · id encoding · production lines · collects
#city #economy #protocol

Queue systems

  • Build-queue slots (BuildQueueManager) = concurrent construction slots.
  • Production queue (QueueDataManager) = generic per-item timer shared by farming, pasture barns, troop training, hospital healing, research.

ID encoding

Rows keyed id = base_type_id + level; base_type_id is a multiple of BuildLevelCap = 1000 — e.g. bId=10100000, lv=5 → row 10100005.

Commands

  • free.building.place.new (buildingId, pointId, itemUuid?, robotUuid)
  • free.building.up.new (uuid, upLevel, gold, workerUuid, robotUuid)
  • free.building.upgrade.finish (uuid) — free completion after timer; reply carries serverSystemTime for clock resync. Paid finishes use build.ccd./queue.ccd..
  • queue.finish / queue.finish.batch — free collects (research, healing, rebirth hospital, T11 break; batch harvests pastures)
  • building.camp.training (uuid, type, sLevel, sNum, itemId as "id;count|..." string)
  • building.camp.collect — Military Camp / Smith Shop only, not Training Base (Tactical Chip Factory 10232000 pairing disputed)
  • building.production.collect — 14 confirmed building types live
  • worker.assign.all / worker.assign.single.building; ub.store.upgrade (bUuid, resources{}, items{})
  • Account-level collects (no building uuid): lw.pve.idle.reward, visitor.operate, al.help.all, alliance.reward.allreceive, mail claiming.

Production-line buildings (ProductLineBuilds, Global/EnumType.lua)

Farmland 10201000, Iron Mine 10202000, Gold Mine 10207000, Smelter 10209000, Training Base 10210000, Material Workshop 10211000, Component Factory 10214000, Oil Well 10221000, Drone Parts Workshop 10233000, Tactical Institute 10235000, Crystal Factory 10310000 (new in 1.0.364, gated on CrystalBuyDataManager:IsOpen). Season: 761000–765000, 771000–775000, 781000–785000 (Blessing Fountain), 801000–805000, 822000–826000; S6 Spore Factories 842000–845000; week-card buildings 764000, 775000, 785000, 805000, 826000, 846000.

Not production lines (342 runs → errorCode=602026) live: Tactical Center 10143000, Armament Institute 10227000 (LW_T11_Research), Truck Stations 10138000–10141000 (cargo via train.batch.reward). Locale 602026: "Production in progress. Please wait." Success carries status=1; ProductLineManager:GetNextCollectTime returns -1 without prodST.

init fields

  • building_new[]: uuid, bId, lv, pId, sT, uT, state (0 normal, 1 upgrading, 2 folded, 3 paused, 5 crossing), help (0–3), lCT, unaT, pEndT, gValT, dStT, dEndT, prodST, prodT, prodET, prodExtend, prodStatus.
  • queue_new[]: {uuid, qid, type, sT, uT, itemObj, funcUuid, para, para2, isHelped, lastHelpTime, helpNum}; builder queues add {expireTime, unlock, gift, rentPrice, rentTime}. NewQueueType examples: 3 hospital, 6 science, 117 rebirth hospital, 120 T11 break.

Tick times

5 s farms/mines/Training Base; 60 s Oil Well; 1800 s Smelter/Material Workshop/Tactical Institute; 3 h Crystal Factory; hours Component/Drone factories.

Economy

12 base resources oil, metal, money, electricity, water, pvePoint, wood, people, dragonHonorScore, obsidian, flint, petroleum via push.resource.info; items via push.resource.item.update / user.get.all.resource.items. No get.storage.info — capacity is computed client-side from push.effect.change deltas.

notes build 2026-11-07 12:10 UTC · lw-notes@9c47e1b · sources: own capture/analysis cross-checked against the public dossier