Missions can be played in singleplayer mode and are selected from the single player menu in the mission menu (the hedgehog at the blackboard).
Only the Lua script is needed, the other files/data are optional. But it is still recommended to create them.
The mission's Lua script
This is the heart of your mission. Here you will set up the mission and define the entire game logic of the mission.
See LuaGuide, LuaAPI and LuaLibraries for more information about scripting.
This file needs to be saved in
being one of
. The file name must end with “
”. Remember the file name, you will need it for the other files.
These are the mission types:
- Training: Tutorial-like mission that teaches the player a skill or is for practice. You can't lose
- Challenge: Player must master a particular skill in order to reach a high score
- Scenario: Player has to complete a predefined goal
In mission scripting, some patterns appear often, so here are some hints for your convenience (Refer to LuaAPI
for a full documentation):
- Start with
to set up the most basic environment parameters, teams, hedgehogs, etc.
- Important set up functions:
- You probably almost always want to call
at the beginning of the game (
) to show the objectives of your mission.
- Enable the game flag
if you need only one clan for your mission.
- Normally, the game ends when all hedgehogs are dead or one clan is remaining (unless
is set). You can call
to end the game manually.
to customize the statistics screen.
- Use the Locale library to make your mission translatable.
- When making your mission translatable, use Lua's
to insert numbers and other strings instead of just concatenating everything together.
- If you want to create complex animations and/or cinematics, include and use the Animate library.
The preview image is displayed in the mission menu when you have selected the mission.
It must be a PNG image of size 314px×260px.
The file must be saved in
. The file name must follow this pattern:
is name of the mission script without the file name suffix.
For example, the preview image for the mission script
must have the name
Mission title and description
The mission title and its description as shown in the mission menu must be edited in the missions files in
. The file name is
. There is one file per language. I.e.
for German, etc. Note that these files are supposed to contain the titles and descriptions of all
missions on your computer. This makes these files unsuitable for sharing or inclusion into HWP files
, for example.
To add the title an description for your mission, just add these 2 lines into the file according to this syntax:
<mission name>.name=<mission title>
<mission name>.desc=<mission description>
is the file name of the mission script without the file suffix.
is the mission title as shown in the mission menu.
is a short description of the mission, also only shown in the mission menu.
You can optionally enclose
in quotation marks (they will be removed by the game).
If the mission title and description are missing, the mission menu will derive the title from the file name of the Lua script instead and shows no description.
For more information about translating Hedgewars, see Translations.
Here are the English title and description of the mission “Bamboo Thicket” (file name of script: “
User_Mission_-_Bamboo_Thicket.name=Mission: Bamboo Thicket
User_Mission_-_Bamboo_Thicket.desc="Death comes from above."
Mission variables are used to store arbitrary values about the mission in the team file. Most commonly, victory and highscores are saved here. Mission variables are set and read with
To mark a mission as won, call `SaveMissionVariable("Won", "true"). For challenge missions, you can also use mission variables to store highscores.
For a complete list, see ConfigurationFiles.