Natural Selection Wiki

Have you already made maps for Half-Life 1/2? For Counter-Strike?

SPARK Engine is a proprietary but also very interesting engine. Although it’s only used in Natural Selection 2, learning this editor is quite fun. But you have to take new usage.

The basics[]

SPARK Engine is an Editor based on blender. It’s a Line and Face Editor. That means you don’t make “Cubes” or “Blocks". You make points, lines, and faces. This will totally change your habits. You’ll make a face then “Extrude” it. That will either make a room, or a Block. But NEVER create a block to another block (or a room to another room). You would have 2 lines and 2 points at the same location in this case, and this will occur to strange stuff.

Also, a major difference is that you mostly use 3D view to build your map. 2D views exists, but you won't build much with them.


Natural Selection 2 Spark SDK Mapping Tutorial -1 (Spark Level Editor)

Creating a layout[]

You should always make ROOMs, then tie them together using the “line” tool. When you draw a line, if there is 2 or 3 adjacent lines with it, a face will be created. But Sometimes the face created won’t be good :

-         It can either be on the wrong side (select your face then use “Flip Faces” CTRL +F)

-         It can create a face you didn't want. Select and remove the face created. If you want to create a face, select 3 or 4 adjacent lines (with CTRL), and select “Create Face” (ALT + C)

Compiling your map[]

Good news : no more compilation ! What you see is what you get. Literally. Even for light. That doesn’t means you shouldn’t test your map some in a while.

That also means your *.level file is the same for the editor and the game. That also means you can literally check every official map to see how it’s made!!

HLvis & Optimisation[]

Remember HLvis ? This calculate your visibility and reduce your r_speeds by using portals to remove unviewable things depending on where you are.

Now you have to use “Occlusion Geometry”. There are some nice tutorial here and on Youtube.

By the way, you can use r_wireframe (equivalent of gl_wireframe) to see trough walls (also "dev 1" should be activated)

Also for "r_speeds" use "r_stats"


Spark Editor Tutorial - Occlusion Geometry


It doesn’t change much from HL engine. The only big difference is that there’s no more “Brush Entities”. Some entities are indeed like “Brush entity”, but you never take a block (there’s no more “Block”, remember ?) then click “Tie to entity”.

Most famous “Brush Entity alike” are “locations” (as much a you want) and “Minimap” (Only 1, for creating an “overview”). Also "Ladders". When you put them in the map they are very tiny so you have to use scale tool to make them big.

Also, since the only game running Spark is NS2, you don't need to configure FGD files !

Corresponding entities :

Hammer Entity Name SPARK Entity name



reflection_probe Toolbar (not listed)
func_ladder ladder Block Entity
info_player_start ready_room_start This is the player start of the Ready Room
light light_point Toolbar (not listed)
light_spot light_spot Toolbar (not listed)
light_dynamic N/A Change the properties of the light entities
point_spotlight light_spot Toolbar (not listed)
light_environment light_ambient Toolbar (not listed)
light_directional light_ambient Toolbar (not listed)
func_door door choose between 2/3 different type of door model
prop_static N/A Directly add a prop using the "prop" tool, not the entity tool !
prop_physics N/A No equivalent here (see "Props")
worldspawn ns2_gamerule 1 by map

You can see a list of entities here : Spark_Entity_List

Props (Models)[]

You can directly can place props using the "Prop" tool (the blue human).

Also, all props are scalable !! That's right, you can change the dimension of every prop !

Go-To <Coordonates>[]

If you need to go on a point, then the only option available is to add an entity, then moving it to a location. Take an alien life-form (“onos” or “gorge” for example), then edit it’s “Origin” in the properties.

Beware that in-game console display coordinates in “Meters”, so you have to change it in the editor first (“Tools” > “Setting” > “Interface”), then put it back after.

Entity Report[]

Unfortunately there’s no « entity report » on Spark Editor. You can open the *.level files in Notepad++ and search for an entity name, but that won’t give you the location of it.

You can guess to try where your entity is by removing half of your level and checking the *.level again with notepad++, then reiterate the operation again.

Additionnal Ressources[]