This page describes how to make levels for Impulse.
Level File Format
All Impulse levels are text files. You could do all your work in Notepad if you wanted. Luckily, you don’t need to — there’s a Level Editor that makes things easier.
The Master Levels File
You’ve downloaded and installed the game, right? Go to where you installed the game. Go into the Levels subdirectory.
You will see a whole heap of files.
Look for a file called Levels.ils. This is the master list of levels. Open it with your favourite text editor. It will look something like this.
And We Have Liftoff.il # Very Easy
Depth First.il # Very Easy
Oceanus Procellarum.il # Easy
Between the Lines.il # Easy
Fuel Efficient.il # Easy
Blivet.il # Easy
(Don’t fret if this list is different from yours. This guide was written well before the list of levels was finalised.)
This is the list of levels, in order, that Impulse will load. If you look about in the directory you will see these files live alongside Levels.ils.
The hash (#) character marks a comment — the hash and anything after it on a line is ignored. A comment is purely optional.
It’s important you’re aware of this file. If you make a new level, you need to insert it into this master list or Impulse will never load it.
Level Files
Now go and open one of the level files — any file with the .il extension. You should see it looks something like this.
# Created with Impulse Editor [etc]
LevelName=There and Back Again
LevelAuthor=Nichevo
IsTimeLimit=True
TimeLimit=14
IsFuelLimit=False
Wall=0,4.5,14.5,4.5
ExitZone=0.6,5.1,0.55
Spawn=0.5,0.5
Fence=15.9,9,15.9,0
ExitZone=0.6,6.2,0.55
ExitZone=0.6,7.3,0.55
ExitZone=0.6,8.4,0.55
That’s a complete level, there. Some will be longer than others.
Since you’re probably not going to be wanting to make Impulse levels in a text editor, I won’t bother explaining in detail how the text is structured.
Just know that it is possible. If you’ve got some complex idea that the editor can’t handle, you always have the option of editing the text directly.
Playing Your Level
If you’ve created a new level, here’s what you need to do to get it to play in Impulse:
- Ensure the file has been saved in the Levels subdirectory of where you installed Impulse.
- Edit the master level file, Levels.ils, and include your level’s filename.
(You might want to list it as the first level while you’re testing it, just so it’s easy to access. You can always move it afterwards.) - Start Impulse (or if it’s already running, restart it). Play your level.
The Level Editor
When you installed Impulse, you were asked if you wanted to also install the level editor. If you chose not to, go reinstall the game, and come back. I’ll wait.
You can launch the editor using the shortcut on the Desktop and/or Start Menu.
Here’s what it looks like:

The Toolbar
Let’s go through all the toolbar buttons, left to right.
New (Ctrl + N)
Creates a new level.
Open (Ctrl + O)
Opens an existing level.
Save (Ctrl + S)
Saves the level into the existing file. This button is disabled when there are no changes to save.
Save As (Ctrl + A)
Allows you to save the level as a file of your choice.
Quit (Alt + F4)
Closes the editor.
Increase Draw Scale (Num +, Scroll Wheel Up)
Increases the size of many of the level objects. Also makes it easier to grab objects. The maximum draw scale is 900%.
Decrease Draw Scale (Num -, Scroll Wheel Down)
Does the opposite of Increase Draw Scale. The minumum draw scale is 100%.
Current Draw Scale
Shows the current draw scale.
Snap to Grid (G)
While this is active, level objects moved or created will “snap” to an invisible grid, making them easier to align.
Adjust Grid Size
Alters the size of the invisible grid when Snap to Grid is on.
Level Properties (F2)
Allows you to edit the properties (the “rules”) of the level.
Selected Object Coordinates (F3)
Only enabled when a level object is selected. Allows you to type in the exact the coordinate of that object.
Selected Object Properties (F4)
Only enabled when a level object is selected. Allows you to adjust the properties of the object (e.g. speed, size). You can also double-click most objects to see this dialog.
Delete Selected Object (Del)
Only enabled when a level object is selected. Deletes the selected level object. When used on one end of a Wall or Fence object, it will delete both ends of the Wall or Fence. When used on a Patroller object, it will also delete all Waypoints that Patroller had.
About Impulse Editor (F1)
Shows the About screen. Mainly useful to determine what version of the editor you have.
Clone Current Object (Space Bar)
Only enabled when a level object is selected. Creates a clone of the object at a location you specify. All object properties are copied, as well. For Walls and Fences, the length and orientation of the object is copied as much as is possible without leaving the level boundaries. Patrollers are not cloned with waypoints. Cloning a Patroller Waypoint clones only the associated Patroller object. Cloning a Spawn Point is rather pointless as the editor will not allow more than one to exist.










Add [Level Object] (Various Keyborad Shortcuts)
Allows you to click on the black level screen to place a new level object of the specified type. Placing a Spawn Point will remove any existing Spawn Point on the level. In the editor, hover the mouse over any button to learn its keyboard shortcut. You can find more information about the various Level Objects futher below.
Add Patroller Waypoint (Y)
Enabled only when a Patroller or Patroller Waypoint is selected. Allows you to add a new waypoint to the end of that Patroller’s path.
Level Screen
This is the black rectangular section in the centre left of the editor. It represents the level itself. The entire level is shown at once — there is no zooming feature. For best visibility, you probably want to maximise the editor window.
You can single click an object to select it. From there, you can move the object by dragging it. You can also double click and object to edit its properties (or its coordinates if it has no properties).
If you find objects on the level screen too small to manipulate, use the Draw Scale buttons on the toolbar to increase their size.
Level Object List
All objects on the level are shown in a list on the right hand side of the editor.
You can single click any item in the list to select it. Double click an object to edit its properties (or its coordinates if it has no properties).
You can drag the left-hand edge of the list pane to change its width.
Status Bar
The lower-left corner of the editor shows the level coordinates of the cursor while the cursor is over the black level screen. The coordinates will be rounded to reflect the Snap to Grid setting.
Level Properties
The Level Properties dialog can be brought up using the Toolbar.

Each entry in the Level Properties dialog can be enabled or disabled with the checkbox. When disabled, the level uses the default value shown. When enabled, you may enter your own value.
If you enter an invalid value a red border will appear around the text box. Mouse over the text box to see why the value is invalid. You cannot apply changes to the Level Properties while there exist invalid values.

The various Level Properties are as follows:
- Level Name. The name of the level as shown in-game.
- Level Author. The author of the level as shown in-game.
- Time Limit. The number of seconds to complete the level. Overruning this time results in instant failure.
- Thruster Strength. The acceleration power of the Player’s engines. Higher values lead to a faster Player. A value of zero means the Player essentially has no engine.
- Fuel. The number of seconds for which the Player’s engine can fire before the player runs out of fuel. The game does not end instantly when the player runs out of fuel — it is possible the Player may be able to coast to victory.
- Impact Rating. The Player is destroyed if it collides with a Wall or Exit Pad at a speed greater than this. Set this value to low speeds like 1.0 to force the player to be gentle when landing on Exit Pads or when touching Walls.
- Bounce Elasticity. The amount of energy returned to the Player after it ricochets off Walls and Exit Pads. A high value near 1.0 causes the Player to energetically bounce off surfaces. A low value near zero causes the Player to come to a near standstill after colliding with a surface.
- Gravitational Strength. The gravitational force applied to the Player. The higher, the stronger.
- Gravitational Direction. The direction gravity accelerates the Player. Measured in rotations, so 0.0 is 0 degrees (up), 0.25 is 90 degrees (right), 0.5 is 180 degrees (down) and so on.
- Drag Coefficient. More commonly known as wind resistance, if this value is high (near 1.0) the Player will lose speed quickly, as if it were in a dense medium such as water. If the value is near zero, the Player will coast on indefinitely as if it were in a vacuum. Applying a moderate Drag Coefficient can make the Player easier to steer.
- Terminal Velocity. The Player’s speed is capped at this value. It is impossible for the Player to go faster than this speed.
Level Objects
Wall
The Wall appears as a grey line. Each wall is a line segment with a start and finish point.
Walls are immobile and cannot be destroyed.
The Player will bounce off Walls if its speed is below the Impact Rating, otherwise it will be destroyed.
Walls block the line of sight of Turrets, Missiles and Seekers.
All levels are bounded with four Walls. These Walls do not need to be placed in the editor, they’re automatically added by the game.
Fence
The Fence appears as a purple line. Each Fence is a line segment with a start and finish point.
Fences are immobile and cannot be destroyed.
The Player always dies when touching a Fence.
Fences block the line of sight of Turrets, Missiles and Seekers.
Patroller
A Patroller appears as a purple hexagon.
The Player dies when touching a Patroller. A Patroller itself cannot be destroyed.

Each Patroller moves along its own predefined set of Waypoints. Its speed is configurable. Whether their Waypoints loop is also configurable. If Looping Path is checked the patroller will move from the last defined Waypoint to its original position. Otherwise it will reverse its direction upon reaching the end of its Waypoint trail.
Seeker
A Seeker appears as an orange circle.
The Seeker will detonate on contact with the Player and the Player will be destroyed. Seekers cannot be destroyed otherwise.

Seekers move towards the Player at a constant speed while there exists unblocked line-of-sight between the Seeker and the Player. The Seeker’s speed is configurable.
Mine
A Mine appears as an orange star-shape. In the editor, each Mine is surrounded by an orange circle that indicates the detonation range.
Mines are immobile.
Should the Player enter the detonation range the Mine will detonate and the Player will be destroyed. Mines cannot be destroyed otherwise.

A Mine has a configurable value called “Phase”. This value offsets the timing of the pulse produced by the mine in-game. It is therefore only a cosmetic effect.
Mines do not block the line of sight of Turrets, Missiles and Seekers. This makes a row of mines a good “transparent” alternative to a Fence.
Laser Turret
A Laser Turret appears as a brown circle with three parallel lines as a muzzle.
Laser Turrets are able to rotate but cannot move otherwise. They cannot be destroyed.

Turrets repeat a certain firing pattern while the Player is in line-of-sight:
- Aiming. For the duration of the Aim Time, the Turret rotates at its Turn Speed trying to point towards the Player.
- Firing. The Turret fires. This is instantaneous.
- Recharging. The Turret is inactive for the Recharge Time. It does not rotate during this time.
- Return to Step 1.
While there is no line-of-sight to the Player (because it is blocked by a Wall, Fence or Exit Pad) the Turret is inactive. The Turret also resets its firing pattern when the Player is not in line-of-sight.
The Initial Facing of a Turret describes which way it points when the level starts. This is measures in rotations, where 0 is 0 degrees (pointing up), 0.25 is 90 degrees (pointing right), 0.5 is 180 degrees (pointing down), and so on.
When a Laser Turret fires, a red laser line instantly extends from the Turret to the first Wall, Fence or Exit Pad object. The Player dies if it intersects that line.
Missile Turret
A Missile Turret appears as a brown circle with smaller circle as a muzzle.
Missile Turrets are able to rotate but cannot move otherwise. They cannot be destroyed.

Missile Turrets follow the same firing pattern and line-of-sight behaviours as the Laser Turret (see above). The Initial Facing property also works the same way.
When firing, the Missile Turret creates an orange triangular Missile object. This object is fully affected by the level’s physics and is destroyed on contact with a Wall, Fence or Exit Pad. Collision with a Player object destroys the Missile and the Player. Missiles can also collide with and destroy each other.
The Missile’s initial velocity is in the direction the Turret is pointing and at the configured Muzzle Speed.
While there is unbroken line-of-sight between a Missile and the Player, the Missile turns at its Turn Speed trying to point roughly toward the Player (it actually tries to point toward a calculated intersection point ahead of the Player).
The Missile always thrusts in the direction it is pointing with the configured Acceleration. This happens whether or not there is line-of-sight to the Player.
Missiles with zero Acceleration always point in their direction of travel. This is true regardless of their Turn Speed.
Spawn Point
The Spawn Point appears as a blue circle.
This is where the Player will appear in the level.
Take care not to intersect the Spawn Point with any other level object. This may cause the Player to become trapped or to instantly die.
You may only have, at most, one Spawn Point per level. Attempting to add a second Spawn Point will delete the first. If you do not specify a Spawn Point, the Impulse will choose a default position for the player to start in.
Exit Pad
An Exit Pad appears as a green line.
It is immobile and cannot be destroyed.
Exit pads are always perpendicular to the level’s Gravity Direction. The length of the pad can be customised.

The Player wins the level if they can come to a standstill on the “top” side of the pad. For this reason, you should only use Exit Pads on levels with non-zero Gravity Strength. For the same reason, you should be careful when using Exit Pads on levels with high Bounce Elasticity.
Exit Zone
The Exit Zone appears as a green circle.
It is immobile and cannot be destroyed.
The level is won if the Player comes in contact with an Exit Zone.
The radius of the Exit Zone is configurable.

This work is licensed under a Creative Commons
Attribution-NonCommercial-ShareAlike 3.0 Australia License.
RSS Feed