Generate Lua Source Code

Generates Lua source code for game data into output directory.

By default, this command does not delete previously generated files. Use the --clearOutputDirectory parameter to automatically remove prior generated files before creating new ones.

Command

# local game data (windows)
 charon GENERATE LUA --dataBase "c:\my app\gamedata.json" --outputDirectory "c:\my app\scripts"

# remote game data
 charon GENERATE LUA --dataBase "https://charon.live/view/data/My_Game/develop/" --outputDirectory "./scripts" --credentials "<API-Key>"

Parameters

--dataBase

Absolute or relative path to game data. Use quotation marks if your path contains spaces.

# local file
--dataBase "c:\my app\gamedata.json"

# remote server
--dataBase "https://charon.live/view/data/My_Game/develop/"
--credentials

The API key used to access remote server in case of –dataBase being URL.

--outputDirectory

Specifies the path where the source code should be written. It can be either an absolute or relative path to a directory. The specified directory must already be present.

# Windows
--outputDirectory "c:\my app\scripts"

# Linux or OSX
--outputDirectory "~/my app/scripts"

# Relative path
--outputDirectory "./my app/scripts"
--documentClassName

Name for base class for all documents.

# name (default)
--documentClassName GameDataDocument

# in case of name collision
--documentClassName MyDocument
--gameDataClassName

Name for class containing whole in-memory game data.

# name (default)
--gameDataClassName GameData

# in case of name collision
--gameDataClassName MyGameData
--indentation

Indentation style for generated code.

# Tabs (default)
--indentation Tabs

# Two spaces
--indentation TwoSpaces

# Four spaces
--indentation FourSpaces
--lineEndings

Line ending symbols for generated code.

# Windows \\r\\n (default)
--lineEndings Windows

# Unix style \\n
--lineEndings Unix
--splitFiles

Set this flag to lay out generated classes into separate files. If not set, then one giant file with the name of --gameDataClassName.lua will be generated. Default is true.

--optimizations

List of enabled optimization in generated code.

# Eagerly resolves and validates all references in loaded documents.
# When enabled, this optimization ensures that all references in documents are resolved and validated
# during loading. This comes with a performance cost but guarantees the validity of references.
--optimizations eagerReferenceResolution

# Opts for raw references without generating helper methods for referenced documents.
# With this optimization, the generated code will not include helper methods for accessing
# referenced documents, keeping only accessors that work with raw references.
--optimizations rawReferences

# Avoids generating helper methods for localized strings, keeping only raw accessors.
# This optimization eliminates helper methods for accessing localized text, instead providing
# accessors that deal directly with lists of localized texts.
--optimizations rawLocalizedStrings

# Disables string pooling during game data loading.
# Turning off string pooling can yield a minor performance improvement at the cost of increased
# memory usage, as it avoids reusing short strings.
--optimizations disableStringPooling

# Disables generation of code for loading game data from JSON formatted files.
# This optimization omits code related to JSON serialization, useful when JSON formatted
# game data is not used.
--optimizations disableJsonSerialization

# Disables generation of code for loading game data from Message Pack formatted files.
# Similar to DisableJsonSerialization, this option removes code related to loading data
# from Message Pack formatted files.
--optimizations disableMessagePackSerialization

# Disables generation of code related to applying patches during game data loading.
# This removes a significant portion of code that is mainly used for modding support,
# where patches are applied to game data at runtime.
--optimizations disablePatching

# Disables generation of enums with known document IDs.
# This removes a significant portion of code that contains listings of IDs for
# documents known at the moment of code generation, which improves compilation time.
--optimizations disableDocumentIdEnums
--clearOutputDirectory

Clear the output directory from generated files. Generated files are identified by the presence of the ‘<auto-generated>’ tag inside.

This command supports universal parameters.

See also