Skip to main content
Version: Next

Luban feature list

Full built-in capability overview. For usage details, follow the linked chapters.

Complete type system

  • Built-in primitives: bool, byte, short, int, long, float, double, string, text, datetime
  • Containers: array, list, set, map
  • Custom enums and beans: unlimited inheritance and polymorphism for complex GamePlay data
  • Nullable types: T? for all types except containers

See Types and Polymorphism.

Enhanced Excel formats

  • bool: true/false/1/0/yes-no variants
  • Enums: name, alias, or integer; flags enums support A|B and column-constraint mode
  • Nullable: e.g. int? with 5 or null
  • datetime with --timeZone and localized time
  • Struct fields: multi-column (merge or CSV [{name}/{name}]), single-cell sep, or nested in larger configs
  • sep splitting: e.g. Vec3 in one cell
  • Polymorphism: e.g. Circle,5 or Rectangle,3,4
  • Multi-row struct lists: field name *name
  • Multi-level headers: column constraints for deep structures

See Excel basics, Nested structures, sep and stream.

Rich source file types

  • Excel family: csv, xls, xlsx, xlsm; sheet@file.xlsx for a single sheet
  • JSON: one or many records per file (*@file.json); a.b.c@file.json for nested fields
  • Lua: requires return; lists with *@
  • XML / YAML
  • Directory: recursive walk; non-Excel defaults to one record per file; mixed formats allowed
  • Multiple inputs per table: many-to-one, one-to-many, many-to-many

See Non-Excel sources and Import modules.

Export data formats

Export format is decoupled from source data. Whether sources are excel, lua, xml, json, or mixed, export uses a unified format.

FormatNotes
binCompact binary, fast load
json / json2json map as [[k,v]]; json2 as {k:v}
lua / xml / yaml / bson / msgpackCorresponding formats
protobuf2/3 (json + bin)PB serialization
flatbuffers-jsonFlatBuffers JSON
text-listExport all text keys

Full list: Built-in codeTarget / dataTarget.

Table- and field-level groups

Custom group types; export subsets of tables or fields for client/server/editor. See groups and multi-target.

Record tags

Tag each record; e.g. test only in test builds; filter with --excludeTag on release. ## permanently comments a row. See tags.

Data validation

ValidatorPurpose
Built-in constraintsTypes, nullability, containers
refTable reference validity
pathAsset path validity (Unity, etc.)
rangeNumeric range
sizeFixed or ranged container length
setValue must be in a set
regexString must match pattern
! (not default)Must not be type default
indexUnique index on a field in struct lists
textValid localization key

See Validators.

Table modes

modeNotes
oneSingleton
mapKey-value table
listList; joint key a+b or independent indexes a,b

See Excel Schema.

Localization

  • Localized time: datetime converted to UTC by timezone
  • text type: validate l10n keys; configure via l10n.provider xargs

See L10N.

External type mapping (TypeMapper)

Map config enums / beans to existing project types (e.g. UnityEngine.Vector3, UnityEngine.AudioType). Matched by -t / -c; mainly C# today. See TypeMapper.

Supported game development languages

LanguageApprox. version
C++11+
C#.NET Framework 2+ / .NET Core 2+
Java1.6+
Go1.10+
Lua5.1+
TypeScript3.0+
Python2.7+ / 3.0+
GDScript4.0+
PHP, Dart, JavaScript, Rust

Engines, hot reload, and platforms

  • Unity + C# / HybridCLR / ToLua / XLua / ILRuntime
  • Unreal + C++ / UnLua / sluaunreal / Puerts
  • Cocos2d-x + Lua / TypeScript
  • Godot + GDScript
  • WeChat mini programs and other JS mini-program platforms
  • Other Lua/JS-capable engines and platforms

Samples: luban_examples.

Performance and cross-platform

  • Generation speed: seconds even on large projects
  • Runtime: .NET on Windows, Linux, macOS

Extensible architecture

Loaders, validators, CodeTarget, DataTarget, Pipeline, SchemaCollector, etc. are plugin-friendly. See Extend overview.