Command reference
Dispatch on a flat dot-separated string; no numeric opcode layer above the SFS2X framing. 1.0.364: MsgDefines defines 3,115 commands, MsgMap handles 3,097; 54 C#-only commands; 133 chat-table wire names. (1.0.351: 3,065 / 3,047 + 131 chat = 3,178.)
Direction split static
Request 2,243; Push 731 (push.*-named + init); never sent 124; indirect send (via variable, e.g. BatchDoServerMail(MsgDefines.X)) 9; sent and push-named 6; C#-only request 2. Total 3,115 = 3,113 distinct wire names (two strings defined under two keys each). C# handles 71 wire names; for the 18 shared with Lua, C# wins. Chat table: 87 on the chat WebSocket, 45 on the game socket, 1 unhandled; 5 share wire names with MsgDefines. ~23% of the catalog is pushes.
Domains (1.0.351 categorization)
Activity 900 (deprioritize), Season 754 (deprioritize), Alliance 310, Shop/Economy/IAP 188, World Map 166, City/Building 110, Military/Army 87, Account/Login 80, Hero 71, Task/Quest 70, Government 69, PVP/Arena 53, Chat 31, Mail 27, System 26, Admin/Debug 7, Misc 108. Trade trucks train. and alliance.train. = the 60-command Net/Msgs/Railway module in 1.0.364 (alliance train runs under activity type 203).
1.0.364 vs 1.0.351 diff (LWLF 793 → 825) static
3,065→3,115 keys, 3,047→3,097 handled; 50 added, 0 removed, 0 renamed, no handler moved; live Android (826) and iOS (821) bundles match 1.0.364 at catalog level; every reimplemented request schema unchanged (push.chat.get.system.mails gained delActivityIds). Adds:
- CrystalBoss/Red-Boss 13 (
red.boss.get.march,red.boss.battle.report,get.red.boss.user.record,red.boss.get.achievement.info,red.boss.receive.achievement.reward,red.boss.get.progress,red.boss.claim.all {type},red.boss.claim.daily.reward, 5×push.red.boss.*) - Account 8 (
user.del.user,user.del.check,del.account.get.max.pay.user,push.account.del.max.pay.user,account.passkey.init,push.account.passkey.init,account.passkey.list,account.passkey.delete) - DispatchRecover 7 (
reward.recover.paramswitchesrecover_reward_a/recover_reward_b, claim costsa_k5/b_k5astype,id,num;dispatch.recover.reward.list/.log/{customId};train.recover.reward.list/.log/{customId}; records older than the last seven are mailed) Net.Msgsroot 5 (age.signal.record,exchange.goods.buy,world.alliance.expedition.info,world.give.up.alliance.building,push.bp.score.repair)- PVPFormationPreset 5 (
formation.preset.save/.apply/.rename/.delete,push.formation.preset) - Social 3 (
social.status.update/.clear/.view); Activity 2 (dragon.move.base.cool,winter.storm.reward.get.all); AllianceStar 2; CrystalTalent 2 (crystal.talent.info,crystal.talent.upgrade {nodeId, recommend});push.alliance.gift.exp.change;chat.permission.syn {action};hero.init.detail.get {heroUuids} - Also
MailEnumgainedCrystalBoss=58; LuaLoginErrorCodegained55–58. C# sendschange.user.parseid,check.device.change,login.extoutsideMsgDefines.
Claim requests
558 claim-like catalogued (55 with hand-traced eligibility; ~260 free-claim-like). Claim-all sentinels: daily.quest.reward {stage:-1} (response lists in stageArr); sign.receive.day.reward {day:0}; activity.hero.score.reward {index:-1}; new.arena.reward/gale.arena.reward {target:-1}; season.tower.reward {stageId:-1}; city.battle.activity.gain.task.reward {configId:-1} all tasks / -2 score goals; city.competition.s0.gain.task.reward {cityLv:-1, configId:-1}; zone.mobilization.claim.challenge.reward {index:0}; lw.receive.towerup.first.reward/lw.receive.dominator.up.first.reward {id:-1}.
Conventions
TaskState:1= CanReceive (claimable),2= claimed; generic already-claimed error120289live; daily gates use the server day (02:00 UTC live).activityIdis an Int almost everywhere but a UTF string inhero.event.info.get; detail reads send the entry'sactivityidfield (Alliance Duel{id:55000, activityid:"70000"}— requesting"55000"yields bare{success=true}live).useFree:0,useGold/goldflags spend diamonds (free.building.up.new {gold:2}); speed-upsbuild.ccd.m.new,queue.ccd.m.new,building.camp.acceltake item strings (itemIDsas"tmpl;n|tmpl;n") oruseGold; the UI'sisGoldnever reaches the wire;queue.ccd.m.newwith emptyitemIDs= diamond instant-finish; items-onlybuild.ccd.m.newreply listsitemCostArr+remainGoldlive.- Reward payload:
reward: [{type: Int, value: Int|Object, total?: Long}]+ siblingresource: {oil, metal, money, electricity, water, pvePoint, wood, people, dragonHonorScore, obsidian, flint, petroleum}(absolute balances, applied beforerewardentries). Plain resources:METAL= iron,WOOD(31) = coins,FOOD,GOLD= diamonds,PETROLEUM= oil; on the wire food =money, coins =wood, iron =metal. Goods type7{itemId, count, rewardAdd}; resource items27{id, num}; heroes25{heroId, rewardAdd, uuid}; soldiers23{itemId, count}; equipment38nestsvalue.changes[]as{equipUid, cfgId, num, changeNum}.
Full catalogs
commands.tsv (all 3,115 rows: wire name, direction, runtime handler, request params with SFS types as name:Int, [name:Type] for conditional puts, response fields read, DataCenter managers, send sites, C# shadow, relevance label); command_send_sites.tsv (4,561 sites with enclosing function + nearest if guards); claim_commands.tsv (558); chat_commands.tsv (133); systems.tsv (159 game systems). The 1.0.351 cmd-data rows are [Key, wire cmd, handler class, channel(SFS|WS)], e.g. [TaskRewardGet, task.reward.get, Net.Msgs.TaskRewardGetMessage, SFS].