LuaGuide.wiki
author Wuzzy
Thu, 14 Nov 2019 16:02:49 +0000
changeset 2103 612f6f103787
parent 1810 886f6f056e42
child 2125 496efb184925
permissions -rw-r--r--
LuaLibraryAnimate: add newline
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
29
19a3182cac9d Created wiki page through web user interface.
henrik.rostedt
parents:
diff changeset
     1
#summary Guide to writing Lua scripts in Hedgewars.
19a3182cac9d Created wiki page through web user interface.
henrik.rostedt
parents:
diff changeset
     2
895
9db173fcf26e LuaGuide: Make the Lua guide more complete
Wuzzy
parents: 681
diff changeset
     3
= Lua guide =
31
e713a5d2a7f9 Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 30
diff changeset
     4
895
9db173fcf26e LuaGuide: Make the Lua guide more complete
Wuzzy
parents: 681
diff changeset
     5
This is both a simplistic introduction to Lua scripting in Hedgewars and a guide for more advanced control over the game. With Lua scripting, one can define own missions (both in training and campaign menu), [PresetMaps mission maps] (like Knockball) and styles (like Highlander).
30
43e5101de029 Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 29
diff changeset
     6
43e5101de029 Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 29
diff changeset
     7
== What is a Lua script ==
29
19a3182cac9d Created wiki page through web user interface.
henrik.rostedt
parents:
diff changeset
     8
895
9db173fcf26e LuaGuide: Make the Lua guide more complete
Wuzzy
parents: 681
diff changeset
     9
A Lua script is used to make the game behave different by giving the Hedgewars engine different commands. The script gets called by the engine on different events and the script tells the engine what to do.
9db173fcf26e LuaGuide: Make the Lua guide more complete
Wuzzy
parents: 681
diff changeset
    10
Lua is a programming language, and you must first learn some basics about the Lua programming language to get started. See [http://www.lua.org/] to learn more.
32
5f66adfa478c Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 31
diff changeset
    11
1414
a76bfb278ad9 LuaGuide: mission types
Wuzzy
parents: 901
diff changeset
    12
== Lua in Hedgewars ==
1745
6391c69a5d0a LuaGuide: a bit of history
Wuzzy
parents: 1727
diff changeset
    13
Version 0.9.13 of Hedgewars introduced the ability to use Lua scripts to modify Hedgewars behaviour for different maps. The till then used triggers (only appeared in training maps) were removed.
6391c69a5d0a LuaGuide: a bit of history
Wuzzy
parents: 1727
diff changeset
    14
6391c69a5d0a LuaGuide: a bit of history
Wuzzy
parents: 1727
diff changeset
    15
The use of Lua scripts has been extended since then.
1414
a76bfb278ad9 LuaGuide: mission types
Wuzzy
parents: 901
diff changeset
    16
a76bfb278ad9 LuaGuide: mission types
Wuzzy
parents: 901
diff changeset
    17
Now, Lua scripts are used for:
a76bfb278ad9 LuaGuide: mission types
Wuzzy
parents: 901
diff changeset
    18
1416
ea8b1317e8f3 LuaGuide: fix indent
Wuzzy
parents: 1415
diff changeset
    19
 * [Missions], one of three types:
1727
6d99747d81e3 LuaGuide: Fix bullets
Wuzzy
parents: 1416
diff changeset
    20
  * Training: Easy missions which explain the game, like a tutorial
6d99747d81e3 LuaGuide: Fix bullets
Wuzzy
parents: 1416
diff changeset
    21
  * Challenge: Missions in which the goal is to reach a high score
6d99747d81e3 LuaGuide: Fix bullets
Wuzzy
parents: 1416
diff changeset
    22
  * Scenario: Missions with a pre-set goal, like collecting a crate or killing all enemies
1747
8269ec3e5bfc LuaGuide: More links
Wuzzy
parents: 1745
diff changeset
    23
 * [PresetMaps Mission maps] (e.g. TrophyRace)
8269ec3e5bfc LuaGuide: More links
Wuzzy
parents: 1745
diff changeset
    24
 * [GameStyles Styles] (e.g. Highlander, Balanced Random Weapon)
1416
ea8b1317e8f3 LuaGuide: fix indent
Wuzzy
parents: 1415
diff changeset
    25
 * Campaigns
1414
a76bfb278ad9 LuaGuide: mission types
Wuzzy
parents: 901
diff changeset
    26
32
5f66adfa478c Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 31
diff changeset
    27
== The basic structure ==
5f66adfa478c Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 31
diff changeset
    28
896
ff2bb096e079 LuaGuide: campaign fix
Wuzzy
parents: 895
diff changeset
    29
Dependent on what type of script you want to write the requirements are a bit different, but before we go into that we must first create the `.lua` file. The location of the file depends on the script type.
895
9db173fcf26e LuaGuide: Make the Lua guide more complete
Wuzzy
parents: 681
diff changeset
    30
1415
36f16bdf8440 LuaGuide: Edited via web interface
Wuzzy
parents: 1414
diff changeset
    31
 * If you want to make a mission for singleplayer then you create a new `.lua` in one of three directories, depending on the type:
1727
6d99747d81e3 LuaGuide: Fix bullets
Wuzzy
parents: 1416
diff changeset
    32
  * Training: `Data/Missions/Training`
6d99747d81e3 LuaGuide: Fix bullets
Wuzzy
parents: 1416
diff changeset
    33
  * Challenge: `Data/Missions/Challenge`
6d99747d81e3 LuaGuide: Fix bullets
Wuzzy
parents: 1416
diff changeset
    34
  * Scenario: `Data/Missions/Scenario`
1415
36f16bdf8440 LuaGuide: Edited via web interface
Wuzzy
parents: 1414
diff changeset
    35
 * If you want to make a mission for multi player (also called a “mission map”) you create a map and create a new file `map.lua` in the map's folder.
1414
a76bfb278ad9 LuaGuide: mission types
Wuzzy
parents: 901
diff changeset
    36
 * If you want to make a custom game style, create a new `.lua` file in `Data/Scripts/Multiplayer`.
a76bfb278ad9 LuaGuide: mission types
Wuzzy
parents: 901
diff changeset
    37
 * Campaign missions go into `Data/Missions/Campaign/<CAMPAIGN NAME>`.
32
5f66adfa478c Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 31
diff changeset
    38
896
ff2bb096e079 LuaGuide: campaign fix
Wuzzy
parents: 895
diff changeset
    39
To get started, a `.lua` file should generally be structured like this:
32
5f66adfa478c Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 31
diff changeset
    40
{{{
5f66adfa478c Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 31
diff changeset
    41
function onGameInit()
5f66adfa478c Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 31
diff changeset
    42
end
5f66adfa478c Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 31
diff changeset
    43
5f66adfa478c Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 31
diff changeset
    44
function onAmmoStoreInit()
5f66adfa478c Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 31
diff changeset
    45
end
5f66adfa478c Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 31
diff changeset
    46
5f66adfa478c Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 31
diff changeset
    47
function onGameStart()
5f66adfa478c Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 31
diff changeset
    48
end
5f66adfa478c Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 31
diff changeset
    49
5f66adfa478c Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 31
diff changeset
    50
function onGameTick()
5f66adfa478c Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 31
diff changeset
    51
end
5f66adfa478c Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 31
diff changeset
    52
5f66adfa478c Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 31
diff changeset
    53
function onGearAdd(gear)
5f66adfa478c Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 31
diff changeset
    54
end
5f66adfa478c Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 31
diff changeset
    55
5f66adfa478c Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 31
diff changeset
    56
function onGearDelete(gear)
5f66adfa478c Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 31
diff changeset
    57
end
35
532bb2509f0b Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 32
diff changeset
    58
}}}
532bb2509f0b Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 32
diff changeset
    59
532bb2509f0b Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 32
diff changeset
    60
These are event handlers and are called on different events by the engine. Now lets look at the initiation events.
532bb2509f0b Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 32
diff changeset
    61
532bb2509f0b Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 32
diff changeset
    62
== The initiation events ==
532bb2509f0b Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 32
diff changeset
    63
681
ce0819a5ec57 Some copy-editing
Wuzzy
parents: 592
diff changeset
    64
The two most important event handlers are `onGameInit` and `onAmmoStoreInit`. They are used instead of loading a game scheme and weapon scheme and in campaign missions or standalone missions `onGameInit` is also used to add teams and hogs.
35
532bb2509f0b Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 32
diff changeset
    65
1805
d18970cf6ca2 Update other pages for new Lua documentation structure
Wuzzy <almikes@aol.com>
parents: 1747
diff changeset
    66
First we have `onGameInit`. On this event we should add all game modifiers and team setup. If you are making a mission you only need to specify the things you want to change on this event, everything not changed will be set to default. The available game modifiers can be found here: [LuaEvents#onGameInit()]
35
532bb2509f0b Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 32
diff changeset
    67
895
9db173fcf26e LuaGuide: Make the Lua guide more complete
Wuzzy
parents: 681
diff changeset
    68
An example of setting up Barrel Mayhem in a style:
35
532bb2509f0b Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 32
diff changeset
    69
{{{
532bb2509f0b Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 32
diff changeset
    70
function onGameInit()
532bb2509f0b Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 32
diff changeset
    71
    GameFlags = gfRandomOrder + gfSharedAmmo
532bb2509f0b Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 32
diff changeset
    72
    TurnTime = 30000
532bb2509f0b Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 32
diff changeset
    73
    CaseFreq = 0
532bb2509f0b Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 32
diff changeset
    74
    MinesNum = 0
532bb2509f0b Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 32
diff changeset
    75
    MinesTime = 0
532bb2509f0b Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 32
diff changeset
    76
    Explosives = 40
532bb2509f0b Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 32
diff changeset
    77
end
532bb2509f0b Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 32
diff changeset
    78
}}}
532bb2509f0b Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 32
diff changeset
    79
681
ce0819a5ec57 Some copy-editing
Wuzzy
parents: 592
diff changeset
    80
If you are doing a training or campaign mission you should also set `Seed`, `Map` and `Theme`. But you must also add teams and hogs on this event. This is done by using `AddTeam` and `AddHog`. An example of adding one team with one hog (these functions may only be used here):
35
532bb2509f0b Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 32
diff changeset
    81
{{{
895
9db173fcf26e LuaGuide: Make the Lua guide more complete
Wuzzy
parents: 681
diff changeset
    82
AddTeam("Team", 0xFF0002, "Simple", "Island", "Default", "hedgewars")
35
532bb2509f0b Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 32
diff changeset
    83
AddHog("Hedgehog", 0, 1, "NoHat")
532bb2509f0b Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 32
diff changeset
    84
}}}
1805
d18970cf6ca2 Update other pages for new Lua documentation structure
Wuzzy <almikes@aol.com>
parents: 1747
diff changeset
    85
To be able to play you must add another team and hog that should have another team color (this team has `0xFF0002`) or if you only want one team add the game flag `gfOneClanMode`. Look into [LuaGameplay] and [LuaGears] to see what the other parameters of `AddTeam` and `AddHog` are.
35
532bb2509f0b Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 32
diff changeset
    86
1805
d18970cf6ca2 Update other pages for new Lua documentation structure
Wuzzy <almikes@aol.com>
parents: 1747
diff changeset
    87
In `onAmmoStoreInit` you set what weapons is available in the game. For every weapon, run `SetAmmo` (see [LuaGameplay]).
36
f66efe81d8c0 Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 35
diff changeset
    88
This is used to set both starting weapons and weapons found in crates.
35
532bb2509f0b Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 32
diff changeset
    89
895
9db173fcf26e LuaGuide: Make the Lua guide more complete
Wuzzy
parents: 681
diff changeset
    90
Here is an example of the initiation of a training mission:
35
532bb2509f0b Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 32
diff changeset
    91
{{{
532bb2509f0b Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 32
diff changeset
    92
function onGameInit()
532bb2509f0b Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 32
diff changeset
    93
    Seed = 0
532bb2509f0b Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 32
diff changeset
    94
    GameFlags = gfMultiWeapon + gfOneClanMode
532bb2509f0b Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 32
diff changeset
    95
    TurnTime = 25000
532bb2509f0b Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 32
diff changeset
    96
    CaseFreq = 0
532bb2509f0b Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 32
diff changeset
    97
    MinesNum = 0
532bb2509f0b Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 32
diff changeset
    98
    Explosives = 0
532bb2509f0b Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 32
diff changeset
    99
    Delay = 0
532bb2509f0b Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 32
diff changeset
   100
    Map = "Mushrooms"
532bb2509f0b Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 32
diff changeset
   101
    Theme = "Nature"
532bb2509f0b Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 32
diff changeset
   102
895
9db173fcf26e LuaGuide: Make the Lua guide more complete
Wuzzy
parents: 681
diff changeset
   103
    AddTeam("Team", 0xFF00002, "Simple", "Island", "Default", "hedgewars")
35
532bb2509f0b Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 32
diff changeset
   104
    AddHog("Hedgehog", 0, 1, "NoHat")
532bb2509f0b Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 32
diff changeset
   105
end
532bb2509f0b Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 32
diff changeset
   106
532bb2509f0b Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 32
diff changeset
   107
function onAmmoStoreInit()
532bb2509f0b Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 32
diff changeset
   108
    SetAmmo(amShotgun, 9, 0, 0, 0)
532bb2509f0b Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 32
diff changeset
   109
end
37
acd631a56390 Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 36
diff changeset
   110
}}}
acd631a56390 Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 36
diff changeset
   111
acd631a56390 Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 36
diff changeset
   112
== Gears everywhere ==
acd631a56390 Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 36
diff changeset
   113
895
9db173fcf26e LuaGuide: Make the Lua guide more complete
Wuzzy
parents: 681
diff changeset
   114
Mostly everything in Hedgewars are made out of gears: grenades, bazooka shells, and cakes just to name a few. But these are just the visible gears, the whip's effect and rising water are also gears. But for now we will focus on the more visible ones.
9db173fcf26e LuaGuide: Make the Lua guide more complete
Wuzzy
parents: 681
diff changeset
   115
9db173fcf26e LuaGuide: Make the Lua guide more complete
Wuzzy
parents: 681
diff changeset
   116
The hogs are gears, too and when you shoot with bazooka the bazooka shell will be created and explode when it hits the ground. When the shell is created the `onGearAdd` event is called and the `gear` parameter will be the bazooka.
9db173fcf26e LuaGuide: Make the Lua guide more complete
Wuzzy
parents: 681
diff changeset
   117
And when it hits the ground, before the gear has been deleted, `onGearDelete` is invoked with the shell as parameter, after that it is removed.
9db173fcf26e LuaGuide: Make the Lua guide more complete
Wuzzy
parents: 681
diff changeset
   118
9db173fcf26e LuaGuide: Make the Lua guide more complete
Wuzzy
parents: 681
diff changeset
   119
Each gear has a [GearTypes gear type], for instance, a bazooka shell has the gear type of `gtShell`, a grenade has a gear type of `gtGrenade`, and so on. You will almost always need to check for the gear type with `GetGearType` in the `onGearAdd` function in order to do anything meaningful.
899
011ca6031678 LuaGuide: better Gears section
Wuzzy
parents: 898
diff changeset
   120
1805
d18970cf6ca2 Update other pages for new Lua documentation structure
Wuzzy <almikes@aol.com>
parents: 1747
diff changeset
   121
Gears also have a lot of various values to track their position, state, etc. These can be accessed and written to with several “getter” and “setter” functions like `GetPos`, `GetHealth`, `SetTag`, etc. See [LuaGears] for a full list. In Hedgewars, the gear values and some variable names do not always really mean what they seem to be, their concrete meaning often depends on the actual gear type. For instance, using `GetHealth(h)` on a hedgehog gear (gear type: `gtHedgehog`) will return its health (obviously). Less obviously, using `GetHealth` on a flying saucer gear (gear type: `gtJetpack`) will return its amount of fuel.
899
011ca6031678 LuaGuide: better Gears section
Wuzzy
parents: 898
diff changeset
   122
011ca6031678 LuaGuide: better Gears section
Wuzzy
parents: 898
diff changeset
   123
To learn all the gory detaily about gears, see [GearTypes].
895
9db173fcf26e LuaGuide: Make the Lua guide more complete
Wuzzy
parents: 681
diff changeset
   124
9db173fcf26e LuaGuide: Make the Lua guide more complete
Wuzzy
parents: 681
diff changeset
   125
== Other important event handlers ==
37
acd631a56390 Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 36
diff changeset
   126
898
159bbbd0ab0a LuaGuide: better paragraphicing of gametick funcs
Wuzzy
parents: 897
diff changeset
   127
The last important event handlers are `onGameTick` and `onGameTick20`. `onGameTick` is called every game tick, that is every millisecond which is a thousand times a second. `onGameTick20` is called every 20 game ticks, that is, every 20 milliseconds.
159bbbd0ab0a LuaGuide: better paragraphicing of gametick funcs
Wuzzy
parents: 897
diff changeset
   128
159bbbd0ab0a LuaGuide: better paragraphicing of gametick funcs
Wuzzy
parents: 897
diff changeset
   129
These functions are very important for specifying actions which need to happen regularily. It is important to know when to use `onGameTick`, and when to use `onGameTick20`. You can usually get away with just using `onGameTick` but must make sure any code inserted here must be efficient and fast, as this function is called very often. Complex code which takes more time to execute should go into `onGameTick20` instead.
159bbbd0ab0a LuaGuide: better paragraphicing of gametick funcs
Wuzzy
parents: 897
diff changeset
   130
895
9db173fcf26e LuaGuide: Make the Lua guide more complete
Wuzzy
parents: 681
diff changeset
   131
If you need a different interval other than 1 or 20 milliseconds, you can use modulo on the `GameTicks` variable which holds the total number of game ticks since the beginning of the game.
9db173fcf26e LuaGuide: Make the Lua guide more complete
Wuzzy
parents: 681
diff changeset
   132
9db173fcf26e LuaGuide: Make the Lua guide more complete
Wuzzy
parents: 681
diff changeset
   133
== Getting started … for real ==
9db173fcf26e LuaGuide: Make the Lua guide more complete
Wuzzy
parents: 681
diff changeset
   134
9db173fcf26e LuaGuide: Make the Lua guide more complete
Wuzzy
parents: 681
diff changeset
   135
This was just a simplistic introduction which didn't cover everything. If you want to l
37
acd631a56390 Edited wiki page LuaGuide through web user interface.
henrik.rostedt
parents: 36
diff changeset
   136
895
9db173fcf26e LuaGuide: Make the Lua guide more complete
Wuzzy
parents: 681
diff changeset
   137
A good way to learn Lua scripting in Hedgewars is to read existing scripts. We recommend to take a look into `Data/Missions/Training/Basic_Training_-_Sniper_Rifle.lua` which is the Lua script for the Sniper Rifle target practice training mission. It should give you a rough “feeling” of how a script is supposed to look and is heavily commented.
9db173fcf26e LuaGuide: Make the Lua guide more complete
Wuzzy
parents: 681
diff changeset
   138
9db173fcf26e LuaGuide: Make the Lua guide more complete
Wuzzy
parents: 681
diff changeset
   139
Continue with the following pages to learn more:
9db173fcf26e LuaGuide: Make the Lua guide more complete
Wuzzy
parents: 681
diff changeset
   140
1805
d18970cf6ca2 Update other pages for new Lua documentation structure
Wuzzy <almikes@aol.com>
parents: 1747
diff changeset
   141
 * [LuaAPI] is the central landing page for everything about the Lua API
1727
6d99747d81e3 LuaGuide: Fix bullets
Wuzzy
parents: 1416
diff changeset
   142
 * [Missions] for a more in-depth guide on how to create missions
6d99747d81e3 LuaGuide: Fix bullets
Wuzzy
parents: 1416
diff changeset
   143
 * [LuaLibraries] contains information about “libraries”, that is, extra scripts you can include for even more functions. One common library is `Locale` for making a mission translatable
1810
886f6f056e42 LuaGuide: fix bg
Wuzzy
parents: 1805
diff changeset
   144
 * [GearTypes] contains the list of all gear types, along with an explanation of how the gears and their values work