Hello, friends. This is the manual to help you get some use out of the somewhat user-unfriendly Colour Bind level editor. Though the editor may be hard to use, what it lacks in user interface robustness, it makes up for by how easy it was for me to make it. Hopefully this document will go some way to offset some of the worse pieces of usability. I’m going to run through the basics of how the whole thing works, then describe how to work with each object type. You can always press F1 to get some quick info.

Colour Bind Level Editor (make this a link)



Level Editor Manual

Hello, friends. This is the manual to help you get some use out of the somewhat user-unfriendly Colour Bind level editor. Though the editor may be hard to use, what it lacks in user interface robustness, it makes up for by how easy it was for me to make it. Hopefully this document will go some way to offset some of the worse pieces of usability. I’m going to run through the basics of how the whole thing works, then describe how to work with each object type. You can always press F1 to get some quick info.


1. Viewport navigation
To move the camera around, move the mouse to the edge of the screen you want to scroll towards, and hold down the right mouse button. To zoom in and out, use + and -.

2. Grid
To force the cursor to snap to the grid, hold down ‘g’. To centre the grid to the current gizmo (if you have something selected), press ‘h’. Press ‘h’ with nothing selected to return it to the origin. To rotate the grid around its centre, use ‘[‘ and ‘]’. To scale the grid up and down, use ‘{‘ and ‘}’.

Note that the grid snapping implementation is pretty low level - it literally just snaps the cursor to the nearest grid point no matter what. This can lead to some shenanigans with menus and translation gizmos if you’re not careful.

3. Loading and saving
To load a level, press ‘l’ (that’s a lower case L), then type in the name of the level you want and hit enter. To save the level, do the same with ‘s’. Saving over levels will happen without warning if you name the same thing, so be careful. You can create a new level by pressing ‘n’.

3a. Autosaves
Instead of an undo feature, the Colour Bind level editor saves the current level every so often (you can change the frequency in config.txt). Use the chevrons (< and >) to cycle through these saves - so, if you make a mistake, press < repeatedly to cycle back through autosaves to find a spot before you messed up. If you go too far, press > to go forward again.

4. Creating new stuff
To create stuff, right click somewhere, then left click on the menu thing that comes up for whatever you want to create. Below is a big section describing each object type and how to manipulate it.

5. Selecting stuff
This is pretty much as you’d expect and for once conforms mostly to convention. Click something to select it, or drag out a rectangle to select multiple things. Hold shift doing either of these things to add to the selection instead of replacing it.

6. Moving stuff around
When you have one or more things selected, a little transform gizmo thing will appear. You can do four things with this by clicking and dragging in different places. Free translate (in the square), translate constrained to one axis (one of the axes), or rotate (the red circle).

7. Edit panels
Edit panels are things that show up when you have certain types of object selected. The one that shows up the most is the colour edit panel - lots of things have a colour and you can set it here. The other two are mass properties, for rigid bodies, and world geometry type, for world geometry. I’ll go into more detail about this stuff later on, but basically you select the thing you want to edit, click buttons on its edit panel, and then click the Set button to apply that edit panel to all the objects you’ve got selected (the objects for which it’s not appropriate just ignore it - like, if you select a rigid body and a gravity flag and then set colour and mass properties, the colour will apply to both but the gravity flag won’t receive any mass properties.

8. Edit mode
When a single object is selected, pressing E will toggle edit mode. This allows you to mess with the object in more detail - a big description of how edit mode works for each object type is contained below.

9. Level description
If you press ‘d’, this will let you type in a name and a description of the level - this affects how the level shows up in the level selector.

10. Steam Workshop upload
If you’re playing the Steam version of the game, pressing ‘u’ will take you to the upload screen. Make sure you’ve entered a level description (see above) and select the difficulty of the puzzles and the skill-based challenges so people can search according to those criteria, then hit enter and it should upload. Note that you’ll have to find the level on the Colour Bind Steam Workshop page to do final publishing, set a screenshot for the level, etc.

Object types!

World Polygon:
This is world geometry - it stays still. It comes in three flavours. Standard, which is light grey foreground geometry that objects collide with, lasers bounce off, etc. Background, which is dark grey and doesn’t interact with physical objects - in the main levels, I have only used this for decoration and other visual purposes, but lasers also collide with it which might be useful for certain things. Finally, Slippery geometry is similar to standard but with a white outline and a much lower coefficient of friction.

Edit mode: Allows you to change the polygon’s shape. You can do this by adding, deleting, or moving verts, as well as changing the smoothing properties of the verts. To add a vert in edit mode, simply click on or near an edge. To delete a vert, right click on it (note that it won’t work if the poly is already down to its last three verts). Left clicking and dragging moves a vert. You can also select mulitple verts by dragging a rectangle with left click - this will highlight selected verts yellow. You can drag them (they won’t animate while you do but it will work) and delete them. Finally, to change the smoothing properties of a vert, you can use the keys 1-4 while you either have a vert picked up, or selected. 1 and 2 will decrease and increase the smoothness of the point, and 3 and 4 will decrease and increase the pointiness.

Polygonal object:
This is a physical object. It collides with other objects, gets hit and coloured by lasers, affected by coloured gravity, and can be constrained to make a door (or other stuff). It has a physical property window that lets the player change its mass properties - the higher ‘slider’ is the density, and the lower ‘slider’ modifies the moment of inertia. Once you’ve moved the sliders hit ‘set’ to apply the changes.

Edit mode: This works the same as world polygons.

Physical circle:
This is like above, but a circle, not a polygon. It works the same except for changing its shape in edit mode.

Edit mode: The only thing that changes here is the circumference of the circle - click and drag anywhere on the edge of the circle to change its radius.

Laser: Lasers have a colour that can be changed and set like a physical object. In edit mode, you can drag the start and end of the laser to reposition it. Lasers can also have the Turn On Laser and Turn Off Laser events sent to them. If you place a laser with its base over a physical object, it will be attached to that object - however, this functionality is a bit buggy as it was never used in the built in levels - use with caution!

Switch: Switches can be dragged around and they will automatically orient themselves to the edges of world geometry. Switches keep lists of events - one list for events they trigger when they are pressed in, and another for events they trigger when they pop out. They can also receive ‘move to open’ and ‘move to closed’ events (‘closed’ means ‘pressed’ in this case, so ‘move to open’ will make a pressed switch pop out, for instance). To add an event to either list, click the green plus sign next to the appropriate list then click on the event’s icon. In theory, if an event is in a switch’s list, and the event is tied to a triggerable object, the triggerable object will draw with a white circle on it while the switch is selected. You can also change the type of the switch with the bottom left button - hold switches pop out automatically, but toggle and push switches will automatically have an event added that makes them stay pushed when you push them (essentially an event that makes itself move to closed). To make a toggle switch work with other switches you have to manually add ‘move to open’ events to all the switches in the group that pop all the other switches out. You can also attach a switch to an object - click ‘attach to object’ then click the physical object in question - you’ll want to move the switch over to the object to make this a bit more convincing. Unfortuntaely at the moment you’ll have to orient it to the object’s surface manually. Note that the button in the bottom right of the switch info doesn’t do anything and soon it’ll get removed - try not to look at it.
Note: Press tab while a switch is selected and it will swap its default state (on or off). Note that this change isn’t reflected visually in the editor yet.

Events: Events are pretty useless things until you mess with them in edit mode. Basically the way an event works is, it means ‘do something’. An event has a target, which is the object that does something, and one or more triggers, which is the thing that causes the event to happen (a switch or a timer). In edit mode, there are three buttons on the right hand side of the thing - the rightmost vertical rectangle-looking thing, if you click it, it turns red - this means you can now select the target of the event. If you a type of event to a target that can’t handle it, nothing will happen. The other two buttons cycle through the event types. They are as follows:
Move to closed: Move a prismatic constraint to its starting position, or ‘press’ a switch.
Move to open: Move a prismatic constraint to its other position, or ‘release’ a switch.
Start timer: Starts a timer ticking. Note that if a timer has just finished, you’ll have to reset it before starting it will do anything.
Pause timer: Stops a timer from progressing.
Reset timer: Moves a timer’s time back to zero.
(note: The way the timers work is currently pretty awkward. If a timer runs its course, you will have to pause it (cos it’s still going, behind the scenes) and then reset it (to move it back to zero), to get it back to its original state and start it again)
Turn on laser: Self-explanatory.
Turn off laser: See above.
Set red/green/blue gravity: These special events come with a line that you can adjust. It sets the world’s gravity of the stated colour to that line’s value.
Toggle switch: Pops a switch in if it’s out, or out if it’s in. Not used in the game but potentially could be used to make binary counters and other shenanigans.
Show/hide text: Turns on and off a text element. Note that showing text that’s out of the range of your car won’t make it visible (see Text Element, below).
Text Tag: Attach this to a text element, and when you activate it, the content of the text tag will get printed to the console output with ‘text activation’ next to it. No but seriously, this doesn’t do anything - it’s used for achievement detection in the built-in levels but requires native code hooks.

Label: An in game label, that you might have seen next to a switch. The character on it means different things - press tab to cycle through symbols.
T: Clock
A: Arrow (used in the built in levels to mean ‘sets gravity to this direction’)
M: Mover arrow (used to mean ‘activate door’ or similar)
L: Laser-looking thing
F: Fail label
B: Blank
!: Exclamation point (used in the built in levels to mean ‘This switch does lots of crazy stuff’)

Edit mode: If you go into edit mode on a label you’ll see a dark red probe thing that you can drag around. If you move it onto a timer, that label will then display the progress of that timer (and also emit those tick sounds to correspond to it).

Body constraint: A body constraint is used to make either a door (the default state), or a hinge. Which state the constraint is in is indicated by its appearance - for historical/stupid reasons, if the constraint is in door mode (a prismatic constraint) it will appear as two yellow circles connected by a line. In hinge mode, it will be three circles (the third one can be dragged around but it won’t do anything). To switch modes, press ‘tab’ while the constraint is selected. For a hinge to work, you’ll need to attach it to an existing physical object - enter edit mode on the constraint then click the physical object to attach it.

Edit mode: Edit mode works differently for prismatic and rotational constraints. Primsatic constraints, the bigger circle represents the initial position, and the smaller circle represents the position of the object after a ‘move to open’ event has been sent. On hinge constraints, the biggest circle represents the hinge point - the second biggest circle has no physical effect, but creates the point on the object to which a line will be drawn to illustrate how the hinge moves to the player.

Bridge: These are pretty straight forward. Change their end positions in edit mode by dragging the ends around, change the colour outside edit mode like you would a physical object. The number of segments is generated automatically, but bear in mind that these can make the physics engine a little unstable if they’re really long, or lots of force is applied to them.

Level goal: This contains a bunch of info about the level other than the location of the level goal. First off, you can hit ‘tab’ while the goal is selected to toggle between a single and multiplayer level. It is also where gravity is controlled for the level via edit mode.

Edit mode: In edit mode, the goal will have three vectors visible - these colours can be dragged around to set different gravity directions for the level. There are also three small coloured dots - these control gravity ties. Each colour can have its orientation controlled by the orientation of an object (such as in the built in level “Connection”) - click one of the small dots, then click on a physical object to make this connection. Click the dot on the level info again to break the connection. Attaching arrow labels to the object, etc, is up to you.