Skip to main content
Version: Next

The minimum concepts you need

For designers: you do not need to understand code generation. Remember the points below so you can talk with engineering and avoid common mistakes.

Three things

  1. Tables must be registered first: Engineering registers the table in __tables__ (or XML). Only then will your Excel be exported. Creating an xlsx on your machine alone does not put it into the build.
  2. Headers have rules: Cells near the top-left that start with ## are the header area, not normal data. If A1 does not start with ##, the tool treats that sheet as missing.
  3. Client and server may see different columns: In ##group, c / s say who gets the column. Wrong values cause “client missing field” or “sensitive numbers leak to the client”.

One table example

##varidnamepricedrop_weight#note
##typeintstringintint
##groupc,scs
##Item IDNamePriceDrop weightDesigner note
1001Gold0100Base currency
What you seeWhat it means
##var rowEnglish field names (for code)
##type rowTypes (set by engineering—do not change casually)
##group rowc = client, s = server
#note columnComment column—not shipped into the game
Data rowsContent that is actually exported

How you and engineering split work

YouEngineering
Fill values under the header; tune numbersDecide field types, primary keys, which columns go to the client
Fill nested / polymorphic fields from sample sheetsDefine structures, subtype names and aliases
Request “add a column xxx”Update the Schema, then tell you where and how to fill the new column
Paste the full error when generation failsFix types or refs from the row/column location

What not to do yourself

  • Do not change type names in ##type (for example, changing int to “integer”).
  • Do not unmerge header cells that engineering merged, and do not drag columns around randomly.
  • Do not assume “a file under Datas will export”—it must be registered first.