Tile Zone Guide

A tile zone is an area that overrides movement and audio properties for players standing on specific tiles within its boundaries. Unlike platforms or walls, a tile zone is invisible — it just adjusts what happens when the player steps on a tile inside it.

All override fields are optional. Leave a field out (or set it to -1) and that property is left exactly as it normally would be. You only need to specify the things you actually want to change.

Basic Syntax
tile_zone minx=value; maxx=value; miny=value; maxy=value; minz=value; maxz=value;
tile_zone minx=0; maxx=20; miny=0; maxy=20; minz=0; maxz=0;

That example does nothing on its own because no overrides are specified — it just defines a region. Add one or more of the optional fields below to make it do something.

Parameters

surface (optional)
The tile type this zone applies to. If left out or set to an empty string, the zone matches every tile within its boundaries regardless of type. If specified, the zone only activates when the player is on that specific tile.
tile_zone minx=0; maxx=20; miny=0; maxy=20; minz=0; maxz=0; surface=grass;

pitch (optional)
Overrides the pitch of step sounds played within this zone. Values are percentages: 100 is normal, 150 is 50% faster, 50 is half speed. Useful for making a tile sound heavier or lighter.
tile_zone minx=0; maxx=20; miny=0; maxy=20; minz=0; maxz=0; pitch=80;

speed (optional)
Overrides how fast the player moves while stepping on tiles in this zone. The value is in milliseconds between steps — higher values are slower, lower values are faster. Normal walking speed is 240ms. Must be greater than 0.
tile_zone minx=0; maxx=20; miny=0; maxy=20; minz=0; maxz=0; speed=400;

land_damage (optional)
Overrides the amount of damage taken when the player lands on a tile in this zone after a normal fall. Does nothing if the player lands softly without enough fall distance.
tile_zone minx=0; maxx=20; miny=0; maxy=20; minz=0; maxz=0; land_damage=25;

hardland_damage (optional)
Like land_damage, but applies a damage multiplier for very hard falls. The final damage is hardland_damage multiplied by the fall distance. Use this for spike pits or brutal terrain.
tile_zone minx=0; maxx=20; miny=0; maxy=20; minz=0; maxz=0; hardland_damage=10;

jump_height (optional)
Overrides how high the player can jump while in this zone. The default jump height varies by map settings, but is usually 5.
tile_zone minx=0; maxx=20; miny=0; maxy=20; minz=0; maxz=0; jump_height=3;

Combining Overrides
You can combine any number of overrides in one tile_zone line.
tile_zone minx=10; maxx=30; miny=10; maxy=30; minz=0; maxz=5; surface=ice; speed=150; pitch=120;
That example makes ice tiles in the given area feel slippery (faster movement) and sound slightly higher-pitched.

Zone Layering
Multiple tile zones can overlap the same area. When they do, later-defined zones win on any property they both override. This means you can define a large base zone and then place a smaller, more specific zone inside it to override only part of the behavior.

tile_zone minx=0; maxx=50; miny=0; maxy=50; minz=0; maxz=0; speed=400;
tile_zone minx=20; maxx=30; miny=20; maxy=30; minz=0; maxz=0; speed=600;

In the above example, the whole area has slowed movement (400ms), but the smaller inner square is even slower (600ms).

Surface Filtering
If you specify a surface, only that tile type triggers the zone's overrides. A player standing on a different tile type inside the zone boundaries will not be affected.

tile_zone minx=0; maxx=50; miny=0; maxy=50; minz=0; maxz=10; surface=ice; speed=150;
tile_zone minx=0; maxx=50; miny=0; maxy=50; minz=0; maxz=10; surface=mud; speed=500;

Here, ice tiles make the player faster and mud tiles make them slower, even though both zones cover the same area. Any other tile type in that area is unaffected.

Walls
A zone can name a wall as its surface, which retunes the sound of walking into that wall inside the zone. Walls are tiles like any other, so you write the tile's own name, wall included, not the name of the sound file it plays. A wall built as wallwood plays walls/wood.ogg, but the zone is written against wallwood.

tile_zone minx=0; maxx=50; miny=0; maxy=50; minz=0; maxz=10; surface=wallwood; pitch=70;

This affects your own bumps into that wall, the camera running into it, and the sonar reporting it. The camera and the sonar play their foley faster than you do, and the zone's pitch scales that rather than replacing it, so a wall set to 70 stays proportionally lower however it is heard.

Naming the wall is required. A zone with no surface matches every tile inside its box, but those zones deliberately do not reach walls, since a zone written to change how the ground sounds should not quietly retune every wall in the same area. Only pitch does anything to a wall; speed, jump height and the two damage settings apply to the tile a player is standing on, which a wall never is.

Resetting After Leaving
When the player leaves a tile zone (steps onto a tile not covered by any zone), their movement speed automatically resets to the map's normal values. You do not need to define a "reset" zone.

2D Maps
For 2D maps, use minz=0; maxz=0; as usual, or simply omit them (they default to 0).
