AssaultCube Documentation

Map editing - Begin!

Prior to reading this, please learn the controls and interface here.

To begin map editing, while in AssaultCube, press the letter E which toggles editmode. AssaultCube's map editor is built into the game, so its easy to learn and you don't need to download any special tools to get started.
Note: Because of how the cube engine works there are some limitations to what you can create, but there are also some clever work-arounds you can use to get what you want.

In editmode (press E) you can fly around in any direction you like and you can even go through walls.
This is to make map-editing easier...

Tip: When editing a map, make sure you have your settings set back to the defaults, so you can see what your map looks like to the average player (example: set gamma back to 100, so you can judge lighting correctly).

Covered on this page...

Starting, saving and loading a map

If you would like to start creating a new map, type: /newmap and then the size you would like (7 is the sensible default) and then press ENTER. If you made your mapsize too small, you can easily make it double in size, simply by typing /mapenlarge.

You can save your map at any time by typing: /savemap and then the name you would like it saved as (after you have chosen the filename, there is no need to type the name every time you save from then on. Instead, you can simply type /savemap). The map gets saved in the packages/maps directory. Save your map often, to avoid the frustration of losing all of your work if something goes wrong. Each time you do save your map, a backup of your last save is created with a timestamp that ends with the extension ".BAK". If you need to utilize these backups, all you will need to do, is rename the ".BAK" extension to ".cgz".

Note: Make sure when you start a map, to use the /newmap command, rather than editing an existing map, otherwise your map may get saved a bit strangely. Also note: you cannot put spaces or any illegal characters in the name you wish to save it as.

To load your map, type /map and the file name you chose for your map. If you have not placed lighting in your map yet, your map will turn up dark. To temporarily fix this problem, type: /fullbright 1 - this will fill your whole map with light. The fullbright command only works in edit mode and is not a permanent fix. To remove fullbright mode, reload the map, or type: /recalc. Note: Fullbright can be turned on/off in the lighting menu (press L).

Manipulating geometry

The ceiling and floor of AssaultCube are made up of individual cubes, which can be made into various objects that you choose, such as walls, by simply manipulating the geometry.

There are six different ways to manipulate geometry:

Solids and spaces

The reason we are covering solids and spaces, before moving cubes, is because solids block visibility and do not need to be rendered, so they are more efficient to use in maps. The use of solids in a map is essential to creating a good map. Without enough solids AssaultCube maps would lag too much for the average user and would be unplayable. Solids are also easy to create and can be used to make walls with a single keystroke!
Tip: When you've finished your map, change any unused space into solids.

Moving cubes

Moving cubes is simple and can be done, either with your mouse or keyboard...


Corners can be used to create a 45 degree corner (instead of a 90 degree one) where 2 walls meet. They are very simple to create. Select a cube where 2 walls meet and press K. This will cut the cube in half diagonally, keeping one half and giving the other half to the nearest cube - making it a corner. To undo this as a corner, press G.


You can use heightfields to manipulate the corners of cubes and create slopes/arches. Heightfields are somewhat restrictive, so there are a few things to know about before creating a heightfield:

  1. On a single cube, only the floor OR the ceiling can be a heightfield. A single cube can't have both.
  2. All cubes that are going to be heightfielded need to be level (the same height) as each other if they are right next to each other. If they aren't, they will become glitchy.
  3. Heightfields can't be a solid or a corner!
  4. Pickups placed on heightfields will remain at the original height of the cube that was heightfielded, unless height is applied to the pickup.
  5. Sometimes, when saved, textures on the wall/upper-wall part of a heightfield (or its surrounding cubes) may change. To fix this, try selecting all cubes in the surrounding area of this heightfield and change them to the texture you wanted.

To create a heightfield, select a cube and press "H" or "I". "H" allows the heightfield to occur on the floor and "I" allows the heightfield to occur on the ceiling. You can hold down Q and scroll to manipulate each corner that the red dot on the cube selector is, or you can use 8 or 9 to move the cubes corner up/down. To undo a heightfield, press G.

After making it a heightfield, slopes and arches can be created by selecting an area and using the arch or slope command.

Slopes - Type /slope X Y. Replace "X" and "Y" with different numbers to make your slope shape in different directions (you can use negative values here, for example: /slope 0 -2).

Arches - Type /arch X and replace "X" with a number to create different types of arches.


There are four different parts of the cube world that you can change textures on (see below)...

Cubes Browse forwards Browse backwards
Floor Insert Delete
Ceiling Page up Page down
Wall Home End
Upper-Wall Number pad 7 Number pad 4

There is one key allocated to move forwards through the textures for each of these and one key to move backwards. You can also hold X and scroll to scroll forward/backwards through textures on the wall/upper-wall, or Z and scroll to scroll forward/backwards through textures on the floor/ceiling - depending on the direction you look.

When selecting textures, the AssaultCube engine automatically puts the last chosen texture at the start of the list, so commonly used textures become easier to find.

Note: The "upper-wall" are the sides of the wall that protrudes from the ceiling.

Useful commands


Selecting some cubes and pressing C will copy them. Then, select a cube and press V to paste it. The cubes will be pasted from the red dot on the cube selector.

Note: Only geometry can be copied.


In AssaultCube, water is placed by selecting a level at which the water will be present. It will then settle throughout the whole map at that level. You can't have water in just one place, it can only be put through the whole map.

To add water to your map, type: /waterlevel X
Replace X with the level that you would like the water to settle at. To remove water, use the same command to make the water settle lower than the geometry (for example: /waterlevel -128 ).

You can also change the colour of the water. Simply type: /watercolour R G B
Replace R with the red colour for the water, G with the green colour for the water and B with the blue colour for the water to choose your colouring mix. When using this command, ensure that you create a value for each colour (even if the value is just "1"), otherwise, the command may not work correctly. It does not harm to add this command into the map cfg file but it is not neccesary!

Map messages

When your map is loaded up, there is always a message stated. This message is used to advise players of the map name and author. This "map message" can be added to any map by using the "mapmsg" command. When using this command, be sure to use quote marks at the beginning and end of the phrase you use, otherwise it will not put the full message onto the map. Be sure to save your map afterwards. Below is an example of how to use the "mapmsg" command.

Example: /mapmsg "Foobar by Raboof"


Pressing U will undo the last texture/geometry action that was done. It will not undo entities. Pressing R will redo editing operations undone by 'undo'.

The next step? Go to Map editing: Entities to learn how to place lights, spawns, etc.

© Copyright, Rabid Viper Productions
We would be grateful for any donations considered towards AssaultCube