Skip to content
ScottNZ edited this page Dec 21, 2013 · 24 revisions

The map scripting feature of OpenRA allows you to create custom shellmaps, minigames, single player/co-op missions and more.

The Lua scripting language is used in OpenRA for scripting maps. There is no need to download Lua from the website; a custom build of Lua is included with recent versions of the game.

Setting up Lua for your map

This guide assumes you have knowledge of creating and editing OpenRA maps (See Mapping).

Lua script code is to be contained in one or more .lua files within the map archive, next to map.yaml and map.bin. All script files for a particular map must be within the map's archive.

To actually have this Lua code executed, you must add a trait to the World actor in map.yaml like so:

World:
	LuaScriptInterface:
		LuaScripts: <filename>, ...

LuaScripts is a list of Lua script filenames. These script files will be loaded when the map is loaded.

In one of the script files you should have a function named WorldLoaded. This function will be called when the game world is loaded. You can place script initialization code inside this function.

You may also have a function named Tick, called 25 times per second during gameplay. Try to not have long-running code in this function, because it will hold up the game.

Clone this wiki locally