Mapping

The Interface

Rockwall 2’s interface has a few main areas. The menu bar runs across the top and holds file operations and map compilation options. Under Options you’ll find a toggle for a coarser PVS pass that speeds up compile times at the cost of less precise visibility culling. The toolbar runs down the left side and contains the main editing tools. The texture browser sits in the bottom right and controls the active texture applied to new brushes.

Navigation

Hold Space and left mouse button to enter navigation mode. Once in navigation mode you can release Space and just hold left mouse to stay in it. While navigating, the mouse is locked to the center of the viewport and you move with WASD like an FPS. Releasing the mouse button returns you to normal editing mode.

The Tools

Each tool can be activated by clicking it in the toolbar or pressing its number key. Toggle between Select and Gizmo with Q.

Select (1)

Click to select faces or entities. Hold Shift while clicking a face to select the entire brush. Hold Control to select multiple objects.

With a face selected, hold Shift and scroll the mouse wheel to slide that face’s plane along its normal, pushing or pulling it while the vertices slide along their edges. This is the primary way to resize brushes.

Press Ctrl+A to apply the active texture to the highlighted face, or Ctrl+Shift+A to apply it to all faces of the highlighted brush.

With an entity or brush entity selected, press Tab to open the Entity Inspector.

Gizmo (2)

Brings up a 3D gizmo around the center of your selection. Drag the gizmo axes to move selected objects.

Cut (3)

Click to add points that form a cutting plane. With two points placed a preview plane is shown; a third point pins the plane’s orientation exactly. Press Enter or right-click to cut all selected brushes. Escape or Backspace removes the last placed point.

In a 2D viewport only two points are needed. The cut is automatically extruded along that viewport’s axis.

Brush (4)

The brush tool displays a grid in 3D space that follows the surface normal of whatever is under your cursor, so you can place brushes flush against walls, ceilings, or floors. Click and drag to draw a rectangle. Release the mouse to lock it, then scroll the mouse wheel to extrude the brush outward and set its depth. Press Enter or right-click to finalize.

Entity (5)

Shows a preview box projected onto the map surface under your cursor. Left-click to place an entity. Right-click to choose which entity type to place from a dropdown list.

Texture (6)

Left-click a face to select it as the source and open the Texture Settings window. Right-click drag to paint that source face’s material and UV settings onto every face the cursor passes over. The Texture Settings window shows the full set of UV controls including offset, scale, rotation, flip axes, luxel scale, and UV projection mode.

UV Projection Modes

World (default)

Classic axial projection. U and V axes are the two world axes most perpendicular to the face normal. Fast and consistent for axis-aligned geometry. Can stretch on angled faces.

Face

Planar projection (Valve 220 style). Axes are projected onto the face’s plane so they always lie parallel to it. No stretching on angled faces. Best for geometry at 45-degree angles or other non-axis-aligned surfaces.

The Entity Inspector

Press Tab with an entity or brush entity selected to open the inspector. It has two tabs.

Properties

The classname dropdown at the top lets you change the entity type. Below it is a list of all properties for this entity. Clicking a property shows its expected type and an optional description. The expected property types are:

Color

An RGB color value.

Position / Direction

A vector entered as x, y, z.

Float

A decimal number like 1.0.

Texture / Model / Sound

A path from the content directory.

String

Plain text.

Every entity also has a Target Name property, which is how other entities can reference it in outputs, and Spawn Yaw/Pitch/Roll for initial rotation. The spawn rotation is shown as a blue arrow in the 3D view.

Outputs

This tab lists all outputs set up on this entity. Select one to edit its properties. Use the buttons at the bottom to add, copy, paste, or delete outputs.

From My Output

The output on this entity that will fire.

To Entity

The target entity, selected from entities with a Target Name.

Input Target

The input to call on the target entity.

Input Parameter

An optional string value passed to the input. Leave blank if not needed.

Delay

Time in seconds to wait before firing. See Advanced Outputs.

Refire

How many extra times to repeat. Blank, 0, or -1 all mean fire once.

Special Textures

Textures whose names start with tool_ have special behavior and won’t render as normal surfaces.

tool_skybox

Displays the skybox and allows directional light to pass through. Apply this to any face that should show the sky.

tool_nodraw

The face won’t be rendered. The compiler already culls non-visible faces automatically, so you rarely need this. Useful for manually preventing a specific face from being drawn.

tool_trigger

Required for trigger brushes. The brush won’t be visible but will fire entity events when entered by other entities.

Brush Entities

Any brush can be turned into a brush entity by selecting it and pressing Ctrl+T. This ties the brush to an entity, giving it behavior like a door or a moving platform. Verify whether a brush is a brush entity by pressing Tab while it’s selected. If the Entity Inspector opens, it’s an entity. Make sure you assign an entity type that is actually a brush entity type, like FuncSliding or FuncPhysics.

Lighting

Lights are placed like any other entity using the entity tool. Most maps will want at least one DirectionalLight.

DirectionalLight

A sun-style light that illuminates the whole map from a direction. Has Color, Intensity, Ambient Color, Ambient Intensity, and an optional Skybox texture.

PointLight

Radiates light in all directions from a point. Has Color, Intensity, and Range.

SpotLight

A cone-shaped light. Has Color, Intensity, Range, Spot Angle, and Inner Angle.

Light is baked at compile time. You’ll need to recompile your map to see lighting changes in game.

Note

Ambient Color and Ambient Intensity represent the color of the sky itself. Useful for tinting outdoor shadows or creating overcast scenes by keeping direct light intensity low.

Sealing the Map

Like Source Engine, Chisel maps must be fully sealed. Every part of the playable area must be enclosed by solid brushes with no gaps. Any hole that lets the compiler see into the void will cause the BSP to fail or produce incorrect results. If your map behaves unexpectedly after compile, check that all walls, floors, and ceilings meet cleanly with no open gaps.

Building a Basic Room

A quick walkthrough from nothing to a playable space.

1
Build the floor

Select the brush tool and drag out a large rectangle on the ground plane, then extrude it downward a small amount with the scroll wheel. Apply a texture with Ctrl+Shift+A.

2
Build the walls

Create four wall brushes around the perimeter. TPlace each wall flush against the floor edges.

3
Build the ceiling

Add a ceiling brush across the top. The map must be fully sealed, so make sure it meets the tops of all four walls with no gaps.

4
Apply the skybox texture (optional)

If you’d like an outdoor feel, hover over the ceiling face and apply the tool_skybox texture with Ctrl+Shift+A. This shows the skybox through that face and lets directional light through.

5
Place a DirectionalLight

Switch to the entity tool, right-click to select DirectionalLight, and place it in the room. Press Tab to open the inspector and set the direction using Spawn Yaw/Pitch/Roll.

6
Place the Player

Right-click to switch to the Player entity and place it inside the room.

7
Save and compile

Save the map as a .rok file in your project’s Working/Maps folder. Press Ctrl+Shift+B to compile and launch the game, or Ctrl+B to just compile the map without launching.

Note

The game executable launched by Rockwall 2 is the one you set in your editor config. Make sure it’s up to date before hitting compile-and-run.

Known Issues

There is an extremely rare BSP bug where a small area of the map may be incorrectly marked as solid, creating a small invisible void in the level. It happens in specific geometric situations and is currently undiagnosed. If you encounter it, rearrange the brushes in that area slightly and recompile. It will almost always go away.