[index](../index.html) / [api](../api.html) / res --- # Module api.res[🔗](#api.res) Repositories containing game resources (models, tracks, streets, ...) ``` global record Res buildingTypeRep: ResTypeRep bridgeTypeRep: ResTypeRep constructionRep: ResTypeRep metaConstructionRep: ResTypeRep genericRep: GenericRep economyRep: ResTypeRep climateRep: ResTypeRep terrainGeneratorRep: ResTypeRep environmentRep: ResTypeRep playlistRep: ResTypeRep gameScriptRep: ResTypeRep cargoClassRep: CargoClassRep cargoTypeRep: CargoTypeRep nameRep: ResTypeRep campaignRep: ResTypeRep missionRep: ResTypeRep modelRep: ModelRep multipleUnitRep: ResTypeRep streetTemplateRep: ResTypeRep edgeDecorationRep: ResTypeRep terrainMaterialTypeRep: ResTypeRep trafficLightTypeRep: ResTypeRep tunnelTypeRep: ResTypeRep moduleRep: ResTypeRep railroadCrossingTypeRep: ResTypeRep streetStyleRep: ResTypeRep builderAudioSetRep: ResTypeRep soundSetRep: ResTypeRep groundTextureRep: ResTypeRep autoGroundTexRep: ResTypeRep getBaseConfig: function(): BaseConfig end global record CargoClassRep getCargoClassId: function(cargoClass : string): CargoClassId hasCargoClass: function(cargoClass : string): boolean end global record CargoTypeRep forEachCargoType: function(cargoTypeSet : CargoTypeSet, callback : function(CargoTypeId)) hasCargoType: function(cargoTypeSet : CargoTypeSet, test : CargoTypeId, inverse : boolean): boolean getPassengerCargoTypeId: function(): CargoTypeId end global record GameScriptType getState: function(GameScriptType): { : } end global record GenericRep getAllOfType: function(typeName : string, includeInvisible : boolean): {integer} end global record ModelRep forEachModelWithMetadata: function(metadata : string, callback : function(string)) end global interface ResTypeRep get: function(id : K): T getName: function(id : K): string find: function(resName : string): K findAndGet: function(resName : string): T getAll: function(includeInvisible : boolean): {K : string} add: function(resName : ResName, resource : T, visible : boolean): K setVisible: function(id : K, visible : boolean) isVisible: function(id : K): boolean getAsTable: function(id : K): T setAsTable: function(id : K, t : T): boolean addAsTable: function(the : ResName, t : T): K end ``` ## Category: main[🔗](#category-main) ### Res[🔗](#$api.res~Res) ``` global record Res buildingTypeRep: ResTypeRep bridgeTypeRep: ResTypeRep constructionRep: ResTypeRep metaConstructionRep: ResTypeRep genericRep: GenericRep economyRep: ResTypeRep climateRep: ResTypeRep terrainGeneratorRep: ResTypeRep environmentRep: ResTypeRep playlistRep: ResTypeRep gameScriptRep: ResTypeRep cargoClassRep: CargoClassRep cargoTypeRep: CargoTypeRep nameRep: ResTypeRep campaignRep: ResTypeRep missionRep: ResTypeRep modelRep: ModelRep multipleUnitRep: ResTypeRep streetTemplateRep: ResTypeRep edgeDecorationRep: ResTypeRep terrainMaterialTypeRep: ResTypeRep trafficLightTypeRep: ResTypeRep tunnelTypeRep: ResTypeRep moduleRep: ResTypeRep railroadCrossingTypeRep: ResTypeRep streetStyleRep: ResTypeRep builderAudioSetRep: ResTypeRep soundSetRep: ResTypeRep groundTextureRep: ResTypeRep autoGroundTexRep: ResTypeRep getBaseConfig: function(): BaseConfig end ``` List of all repositories ### Res.buildingTypeRep[🔗](#$api.res~Res.buildingTypeRep) ``` Res.buildingTypeRep: ResTypeRep ``` A resource repository containing data for town buildings. ### Res.bridgeTypeRep[🔗](#$api.res~Res.bridgeTypeRep) ``` Res.bridgeTypeRep: ResTypeRep ``` A resource repository containing data from the bridge configuration files and from dynamically generated bridges. ### Res.constructionRep[🔗](#$api.res~Res.constructionRep) ``` Res.constructionRep: ResTypeRep ``` A resource repository containing data from the ".con" files and from dynamically generated constructions. ### Res.metaConstructionRep[🔗](#$api.res~Res.metaConstructionRep) ``` Res.metaConstructionRep: ResTypeRep ``` A resource repository containing data for all custom resources. ### Res.genericRep[🔗](#$api.res~Res.genericRep) ``` Res.genericRep: GenericRep ``` ### Res.economyRep[🔗](#$api.res~Res.economyRep) ``` Res.economyRep: ResTypeRep ``` A resource repository containing data from the ".eco" economy resources. ### Res.climateRep[🔗](#$api.res~Res.climateRep) ``` Res.climateRep: ResTypeRep ``` A resource repository containing data for the climates. ### Res.terrainGeneratorRep[🔗](#$api.res~Res.terrainGeneratorRep) ``` Res.terrainGeneratorRep: ResTypeRep ``` A resource repository containing data for the terrain generation. ### Res.environmentRep[🔗](#$api.res~Res.environmentRep) ``` Res.environmentRep: ResTypeRep ``` A resource repository containing data for the environment. ### Res.playlistRep[🔗](#$api.res~Res.playlistRep) ``` Res.playlistRep: ResTypeRep ``` A repository for playlists. ### Res.gameScriptRep[🔗](#$api.res~Res.gameScriptRep) ``` Res.gameScriptRep: ResTypeRep ``` A resource repository containing game scripts. ### Res.cargoClassRep[🔗](#$api.res~Res.cargoClassRep) ``` Res.cargoClassRep: CargoClassRep ``` A resource repository containing data with all the cargo classes. ### Res.cargoTypeRep[🔗](#$api.res~Res.cargoTypeRep) ``` Res.cargoTypeRep: CargoTypeRep ``` A resource repository containing data with all the cargo types. ### Res.nameRep[🔗](#$api.res~Res.nameRep) ``` Res.nameRep: ResTypeRep ``` A resource repository for names. ### Res.campaignRep[🔗](#$api.res~Res.campaignRep) ``` Res.campaignRep: ResTypeRep ``` A resource repository for campaign chapters. ### Res.missionRep[🔗](#$api.res~Res.missionRep) ``` Res.missionRep: ResTypeRep ``` A resource repository for campaign missions. ### Res.modelRep[🔗](#$api.res~Res.modelRep) ``` Res.modelRep: ModelRep ``` A resource repository containing all the game models and metadata. ### Res.multipleUnitRep[🔗](#$api.res~Res.multipleUnitRep) ``` Res.multipleUnitRep: ResTypeRep ``` A resource repository containing data from the multiple unit files and from dynamically generated multiple units. ### Res.streetTemplateRep[🔗](#$api.res~Res.streetTemplateRep) ``` Res.streetTemplateRep: ResTypeRep ``` A resource repository containing data from the street template files and from dynamically generated street templates. ### Res.edgeDecorationRep[🔗](#$api.res~Res.edgeDecorationRep) ``` Res.edgeDecorationRep: ResTypeRep ``` ### Res.terrainMaterialTypeRep[🔗](#$api.res~Res.terrainMaterialTypeRep) ``` Res.terrainMaterialTypeRep: ResTypeRep ``` A resource repository containing materials. ### Res.trafficLightTypeRep[🔗](#$api.res~Res.trafficLightTypeRep) ``` Res.trafficLightTypeRep: ResTypeRep ``` A resource repository containing data from the traffic lights. ### Res.tunnelTypeRep[🔗](#$api.res~Res.tunnelTypeRep) ``` Res.tunnelTypeRep: ResTypeRep ``` A resource repository containing data from the tunnel configuration files and from dynamically generated tunnels. ### Res.moduleRep[🔗](#$api.res~Res.moduleRep) ``` Res.moduleRep: ResTypeRep ``` A resource repository containing data from the ".modules" files and from dynamically generated modules. ### Res.railroadCrossingTypeRep[🔗](#$api.res~Res.railroadCrossingTypeRep) ``` Res.railroadCrossingTypeRep: ResTypeRep ``` A resource repository containing data from the railroad crossing files and from dynamically generated railroad crossing types. ### Res.streetStyleRep[🔗](#$api.res~Res.streetStyleRep) ``` Res.streetStyleRep: ResTypeRep ``` A resource repository containing data from the street type files and from dynamically generated street types. ### Res.builderAudioSetRep[🔗](#$api.res~Res.builderAudioSetRep) ``` Res.builderAudioSetRep: ResTypeRep ``` A resource repository containing data for audio sets for building ### Res.soundSetRep[🔗](#$api.res~Res.soundSetRep) ``` Res.soundSetRep: ResTypeRep ``` A resource repository containing data for sound sets ### Res.groundTextureRep[🔗](#$api.res~Res.groundTextureRep) ``` Res.groundTextureRep: ResTypeRep ``` A resource repository containing data for ground textures. ### Res.autoGroundTexRep[🔗](#$api.res~Res.autoGroundTexRep) ``` Res.autoGroundTexRep: ResTypeRep ``` A resource repository containing data for automatic ground texture definitions. ### Res.getBaseConfig[🔗](#$api.res~Res.getBaseConfig) ``` function Res.getBaseConfig(): BaseConfig ``` Gets the base config, it contains most of the data which was read from "base/base\_config.lua". **Returns** 1. `BaseConfig` — Table the configuration table. See https://wiki.transportfever3.com/doku.php?id=modding:baseconfig for a detailed explanation. ## Category: globals[🔗](#category-globals) ### CargoClassRep[🔗](#$api.res~CargoClassRep) ``` global record CargoClassRep getCargoClassId: function(cargoClass : string): CargoClassId hasCargoClass: function(cargoClass : string): boolean end ``` ### CargoClassRep.getCargoClassId[🔗](#$api.res~CargoClassRep.getCargoClassId) ``` function CargoClassRep.getCargoClassId(cargoClass : string): CargoClassId ``` Gets the CargoClassId for a given CargoClass name **Parameters** * `cargoClass` :`string` — cargo class name **Returns** 1. `CargoClassId` — cargo class id ### CargoClassRep.hasCargoClass[🔗](#$api.res~CargoClassRep.hasCargoClass) ``` function CargoClassRep.hasCargoClass(cargoClass : string): boolean ``` Checks if the given cargo class is present, this can be used if some cargo classes exist but are invisible **Parameters** * `cargoClass` :`string` — cargo class name **Returns** 1. `boolean` — true if present ### CargoTypeRep[🔗](#$api.res~CargoTypeRep) ``` global record CargoTypeRep forEachCargoType: function(cargoTypeSet : CargoTypeSet, callback : function(CargoTypeId)) hasCargoType: function(cargoTypeSet : CargoTypeSet, test : CargoTypeId, inverse : boolean): boolean getPassengerCargoTypeId: function(): CargoTypeId end ``` ### CargoTypeRep.forEachCargoType[🔗](#$api.res~CargoTypeRep.forEachCargoType) ``` function CargoTypeRep.forEachCargoType(cargoTypeSet : CargoTypeSet, callback : function(CargoTypeId)) ``` Iterates over all cargo types in a given cargo type set **Parameters** * `cargoTypeSet` :`CargoTypeSet` — the cargo type set to iterate over * `callback` :`function(CargoTypeId)` — a callback for each cargo type ### CargoTypeRep.hasCargoType[🔗](#$api.res~CargoTypeRep.hasCargoType) ``` function CargoTypeRep.hasCargoType(cargoTypeSet : CargoTypeSet, test : CargoTypeId, inverse : boolean): boolean ``` Checks if a cargo type set contains a specific cargo type **Parameters** * `cargoTypeSet` :`CargoTypeSet` — the cargo type set to check * `test` :`CargoTypeId` — the cargo type to test for * `inverse` :`boolean` — if true, the function returns true when any other cargo exists **Returns** 1. `boolean` ### CargoTypeRep.getPassengerCargoTypeId[🔗](#$api.res~CargoTypeRep.getPassengerCargoTypeId) ``` function CargoTypeRep.getPassengerCargoTypeId(): CargoTypeId ``` Returns the cargo type id for passenger **Returns** 1. `CargoTypeId` ### GameScriptType[🔗](#$api.res~GameScriptType) ``` global record GameScriptType getState: function(GameScriptType): { : } end ``` ### GameScriptType.getState[🔗](#$api.res~GameScriptType.getState) ``` function GameScriptType.getState(GameScriptType): { : } ``` **Parameters** * `GameScriptType` **Returns** 1. `{ : }` ### GenericRep[🔗](#$api.res~GenericRep) ``` global record GenericRep getAllOfType: function(typeName : string, includeInvisible : boolean): {integer} end ``` ### GenericRep.getAllOfType[🔗](#$api.res~GenericRep.getAllOfType) ``` function GenericRep.getAllOfType(typeName : string, includeInvisible : boolean): {integer} ``` Gets all Generic resource types of a given type name does not allow typeName in { "gui*res*overwrite", "gui\_res" }, for those, use `api.gui.genericRep` **Parameters** * `typeName` :`string` — type name * `includeInvisible` :`boolean` — whether to include invisible **Returns** 1. `{integer}` — resource ids ### ModelRep[🔗](#$api.res~ModelRep) ``` global record ModelRep forEachModelWithMetadata: function(metadata : string, callback : function(string)) end ``` ### ModelRep.forEachModelWithMetadata[🔗](#$api.res~ModelRep.forEachModelWithMetadata) ``` function ModelRep.forEachModelWithMetadata(metadata : string, callback : function(string)) ``` Iterates over all the models with a specific metadata **Parameters** * `metadata` :`string` — the name of the metadata * `callback` :`function(string)` — a callback for every model that contains the specified metadata ### ResTypeRep[🔗](#$api.res~ResTypeRep) ``` global interface ResTypeRep get: function(id : K): T getName: function(id : K): string find: function(resName : string): K findAndGet: function(resName : string): T getAll: function(includeInvisible : boolean): {K : string} add: function(resName : ResName, resource : T, visible : boolean): K setVisible: function(id : K, visible : boolean) isVisible: function(id : K): boolean getAsTable: function(id : K): T setAsTable: function(id : K, t : T): boolean addAsTable: function(the : ResName, t : T): K end ``` Generic interface for repositories Resources are generally static (initialized when the game starts and don't change) Make sure that resource exists before trying to access them Resource ids are only valid within the same repository ##### Type Parameters * **`K`** * **`T`** ### ResTypeRep.get[🔗](#$api.res~ResTypeRep.get) ``` function ResTypeRep.get(id : K): T ``` Gets the resource for a given id - (can be used to directly modify the resource, but this is discouraged, except for performance reasons. Use getAsTable and setAsTable instead. **Parameters** * `id` :`K` — a resource id **Returns** 1. `T` — the resource ### ResTypeRep.getName[🔗](#$api.res~ResTypeRep.getName) ``` function ResTypeRep.getName(id : K): string ``` Gets the resource name for a given id **Parameters** * `id` :`K` — a resource id **Returns** 1. `string` — the resource name ### ResTypeRep.find[🔗](#$api.res~ResTypeRep.find) ``` function ResTypeRep.find(resName : string): K ``` Finds the id of the given resource name and returns its id **Parameters** * `resName` :`string` — a resource name **Returns** 1. `K` — the id of the resource, -1 if the resource doesn't exist ### ResTypeRep.findAndGet[🔗](#$api.res~ResTypeRep.findAndGet) ``` function ResTypeRep.findAndGet(resName : string): T ``` Finds the resource with the given name and returns it **Parameters** * `resName` :`string` — a resource name **Returns** 1. `T` — the resource, and an error if the resource is not found ### ResTypeRep.getAll[🔗](#$api.res~ResTypeRep.getAll) ``` function ResTypeRep.getAll(includeInvisible : boolean): {K : string} ``` Gets all resources **Parameters** * `includeInvisible` :`boolean` — if invisible resources should be included, false by default **Returns** 1. `{K : string}` — a dictionary containing all id and resource names ### ResTypeRep.add[🔗](#$api.res~ResTypeRep.add) ``` function ResTypeRep.add(resName : ResName, resource : T, visible : boolean): K ``` Adds a new resource to the repository **Parameters** * `resName` :`ResName` — the resource name of the new resource * `resource` :`T` — the resource itself * `visible` :`boolean` — if the resource is visible **Returns** 1. `K` — the id of the newly added resource ### ResTypeRep.setVisible[🔗](#$api.res~ResTypeRep.setVisible) ``` function ResTypeRep.setVisible(id : K, visible : boolean) ``` Sets a resource visible **Parameters** * `id` :`K` — the id of the resource * `visible` :`boolean` — if the resource should be visible ### ResTypeRep.isVisible[🔗](#$api.res~ResTypeRep.isVisible) ``` function ResTypeRep.isVisible(id : K): boolean ``` Checks if a resource is visible **Parameters** * `id` :`K` — the id of the resource **Returns** 1. `boolean` — if the resource is visible ### ResTypeRep.getAsTable[🔗](#$api.res~ResTypeRep.getAsTable) ``` function ResTypeRep.getAsTable(id : K): T ``` Gets the resource for a given id as a pure lua table **Parameters** * `id` :`K` — a resource id **Returns** 1. `T` — the resource ### ResTypeRep.setAsTable[🔗](#$api.res~ResTypeRep.setAsTable) ``` function ResTypeRep.setAsTable(id : K, t : T): boolean ``` Updates the resource for a given id from a pure lua table (as if it was the resource file) **Parameters** * `id` :`K` — a resource id * `t` :`T` — the resource **Returns** 1. `boolean` — success ### ResTypeRep.addAsTable[🔗](#$api.res~ResTypeRep.addAsTable) ``` function ResTypeRep.addAsTable(the : ResName, t : T): K ``` Add a new resource from a pure lua table (as if it was the resource file) **Parameters** * `the` :`ResName` — name of the resource to add (should be unique) * `t` :`T` — the resource to add **Returns** 1. `K` — the newly added id