Back to homepage
Global variables in the Lua API
Updated Tue, 13 Oct 2020 13:50:06 +0200 by Wuzzy

Lua API: Global variables

This page contains a list of global variables and variables supported by the Lua API.

Table of Contents

General variables and constants

Here are some unsorted variables or constants which are available in Lua. Consider these variables to be read-only.

Identifier Description
LOCALE Current locale identifier (e.g. "de" for German)
INTERFACE Type of the game interface: "desktop" for desktop, "touch" for touchscreen
MAX_HOG_HEALTH Maximum possible hedgehog health
MAX_TURN_TIME Maximum possible turn time in milliseconds
LAND_WIDTH The width of the landscape in pixels. Not available before onGameStart
LAND_HEIGHT The height of the landscape in pixels. Not available before onGameStart
LeftX X coordinate of the leftmost point of the landscape. Not available before onGameStart
RightX X coordinate of the rightmost point of the landscape. Not available before onGameStart
TopY Y coordinate of the topmost point of the landscape. Not available before onGameStart
CursorX The X position of the cursor if the player is choosing a target. Otherwise, this equals NO_CURSOR
CursorY The Y position of the cursor if the player is choosing a target. Otherwise, this equals NO_CURSOR
NO_CURSOR Special value used by CursorX and CursorY when no cursor is displayed
WaterLine The y position of the water, used to determine at which position stuff drowns. Use SetWaterLine to change.
ClansCount Number of clans, including defeated ones (a clan is a group of teams with same color)
TeamsCount Number of teams, including defeated ones
TurnTimeLeft Number of game ticks (milliseconds) left until the current turn ends. To set this value, use SetTurnTimeLeft
ReadyTimeLeft Remaining ready time in millseconds, 0 if turn in progress. To set this value, use SetReadyTimeLeft
GameTime Number of total game ticks
TotalRounds Number of rounds that have passed. Equals -1 if game has not started yet or hogs are still being placed.
CurrentHedgehog The hedgehog gear that is currently in play
AmmoTypeMax Maximum ammo type ID (useful to iterate through all ammo types, starting by 0)
ScreenWidth Width of the Hedgewars window or screen. Not available before onGameInit
ScreenHeight Height of the Hedgewars window or screen. Not available before onGameInit


The GameFlags are used to store simple boolean settings of the game. You can read/modify them using the GameFlags functions.

Identifier Description (active state)
gfOneClanMode Used when only one clan is in the game. This game flag is primarily used for training missions.
gfMultiWeapon Shooting any weapon enters multi-shot mode with infinite shots. The remaining shots counter for weapons like shotgun is suppressed. Intended for target practice missions, not recommended for anything else.
gfSwitchHog Free hog switching at turn start
gfDivideTeams Each clan will start in its own side of the terrain. No effect if gfPlaceHog is active.
gfBorder An indestructible border is active on the left, top and right sides of the map
gfBottomBorder There is an indestructable border at the bottom of the map.
gfShoppaBorder The terrain edge will be replaced by a decorative black/yellow “danger stripe”. This has no gameplay effect.
gfSolidLand The terrain is indestructible (with some exceptions).
gfLowGravity The gravity is low (50%).
gfLaserSight A laser sight is almost always active.
gfInvulnerable All hedgehogs are invulnerable. This permanently sets the heInvulnerable effect to 1 for all hogs and removes the health tags
gfVampiric All hedgehogs become vampires and get 80% of the damage they deal as health.
gfKarma Attackers share the damage they deal to enemies.
gfArtillery Hedgehogs can’t walk.
gfRandomOrder The game is played in random order.
gfPlaceHog Placement mode: At the beginning of the round, all hedgehogs are placed manually first.
gfKing King Mode: One hedgehog per team becomes their king, if the king dies, the team loses.
gfSharedAmmo Teams in the same clan share their ammo. Takes precedence over gfPerHogAmmo .
gfDisableGirders No girders will be created in random maps
gfDisableLandObjects No land objects will be created in random maps
gfAISurvival Computer-controlled hedgehogs will be revived after they die.
gfInfAttack Attacks don’t end the turn.
gfResetWeps The weapons will be reset to the initial state each turn.
gfPerHogAmmo Each hedgehog has its own weapon stash. No effect if gfSharedAmmo is active.
gfDisableWind Wind is set to 0 and won't be changed between turns. But you can change the wind manually with SetWind .
gfMoreWind Wind affects almost all gears.
gfTagTeam Tag Team: Teams in the same clan share their turn time.
gfResetHealth The health of all living hedgehogs is reset at the end of each turn.

Game variables

The game variables affect several core aspects of gameplay such as map, turn time, etc. They can be set in the onGameInit event.

Identifier Default Description
Theme depends The theme to be used. When Map is set, a default value is used. For missions which don't use an image map, Theme must be set explicitly
Map "" The image map being played or "" if no image map is used
Seed "" Seed of the random number generator. This is a string
LandDigest N/A Digest for the current map. Only meant for internal use by Hedgewars
MapGen mgRandom Type of map generator. One of mgRandom , mgMaze , mgPerlin , mgDrawn .
TemplateNumber 0 Set the number of the land template for the random map generator mgRandom . Use this to force a certain “style” of random map. A land template is a rule set for random maps. Maps generated with the same template look similar. You can see the land template number in console when you generate a new random map in the frontend. This field is write-only, you cannot use it to read the template number that Hedgewars chose (you will always get 0 ). To be able to set the TemplateNumber , you must also set TemplateFilter to 6 .
TemplateFilter 0 Used for random map generators. This is the number of the template filter to be used. A template filter is a grouping of multiple land templates. This corresponds directly to the map size / map style selection in the frontend (e.g. Small/Medium/Large/Cavern/Wacky).
MapFeatureSize 12 Used by maps to set their land detail/complexity. For drawn maps, this sets the map size. Game styles can use this value in a special way as well. This value os the same that will be set by the user with the slider under the map preview in the game setup screen. Allowed values are from 1 to 25.
GameFlags 0 All GameFlags combined as a bitmask. Setting GameFlags directly is discouraged, use the GameFlags functions instead
InitHealth 100 Initial hedgehog health from the game scheme (read-only)
Ready 5000 Ready timer at the start of the turn (in milliseconds)
Delay 100 Time the current hedgehog needs to be inactive before gear stuff gets updated in infinite attack mode, like applying hog damage and deaths. This is quite an obscure variable, only change it if you know what you're doing
TurnTime 45000 Turn time in milliseconds
GetAwayTime 100 Retreat time in percent
CaseFreq 5 Probability that a crate drops in a turn. 0: never, >0: probability = 1/CaseFreq
MaxCaseDrops 5 Maximum number of crates that can be in the game before the random crate drops stop
HealthCaseProb 35 Chance that a crate drop is a health crate, in percent (other crates are ammo or utility crates)
HealthCaseAmount 25 Amount of health in a health crate
DamagePercent 100 Global damage in percent, affects damage and knockback
RopePercent 100 Rope length in percent
MinesNum 4 Number of mines being placed on a medium-sized map
MinesTime 3000 Time for a mine to explode from activated (in milliseconds), -1000 for random
MineDudPercent 0 Chance of mine being a dud, in percent
AirMinesNum 0 Number of air mines being placed on a medium-sized map
Explosives 2 Number of barrels being placed on a medium-sized map
SuddenDeathTurns 15 Number of rounds until Sudden Death begins, after the first round is over. E.g. 0 = SD starts in 2nd round
WaterRise 47 Height of water rise in pixels for each Sudden Death turn
HealthDecrease 5 Amount of health decreased on each turn in Sudden Death
Goals "" Use this to add additional text to the goal text popup shown at the beginning and when using the quit or pause keys. The text is added to the default text which usually explains the game modifiers and does not replace it. The text supports the same special characters as in ShowMission
WorldEdge weNone Type edges being used at the left and right sides of the terrain (see below).

The proper way to disable Sudden Death is by setting both WaterRise and HealthDecrease to 0 .


Depending on the map type ( MapGen ), the meaning of TemplateFilter differs:

Template filter number Random maps ( mgRandom ) Perlin maps ( mgPerlin ) Maze maps ( mgMaze )
0 All Small tunnels Small tunnels
1 Small Medium tunnels Medium tunnels
2 Medium Large tunnels Large tunnels
3 Large Small islands Small islands
4 Cavern Medium islands Medium islands
5 Wacky Large islands Large islands
6 Will use template specified in TemplateNumber N/A N/A


The value of WorldEdge can have the following values:

Identifier Meaning
weNone No world edges
weBounce Bouncy world edges
weWrap World wraps around at the edges
weSea Ocean world edges

Land flags

The land flags denote several types of terrain. Like all flags, they can be combined at will.

Value Meaning
lfIce Slippery terrain, hogs will slide on it.
lfBouncy Bouncy terrain, hogs and some other gears will bounce off when they collide with it.
lfIndestructible Almost indestructible terrain, most weapons will not destroy it.
0 Normal destroyable terrain. Note that this is the case when no other land flag is set.

More globals

More globals are at at Gear Types, Visual Gear Types, Ammo Types, Sounds, States, Sprites.

Note: Some globals are specific to a few functions only and are not mentioned explicitly here; they are instead documented at the corresponding function (example: effect types for the SetEffect function).