This is an old revision of the document!
Table of Contents
Mod management functions
All these functions are available on your mod object
dofile
Loads and runs a Lua script
Returns the file's return values
[…] myMod:dofile(scriptPath [, args…])
Name | Type | Description |
---|---|---|
scriptPath | string | the relative path to the file, inside the mod directory |
args | any | optional, variables passed on to the target script |
registerAsset
Deprecated name: register
Register a new game asset
void myMod:registerAsset(assetData)
Name | Type | Description |
---|---|---|
assetData | table | the data defining the new asset. The table must contain at least the asset's type (DataType , see API for the complete list) and its ID (Id ) |
Example
local assetData = { DataType = "ASSET_TYPE", Id = "ASSET_ID", ... } myMod:registerAsset(assetData)
overrideAsset
Deprecated name: override
Override an existing game asset (see Asset Override for a complete explanation)
void myMod:overrideAsset(assetData)
Name | Type | Description |
---|---|---|
assetData | table | the data defining the overridden asset. The table must contain at least the existing asset's type (Id , see Assets for the complete list) |
Example
local assetData = { Id = "ASSET_ID", ... } myMod:overrideAsset(assetData)
registerAssetId
Assign an asset ID to an asset in the mod's directory
void myMod:registerAssetId(assetPath, assetId [, assetType])
Name | Type | Description |
---|---|---|
assetPath | string | the path to the asset |
assetId | string | the ID to assign to the asset |
assetType | string | optional, type of the asset |
registerPrefabComponent
Registers a component to a prefab (see Components for a complete explanation)
void myMod:registerPrefabComponent(prefabIdOrPath, componentData)
Name | Type | Description |
---|---|---|
prefabIdOrPath | string | the ID or path to the prefab |
componentData | table | the data defining the component. The table must contain at least the component's type (DataType , see API for the complete list) |
Example
local componentData = { DataType = "COMPONENT_TYPE", ... } myMod:registerPrefabComponent(prefabPath, componentData)
registerBehaviorTree
Registers a new behavior tree (see Behavior Trees for a complete explanation)
void myMod:registerBehaviorTree(behaviorTree)
Name | Type | Description |
---|---|---|
behaviorTree | table | the table defining the behavior tree's variables and node tree |
Example
myMod:registerBehaviorTree({ Id = "MY_CUSTOM_BEHAVIOR_TREE", VariableList = { ... }, Root = { ... } })
registerAssetProcessor
Registers an asset processor to a file (see Building Asset Processor for a complete explanation)
void myMod:registerAssetProcessor(filePath, processorData)
Name | Type | Description |
---|---|---|
filePath | string | the path to the file |
processorData | table | the data defining the asset processor. The table must contain at least the processor's type (DataType , see API for the complete list) |
Example
local processorData= { DataType = "PROCESSOR_TYPE", ... } myMod:registerPrefabComponent(filePath, processorData)
configurePrefabFlagList
Configure a prefab with a list of flags
void myMod:configurePrefabFlagList(prefabPath, flagArray)
Name | Type | Description |
---|---|---|
prefabPath | string | the path to the prefab |
flagArray | table | the list of flags to apply on the prefab |
Example
local flagArray = { "BRIDGE", "PLATFORM" } myMod:configurePrefabFlagList(prefabPath, flagArray)
registerClass
Registers a new data type, or a new type extending an existing one
void myMod:registerClass(classInfo)
Name | Type | Description |
---|---|---|
classInfo | table | a table containing all info about the new type |
Example
Definition of a new component type with two properties, and an init function
local newClassInfo = { TypeName = "MY_CUSTOM_COMPONENT", ParentType = "COMPONENT", -- if this field is missing, the new type will be a data type Properties = { { Name = "CurrentRotation", Type = "float", Default = 0.0, Flags = { "SAVE_GAME" } }, { Name = "CurrentPosition", Type = "vec3f" } } } function newClassInfo:init() self.CurrentPosition = self:getOwner():getGlobalPosition() end myMod:registerClass(newClassInfo)
registerEnumValue
Registers a new dynamic enumeration value
void myMod:registerEnumValue(enumeration, stringValue)
Name | Type | Description |
---|---|---|
enumeration | string | the enumeration type |
stringValue | string | the new value to add |
Example
myMod:registerEnumValue ("BUILDING_PART_TYPE", "DECORATION")
createData
Creates a new instance of a data type
void myMod:createData(instanceData)
Name | Type | Description |
---|---|---|
instanceData | table or nil | the data defining the new instance. If not nil , the table must contain at least the instance's type (DataType , see API for the complete list) |
Example
local instanceData = { DataType = "DATA_TYPE", ... } myMod:createData(instanceData )