User Tools

Site Tools


mod-management-functions

Mod management functions

All these functions are available on your mod object

dofile

Loads and runs a Lua script

Returns true if the file is inside the mod directory and exists, false otherwise

boolean 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

register

Register a new game asset

void myMod:register(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:register(assetData)

override

Override an existing game asset (see Asset Override for a complete explanation)

void myMod:override(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 [assetsAssets]] for the complete list)

Example

local assetData = {
    Id = "ASSET_ID",
    ...
}
myMod:override(assetData)

registerAssetId

Assign an asset ID to an asset in the mod's directory

void myMod:registerAssetId(assetPath, assetId)

Name Type Description
assetPath string the path to the asset
assetId string the ID to assign to the asset

registerPrefabComponent

Registers a component to a prefab (see Components for a complete explanation)

void myMod:registerPrefabComponent(prefabPath, componentData)

Name Type Description
prefabPath string the 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")
mod-management-functions.txt · Last modified: 2020/07/17 14:35 by maxime