0% found this document useful (0 votes)
489 views201 pages

GD Editor

Uploaded by

neko159ginell
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
489 views201 pages

GD Editor

Uploaded by

neko159ginell
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 201

‭0‬

‭Geometry Dash Editor Guide‬

‭The Geometry Dash editor allows you to create custom levels any way you‬
‭want. A level can be simple or detailed, short or long, easy or difficult, and so‬
‭on. The opportunities are endless. However, to be able to make exactly what‬
‭you want, there are a wide variety of features that are helpful or even‬
‭necessary. Learning everything yourself is a near impossible task given the‬
‭size of the editor as of update 2.2. That is exactly what this guide's purpose is:‬
‭To help you out, whether you are new to the editor or already a veteran. There‬
‭should be something helpful here either way. Use the list below if there is‬
‭anything specific you are looking for.‬

‭Table of Contents‬
‭1. Basics‬ ‭‬
6
‭Getting Started‬ ‭6‬
‭Level Settings‬ ‭7‬
‭Placing Objects‬ ‭11‬
‭Editing Objects‬ ‭14‬
‭Scaling & Warping‬ ‭16‬
‭Select Color‬ ‭17‬
‭Deleting Objects‬ ‭20‬
‭Other Buttons‬ ‭22‬
‭2. Picking Song‬ ‭26‬
‭Starting Song‬ ‭26‬
‭Music Library‬ ‭27‬
‭Newgrounds‬ ‭28‬
‭Song Settings‬ ‭30‬
‭Guideline Creator‬ ‭30‬
‭Later Customization‬ ‭31‬
‭3. Gameplay Objects‬ ‭32‬
‭Description‬ ‭32‬
‭Pads‬ ‭32‬

‭1‬
‭ rbs‬
O ‭ 3‬
3
‭Portals‬ ‭34‬
‭Speed Changers‬ ‭36‬
‭Letter Objects‬ ‭36‬
‭Force Objects‬ ‭39‬
‭4. Animated Objects‬ ‭40‬
‭Description‬ ‭40‬
‭Monsters‬ ‭40‬
‭Edit Special‬ ‭41‬
‭Particle Editor‬ ‭43‬
‭5. Items‬ ‭51‬
‭Description‬ ‭51‬
‭User Coins‬ ‭51‬
‭Custom Collectables‬ ‭52‬
‭6. Edit Group‬ ‭54‬
‭Functionality‬ ‭54‬
‭Using Groups‬ ‭56‬
‭Extra Options‬ ‭57‬
‭Special IDs‬ ‭60‬
‭7. Triggers‬ ‭61‬
‭Description‬ ‭61‬
‭Start Pos‬ ‭62‬
‭Color‬ ‭62‬
‭Move‬ ‭63‬
‭Stop‬ ‭66‬
‭Pulse‬ ‭67‬
‭Alpha‬ ‭68‬
‭Toggle‬ ‭68‬
‭Spawn‬ ‭68‬
‭Rotate‬ ‭71‬
‭Scale‬ ‭73‬
‭Follow‬ ‭74‬
‭Shake‬ ‭75‬
‭Animate‬ ‭75‬
‭Keyframe Animation‬ ‭76‬
‭Follow Player Y‬ ‭76‬

‭2‬
‭ dvanced Follow‬
A ‭ 7‬
7
‭Edit Advanced Follow‬ ‭84‬
‭Re-Target Advanced Follow‬ ‭85‬
‭Keyframe‬ ‭85‬
‭Area Move/Rotate/Scale/Fade/Tint‬ ‭90‬
‭Edit Area Move/Rotate/Scale/Fade/Tint‬ ‭99‬
‭Area Stop‬ ‭99‬
‭Change BG/G/MG‬ ‭99‬
‭Touch‬ ‭99‬
‭Count‬ ‭100‬
‭Instant Count‬ ‭101‬
‭Pickup‬ ‭101‬
‭Time‬ ‭102‬
‭Time Event‬ ‭103‬
‭Time Control‬ ‭103‬
‭Item Edit‬ ‭104‬
‭Item Compare‬ ‭108‬
‭Persistent Item‬ ‭111‬
‭Random‬ ‭111‬
‭Advanced Random‬ ‭111‬
‭Sequence‬ ‭112‬
‭Spawn Particle‬ ‭113‬
‭Reset‬ ‭114‬
‭Zoom‬ ‭114‬
‭Static Camera‬ ‭115‬
‭Camera Offset‬ ‭115‬
‭Gameplay Offset‬ ‭116‬
‭Camera Rotation‬ ‭116‬
‭Camera Edge‬ ‭116‬
‭Camera Guide‬ ‭117‬
‭Reverse‬ ‭117‬
‭Rotate Gameplay‬ ‭117‬
‭Song‬ ‭118‬
‭Edit Song‬ ‭119‬
‭SFX‬ ‭123‬
‭Edit SFX‬ ‭125‬

‭3‬
‭ vent‬
E 1‭ 26‬
‭TimeWarp‬ ‭126‬
‭Camera Mode‬ ‭127‬
‭Setup MG‬ ‭127‬
‭BG/MG Speed‬ ‭127‬
‭Counter Label‬ ‭128‬
‭UI Settings‬ ‭128‬
‭Visibility Link‬ ‭129‬
‭Collision‬ ‭130‬
‭Instant Collision‬ ‭130‬
‭Collision State‬ ‭131‬
‭Collision Block‬ ‭131‬
‭Player Touch‬ ‭131‬
‭On Death‬ ‭132‬
‭Disable/Enable Trail‬ ‭132‬
‭Show/Hide‬ ‭132‬
‭BG Effect On/Off‬ ‭133‬
‭End‬ ‭133‬
‭Player Control‬ ‭134‬
‭Options‬ ‭134‬
‭BPM Guide‬ ‭135‬
‭Gradient‬ ‭135‬
‭Gravity‬ ‭136‬
‭Teleport‬ ‭137‬
‭Shader‬ ‭138‬
‭ShockWave‬ ‭139‬
‭Shock Line‬ ‭141‬
‭Glitch‬ ‭142‬
‭Chromatic‬ ‭142‬
‭Chromatic Glitch‬ ‭143‬
‭Pixelate‬ ‭144‬
‭Lens Circle‬ ‭144‬
‭Radial Blur‬ ‭145‬
‭Motion Blur‬ ‭146‬
‭Bulge‬ ‭147‬
‭Pinch‬ ‭148‬

‭4‬
‭ ray Scale‬
G 1‭ 48‬
‭Sepia‬ ‭149‬
‭Invert Color‬ ‭149‬
‭Hue‬ ‭150‬
‭Edit Color‬ ‭151‬
‭Split Screen‬ ‭151‬
‭Enter Effects‬ ‭151‬
‭Move/Rotate/Scale/Fade/Tint Enter‬ ‭155‬
‭Stop Enter‬ ‭157‬
‭8. Custom Objects‬ ‭158‬
‭9. Channel System‬ ‭160‬
‭10. Keyframe System‬ ‭164‬
‭11. Auto-Build System‬ ‭174‬
‭12. Pause Menu‬ ‭188‬
‭Options‬ ‭188‬
‭Buttons‬ ‭190‬
‭13. Sharing Your Level‬ ‭192‬
‭Verifying‬ ‭192‬
‭Level Menu‬ ‭192‬
‭Uploading‬ ‭193‬
‭Updating Levels‬ ‭197‬
‭Updating Descriptions‬ ‭197‬
‭Rating‬ ‭198‬
‭14. Afterword‬ ‭200‬
‭Suggestions‬ ‭200‬
‭Special Thanks‬ ‭200‬

‭5‬
‭1. Basics‬
‭Getting Started‬
‭First, you have to find your way to the editor. On the main menu, click the‬
‭right button, and then click "Create" in the top left. This brings you to the‬
‭screen in figure 1.1, which is your list of custom levels. Note that levels here are‬
‭not public, but rather custom levels saved locally on your account. Public‬
‭levels are accessed through the bottom left button. More on that later. To‬
‭start a new level, do as the text says and click "New" in the bottom right.‬

‭6‬
‭At the top, you can set a level name and an optional description. The button‬
‭in the middle lets you play the level, while the right button is where you share‬
‭the level with others through the servers. To start editing, click the left button.‬
‭This brings you into the editor itself.‬

‭Level Settings‬
‭A good place to start is the main level settings, which are accessed by clicking‬
‭the gear button in the top right corner of the editor. This opens the window‬
‭seen below.‬

‭7‬
‭These settings decide the level's starting state. This means that they define‬
‭what a player sees at the start of their attempt. Many of these settings, such‬
‭as Speed, Game Mode, and colors, can be changed inside the level itself too.‬
‭This allows you to change them further into the level. Going through each‬
‭option in figure 1.4 in turn, we have:‬

‭●‬ ‭Game Type:‬‭This is perhaps the most important option‬‭to decide on, as it‬
‭changes how your level plays completely. It cannot be changed‬
‭throughout the level.‬
‭○‬ ‭Classic is the original way to play Geometry Dash levels, in which the‬
‭camera automatically scrolls to the side. To beat the level, the player has‬
‭to avoid obstacles to make it all the way to the end of the level. This is‬
‭done by clicking to change their vertical position in different ways‬
‭depending on the Game Mode. For example, in the most simple mode,‬
‭Cube, you jump by clicking, while something like Wave moves your icon‬
‭diagonally from holding.‬
‭○‬ ‭Platformer is the newest Game Type, and as the name implies, it lets‬
‭the player move around freely. You can click to move left or right as you‬
‭please, and another input allows jumping. How exactly the inputs work‬
‭depend on the device you are playing on.‬

‭8‬
‭●‬ ‭Speed:‬‭This sets the starting speed of your level. It can be changed at any‬
‭point in the level. The blue option is the default speed, and the others are‬
‭modifiers of this. Each one is fittingly indicated by a reversed arrow or‬
‭more arrows depending on how much they modify the speed. The‬
‭reversed orange option is the slowest option, which is roughly 25% slower‬
‭than the normal speed. For double, triple, and quadruple arrows, the‬
‭modifier is roughly 25%, 50%, and 75% faster than the normal option.‬
‭●‬ ‭Mode:‬‭This alters the way the icon moves when the‬‭player clicks. It is often‬
‭referred to as Game Mode, and should not be confused with Game Type.‬
‭This can also be changed at any point in the level. The different ones are‬
‭shown in figure 1.6 below. From left to right, we have:‬
‭○‬ ‭Cube is the default Game Mode, which has the player click to jump as‬
‭previously mentioned. Interaction with objects such as Pads and Orbs‬
‭make it a bit more complex, but those are handled later.‬
‭○‬ ‭Ship lets the player fly, and the exact trajectory is dependent on clicks.‬
‭Holding down takes you up very fast, while letting go makes you fly‬
‭downwards. Clicking fast in a consistent pattern makes it possible to fly‬
‭in a straight horizontal line.‬
‭○‬ ‭Ball makes the player's icon circular, and movement makes it roll.‬
‭Clicking switches the gameplay gravity, which means that the icon goes‬
‭from rolling on the ground to rolling on the roof (or vice versa).‬

‭9‬
‭○‬ ‭UFO also makes the player fly, but instead of precise control like Ship,‬
‭clicking makes you boost a certain distance upwards. Holding down is‬
‭not possible.‬
‭○‬ ‭Wave has the player move diagonally by holding or letting go. If you‬
‭hold down, you move diagonally upwards, while letting go makes you‬
‭move diagonally downwards. This is disabled in Platformer.‬
‭○‬ ‭Robot is similar to Cube, but instead of a set jump height, the amount‬
‭you hold down decides the vertical movement. Clicking very fast leads‬
‭to a small jump, while holding down (to a certain limit) takes you‬
‭higher.‬
‭○‬ ‭Spider is similar to Ball, but clicking makes gravity switch instantly‬
‭rather than a slower rolling motion. This is disabled in Platformer.‬
‭○‬ ‭Swing is also based on flying, but each click changes the player's gravity.‬
‭This is disabled in Platformer.‬
‭●‬ ‭Options:‬‭This lets you set various other options.‬‭Most of them, like Flip‬
‭Gravity and Reverse Gameplay, speak for themselves. Mini makes the‬
‭player's icon smaller, altering the effects of clicks to some degree. Dual‬
‭duplicates the icon into two, making it so that the player has to control two‬
‭icons. Every click affects both icons. Enabling 2-Player changes this to‬
‭require clicking on each side of the screen for each icon. Spawn Group lets‬
‭you set a specific target object, given by its Group ID, as the spawn‬
‭position. More on Group IDs later. Clicking the top right gear button opens‬
‭Legacy Options, which fix various older bugs. These should not be‬
‭changed.‬
‭●‬ ‭BG, G, and MG:‬‭This sets the type of Background, Ground,‬‭and‬
‭Middleground art to use from the start. The Ground is on the front layer,‬
‭making it the only one the player interacts with directly at the bottom of‬
‭the level. BG and MG are seen behind the player. The difference between‬

‭10‬
‭these two is their layering, with Background being furthest back. All of‬
‭these three can be‬‭changed‬‭at any point in the level.‬
‭●‬ ‭Font:‬‭There is normally an attempt counter found at‬‭the start of levels, and‬
‭this option changes the font used for this. It also changes any other text‬
‭objects found in the level. You cannot change this further into the level.‬
‭●‬ ‭Select Color:‬‭At the top of the window, you can set‬‭colors for various parts‬
‭of the level. BG, G, and MG set the colors for the art described earlier. (G2‬
‭and MG2 are secondary colors used for details.) Line is an outline for the‬
‭Ground. Clicking "More" lets you change the starting settings for the‬
‭custom Color Channels. These are used for other objects. Note that any‬
‭colors can be changed at any time in a level.‬
‭●‬ ‭Select Song:‬‭This is where you set what song to use.‬‭The various options‬
‭and menus are handled in the next chapter.‬

‭Placing Objects‬
‭Back to the main editor screen, the main part you will interact with is the‬
‭bottom section, seen in figure 1.7. To begin creating, have the "Build" button‬
‭on the left selected (indicated by blue color). This is where all the different‬
‭objects in the game are located. We will write "objects" in lower case to refer‬
‭to objects in general, so any goes. Clicking on an object selects it for use,‬
‭which lets you place it in your level. This is done by clicking at the desired‬
‭position on the grid. While an object is selected, you can enable "Swipe" on‬
‭the right side to place objects over the area you swipe (hold down and drag).‬

‭11‬
‭There are various types of objects, which are grouped into specific tabs based‬
‭on their properties. Each object is only found within one tab. Inside a tab, you‬
‭can also click through several pages using the arrow buttons. Going through‬
‭each tab in order, we have:‬

‭●‬ ‭Blocks:‬‭This tab ranges from simple squares to more‬‭detailed blocks.‬


‭Some have outlines, while others do not. This is visible by the white lines,‬
‭indicating that they are solid, which means they interact with the player‬
‭upon collision. Putting these in front of the player's movement means that‬
‭they have to jump to pass them. Colliding with a line horizontally leads to‬
‭death. However, landing on top of them is fine.‬
‭●‬ ‭Outlines:‬‭Various basic outlines are found here. As‬‭mentioned for the‬
‭previous tab, these interact with the player when touched.‬
‭●‬ ‭Slopes:‬‭These are similar to blocks, but instead of‬‭being square they are‬
‭sloped. There are two types of slopes in the game. One is basically a block‬
‭cut in half diagonally, making a 45 degree angle, while the other makes a‬
‭slope over 2 blocks. Interaction with a sloped outline is safe in most cases.‬

‭●‬ ‭Spikes:‬‭Spikes lead to death on any collision no matter‬‭what.‬


‭●‬ ‭3D:‬‭These can be combined with blocks to make them‬‭look 3D.‬

‭12‬
‭●‬ ‭Gameplay Objects:‬‭Various objects that affect gameplay are found here.‬
‭For example, this is where you find objects that change the Speed and‬
‭Game Mode as mentioned earlier. These are covered more in-depth in‬
‭their own chapter later. Click the title for a direct link to the chapter.‬
‭●‬ ‭Animated Objects:‬‭While most objects are still by‬‭default, the ones found‬
‭in this tab have certain animations built in. These are also covered more‬
‭in-depth in their own chapter later.‬
‭●‬ ‭Pixel Art:‬‭Lots of different art made up of small‬‭pixels are found here. None‬
‭of them interact with the player by default, but you can combine them‬
‭with lines or Spikes for the effect you want.‬
‭●‬ ‭Items:‬‭These objects are used as Collectables that‬‭can be picked up during‬
‭gameplay.‬
‭●‬ ‭Symbols:‬‭Various Symbols, even some art from the game's‬‭menus, are‬
‭found here. None of these are solid.‬

‭●‬ ‭Decorations:‬‭Different types of objects that do not‬‭interact with the player.‬


‭As the name implies, they are meant to be used as decorations to fill space.‬
‭●‬ ‭Pulsing Objects:‬‭These are called Pulsing Objects‬‭because they‬
‭automatically pulse to the beat of the song. Pulsing in this case means‬
‭scaling to a bigger size for more intense audio.‬
‭●‬ ‭Rotating Objects:‬‭Many circular objects that automatically‬‭rotate, such as‬
‭saws but also decorations. Saws are spiky and lead to death upon collision.‬
‭The speed and direction of all these objects can be customized.‬

‭13‬
‭●‬ ‭Triggers:‬‭Triggers are more complex objects that let you do endless‬
‭customization, whether it is something as simple as moving an object to‬
‭something complex like making a bossfight. None of these objects show in‬
‭the level itself when played, but start their set operation when passed on‬
‭the X axis during gameplay. You can also make them Trigger when‬
‭touched by the player. Every Trigger is covered in-depth in its own chapter.‬
‭●‬ ‭Custom Objects:‬‭This tab is empty when you are new‬‭to the editor. It lets‬
‭you save combinations of objects to be reused at any time, even in another‬
‭level. Each one can have maximum 1000 objects, and you can make 250‬
‭custom objects in total. See the dedicated chapter for more details.‬

‭Editing Objects‬
‭After successfully placing objects in the editor, you may want to edit them in‬
‭some way. Figure 1.10 shows an example. Assume you want to move these‬
‭three Spikes (often referred to as a "triple Spike") one block to the right. To do‬
‭this, you have to click the "Edit" button in the bottom left. Afterwards, you can‬
‭click an object to select it for editing. Normally, you can only select one object‬
‭at a time. To select all three at once, enable "Swipe" in the bottom right as‬
‭seen in the example. This lets you swipe over the objects you want to select.‬

‭14‬
‭Now that the objects are selected, indicated by the green outline, we can‬
‭move onto actually editing them. The buttons in the lower section, seen in‬
‭figure 1.11, are all used for this. Most of these are self-explanatory, so testing‬
‭them out yourself is recommended. The various arrows move the selected‬
‭object(s) in their given direction. How much they move is indicated by the‬
‭number of arrows. Other buttons, like the circular arrows, let you rotate the‬
‭object(s) a given amount. The one with "Free" inside it lets you rotate as much‬
‭as you would like.‬

‭Having found the correct button, double arrow to the right, we get the result‬
‭in figure 1.12. Another way to do this is by selecting "Free Move" and "Snap" in‬
‭the bottom right. The former lets you move the selected objects wherever you‬
‭want, even outside of exact grid positions, while "Snap" puts the objects in‬
‭exact grid positions. Together, this combination gives us the result we‬
‭wanted, but you can also use "Free Move" on its own to move off-grid.‬

‭15‬
‭If you are satisfied with your edits, click the "Deselect" button on the far right.‬
‭You can also deselect the objects by placing new objects. After this, you can‬
‭go ahead and place or edit other objects. Additionally, you may see another‬
‭"Rotate" button in the bottom right that has not been covered yet. This has‬
‭the same functionality as the previously mentioned "Free" rotation button but‬
‭is easier to access.‬

‭Scaling & Warping‬


‭The last three buttons in the "Edit" tab, as the names imply, let you scale or‬
‭warp the object. This means to change its form and/or size in some way. In‬
‭essence, each of these buttons can do the same thing, but with even more‬
‭control sequentially. The first "Scale" only lets you scale the objects in place,‬
‭which means they keep their original aspect ratio. With the second one, you‬
‭can scale for the X and Y axis as you wish, allowing for even more control.‬

‭With "Warp", you get the most control. Selecting it opens the interface seen in‬
‭figure 1.13, which features various buttons. Each of the square buttons let you‬
‭scale as with the previous two buttons. You use them by holding one down‬
‭and dragging to your desired scale. If you want the scaling to be in place, you‬
‭can toggle the lock in the top right. As for the circular buttons, the middle one‬

‭16‬
‭is used as an anchor point for rotation, while the outer one performs the‬
‭actual rotation. Finally, we have the two rectangular buttons outside the‬
‭square ones. These let you skew the objects in a given direction. As an‬
‭example, dragging the top one to the left results in the example below. The‬
‭anchor point also affects how much you can skew.‬

‭Select Color‬
‭After having warped the Spikes successfully, you may want to change their‬
‭color a bit. Assume you want to make the outline of the left Spike red. This is‬
‭done by selecting the object and clicking "Edit Object" on the far right, which‬
‭opens the menu seen below.‬

‭17‬
‭In here, you have various options for coloring the object. Selecting "P-Col 1" or‬
‭"P-Col 2" makes the color based on the player's colors. "Light BG" makes it a‬
‭lighter shade of the Background Color, while "Default" simply sets it to its‬
‭default. For Spikes, this is white, but it varies from object to object. Below this,‬
‭you can select custom Color Channels that can be specified freely. These are‬
‭numbered from 1 to 999. "Next Free" finds the next unused Color Channel,‬
‭which is 1 in our case. To begin customizing it, click on top of the colored‬
‭square in the bottom right. This opens the following menu:‬

‭Here, you have various options to set the color of the object. Selecting the‬
‭color by using the outer wheel and then its shade by using the inner circle is‬
‭the easiest way. You can also specify a color exactly by its "RGB" or "HEX"‬
‭values in the bottom right, while "Opacity" changes how transparent the color‬
‭is. "Copy" and "Paste" in the top right are used if you want to copy and paste‬
‭colors across channels, while "Default" sets it back to the standard white.‬

‭18‬
‭On the left, "Copy Color" lets you input another Color Channel to copy from‬
‭but with potential changes to HSV. HSV is also seen in figure 1.15 as a "HSV"‬
‭button. This allows you to change hue, saturation, and brightness of the color‬
‭for the selected object (and not the channel as a whole). By default, the color‬
‭is solid, but enabling Blending makes it blend with the visuals behind it.‬
‭"Player Color 1" and "Player Color " are, as explained earlier, based on the‬
‭player's choice of colors.‬

‭With the object's color set to red, it is successfully colored as seen above. The‬
‭defined Color Channel can also be given to other objects you wish to have the‬
‭same color. It is worth noting that the Color Channel's settings can be‬
‭changed throughout the level using a‬‭Color Trigger‬‭.‬‭Changing it inside the‬
‭menu in figure 1.15 only sets the starting values for the channel. Additionally,‬
‭note that some objects have two different parts that can be colored. This is‬
‭indicated by a "Detail" button next to "Base" in the top left of the color menu,‬
‭allowing you to switch between the settings of each. In our example, the‬
‭Spike only has one customizable color, which is the outline, so only "Base" is‬
‭shown. This is called the Base Color, while some objects also have Detail Color.‬

‭19‬
‭Deleting Objects‬
‭If you place the wrong object, you may want to delete it from the level‬
‭entirely. This is done in the bottom tab called "Delete", which is shown in‬
‭figure 1.18. Just having this tab opened allows you to click any object to delete‬
‭it. As with building and editing, you can select "Swipe" on the right to drag‬
‭over multiple objects you want to delete. However, there are numerous other‬
‭options inside the tab as seen below.‬

‭The four buttons on the right are filters for deleting. These are useful if you‬
‭have many different types of objects overlapping, and you only wish to delete‬
‭certain types of them. If you have "None" selected, which is the default, any‬
‭objects can be deleted. Switching to "Static" means that only solid blocks can‬
‭be deleted. As for "Details", this covers a lot of different types of objects, such‬
‭as Portals, decorations, Triggers, and more.‬

‭20‬
‭If you enter this tab while having an object selected (from the "Edit" tab), you‬
‭get some more options. Switching to "Custom" on the right makes it so that‬
‭only the selected object can be deleted. After enabling this, you can head‬
‭back to "Edit" and swipe to select an area of objects you want to delete from.‬
‭Afterwards, head back to "Delete" and click the top left deletion button‬
‭(indicated by a trash can), either within the tab or in the top left of the editor.‬
‭Both of these do the same action, but the latter is easier to access at any time.‬
‭There is also the "All" button on the left which deletes every instance of this‬
‭object in your level. Next to this is a button to delete all‬‭Start Pos Triggers‬‭.‬

‭Finally, we have the four middle buttons marked in the figure above. Opening‬
‭each one gives a good idea of what they do, but they are covered shortly here.‬
‭The top left one lets you find a specific object given by when it was placed.‬
‭Looking up object 23, for example, will take you to the 23rd object if it still‬
‭exists and is not deleted. The two buttons to the right are Group ID and color‬
‭filters respectively. Applying Group IDs are covered more later, but essentially‬
‭an object may have a Group ID for Triggers to interact with it. As an example,‬
‭writing "1" in either means that you can only delete objects with Group ID or‬
‭Color Channel 1 while in the "Delete" tab. This is useful if you wish to delete‬
‭only objects using that specific color among many others. The bottom left‬
‭trash can button is a quick way of resetting all of these filters without having‬
‭to go into their window. You can also use these filters to select objects by‬
‭enabling "Select Filter" in‬‭Options‬‭.‬

‭21‬
‭Other Buttons‬
‭There are still many buttons in the user interface that we have not touched on‬
‭yet, which are summarized here. Some of them are covered more in-depth‬
‭later on when appropriate. We will be using figure 1.21 to cover specific‬
‭buttons, referencing them by colored boxes that have been drawn on top (not‬
‭from the game).‬

‭In the top left, marked in purple, are buttons to undo and redo the recent‬
‭action. As an example, you can use this to recovered a wrongly deleted object.‬
‭However, note that not all actions can be undone or redone, such as applying‬
‭Color Channels or Group IDs. Below these two buttons, we have playtesting‬
‭buttons marked in yellow. The top one playtests the music of the level,‬
‭showing a line moving to help sync visuals to the song. The lower one lets you‬
‭playtest your level inside the editor, starting from the start or a set start‬
‭position.‬

‭22‬
‭In the white box are buttons for zooming in and out inside the editor, letting‬
‭you see details more clearly or whole areas at once. Right next to these are‬
‭some optional buttons that are enabled from‬‭Options‬‭referred to as Link‬
‭Controls. Clicking the top one links several selected objects together, making‬
‭them act as a single object (for editing or deleting). The bottom one, on the‬
‭other hand, unlinks linked objects.‬

‭At the top, marked in black, is a slider that simply lets you slide through your‬
‭level horizontally inside the editor. You can also move around by simply‬
‭swiping in a given direction. To the right of this slider, in the top right, we have‬
‭the start level settings covered earlier, as well as the‬‭Pause Menu‬‭shown‬
‭below. This opens up many other options covered later. However, for now, we‬
‭note the middle buttons since these are most important as a beginner.‬
‭"Resume" goes back into the editor, while "Save and Play" saves the level and‬
‭starts an attempt on it. This lets you see exactly how the level will play for‬
‭other users once uploaded, unlike playtesting in the editor. "Save and Exit",‬
‭"Save", and "Exit" are self-explanatory.‬

‭23‬
‭Back to figure 1.21, we have the numerous buttons inside the red and blue‬
‭boxes on the right. These are shown together in an edited image below for‬
‭easier access. Many of these are self-explanatory, while others are not.‬

‭"Copy", "Paste" and "Copy+Paste" all do similar actions, which is making a new‬
‭copy of the selected object(s). The button that has both in one will copy the‬
‭selected object(s) and place the copy on top of the old one. If you wish to copy‬
‭something from one spot in the editor to somewhere far away, the separate‬
‭buttons are useful. Simply use "Copy" on what you want to copy, move to‬
‭where you want to paste, and click "Paste". This also works across levels if you‬
‭want to copy something into another level you are working on.‬

‭"Copy Values" copies Group IDs and Color Channels, allowing you to paste‬
‭them onto other objects. "Paste State" does both, while "Paste Color" only‬
‭pastes the color information. "Edit Special", "Edit Group" and "Edit Object" are‬
‭all for editing objects, but they work in different ways.‬‭Edit Special‬‭and‬‭Edit‬
‭Group‬‭have a lot of functionality, and are covered‬‭in later chapters found by‬
‭the links, while‬‭Edit Object‬‭was covered earlier for‬‭a Spike. For many objects,‬
‭this simply lets you change the object's color as shown there. However, for‬
‭some objects, such as‬‭Triggers‬‭, it lets you change‬‭their settings.‬

‭24‬
‭The button with three colored circles give you quick access to editing a Color‬
‭Channel, opening a menu that can be used while editing objects. Clicking it‬
‭another time switches to a HSV menu. As mentioned earlier, "Deselect" is‬
‭simply used to deselect selected objects.‬

‭Finally, we have "Go To Layer", which is closely tied to the arrows and number‬
‭below it. The pink arrows allow you to switch between different layers to build‬
‭on, making it easier to organize more complex constructions. You can only‬
‭access objects on a specific layer for editing or deletion if you are on it.‬
‭However, you can also toggle editing or deleting a layer by clicking on top of‬
‭the number, which locks the layer's objects from being changed. Click it‬
‭again to unlock it. As for the blue arrow on the left, this simply returns you to‬
‭the "All" layer, which shows every layer together. While in here, you can select‬
‭an object and click "Go To Layer" to go its specific layer quickly.‬

‭25‬
‭2. Picking Song‬
‭Starting Song‬
‭The majority of the community's favorite Geometry Dash levels are largely‬
‭due to their great music synchronization, so picking a song is obviously‬
‭important when creating. To pick one, we head back to the level settings:‬

‭The bottom of this image is where the starting song of a level is set. By‬
‭default, it shows "Normal" songs, which are the official main level songs‬
‭("Stereo Madness", "Back On Track", and so on). If you want to make a level‬
‭with one of these songs, use the arrows to go through and stop on the one‬
‭you want.‬

‭Selecting "Custom" instead, we have hundreds of thousands of songs to pick‬


‭from. Click "Select Custom Song" to open the menu seen in figure 2.2 below.‬
‭This has various buttons that serve different purposes. For now, we focus on‬
‭the two circular buttons in the middle, one called "Music Library" and the‬
‭other being the logo of‬‭Newgrounds‬‭. This is a website‬‭for various user-created‬
‭content, such as music.‬

‭26‬
‭Music Library‬
‭The Music Library is a new addition in update 2.2, which has many songs‬
‭handpicked by RobTop for use by the community in levels. Once clicked, the‬
‭interface below is seen. By default, every song is shown in alphabetical order‬
‭by their title, which is a lot to scroll through given the song count. (As of‬
‭writing, it is 6391, seen at the bottom of the menu.) To sort through the library,‬
‭use the buttons on the sides. On the right side, the first button lets you filter‬
‭by specific genres, while the second lets you filter by specific artists. As for the‬
‭left side, there is a search button that lets you search for title keywords.‬

‭27‬
‭The figure shows both downloaded and non-downloaded songs. You have to‬
‭download them to be able to listen to or use them. Once a song is‬
‭downloaded, click the playtest button to listen to it. Once you have found a‬
‭song you wish to use from the start of your level, simply download it and click‬
‭the pink "Use" button. Exiting the Music Library, the selection is now filled in:‬

‭Newgrounds‬
‭Before 2.2, the main way to select a custom song was through Newgrounds.‬
‭Clicking its button gives more details on how it works, but you basically have‬
‭to search a song by its specific ID. The ID is found at the end of its link on the‬
‭website. For example, imagine that I am a fan of Creo and want to use his‬
‭song‬‭"Dimension"‬‭. Click the link to open the following‬‭page:‬

‭28‬
‭Here, you can listen to the song and easily skip around to hear different parts‬
‭of the song. Browse the "Audio" tab to find other songs to use. Once you have‬
‭found a song you want to use, you have to write its ID into Geometry Dash. As‬
‭seen in the top left of the previous example, the link for "Dimension" by Creo‬
‭ends with "709578". Typing this and clicking "Search" finds the song as seen‬
‭below. Note that not all songs are available in Geometry Dash. This is‬
‭something the artist can toggle themselves. The best way to find out is by‬
‭testing its ID, which will give an error if it is not available for use in the game.‬

‭Make sure you click the download button and then "Use" on this screen too.‬
‭After downloading any songs, whether it is through the Music Library or‬
‭Newgrounds, you can find them all through the "Saved" button in the bottom‬
‭right. This is also the case for any songs you download while playing custom‬
‭levels on the servers. In here, you can easily select a previously downloaded‬
‭song for use too.‬

‭29‬
‭Song Settings‬
‭When picking a song, you may not want to use it from the start but rather‬
‭from a set point further into the song. Clicking the gear in the top right of the‬
‭custom song selection menu lets you do this. "Start Offset" is given in‬
‭seconds, allowing up to 3 decimals, with a playtest button to help you make it‬
‭as exact as possible. The fade options makes the song fade in at the start or‬
‭out at the end. Note that these can be used even with a main level song.‬

‭Guideline Creator‬
‭To help you sync the gameplay and visuals of your level to your song of choice,‬
‭you can click "Create Lines" in the bottom left. This opens the menu seen‬
‭below. The text itself gives good steps for how to do it, which is essentially‬
‭clicking "Record" and then clicking to the song. You can, for example, time‬
‭each click to the main beat. After you are done, click "Stop" and vertical lines‬
‭will be shown in the editor to indicate when you clicked. As a result, you can‬
‭time specific gameplay or visuals to these lines, for example to‬‭Pulse Triggers‬
‭(where a specific color, such as the Background, turns brighter for a split‬
‭second). Note that you can toggle the guidelines in the‬‭Pause Menu‬‭.‬

‭30‬
‭Later Customization‬
‭The settings covered thus far are all for the starting song. However, the editor‬
‭lets you change the song further into the level, as well as customizing the‬
‭current song in many ways. You can, for example, change the speed or edit‬
‭the volume based on proximity (to the player). Additionally, up to 5 songs can‬
‭be overlapped at once, giving a lot of possibilities. These customizations are‬
‭done using the‬‭Song‬‭and‬‭Edit Song Triggers‬‭at the‬‭point you want them to‬
‭take effect. Further audio customization is possible using‬‭SFX Triggers‬
‭handled in the same chapter.‬

‭With the possible complexity of your level's audio using these Triggers, the‬
‭Guideline Creator shown above is not as helpful anymore. To handle such‬
‭cases, you can use BPM Finder within each song's details. Click "More" next to‬
‭a song and then "BPM" to open its menu. The way it works is similar to the‬
‭Guideline Creator, but it only finds the BPM for you and does not draw‬
‭guidelines automatically. Afterwards, you can use a‬‭BPM Guide Trigger‬
‭together with the song's placement in the editor to create guidelines.‬

‭31‬
‭3. Gameplay Objects‬
‭Description‬
‭This chapter handles the sixth tab in the editor, referred to as Gameplay‬
‭Objects because they affect gameplay or interact with the player in a different‬
‭way than other objects. These range from giving small boosts through‬‭Pads‬
‭or‬‭Orbs‬‭to customizing the starting settings further‬‭into the level, such as‬
‭Game Mode and Speed. The first page is seen below. Many of these only work‬
‭the first time they are interacted with, but you can enable "Multi Activate" in‬
‭Edit Special‬‭or‬‭Edit Object‬‭to allow multiple interactions.‬‭This is useful if your‬
‭gameplay switches direction, making the player pass by a Gameplay Object‬
‭several times.‬

‭Pads‬
‭The first 5 objects in the tab are often referred to as Pads. When a player‬
‭touches one of these, they are affected in some way depending on the type of‬
‭Pad. The first three give various vertical boosts, while the last two switch‬
‭gravity in different ways. For the blue one, the gravity switch is natural,‬
‭keeping horizontal velocity, while the purple one teleports you vertically until‬
‭an object is hit. This is similar to how Spider works. An illustration of the‬
‭various Pads, with the player path in green, is shown below. To refer to a‬
‭specific one, you simply use the color, so the leftmost one is called Yellow Pad.‬

‭32‬
‭Orbs‬
‭Orbs work similarly to Pads, but instead of being activated upon being‬
‭touched, they have to be clicked by the player. The ones with the same color‬
‭as in figure 3.2 have a similar effect, as seen in figure 3.3. However, there are‬
‭five extra Orbs that do not have an equivalent in Pads. These are seen in figure‬
‭3.4 with their common names in the figure text. The Black Orb simply pushes‬
‭you downwards (without switching gravity), while the Dash Orbs take you in a‬
‭straight line in the arrow's direction as long as the player holds down. Once‬
‭released, the Green Dash Orb keeps the original gravity, while the Pink Dash‬
‭Orb switches it. The Teleport Orb lets you set a specific object to teleport to‬
‭when clicked. Finally, the Trigger Orb lets you toggle a specific Group ID.‬

‭33‬
‭Portals‬
‭Portals change the gameplay in various ways. Their effect is only activated if‬
‭the player passes through them. First, we have the Game Mode Portals. These‬
‭are seen in figure 3.5 below, ordered in the same way as in the start settings:‬
‭Green is Cube, pink is Ship, red is Ball, orange is UFO, blue is Wave, gray is‬
‭Robot, purple is Spider, and yellow is Swing. Use these at any point in your‬
‭level to switch the player's Game Mode. Some Game Modes, such as Ship,‬
‭have a floor and roof by default. Click "Edit Object" and enable "Free Mode" to‬
‭remove these.‬

‭34‬
‭In figure 3.6, various other types of Portals are shown. First, on the left, are‬
‭Gravity Portals. The blue one changes gravity to be normal (down), while the‬
‭yellow changes it to be upside-down. As for the green one, it switches to the‬
‭opposite gravity depending on your current gravity. If you are upside-down‬
‭and go through it, gravity turns normal, and vice versa. This is useful if a part's‬
‭gravity is dependent on the player's actions and you want to force a gravity‬
‭switch. After all, if you are in normal gravity and pass through a Blue Gravity‬
‭Portal, it has no effect since that is already the player's gravity.‬

‭Secondly, we have Mirror Portals, which essentially mirror the entire level.‬
‭Once activated, this means that instead of going towards the right, the level‬
‭goes towards the left. The Orange Mirror Portal switches to the left, while the‬
‭Blue Mirror Portal switches to the right (which is default).‬

‭Third are Size Portals. The pink one makes the player's icon smaller in the‬
‭current Game Mode, often referred to as Mini Mode. This changes the‬
‭gameplay in some ways depending on the Game Mode, such as jumps being‬
‭lower and shorter in Cube and Robot. If the Game Mode changes, Mini Mode‬
‭is still kept until the size is changed back to normal. That is done with the‬
‭Green Size Portal.‬

‭35‬
‭Finally, on the far right, we have Dual Portals. The orange one enables Dual‬
‭Mode, which duplicates the player's icon into two. Both of these are controlled‬
‭upon clicking. By default, every click affects both. However, you can enable‬
‭2-Player Mode in the level settings, making it so that clicks on each side of the‬
‭screen control each icon. To switch back to one icon, use the Blue Dual Portal.‬

‭Speed Changers‬
‭Speed Changers are pretty self-explanatory, but if you want more details,‬
‭check‬‭Level Settings‬‭. As with Portals, they are enabled‬‭when a player interacts‬
‭with them. The blue lines around them (not seen in-game, only in the editor)‬
‭indicate their hitbox. This is where you have to touch them to change the‬
‭speed. Naturally, if the Speed is already normal, for example, going through a‬
‭Blue Speed Changer (one arrow to the right) does nothing.‬

‭Letter Objects‬
‭At the end of the tab, there are various letters inside white squares. These are‬
‭only visible in the editor itself (and not in-game). They are used in very specific‬
‭use cases to alter player interactions in some way. In order from first to last,‬
‭we have Letter Objects with "D", "J", "S", "H", and "F" written on them, which‬
‭are covered in order here.‬

‭36‬
‭First is "D", which is used when the Game Mode is Wave. As seen in figure 3.8‬
‭on the left, the player will normally die when the icon hits a block below it‬
‭(and similar above it). However, adding D Letter Objects allows the icon to hit‬
‭the blocks. The placement of these objects decide which blocks are safe.‬

‭The J Letter Object is used to stop jumps when the player holds down in‬
‭Cube. Many players hold down a little after using an Orb, such as a Blue Orb,‬
‭and after hitting objects this may lead to an unwanted jump. This is seen on‬
‭the left in figure 3.9. Adding the J Letter Objects here, holding down from the‬
‭Blue Orb does not result in a jump. Note that clicking again while on top of‬
‭these Letter Objects does lead to a jump. This only affects holding.‬

‭37‬
‭By default, using a Dash Orb lets you hold it down as long as you want. The‬
‭player decides when its action ends by releasing. However, at times it may be‬
‭wanted to control when a Dash Orb's effect stops. This is done by placing S‬
‭Letter Objects as seen in figure 3.10. The player can still release before this if‬
‭they wish, but they cannot use the Dash Orb for longer than the S Letter‬
‭Object's placement.‬

‭In Cube, jumping into a block above you and "hitting your head" normally‬
‭leads to death. Using H Letter Objects stops this. This works the same way if‬
‭the gravity is switched, and it also applies for Robot. Last are F Letter Objects,‬
‭which switch gravity when you hit your head on them. An example of this is‬
‭seen here:‬

‭38‬
‭Force Objects‬
‭Last in the tab are Force Objects, seen as an arrow inside a circle or square.‬
‭These apply a set force in the direction of the arrow when touched. This‬
‭means that you can rotate them in the direction you want them to work. The‬
‭difference between the two lies in the hitbox, which is indicated by the circle‬
‭and square. Similar to letter objects, these do not show in the level itself, so it‬
‭is probably smart to find some way to indicate them with decorations. This‬
‭makes it less annoying for the player. Use "Edit Object" to change various‬
‭settings, such as the force applied.‬

‭39‬
‭4. Animated Objects‬
‭Description‬
‭Animated Objects are in the seventh tab. Each object here consists of several‬
‭frames, which the game cycles through and loops forever to create‬
‭animations. The most complex Animated Objects are particles, which can be‬
‭customized in the‬‭Particle Editor‬‭. Many‬‭Collectable‬‭Objects‬‭are animated as‬
‭well and have similar settings. The first page of the tab is seen here:‬

‭Monsters‬
‭As seen above, the first 5 objects in the tab are various Monsters. Once placed,‬
‭these do different default animations. However, they can be customized using‬
‭the‬‭Animate Trigger‬‭covered later. To use the‬‭Animate‬‭Trigger‬‭on a Monster,‬
‭you have to assign it a Group ID. Select the Monster you want to change the‬
‭animation of and click the "Edit Group" button found on the right. In this‬
‭menu, enter a value in the "Add Group ID" field. "Next Free" is helpful to find‬
‭an unused Group ID. To assign that value, click the "Add" button, as seen in‬
‭figure 4.2. You can use the same Group ID for different kinds of Monsters.‬
‭However, their animation cycles may not align with each other, resulting in‬
‭unwanted results. Because of this it is recommended to use a different Group‬
‭ID for every kind of monster. You can find more information about‬‭Groups‬
‭and‬‭Triggers‬‭in the later chapters.‬

‭40‬
‭.‬

‭Edit Special‬
‭The objects beyond the Monsters do not let you change to another animation‬
‭specifically, but you can use "Edit Special" to customize its default animation‬
‭in some ways. To do so, select the objects you want to edit and click the "Edit‬
‭Special" button found to the right. The menu will look like this:‬

‭41‬
‭All options change different attributes of the animation cycle. Here is a list of‬
‭all options and what they do:‬

‭●‬ ‭Randomized Start:‬‭By default all Animated Objects‬‭start on their first‬


‭frame. With this option enabled, the first frame is random, and the‬
‭animation will continue normally from that point.‬
‭●‬ ‭Use Speed:‬‭Uses a custom speed for the animation,‬‭which gets configured‬
‭with the slider below. A speed below 1.00 is slower than default, while a‬
‭speed above 1.00 is faster. You can input negative values to reverse the‬
‭animation.‬
‭●‬ ‭Animate on Trigger:‬‭The objects freeze on the first‬‭frame. They begin their‬
‭animation when an‬‭Animate‬‭or‬‭Spawn Trigger‬‭Triggers‬‭them.‬
‭●‬ ‭Disable Delayed Loop:‬‭Some objects get delayed before‬‭looping. This‬
‭option instantly starts the next loop.‬
‭●‬ ‭Disable AnimShine:‬‭Some Animated Objects have a white‬‭flash at the‬
‭start of their animation, which gets deactivated with this option.‬
‭●‬ ‭Only if active:‬‭Addition to the "Animate on Trigger"‬‭option. With this‬
‭option, the "Animate on Trigger" option will only play if the object is active.‬
‭If the animation is not active while an‬‭Animate‬‭or‬‭Spawn Trigger‬‭Triggers‬
‭it, the animation will instead begin once the object is active again.‬
‭●‬ ‭Single Frame:‬‭The animation will not play and instead‬‭only display a single‬
‭frame of the animation, which gets chosen with the number field below.‬

‭42‬
‭Particle Editor‬
‭The Particle Editor allows you to create your own set of particles. To get‬
‭started, you first have to place its object. It is the first object in the tab, seen as‬
‭a white "P" and shown in figure 4.4.‬

‭While having this object placed and select, you can access the Particle Editor‬
‭by clicking the "Edit Special" button on the right. This opens the menu in‬
‭figure 4.5. In here, you can configure different attributes of your particles, such‬
‭as their movement, color, texture, and more.‬

‭In the following sections we will go through all the tabs and explain what‬
‭every option does. You can copy and paste configurations from different‬
‭particles by using the "C" and "P" buttons at the top.‬

‭43‬
‭First, we have the "Motion" tab, which configures the particles' movement.‬
‭You can edit the motion of your particles in "Gravity" or "Radius" mode.‬
‭Depending on what mode you choose, you will have different options‬
‭available.‬

‭●‬ ‭Max Particles:‬‭The amount of particles that can be‬‭visible at once.‬


‭●‬ ‭Duration:‬‭How long particles will be generated. "-1.00"‬‭means they will‬
‭spawn forever, which you can input by clicking the "Inf." button to the‬
‭right.‬
‭●‬ ‭Lifetime:‬‭How long particles are visible before they‬‭disappear.‬
‭●‬ ‭Emission:‬‭At what rate particles spawn. You can click‬‭the "Max" button for‬
‭the highest possible rate or click the "Calc" button to use the "Max‬
‭Particles" and "Lifetime" values to generate them at an even rate.‬
‭●‬ ‭Angle:‬‭The angle at which the particles will go. A‬‭value of "0" means right,‬
‭" 90" down, "180" left, and so on.‬
‭●‬ ‭Speed:‬‭The speed at which the particles go from the‬‭center.‬

‭44‬
‭●‬ ‭PosVar:‬‭Position variables indicate the space in which the particles can‬
‭spawn.‬
‭●‬ ‭Gravity:‬‭This applies a gravity force to the particles.‬‭The higher the value,‬
‭the stronger the force. Positive values make the gravity go right and up,‬
‭while negative values make the gravity go left and down, depending on‬
‭what slider you choose.‬
‭●‬ ‭AccelRad:‬‭Refers to the radial acceleration of the‬‭particles.‬
‭●‬ ‭AccelTan:‬‭Refers to the tangential acceleration of‬‭the particles.‬
‭●‬ ‭StartRad:‬‭This option is only available in "Radius"‬‭mode. It sets the start‬
‭radius of the particles.‬
‭●‬ ‭EndRad:‬‭This option is only available in the "Radius"‬‭mode. It sets the end‬
‭radius of the particles.‬
‭●‬ ‭RotSec:‬‭This option is only available in the "Radius"‬‭mode. It refers to‬
‭rotations per second.‬

‭Next is the "Visual" tab, which lets you change how the particles look. The‬
‭start and end colors are customized in the top left.‬

‭45‬
‭●‬ ‭StartSize:‬‭The size the particles have when they spawn.‬
‭●‬ ‭EndSize:‬‭The size the particles have when they despawn.‬
‭●‬ ‭StartSpin:‬‭The rotation the particles when they spawn.‬
‭●‬ ‭EndSpin:‬‭The rotation the particles when they despawn.‬
‭●‬ ‭Start R/G/B:‬‭Percentage of red, green, and blue values‬‭when the particles‬
‭spawn.‬
‭●‬ ‭Start A:‬‭Opacity when the particles spawn.‬
‭●‬ ‭End R/G/B:‬‭Percentage of red, green, and blue values‬‭when the particles‬
‭despawn.‬
‭●‬ ‭End A:‬‭Opacity when the particles despawn.‬

‭In the "Extra" tab, seen below, various other configuration can be done.‬

‭46‬
‭●‬ ‭Free:‬‭With this option enabled, you do not move the particles but pan the‬
‭camera around.‬
‭●‬ ‭Relative:‬‭With this option, particles do not move‬‭when you move the‬
‭object but spawn at the new position.‬
‭●‬ ‭Grouped:‬‭With this option, all particles move when‬‭you move the object.‬
‭●‬ ‭Fade in/out:‬‭Fade time for the particles to appear‬‭and disappear.‬
‭●‬ ‭FrictionP:‬‭Adds friction to the particles.‬
‭●‬ ‭FrictionS:‬‭Adds friction to the particle speed.‬
‭●‬ ‭FrictionR:‬‭Adds friction to the particle rotation.‬
‭●‬ ‭Respawn:‬‭Modifies the rate at which particles respawn.‬
‭●‬ ‭Additive:‬‭This is comparable to the blending option‬‭for Color Channels.‬
‭●‬ ‭Start Size = End:‬‭The particles have the same size‬‭at the end as the start.‬
‭●‬ ‭Start Spin = End:‬‭The particles have the same rotation‬‭at the end as the‬
‭start.‬
‭●‬ ‭Start Rad = End:‬‭Changes the "StartRad" value to be‬‭the end instead of‬
‭the start. This option only works in "Radius" mode.‬
‭●‬ ‭Start rot is dir:‬‭The rotation of the particles when‬‭they spawn is the‬
‭direction they will go towards.‬
‭●‬ ‭Use obj color:‬‭Particles use Color Channels instead‬‭of the color specified in‬
‭the visual tab.‬
‭●‬ ‭Uniform obj color:‬‭Makes the beginning and ending‬‭colors the same.‬
‭●‬ ‭Dynamic rotation:‬‭The particles rotate to face towards‬‭the direction they‬
‭are going.‬
‭●‬ ‭Animate on Trigger:‬‭The objects freeze on the first‬‭frame. They begin their‬
‭animation when an‬‭Animate Trigger‬‭Triggers them.‬
‭●‬ ‭Animate Active Only:‬‭Addition to the "Animate on Trigger"‬‭option. With‬
‭this option, the "Animate on Trigger" option will only play if the object is‬
‭active. If the animation is not active while the‬‭Animate‬‭Trigger‬‭is activated,‬
‭the animation will instead begin once the object is active again.‬

‭47‬
‭●‬ ‭Order Sensitive:‬‭Checks for the "Order" value specified in‬‭Edit Group‬‭.‬
‭●‬ ‭StartRGB Var Sync:‬‭Syncs the "Start R/G/B" values‬‭from the "Visual" tab.‬
‭●‬ ‭EndRGB Var Sync:‬‭Syncs the "End R/G/B" values from‬‭the "Visual" tab.‬
‭●‬ ‭Quick Start:‬‭By default, the particles will start‬‭slowly before reaching their‬
‭normal movement. With this option, normal movement is achieved‬
‭instantly.‬

‭In the "Texture" tab, the actual texture of your particle is chosen. Note that for‬
‭textures with a Base Color other than white, such as the Difficulty Faces, the‬
‭particle color has to be white. Choosing a color other than white will tint the‬
‭colors, which may lead to unwanted results. Based on prior settings, the‬
‭particles may even disappear if you choose black for the particle color.‬

‭48‬
‭The Particle Editor preview is on the left half of the settings menu. In this‬
‭editor, you can configure motion options by dragging lines around and‬
‭positioning the particles at different locations. The default version of the‬
‭editor looks like figure 4.10, but it will automatically update the motion, color,‬
‭and texture depending on prior configurations.‬

‭All buttons allow you to modify different parts of the motion. Choose the‬
‭mode by clicking on the corresponding button. If no button is enabled, you‬
‭can move the particles inside the editor. Their movement depends on the‬
‭"Free", "Relative", and "Grouped" options from the "Extra" tab.‬

‭The first button, "1",‬‭edits the "PosVar" values in‬‭"Gravity" mode, and the‬
‭"StartRad" value in "Radius" mode. You can change them by clicking on the‬
‭green line and moving it around to scale it, as seen in figure 4.11. If you click on‬
‭an edge, you can change the size on the corresponding axis. If you click on a‬
‭corner, the size will change relative to the corner position in the square.‬

‭49‬
‭The second button, "2", edits the "Gravity" values in "Gravity" mode, and the‬
‭"EndRad" value in "Radius" mode. You can change them by clicking‬
‭somewhere in the editor and moving around. The blue line will draw from the‬
‭center to the position you are at, with a longer line indicating a stronger‬
‭gravity in the corresponding direction, as seen in figure 4.11.‬

‭The third button, "3", edits the "Angle" value in both modes, as well as the‬
‭"Speed" value in "Gravity" mode. You can change them by clicking‬
‭somewhere in the editor and moving around. The angle will change to the‬
‭angle between the center and your click, and the speed will adjust depending‬
‭on how far the mouse is from the center. The angle is indicated by the‬
‭rounder yellow line, while the speed is indicated by the straight yellow line, as‬
‭seen in figure 4.11.‬

‭The "C" button recenters the particles if you moved them around, and the last,‬
‭colored button changes the background color of the editor.‬

‭50‬
‭5. Items‬
‭Description‬
‭Items are found in the tenth tab of the editor, and consist of various objects‬
‭that are suitable as Collectables. This means that they can be picked up‬
‭throughout the level, whether they are optional extra challenges or necessary‬
‭to advance. You can also use many of these as decorations if you wish. The‬
‭first page of the tab is seen here:‬

‭User Coins‬
‭The first object in the tab are User Coins. These are the most used‬
‭Collectables in the game because they are official. This means that they show‬
‭on a level's menu screen and may count towards player statistics. You can‬
‭place up to three of these in your level, but note that you do not need to put‬
‭any. They are supposed to offer an extra, optional challenge for the player,‬
‭meaning that they should not be a part of the level's normal route and free to‬
‭get when beating the level. Once you upload your level, they will initially show‬
‭as bronze both inside the level and on its menu screen. However, if your level‬
‭gets rated, RobTop can "verify" the coins, making them silver and count for‬
‭statistics. This means that players get more User Coins on their Profile if they‬
‭collect yours and beat the level. Note that he may not verify them if your User‬
‭Coins are free. Similar to Animated Objects, you can use‬‭Edit Special‬‭to edit‬
‭their default rotating animation.‬

‭51‬
‭Custom Collectables‬
‭All other objects in the tab function as custom Collectables. You can assign‬
‭specific actions to them that will be activated once they get collected. This‬
‭can be editing a specific Item ID, activating or deactivating a specific Group‬
‭ID, or assigning Points that add up for the player. To access these options, first‬
‭place the Collectable you want to use and click "Edit Special". This opens the‬
‭following menu:‬

‭You can use "Pickup Item" to change the value of an Item ID. Item IDs are‬
‭variables that can be edited and referenced throughout the level. Enter the‬
‭Item ID you want to change in the "ItemID" field. By default, the Item ID will‬
‭be increased by one. By enabling the "Sub Count" option, it will be decreased‬
‭by one instead. You can read the‬‭Pickup Trigger‬‭section,‬‭as well as the various‬
‭Item Triggers‬‭, for more information on Item IDs.‬

‭52‬
‭Use "Toggle Trigger" if you want the Collectable to behave like a‬‭Toggle‬‭or‬
‭Spawn Trigger‬‭. By default, the Group ID will be toggled off. If you click the‬
‭"Enable Group" option, the Group ID you input in the "Group ID" field will‬
‭toggle on instead. If the Group ID is assigned to a‬‭Trigger‬‭, the Trigger will be‬
‭activated like a Spawn Trigger instead. You can read the‬‭Using Groups‬‭section‬
‭for an explanation of what Group IDs are and how to use them.‬

‭The "Particle" option allows you to spawn particles when the custom‬
‭Collectables are collected. Assign a Group ID to your set of particles and enter‬
‭that Group ID in the "Particle" field. Note that your particles cannot have an‬
‭infinite duration for this to work. You can check the‬‭Particle Editor‬‭subchapter‬
‭for more information about particles and how to use them.‬

‭Lastly, you can assign Points to the Collectables. Points function similarly to‬
‭Item IDs. However, they count as a single variable and are used for the Level‬
‭Leaderboard for Platformer levels. The number you input in the "Points" field‬
‭is how many Points the custom Collectables will award when collected.‬

‭53‬
‭6. Edit Group‬
‭"Edit Group" is one of the most important buttons in the game. It is found on‬
‭the right side of the editor when the object(s) you want to edit are selected.‬
‭This menu is what enables you to change attributes of your objects through‬
‭various options, as well as adding Group IDs to link to‬‭Triggers‬‭.‬

‭Functionality‬
‭The options are used to set editor layer, assign Group IDs, change the Z‬
‭position, set the Order, and set up Channels. Here is a list of all the settings‬
‭seen in figure 6.1 and a short explanation of what they do.‬

‭●‬ ‭Editor L and Editor L2:‬‭These options place objects‬‭at different editor‬
‭layers. Objects will appear on both editor layers once set. If "Editor L2" is 0,‬
‭however, the objects will only appear on the layer set in "Editor L". You can‬
‭use the "+" buttons to get the lowest layer that has no objects placed on it.‬
‭●‬ ‭Z Layer:‬‭Seen at the bottom, this is used as the drawing‬‭order of objects. In‬
‭order of increasing priority, it goes from "B5" to "T4" selected by the‬

‭54‬
‭buttons. Objects in layers starting with a "B" are below the player, while‬
‭objects in layers starting with a "T" are above the player. When multiple‬
‭selected objects are in different "Z Layers", you can use the "+" and "-"‬
‭buttons to move everything up or down one step in layer respectively. To‬
‭change the drawing order of objects even further, see below.‬
‭●‬ ‭Tileset:‬‭This term is not directly seen in figure‬‭6.1, but its value marked to‬
‭the right of "Z Layer" in parentheses. It specifies the tileset number of the‬
‭selected object(s). For similar types of objects, this will typically be the‬
‭same value. For different types of objects in the same "Z Layer", the tileset‬
‭value specifies its priority. Within the same "Z Layer", an object with a lower‬
‭tileset number is always drawn above one with a higher value. To bypass‬
‭this, you can move the object with a higher value to a higher "Z layer". See‬
‭figure 6.2 for an example.‬
‭●‬ ‭Z Order:‬‭Seen in the top right of figure 6.1, this‬‭sets the drawing order of‬
‭objects that are in the same "Z Layer" and also have the same tileset‬
‭number. If this is the case, putting a higher "Z Order" makes it drawn on‬
‭top. You can input positive and negative values in this field.‬
‭●‬ ‭Add Group ID:‬‭Assign up to ten Group IDs, which you‬‭can later use in other‬
‭Triggers. How to use Group IDs is covered later in this chapter.‬
‭●‬ ‭ORD:‬‭This option only appears for‬‭Gameplay Objects‬‭and‬‭Triggers‬‭. It sets‬
‭an Order in which the objects get activated.‬
‭●‬ ‭CH:‬‭This option only appears for‬‭Gameplay Objects‬‭and‬‭Triggers‬‭. It assigns‬
‭a Channel to the objects, which are used for‬‭Rotate‬‭Gameplay Triggers‬‭to‬
‭work with different gameplay directions. See‬‭Channel‬‭System‬‭for more‬
‭information.‬

‭Copy and paste settings from different objects using the "Copy" and "Paste"‬
‭buttons in the top right. The "Extra" and "Extra2" categories have special‬
‭options, and are covered‬‭below‬‭.‬

‭55‬
‭Using Groups‬
‭Group IDs are essential for Trigger usage. You can add up to ten Group IDs to‬
‭a specific object. To assign a Group ID to objects, enter the Group ID you want‬
‭to add into the number field and click the "Add" button. The number will be‬
‭added to the window below in gray, as seen in figure 6.3. Clicking the "Next‬
‭Free" button inputs the lowest Group ID value that has not been used in the‬
‭level yet.‬

‭56‬
‭To remove a Group ID, simply click the one you want to remove. If you have a‬
‭single object selected, a new "P" button appears next to "Add". This is used to‬
‭mark the object as Group Parent ID. After clicking the "P" button, the‬
‭corresponding Group ID will show in pink instead of the normal gray, as seen‬
‭in figure 6.4. You can use Group Parent IDs for different‬‭Triggers‬‭.‬

‭Extra Options‬
‭Extra options are in the "Extra" and "Extra2" buttons on the right side of the‬
‭menu. These tabs have many options that change the attributes of objects,‬
‭some of which are only accessible if the selected object is a‬‭Gameplay Object‬
‭or‬‭Trigger‬‭, and others are only useful for Platformer.‬‭Here is a list and a short‬
‭explanation of the options in "Extra" do:‬

‭●‬ ‭Dont Fade:‬‭Disables fading in and out when entering‬‭and exiting the‬
‭screen. This is default behavior for all visible objects.‬
‭●‬ ‭Dont Enter:‬‭Disables any applied‬‭Enter Effects‬‭.‬
‭●‬ ‭No Effects:‬‭This option deactivates the effects of‬‭Portals. Some examples‬
‭include the Background lightning for Size Portals and gravity lines for‬
‭Gravity Portals.‬

‭57‬
‭●‬ ‭Group Parent:‬‭Sets an object as a Group ID Parent, which is used for‬
‭scaling and rotating objects.‬
‭●‬ ‭Area Parent:‬‭Marks an object as the Area Parent, which‬‭can be used for‬
‭Area Triggers‬‭.‬
‭●‬ ‭Dont Boost Y/Dont Boost X:‬‭Disables the player being‬‭boosted by a‬
‭moving object for the given axis.‬
‭●‬ ‭High Detail:‬‭Marks an object as High Detail. Objects‬‭marked as High Detail‬
‭get disabled when the player enables the Low Detail Mode on the level‬
‭page. This is useful if your level has a lot of extra, unnecessary details that‬
‭can lead to poor performance for some users.‬
‭●‬ ‭NoTouch:‬‭Disables interactions between the player‬‭and the objects‬
‭●‬ ‭Passable:‬‭You can jump through solid objects but land‬‭on them from the‬
‭top.‬
‭●‬ ‭Hide:‬‭Makes objects invisible.‬
‭●‬ ‭NonStickX/NonStickY:‬‭Only usable for Platformer. The‬‭player will stick to‬
‭moving objects by default. This option removes the friction so the player‬
‭does not stick to the objects.‬
‭●‬ ‭ExtraSticky:‬‭When the player stands on an object that‬‭moves down too‬
‭fast, the player will not stick to the block anymore. This option increases‬
‭how sticky it is.‬
‭●‬ ‭Extended Collision:‬‭Objects with a scale larger than‬‭a value of 6 have‬
‭inaccurate hitboxes. This option fixes the hitbox to be accurate again. Note‬
‭that this does not apply to the visuals of objects.‬
‭●‬ ‭IceBlock:‬‭Only usable for Platformer. This option‬‭makes blocks slippery, so‬
‭the player slides further. Controls are also harder.‬
‭●‬ ‭GripSlope:‬‭By default, the player can not slide up‬‭steep slopes and will‬
‭slide down instead. With this option enabled, the player has more grip on‬
‭slopes so that they can slide up.‬

‭58‬
‭●‬ ‭NoGlow:‬‭Disables the glow emitted from solid objects and Spikes, as seen‬
‭in figure 6.5.‬

‭●‬ ‭ScaleStick:‬‭By default, the player's X position will‬‭not change when‬


‭standing on a scaling object. With this option enabled, the player's‬
‭position moves the corresponding distance from the scale center.‬
‭●‬ ‭NoParticle:‬‭Disables the particles on Orbs and Portals.‬
‭●‬ ‭Center Effect:‬‭When previewing Triggers with "Touch‬‭Trigger" enabled in‬
‭the editor, the effect spawns when the player touches the Trigger at all.‬
‭With this option enabled, it will only spawn when at the Trigger center.‬
‭●‬ ‭Single PTouch:‬‭This option is used for Rotate Gameplay‬‭Triggers and Dual‬
‭Mode. If one of the players touches the Trigger, only that one is affected.‬
‭●‬ ‭No Audio Scale:‬‭Disables pulsing for both Orbs and‬‭Pulsing Objects. See‬
‭the figure below.‬

‭59‬
‭Special IDs‬
‭Special IDs are in the "Extra2" tab and are used for some‬‭Triggers‬‭. They have‬
‭no effect on their own. Here is a list of all the Special IDs and a short‬
‭explanation of their usage.‬

‭●‬ ‭Enter Channel:‬‭Enter Channel IDs are used for‬‭Enter‬‭Effects‬‭and‬‭Custom‬


‭Enter Effects‬‭, which are covered in greater detail‬‭later. You can click the "+"‬
‭button to get the lowest Enter Channel ID that is unused.‬
‭●‬ ‭Material:‬‭You can assign Material IDs to objects for‬‭set events upon‬
‭interaction. For example, you can add a Material ID to all ground blocks‬
‭and use it in‬‭Event Triggers‬‭to Trigger a stone sound‬‭whenever the player‬
‭lands on them.‬
‭●‬ ‭ControlID:‬‭This option is only available for‬‭Gameplay‬‭Objects‬‭and‬‭Triggers‬‭.‬
‭Control IDs are used to reference specific objects when using the‬
‭remapping setting in‬‭Spawn Triggers‬‭.‬

‭When using "Edit Group" with a Trigger, additional options "EDP" and "EDO"‬
‭show below the "Extra" buttons. "EDP" stands for editor preview, and it‬
‭enables "Touch Trigger" Triggers while playtesting. "EDO" stands for editor‬
‭playback object, which makes music playtesting start from this Trigger.‬

‭60‬
‭7. Triggers‬
‭Description‬
‭There are over a hundred Triggers in the game. These are found in the second‬
‭to last tab, seen below. As explained earlier, Triggers are used to perform‬
‭various complex actions. They may alter visible objects, such as blocks, in‬
‭some way, or just change the gameplay or visuals. Since they work in this way,‬
‭they are never visible objects that can be seen when playing a level. You place‬
‭them in the editor, and they do their action when the player passes the‬
‭Trigger's position or other linked events. For example, Triggers that have the‬
‭"Touch Trigger" option enabled will be triggered when the player touches‬
‭them. There is also a "Spawn Trigger" option, which means it is spawned by a‬
‭Spawn Trigger‬‭or different conditional Triggers, like‬‭Touch Triggers‬‭,‬‭Count‬
‭Triggers‬‭,‬‭Time Triggers‬‭, and more.‬

‭Below this, every Trigger is covered in-depth in order. If you are unsure about‬
‭the name of a Trigger found in-game, you can find it by looking at the title‬
‭inside‬‭Edit Object‬‭. This is also where you will edit‬‭a Trigger's settings. Note‬
‭that you can also find some simple quick help there by clicking the‬
‭information button (shown as an "i" in one of the corners). This guide works‬
‭best as an additional resource if any of that text is unclear. Previous‬
‭knowledge in this document, such as‬‭Edit Group‬‭, is‬‭expected to be able to‬
‭work with Triggers well.‬

‭61‬
‭Start Pos‬
‭This Trigger is used to set a custom starting location of the player for‬
‭playtesting. Levels cannot be verified if they include a Start Pos Trigger.‬

‭The "Speed" and "Mode" options are used to set the‬‭Speed‬‭and‬‭Game Mode‬‭to‬
‭use from the Trigger. The "Options" menu features more settings, such as‬
‭starting in Mini Mode, Dual Mode, or Rotated Gameplay.‬

‭The "Reset Camera" option resets all prior camera settings.‬

‭"Target Order" and "Target Channel" refer to the "Order" and "Channel"‬
‭options found in the‬‭Edit Group‬‭menu. They are used‬‭to activate‬‭Gameplay‬
‭Objects‬‭and Triggers in a specific order.‬

‭You can temporarily disable a Start Pos by enabling the "Disable" option.‬

‭Color‬
‭Color Triggers are used to change the settings of a Color Channel. It works the‬
‭same way as the normal color selection, which was covered in the‬‭Select Color‬
‭section.‬

‭The "Color ID" field refers to what Color Channel you want to edit. You can‬
‭click the "+" button for more options, such as the Background Color.‬

‭If you wish to change a Color Channel to the player's colors, you can use‬
‭"Player Color 1" or "Player Color 2".‬

‭The "Blending" option applies blending to the color, which makes it multiply‬
‭with the colors below it.‬

‭62‬
‭By enabling the "Copy Color" option, you can copy the color of a different‬
‭Color Channel. The Color Channel you wish to copy is input in the "Channel‬
‭ID" field. You can change attributes of the color you copy by using the "Hue",‬
‭"Saturation", and "Brightness" sliders.‬

‭You can use the "Copy" and "Paste" buttons to copy the color from one Color‬
‭Trigger to another. By clicking the "Default" button, it will automatically show‬
‭the color the corresponding Color Channel has in the‬‭Select Color‬‭screen.‬

‭Move‬
‭This Trigger is used to move a specific Group ID. Its interface is seen below.‬
‭After that, each option is described.‬

‭63‬
‭●‬ ‭Target Group ID:‬‭The Group ID you want to move.‬
‭●‬ ‭Move X:‬‭Moves blocks along the X-axis. One block is‬‭equal to a value of 10.‬
‭Input a positive number to move to the right, and a negative one to move‬
‭to the left.‬
‭●‬ ‭Move Y:‬‭Moves blocks along the Y-axis. One block is‬‭equal to a value of 10.‬
‭Input a positive number to move up, and a negative one to move down.‬
‭●‬ ‭Move Time:‬‭The duration you want the movement to last.‬
‭●‬ ‭Easing:‬‭Easing options change the way the objects‬‭start and end their‬
‭movement.‬
‭●‬ ‭Player:‬‭You can select a "Player" option for both‬‭the X-axis and Y-axis.‬
‭When this option is selected, the objects will follow the player's movement‬
‭in the given direction.‬
‭●‬ ‭Camera:‬‭The "Camera" option can also be selected for‬‭both the X-axis and‬
‭Y-axis. It functions similarly to the "Player" option, but follows the screen‬
‭movement instead of the player movement.‬

‭●‬ ‭Target Mode:‬‭Moves the objects to a "Target Group‬‭ID". This must be a‬


‭single object. "Center Group ID" declares the center of the objects you‬
‭want to move. This must also consist of a single object only. Selecting "P1"‬
‭or "P2" declares Player 1 or 2, in Dual Mode, respectively as "Target Group"‬
‭and moves the objects to that player's location instead.‬

‭64‬
‭●‬ ‭Direction Mode:‬‭Moves the objects in the direction of a "Target Group ID".‬
‭This must be a single object. "Center Group ID" declares the center of the‬
‭objects you want to move. This must also be a single object. Selecting "P1"‬
‭or "P2" declares Player 1 or 2, in Dual Mode, respectively as "Target Group"‬
‭and moves the objects to that player's location instead. "Distance"‬
‭indicates how far in the direction the objects move. As before, one block is‬
‭equal to a value of 10.‬

‭●‬ ‭Small Step:‬‭Enabling this option changes the value‬‭for one block from 10‬
‭to 30. This improves accuracy and allows for more precise movements.‬
‭●‬ ‭Relative:‬‭This option checks if the "Target Group‬‭ID" moves when in‬
‭"Target Mode" or "Direction Mode". Normally the Trigger will only check‬
‭upon activation where the target is and move towards that direction. With‬
‭"Relative" enabled, it will update its direction based on the target moving.‬
‭●‬ ‭Silent:‬‭In Platformer mode, the player sticks to solid‬‭blocks that move‬
‭instantly. With this option enabled, blocks move instantly without the‬
‭player following their movement.‬

‭65‬
‭Stop‬
‭This Trigger shows as a Stop, Pause or Resume Trigger depending on what‬
‭option you choose inside "Edit Object".‬

‭"Stop" is used to stop the action of other Triggers permanently. Give the‬
‭Triggers you want to stop a Group ID and enter that Group ID in the Stop‬
‭Trigger.‬

‭"Pause" pauses the action of other Triggers temporarily. Give the Triggers you‬
‭want to pause a Group ID and enter that Group ID in the Stop Trigger. The‬
‭difference to a Stop Trigger is that you can resume the Trigger later by using a‬
‭Resume Trigger.‬

‭"Resume" resumes the action of other Triggers. Give the Triggers you want to‬
‭resume a Group ID and enter that Group ID in the Stop Trigger. Only Triggers‬
‭that were paused with a Pause Trigger can be resumed.‬

‭"Use Control ID" allows you to only stop a specific Group ID when using‬
‭remapping. For example, if you remap a‬‭Spawn Trigger‬‭to use Group IDs 1, 2,‬
‭and 3, and you only want to stop Group ID 3, you can enter a "Control ID" and‬
‭enable the option in the Stop Trigger. You can find the "Control ID" option in‬
‭the "Extra 2" category after clicking "Edit Group".‬

‭66‬
‭Pulse‬
‭This Trigger is normally used to change the color of a Color Channel or Group‬
‭ID temporarily. The interface and various options are as follows:‬

‭●‬ ‭Channel:‬‭With "Channel", you pulse an entire Color‬‭Channel. Clicking the‬


‭"+" button allows you to select a special color. This includes for example the‬
‭Background, Ground, Middleground, and Player Colors.‬
‭●‬ ‭Group:‬‭With "Group", you pulse objects with that Group‬‭ID.‬
‭●‬ ‭Main Only and Secondary Only:‬‭These options are only‬‭available when‬
‭clicking "Group". Some objects have a Base Color and Detail Color, which‬
‭can be seen in the "Edit Object" menu.‬
‭●‬ ‭Color:‬‭With "Color", the objects pulse the color you‬‭select.‬
‭●‬ ‭HSV:‬‭With "HSV", you can pulse the objects using another‬‭"Color ID" and‬
‭change the "Hue", "Saturation" and "Brightness" of that "Color ID". If you‬
‭leave this value at 0, you pulse the color you put into the "Channel ID" field‬

‭67‬
‭●‬ ‭Fade In:‬‭The duration for the objects to reach the pulse color.‬
‭●‬ ‭Hold:‬‭How long the objects hold the pulse color.‬
‭●‬ ‭Fade Out:‬‭The duration for the objects to return to‬‭their original color.‬
‭●‬ ‭Exclusive:‬‭This option disables all other pulses with‬‭the same ID, and only‬
‭plays the current pulse.‬

‭Alpha‬
‭This Trigger is used to change the opacity of an object over a given time‬
‭frame. The options are as follows:‬

‭●‬ ‭Group ID:‬‭The objects you want to change the opacity‬‭of.‬


‭●‬ ‭Fade Time:‬‭The duration until the objects reach the‬‭set opacity.‬
‭●‬ ‭Opacity:‬‭The opacity you want the objects to have.‬

‭Toggle‬
‭The Toggle Trigger enables or disables objects. Objects that are disabled are‬
‭invisible, and the player cannot interact with them anymore.‬

‭●‬ ‭Group ID:‬‭The objects you want to disable or enable.‬


‭●‬ ‭Activate Group:‬‭With this option enabled the objects‬‭will be enabled. With‬
‭the option disabled, objects will be disabled.‬

‭Spawn‬
‭Spawn Triggers can activate other Triggers.‬

‭●‬ ‭Group ID:‬‭The Triggers you want to spawn.‬


‭●‬ ‭Delay:‬‭The delay before you spawn the Trigger.‬
‭●‬ ‭Preview Disabled:‬‭Disables the Spawn Trigger when‬‭in "Preview Mode".‬
‭The Trigger will still activate when you playtest in the editor.‬

‭68‬
‭●‬ ‭Spawn Ordered:‬‭All Triggers within this Group ID will be activated from‬
‭left to right, with the distance between the Triggers indicating the delay‬
‭between them.‬
‭●‬ ‭Reset Remap:‬‭Resets the remapping of Group IDs.‬

‭You can use the second page of the Trigger's interface to remap Spawn‬
‭Trigger setups. This is useful to save Group IDs.‬

‭69‬
‭Due to this being complex, we will use an example. In figure 7.8, we are‬
‭moving a block left and right by using a Spawn Loop. Now we want to add‬
‭another block that also moves left and right. Normally we would need to copy‬
‭all the Triggers and change their values. With remapping, we can copy the‬
‭Spawn Trigger on the left, and remap the Group ID of the old setup to the‬
‭new block. This is seen in figure 7.9.‬

‭Now Group ID 4 will behave the same as Group ID 1. You can spawn Group ID‬
‭4 at a later time to offset the two block movements. This particular‬
‭remapping saves 3 Group IDs.‬

‭70‬
‭Rotate‬
‭This Trigger is used to rotate a specific Group ID. Its interface is seen below.‬
‭After that, each option is described.‬

‭●‬ ‭Target Group ID:‬‭The objects you want to rotate.‬


‭●‬ ‭Center Group ID:‬‭The center the objects should rotate‬‭around. This Group‬
‭ID can only consist of a single object. Leaving this as 0 will result in all‬
‭objects rotating around their own center.‬
‭●‬ ‭Move Time:‬‭The duration you want the rotation to last.‬
‭●‬ ‭Degrees:‬‭How many degrees you want the objects to‬‭rotate. Enter a‬
‭negative value to rotate counter-clockwise and enter a positive value to‬
‭rotate clockwise.‬
‭●‬ ‭x360:‬‭How many full rotations (360 degrees) you want‬‭to do. Enter a‬
‭negative value to rotate counter-clockwise and enter a positive value to‬
‭rotate clockwise.‬

‭71‬
‭●‬ ‭Aim Mode:‬‭The objects will face towards the "Rot Target‬‭ID". This must be a‬
‭Group ID with a single object. You can offset the rotation with "Rot Offset".‬
‭Choosing "P1" or "P2" will make the objects face towards Player 1 and Player‬
‭2 respectively. If this is enabled, you can limit the rotation to be between‬
‭objects set on the second page of the Trigger.‬
‭●‬ ‭Follow Mode:‬‭The objects will follow the rotation‬‭of "Rot Target ID". This‬
‭must be a Group ID with a single object. You can offset the rotation with‬
‭"Rot Offset". Choosing "P1" or "P2" will make the objects face towards‬
‭Player 1 and Player 2 respectively.‬

‭●‬ ‭Dynamic Mode:‬‭This option checks if the target moves‬‭when in "Aim‬


‭Mode" or "Follow Mode". Normally the Trigger will only check upon‬
‭activation where the target is and face towards that direction. Moving the‬
‭Target Group ID does not update the direction. With "Dynamic Mode"‬
‭enabled, it will update its direction based on the target moving.‬

‭72‬
‭●‬ ‭Lock Obj Rotation:‬‭The objects themselves will not rotate but instead only‬
‭update their position.‬

‭Scale‬
‭This Trigger is used to scale a specific Group ID. Its interface is seen below.‬
‭After that, each option is described.‬

‭●‬ ‭Target Group ID:‬‭The objects you want to scale.‬


‭●‬ ‭Center Group ID:‬‭The center the objects should scale‬‭from. This Group ID‬
‭can only consist of a single object. Leaving this as 0 will result in all objects‬
‭scaling from their own center.‬
‭●‬ ‭Duration:‬‭The duration you want the scaling to last.‬
‭●‬ ‭ScaleX/ScaleY:‬‭How much you want to scale the objects‬‭in the X and Y‬
‭direction respectively.‬
‭●‬ ‭Div by Value X/Value Y:‬‭Divides the current scale‬‭by this number and uses‬
‭this as the target value.‬

‭If you want to scale an object and have it return to its original size, you can‬
‭use "ScaleX/ScaleY" like normal on the first Scale Trigger, and simply tick the‬
‭"Div by Value" boxes when scaling back on another Scale Trigger. For‬
‭example, if you want to scale a block to 3.00, put "ScaleX" and "ScaleY" to 3.00.‬
‭If you want it to return to 1.00 now, you would need to put 1/3 into the fields.‬
‭This is not possible and leads to inaccuracies. By ticking the "Divide by Value"‬
‭box, you divide the scale by 3.00, which brings you back to 1.00.‬

‭●‬ ‭Only Move:‬‭The objects will only move to the place‬‭they would be when‬
‭you scale them. They will not change their size.‬
‭●‬ ‭Relative Rotation:‬‭When blocks are rotated, they will‬‭rotate their X-axis‬
‭and Y-axis as well. Turning this option on draws a new X-axis and Y-axis and‬

‭73‬
‭puts it at the correct place. In the example below, the blocks are rotated 45‬
‭degrees.‬

‭●‬ ‭Relative Scale:‬‭This option makes the scale value‬‭adjust based on a‬


‭reference object. Normally, if you scale an object down by 0.95 for example,‬
‭each scale will be smaller and smaller. With this option enabled, the scale‬
‭will instead refer to the object in the Center Group ID to decide what the‬
‭next scale factor should be.‬

‭Follow‬
‭This Trigger is used to make objects mimic the movement of other objects. All‬
‭options are explained below.‬

‭●‬ ‭Target Group ID:‬‭The objects you want to follow another‬‭Group ID.‬
‭●‬ ‭Follow Group ID:‬‭The Group ID that should be followed.‬‭This Group ID can‬
‭only consist of a single object.‬
‭●‬ ‭Move Time:‬‭How long you want the objects to follow‬‭the Group ID.‬
‭●‬ ‭X Mod/Y Mod:‬‭The values you put here will be multiplied‬‭with the‬
‭movement of the "Follow Group ID". For example, if the "Follow Group ID"‬

‭74‬
‭moves 50 blocks to the right, and you put 0.5 in "X Mod", the objects move‬
‭25 blocks to the right instead of 50.‬

‭Shake‬
‭The Shake Trigger applies a temporary shake effect to the screen. Be careful‬
‭to not overuse this Trigger or input large numbers into the options, as it may‬
‭result in a bad experience for players. The options are explained below.‬

‭●‬ ‭Strength:‬‭How intense the shake effect is.‬


‭●‬ ‭Interval:‬‭The interval between every shake effect.‬‭Leaving this value at 0‬
‭results in the screen shaking every frame.‬
‭●‬ ‭Duration:‬‭How long the shake effect is applied to‬‭the screen.‬

‭Animate‬
‭The Animate Trigger is used to give custom animations to Monsters, and it‬
‭can also be used to activate the animation of‬‭Animated‬‭Objects‬‭.‬

‭●‬ ‭Group ID:‬‭The Group ID of the objects you want to‬‭animate or change the‬
‭animation of.‬
‭●‬ ‭Animation ID:‬‭Only used for Monsters. Check the information‬‭box in-game‬
‭to get information about what "Animation ID" refers to what monster.‬

‭75‬
‭Keyframe Animation‬
‭This Trigger is used to activate a keyframe animation. You can find all settings‬
‭below, as well as a detailed example of its usage in the‬‭Keyframe System‬
‭chapter.‬

‭●‬ ‭Animation Group ID:‬‭Group ID of your‬‭Keyframe Triggers‬‭.‬‭It is enough for‬


‭the first Keyframe Trigger in your animation to have this Group ID.‬
‭●‬ ‭Target ID:‬‭The objects you want to follow the animation.‬
‭●‬ ‭Parent ID:‬‭The Group ID that should be used as the‬‭center for scaling and‬
‭rotating. By default objects will choose their own center. You can also set‬
‭the center of the objects using the "Group Parent ID".‬
‭●‬ ‭Time/Position/Rotation/Scale Mod:‬‭The values you put‬‭here will be‬
‭multiplied with the movement of the keyframes. For example, if the‬
‭keyframes move 50 blocks to the right, rotate 90 degrees, and scale to‬
‭4.00, and you put 0.5 for all modifiers, the target objects will only move 25‬
‭blocks, rotate 45 degrees, and scale to 2.00.‬

‭Follow Player Y‬
‭Follow Player Y Triggers are used to make objects follow the Y movement of‬
‭the player. The movement can be modified by using the different options‬
‭explained below.‬

‭●‬ ‭Target Group ID:‬‭The objects you want to follow the‬‭player's Y movement.‬
‭●‬ ‭Move Time:‬‭How long you want the objects to follow‬‭the player's Y‬
‭movement.‬
‭●‬ ‭Speed:‬‭Modifies the speed the object has when following‬‭the movement‬
‭of the player. The value you put here will be multiplied with the player‬
‭movement. For example, if the player moves 5 blocks per second and you‬
‭put 0.5, the objects will move 2.5 blocks per second.‬

‭76‬
‭●‬ ‭Delay:‬‭Delay before the objects follow the movement.‬
‭●‬ ‭Offset:‬‭Offsets the objects. Normally the objects‬‭will snap to the exact Y‬
‭position. A value of 10 is equal to one block offset above the player. Enter a‬
‭negative value to offset below the player.‬
‭●‬ ‭Max Speed:‬‭The maximum speed the objects can reach‬‭when following‬
‭the movement. The formula used to calculate the speed is (Max‬
‭Speed/(Max Speed + 1)). Thus, if you put 5.0 for "Max Speed", for example,‬
‭the objects will do 5/6 of the movement the player did in the same time.‬

‭Advanced Follow‬
‭Advanced Follow Triggers are used to make objects move towards a target‬
‭and make them follow its movement. They are by far one of the most‬
‭complex Triggers in the game. We highly suggest you follow along on your‬
‭own example when testing out the options.‬

‭77‬
‭●‬ ‭Target GID:‬‭The Group ID of the objects that should go towards the Group‬
‭ID set in "Follow GID".‬
‭●‬ ‭Follow GID:‬‭The Group ID of the object that should‬‭be the new target. You‬
‭can choose from the buttons below for more options.‬
‭●‬ ‭Priority:‬‭The priority at which the movements will‬‭be applied if an object is‬
‭affected by more than one Advanced Follow Trigger.‬
‭●‬ ‭X Only/Y Only:‬‭The objects will only follow the X‬‭or Y movement of the‬
‭Group ID in "Follow GID" respectively.‬
‭●‬ ‭P1/P2/C:‬‭Corresponds to Player 1, Player 2, and the‬‭screen center‬
‭respectively.‬
‭●‬ ‭Rotation Offset:‬‭Offsets the rotation of the objects.‬‭Enter a negative value‬
‭to offset the rotation to the left or a positive value to offset the duration to‬
‭the right.‬
‭●‬ ‭Ignore Disabled:‬‭The movement is not applied if the‬‭objects are not‬
‭active. Activating them again starts the movement.‬
‭●‬ ‭Rotate Dir:‬‭Makes the objects rotate towards the target.‬
‭●‬ ‭Rotate Easing:‬‭Adds easing to the rotation of the‬‭objects.‬
‭●‬ ‭Rotate DeadZ:‬‭A deadzone for the rotation of the objects.‬
‭●‬ ‭Init:‬‭This option is used for the second and third‬‭mode, and controls how‬
‭the values you define in "Startspeed" and "StartDir" are applied. With this‬
‭option, the values are used only when the object has no speed values.‬
‭●‬ ‭Set:‬‭This option is used for the second and third‬‭mode, and controls how‬
‭the values you define in "Startspeed" and "StartDir" are applied. With this‬
‭option, any current velocity gets overridden.‬
‭●‬ ‭Add:‬‭This option is used for the second and third‬‭mode, and controls how‬
‭the values you define in "Startspeed" and "StartDir" are applied. With this‬
‭option, the velocity gets added to the current one.‬
‭●‬ ‭Exclusive:‬‭Advanced Follow Triggers have a "Priority"‬‭value. When multiple‬
‭Advanced Follow Triggers for the same object are active, it will process‬

‭78‬
‭them in order based on "Priority". If an action is exclusive, it will not process‬
‭any other actions after it.‬

‭On the second page you can choose between 3 different modes by using the‬
‭three buttons labeled 1, 2, and 3 in the top right. We will be going through all‬
‭options and what their differences are.‬

‭The "+-" sliders on all options indicate variations. For example, if you input a‬
‭"Delay" of 3 and enter 2 into the "+-" field, the "Delay" will randomly be chosen‬
‭in a range of 2 below and above. As a result, you get 1 to 5 "Delay"..‬

‭In the first mode, the objects will simply move towards the target.‬

‭●‬ ‭Delay:‬‭Delay before the movement starts.‬


‭●‬ ‭MaxSpeed:‬‭Max speed the objects can reach. Leaving‬‭this at 0 results in no‬
‭movement at all.‬
‭●‬ ‭MaxRange:‬‭Range in which the "Follow GID" has to be‬‭to the "Target GID"‬
‭to start the movement. One block is equal to 30.‬

‭79‬
‭●‬ ‭Easing:‬‭Adds an easing to the start and end of the movement.‬

‭In the second mode, the objects will also move towards the target. However,‬
‭you have more options to customize the movement depending on how close‬
‭the objects are to the target.‬

‭●‬ ‭Delay:‬‭Delay before the movement starts.‬


‭●‬ ‭MaxSpeed:‬‭Max speed the objects can reach. Leaving‬‭this at 0 results in no‬
‭movement at all.‬
‭●‬ ‭MaxRange:‬‭Range in which the "Follow GID" has to be‬‭to the "Target GID"‬
‭to start the movement. One block is equal to 30.‬
‭●‬ ‭StartSpeed:‬‭The speed the objects have when they start‬‭their movement.‬
‭●‬ ‭StartDir:‬‭The direction the objects face when they‬‭start their movement,‬
‭with 0 meaning up, 90 right. and so on.‬
‭●‬ ‭Acceleration:‬‭The acceleration of the objects.‬
‭●‬ ‭Friction:‬‭The friction that is applied to the objects.‬
‭●‬ ‭NearDist:‬‭At what distance the objects are considered‬‭near the target. One‬
‭block is equal to 30.‬

‭80‬
‭●‬ ‭NearFriction:‬‭The friction of the objects when they get near the target.‬
‭What counts as near is configured by the "NearDist" value.‬
‭●‬ ‭NearAccel:‬‭The acceleration of the objects when they‬‭get near the target.‬
‭What counts as near is configured by the "NearDist" value.‬

‭The three boxes on the right correspond to their respective options. They‬
‭apply their setting towards a set reference object. "MaxRange" will be drawn‬
‭from the objects to the reference object. "StartSpeed" functions like a‬
‭multiplier in this setting. It will copy the movement speed of the reference‬
‭object. By inputting a 2 in the slider, you double the speed. "StartDir" makes‬
‭the objects face towards the reference object.‬

‭In the third mode the objects will also move towards the target. However, you‬
‭can also edit more attributes of the movement.‬

‭81‬
‭●‬ ‭Delay:‬‭Delay before the movement starts.‬
‭●‬ ‭MaxSpeed:‬‭Max speed the objects can reach. Leaving‬‭this at 0 results in no‬
‭movement at all.‬
‭●‬ ‭MaxRange:‬‭Range in which the "Follow GID" has to be‬‭to the "Target GID"‬
‭to start the movement. One block is equal to 30.‬
‭●‬ ‭StartSpeed:‬‭The speed the objects have when they start‬‭their movement.‬
‭●‬ ‭StartDir:‬‭The direction the objects face when they‬‭start their movement,‬
‭with 0 meaning up, 90 right and so on.‬
‭●‬ ‭Acceleration:‬‭The acceleration of the objects.‬
‭●‬ ‭SteerForce:‬‭The force that is applied when the objects‬‭steer towards the‬
‭target.‬

‭82‬
‭The three boxes on the right correspond to their respective options. They‬
‭apply their setting towards a reference object. "MaxRange" will be drawn from‬
‭the objects to the reference object. "StartSpeed" functions like a multiplier in‬
‭this setting. It will copy the movement speed of the reference object. By‬
‭inputting a 2 in the slider, you double the speed. "StartDir" makes the objects‬
‭face towards the reference object.‬

‭●‬ ‭SteerForceLow:‬‭The lowest the steer force can get.‬


‭●‬ ‭SpeedRangeLow:‬‭The speed of the objects when they‬‭are not within the‬
‭"MaxRange".‬
‭●‬ ‭SteerForceHigh:‬‭The highest the steer force can get.‬
‭●‬ ‭SpeedRangeHigh:‬‭The speed of the objects when they‬‭are within the‬
‭"MaxRange".‬
‭●‬ ‭SlowAccel:‬‭The acceleration of the objects when in‬‭the "SlowDist" distance‬
‭from the target object.‬
‭●‬ ‭SlowDist:‬‭The distance from the target object that‬‭is considered slow,‬
‭which applies the "SlowAccel" setting. One block is equal to 30.‬
‭●‬ ‭BreakForce:‬‭The force at which the objects brake when‬‭the target‬
‭suddenly goes in a different direction.‬
‭●‬ ‭BreakAngle:‬‭The angle at which the objects will brake.‬
‭●‬ ‭BreakSteerForce:‬‭The force at which the objects steer‬‭while braking.‬
‭●‬ ‭BreakSteer SpeedLimit:‬‭The max speed at which the‬‭objects can steer‬
‭while braking.‬

‭You can select from two premade settings by clicking the "Pre" button.‬

‭83‬
‭Edit Advanced Follow‬
‭This Trigger is used to edit the attributes of an Advanced Follow Trigger. An‬
‭explanation of all options can be found below.‬

‭●‬ ‭Target GID:‬‭The Group ID of the objects that should‬‭go towards the‬
‭"Follow GID".‬
‭●‬ ‭X Only/Y Only:‬‭The objects will only apply the change‬‭on the X or Y‬
‭movement respectively.‬
‭●‬ ‭Mod X/Mod Y:‬‭Modifies the movement on the X-axis and‬‭Y-axis‬
‭respectively.‬
‭●‬ ‭Speed:‬‭Modifies the speed of the objects.‬
‭●‬ ‭Dir:‬‭Modifies the direction at which the movement‬‭is applied.‬
‭●‬ ‭Target Control ID:‬‭Control ID allows you to only target‬‭a specific Group ID‬
‭when using remapping. For example, if you remap a‬‭Spawn Trigger‬‭to use‬
‭Group ID 1, 2, and 3, and you only want to target Group ID 3, you can enter‬
‭a Control ID and enable the option in the Trigger. You can find the Control‬
‭ID option in the "Extra 2" category after clicking "Edit Group" with the‬
‭Trigger selected.‬
‭●‬ ‭Redirect Dir:‬‭Redirects the direction towards a reference‬‭object, which is‬
‭input in the box to the right.‬

‭The two boxes on the right correspond to their respective options. They apply‬
‭their setting towards a reference object. "Speed" functions like a multiplier in‬
‭this setting. It will copy the movement speed of the reference object. By‬
‭inputting a 2 in the slider, you double the speed. "Dir" will apply the‬
‭movement towards the direction of the reference object.‬

‭84‬
‭Re-Target Advanced Follow‬
‭This Trigger is used to change the target of an Advanced Follow Trigger.‬

‭●‬ ‭Target GID:‬‭The Group ID of the objects that should‬‭go towards the Group‬
‭ID set in "Follow GID".‬
‭●‬ ‭Follow GID:‬‭The Group ID of the object that should‬‭be the new target. You‬
‭can choose from the buttons below for more options.‬
‭●‬ ‭Target Control ID:‬‭Control ID allows you to only target‬‭a specific Group ID‬
‭when using remapping. For example, if you remap a‬‭Spawn Trigger‬‭to use‬
‭Group ID 1, 2, and 3, and you only want to target Group ID 3, you can enter‬
‭a Control ID and enable the option in the Trigger. You can find the Control‬
‭ID option in the "Extra 2" category after clicking "Edit Group" with the‬
‭Trigger selected.‬
‭●‬ ‭P1/P2/C:‬‭Corresponds to Player 1, Player 2, and the‬‭screen center‬
‭respectively.‬

‭Keyframe‬
‭This Trigger is used to set up keyframes. You can find an explanation of all‬
‭settings below, as well as an in-depth example in the‬‭Keyframe System‬
‭chapter.‬

‭The Keyframe Trigger is one of the most complex Triggers. We suggest‬


‭following along with your own example when testing the options.‬

‭85‬
‭●‬ ‭GroupID:‬‭The objects you want to reference for your‬‭animation. Note that‬
‭these are not necessarily the objects that will do the animation. Those‬
‭objects are normally set in the Keyframe Animation Trigger. "GroupID" in‬
‭this Trigger is mainly used for referencing the art when you enable‬
‭"Preview Art". However, it is also used as the target if you do not input any‬
‭override when calling the Keyframe Animation Trigger.‬
‭●‬ ‭Duration:‬‭The duration until the Keyframe Trigger‬‭reaches the next one.‬
‭This time is always used unless it is a "Ref Only" Keyframe. "Time", "Even"‬
‭and "Dist" set how the time is used.‬
‭●‬ ‭Easing:‬‭Applies easing to the start and end of the‬‭keyframe.‬
‭●‬ ‭x360:‬‭If you want to do a full rotation (360 degrees)‬‭before reaching the‬
‭next keyframe.‬
‭●‬ ‭CCW/CW:‬‭Whether you want the rotation to be done clockwise‬‭or‬
‭counter-clockwise. Applies to all rotations, including full ones.‬

‭86‬
‭●‬ ‭SpawnGID:‬‭Spawns a Group ID when the target objects reach the‬
‭keyframe.‬
‭●‬ ‭SpawnDelay:‬‭Delay before "SpawnGID" is spawned.‬
‭●‬ ‭Prox:‬‭"SpawnGID" is spawned when the target objects‬‭are close to the‬
‭keyframe.‬
‭●‬ ‭Curve:‬‭Keyframes use Bézier curve to get to the next‬‭keyframe.‬
‭●‬ ‭Time:‬‭With this option enabled, "Duration" is used‬‭to reach the next‬
‭keyframe.‬
‭●‬ ‭Even:‬‭The time between the keyframes is distributed‬‭evenly between all‬
‭the "Ref Only" keyframes in between.‬
‭●‬ ‭Dist:‬‭The duration before reaching the next keyframe‬‭is distributed‬
‭between all "Ref Only" keyframes based on their distance from each other.‬

‭Let us look at an example to better understand how the different options‬


‭work.‬

‭87‬
‭The red Keyframe Triggers are marked as "Ref Only", while the green and blue‬
‭ones are not. The green keyframe controls the animation until the blue one,‬
‭and the blue one controls it until the end. If you set easing on the green‬
‭keyframe, that easing will be used to reach the blue keyframe. All red easing‬
‭values are ignored since they are reference points only.‬

‭The numbers in the figure are example durations set on the Triggers. If you‬
‭select "Time" on the green Keyframe Trigger, it will take 10 seconds to reach‬
‭the next red keyframe. Afterwards, the red keyframe's duration will be used to‬
‭reach the next one, so 5 seconds, and then 7 seconds from the next until you‬
‭reach the blue keyframe. As a result, it takes 22 seconds in total to reach the‬
‭blue one.‬

‭If you instead select "Even" on the green keyframe, it will ignore all the‬
‭duration values of the red (reference) keyframes, and evenly spread out the 10‬
‭seconds between each keyframes. As a result, it will take 10 seconds in total to‬
‭reach the blue one.‬

‭●‬ ‭Close Loop:‬‭The objects return back to the first keyframe‬‭after completing‬
‭the last one.‬
‭●‬ ‭Preview Art:‬‭Used to preview the art you want to animate.‬‭By default, you‬
‭only see the arrow icon. For this option to work, you have to put a Group ID‬
‭and also declare a Group Parent ID. With this option enabled, the objects‬
‭will spawn at the arrow position, with the Group Parent ID functioning like‬
‭the arrow icon.‬

‭88‬
‭●‬ ‭Ref Only:‬‭Reference objects. Objects marked as reference‬‭have a lower‬
‭opacity and are not considered for the "Even" and "Dist" options. Check the‬
‭corresponding options to see how their movement is handled.‬
‭●‬ ‭Auto Layer:‬‭Automatically layers the keyframes, so‬‭that the new one is the‬
‭highest. Most useful when using "Preview Art".‬
‭●‬ ‭Select All:‬‭Selects all keyframes.‬
‭●‬ ‭Update Art:‬‭Updates the art for the "Preview Art"‬‭option. Changes done to‬
‭the reference Group ID are not updated instantly, so you need to press this‬
‭if you change your design.‬
‭●‬ ‭Dup Anim:‬‭Duplicates the keyframes. You cannot copy‬‭and paste them‬
‭like normal, since the copy would be considered connected in that case.‬
‭●‬ ‭Reverse Order:‬‭Reverses the keyframe settings. For‬‭example, instead of‬
‭scaling by 2 and moving 5 blocks to the right, it will scale by 0.5 and move 5‬
‭blocks to the left.‬

‭89‬
‭Area Move/Rotate/Scale/Fade/Tint‬
‭Area Triggers are used to apply different effects to an area of objects. Due to‬
‭many Area Triggers having the same settings, we will be explaining their‬
‭general options first and provide specific ones below. Note that Area Triggers‬
‭are on the more complicated side. Follow along with your own example.‬

‭Area Triggers work by taking the center you provide, drawing a circle around‬
‭the center (or a specific direction depending on what you pick below the‬
‭"Deadzone" option). This is done using the length you provide and calculating‬
‭the steps in between. For example, if you have "From Opacity" at 1.00 and "To‬
‭Opacity" at 0.50, the center will be shown as 1.00 opacity, and the borders will‬
‭be at 0.50 opacity. All other steps in between will be calculated gradually. For‬
‭example, right in the middle (length/2), the opacity will be (1.00+0.50)/2 = 0.75.‬
‭Note that one block is equal to 30 for all of these.‬

‭●‬ ‭Length:‬‭Length in which objects will be affected..‬


‭●‬ ‭Offset:‬‭Offsets the center position in the X direction.‬‭The "+/-" is how off it‬
‭can go. For example, "Offset" at 120 with "+/-" at 30 would offset the center‬
‭between 3 and 5 blocks.‬
‭●‬ ‭Offset Y:‬‭Offsets the center position in the Y direction.‬‭The "+/-" is how off it‬
‭can go. For example, "Offset" at 120 with "+/-" at 30 would offset the center‬
‭between 3 and 5 blocks.‬
‭●‬ ‭Deadzone:‬‭Divides the length by the value you set‬‭here and changes the‬
‭transition between center and edge accordingly. For example, having a‬
‭length of 120 and setting a "Deadzone" of 0.5 would do 0 to 100% between‬
‭0 and 60, and stay 100% from 60-120.‬

‭90‬
‭●‬ ‭ModFront/ModBack:‬‭Modify the front and back of your‬‭center position.‬
‭The value you put here is multiplied with your center.‬
‭●‬ ‭Ignore Linked:‬‭Objects linked together will be seen‬‭as one object by‬
‭default. Enabling this object disables this and makes the objects behave as‬
‭if they are not linked. Note that you have to set an object as Group Parent‬
‭or Area Trigger for this to work.‬
‭●‬ ‭Ignore GParent:‬‭If you set a Group Parent ID it will‬‭be seen as the center of‬
‭your objects, and all objects will behave exactly like that one. The action‬
‭also only starts when you are within this object's range. Enabling this‬
‭option disables the Group Parent ID and makes all blocks behave as if they‬
‭do not have a Group Parent ID.‬
‭●‬ ‭Dont Edit AreaParent:‬‭The object that is set as Group‬‭Parent ID will not‬
‭perform any of the area actions.‬
‭●‬ ‭Easing:‬‭The easing the objects have when they start‬‭their action.‬

‭91‬
‭●‬ ‭Ease Out:‬‭Allows modifying the easing the objects have when they end‬
‭their action.‬
‭●‬ ‭Priority:‬‭If several Area Triggers of the same kind‬‭are active at once, the‬
‭one with the higher priority will perform its action.‬
‭●‬ ‭Effect ID:‬‭Specific ID that can be referenced later,‬‭for example in‬‭Edit Area‬
‭Triggers‬‭.‬

‭●‬ ‭P1:‬‭Player 1.‬


‭●‬ ‭P2:‬‭Player 2.‬
‭●‬ ‭C:‬‭Center of the screen.‬
‭●‬ ‭BL:‬‭Bottom left of the screen.‬
‭●‬ ‭CL:‬‭Left of the screen from the center.‬
‭●‬ ‭TL:‬‭Top left of the screen.‬

‭92‬
‭●‬ ‭BC:‬‭Bottom of the screen from the center.‬
‭●‬ ‭TC:‬‭Top of the screen from the center.‬
‭●‬ ‭BR:‬‭Bottom right of the screen.‬
‭●‬ ‭CR:‬‭Right of the screen from the center.‬
‭●‬ ‭TR:‬‭Top right of the screen.‬

‭The buttons below the "Deadzone" option indicate what direction the length‬
‭will be drawn. Here’s a table of all the variations and what their range looks‬
‭like.‬

‭93‬
‭Table 7.1: Direction settings.‬

‭94‬
‭95‬
‭96‬
‭For Area Move, we have these unique settings:‬

‭●‬ ‭MoveDist:‬‭Distance the objects move.‬


‭●‬ ‭MoveAngle:‬‭Angle in which objects move. 0 is up, 90‬‭right, 180 down, 270‬
‭left, and so on.‬
‭●‬ ‭Relative:‬‭Moves away in angle depending on where the‬‭center is. If the‬
‭center is above the object, it will move down. If it is to the right, it will move‬
‭left, and so on.‬
‭●‬ ‭RFade:‬‭Fade when using "Relative". Basically distance‬‭ratio between‬
‭objects. 0 means a big gap, and the higher the number the smaller the‬
‭gap ratio.‬
‭●‬ ‭XY Mode:‬‭You can enter X and Y values like in the‬‭normal‬‭Move Trigger‬
‭instead of choosing a direction.‬

‭97‬
‭For Area Rotate, we have these unique settings:‬

‭●‬ ‭Rotation:‬‭The degrees you want the objects to rotate.‬‭Enter a positive‬


‭value to rotate clockwise, and a negative value to rotate counter-clockwise.‬

‭For Area Scale, we have these unique settings:‬

‭●‬ ‭ScaleX/ScaleY:‬‭The size the objects scale in the X-axis‬‭and Y-axis‬


‭respectively.‬

‭For Area Fade, we have these unique settings:‬

‭●‬ ‭From Opacity:‬‭The opacity the objects closest to the‬‭center have.‬


‭●‬ ‭To Opacity:‬‭The opacity the objects furthest from‬‭the center have.‬

‭For Area Tint, we have these unique settings:‬

‭●‬ ‭Color Channel:‬‭The color you want to tint the objects‬‭in.‬


‭●‬ ‭%:‬‭The percentage you want to tint the color. For‬‭example, if you want to‬
‭tint a black object white and set "%" to 0.5, the object will turn gray.‬
‭●‬ ‭Main Only and Secondary Only:‬‭Some objects have a‬‭Base Color and‬
‭Detail Color, which is seen in the "Edit Object" menu. These options only‬
‭change the these colors respectively.‬
‭●‬ ‭HSV:‬‭Instead of tinting the color of a different Color‬‭Channel, you can‬
‭simply tint the same Color Channel and change the "HSV" values of it.‬

‭98‬
‭Edit Area Move/Rotate/Scale/Fade/Tint‬
‭Edit Area Triggers change the values of Area Triggers. Due to all options being‬
‭the same, you can check the section above to find detailed information about‬
‭all settings. Edit Area Triggers have the option to use Effect IDs to reference‬
‭Area Triggers. The Effect ID can be configured within the Area Triggers.‬

‭Area Stop‬
‭Area Stop Triggers stops Area Triggers. Area Stop Triggers can only reference‬
‭the Effect ID, which is configured in the Area Triggers.‬

‭Change BG/G/MG‬
‭These Triggers change the Background, Ground or Middleground‬
‭respectively. Pick a Background, Ground, or Middleground from the menu to‬
‭switch to the respective one from this Trigger's activation.‬

‭Touch‬
‭Touch Triggers are used to enable or disable a Group ID upon player touch.‬
‭Touch Triggers also function as‬‭Spawn Triggers‬‭, meaning‬‭that they can spawn‬
‭other Triggers. By default, the Touch Triggers switch between disabling and‬
‭enabling an object on player touch. It is worth noting, that moving left and‬
‭right also count as a player touch in Platformer, despite the player not‬
‭jumping.‬

‭●‬ ‭Group ID:‬‭The Group ID you want to enable, disable,‬‭or spawn.‬


‭●‬ ‭Hold Mode:‬‭Changes to enable the Group ID while the‬‭player holds, and‬
‭disabling when the player releases. By default the Touch Triggers switch‬
‭between disabling and enabling an object on player touch.‬
‭●‬ ‭Dual Mode:‬‭This is an obsolete option from 2.1, which‬‭disables counting‬
‭inputs from player 2. Avoid using this option and use "P1/P2 Only" instead.‬

‭99‬
‭●‬ ‭P1/P2 Only:‬‭Only counts touches from one player instead of both.‬
‭●‬ ‭Toggle On/Off:‬‭Toggles a Group ID on or off when the‬‭player touches. For‬
‭example, if you enable "Hold Mode" and "Toggle Off", holding will disable‬
‭the object and releasing will enable it. If you want to spawn a Group ID on‬
‭player touch, you should enable the "Toggle On" option.‬

‭Count‬
‭Count Triggers are used to enable, disable, or spawn a Group ID when an Item‬
‭ID reaches a specific number. Count IDs can be activated at any time when‬
‭that number is reached, as opposed to‬‭Instant Count‬‭Triggers‬‭which only‬
‭check if the condition is met when the Trigger is hit.‬

‭●‬ ‭Item ID:‬‭The Item ID you want to check the value for.‬‭Place the "0" object‬
‭and click "Edit Special" to configure a unique Item ID.‬
‭●‬ ‭Target Count:‬‭The number the Item ID needs to have‬‭to activate the‬
‭Group ID.‬
‭●‬ ‭Target ID:‬‭The Group ID which should be enabled, disabled,‬‭or spawned‬
‭when the Item ID reaches the "Target Count".‬
‭●‬ ‭Activate Group:‬‭Enable this option to enable a Group‬‭ID, or to spawn a‬
‭Group ID. By default, the Group ID will be disabled when the count is‬
‭reached. Reaching the count again does not reactivate the Group ID, and‬
‭Triggers are only spawned if this option is enabled.‬
‭●‬ ‭Multi Activate:‬‭Allows the Group ID to be enabled,‬‭disabled, or spawned‬
‭again when the "Target Count" is reached several times. By default, the‬
‭action will only be performed once.‬

‭100‬
‭Instant Count‬
‭Instant Count Triggers are used to are used to enable, disable, or spawn a‬
‭Group ID if an Item ID is equal, smaller, or larger than a specific number.‬
‭Instant Count Triggers only check if the condition is met when they are hit‬
‭and never again afterwards, as opposed to‬‭Count Triggers‬‭which check for‬
‭their condition constantly.‬

‭●‬ ‭Item ID:‬‭The Item ID you want to check the value for.‬‭Place the "0" object‬
‭and click "Edit Special" to configure a unique Item ID.‬
‭●‬ ‭Target Count:‬‭The number the Item ID needs to have‬‭to activate the‬
‭Group ID.‬
‭●‬ ‭Target ID:‬‭The Group ID which should be enabled, disabled,‬‭or spawned‬
‭when the Item ID reaches the "Target Count".‬
‭●‬ ‭Activate Group:‬‭Enable this option to enable a Group‬‭ID, or to spawn a‬
‭Group ID. By default, the Group ID will be disabled when the count is‬
‭reached. Reaching the count again does not reactivate the Group ID, and‬
‭Triggers are only spawned if this option is enabled.‬
‭●‬ ‭Equals/Larger/Smaller:‬‭This option will trigger "Target‬‭ID" if the Item ID is‬
‭equal, larger, or smaller respectively when the Trigger is reached.‬

‭Pickup‬
‭Pickup Triggers can be used to change the values of Item IDs.‬

‭●‬ ‭Item ID:‬‭The Item ID you want to check the value for.‬‭Place the "0" object‬
‭and click "Edit Special" to configure a unique Item ID.‬
‭●‬ ‭Count:‬‭The number you want to increase the current‬‭Item ID value by. By‬
‭default, this will use addition. Check the options below for different‬
‭arithmetics.‬

‭101‬
‭●‬ ‭Override:‬‭The Item ID value will override the current value with the new‬
‭one instead of using addition.‬
‭●‬ ‭Multiply:‬‭Multiplies the previous value with your‬‭set modifier.‬
‭●‬ ‭Divide:‬‭Divides the previous value with your set modifier.‬‭Note that the‬
‭Item ID will drop all numbers after the decimal point. For example,‬
‭dividing a value of 5 by 2 will result in 2 instead of 2.5, since the 0.5 is‬
‭dropped.‬

‭Time‬
‭Time Triggers function as an in-game Timer. In-game Timers use Item IDs to‬
‭work.‬

‭●‬ ‭StartTime/StopTime:‬‭The time you want the Timer to‬‭start and stop at‬
‭respectively. Note that you have to enable the checkbox to the right of‬
‭"StopTime" for the time to actually stop. If"StopTime" is lower than‬
‭"StartTime", "StopTime" will be ignored.‬
‭●‬ ‭ItemID:‬‭The Item ID you want to use as a Timer. Place‬‭the "0" object and‬
‭click "Edit Special" to configure a unique Item ID. Note that you have to set‬
‭the Item ID to "Time Counter" in the "Edit Special" page of the Item ID for‬
‭this Trigger to work.‬
‭●‬ ‭TargetID:‬‭The Group ID you want to spawn when "StopTime"‬‭is hit. Note‬
‭that you actually have to stop the time at the "StopTime" to enable the‬
‭Group ID. In other words, you have to enable the checkbox to the right of‬
‭the "StopTime" option.‬
‭●‬ ‭TimeMod:‬‭Modifies the Timer. The number you input‬‭here will be‬
‭multiplied with the normal Timer, resulting in the time going quicker if the‬
‭value is above 1 and slower if it is below 1.‬
‭●‬ ‭Ignore TimeWarp:‬‭Using a‬‭TimeWarp Trigger‬‭will also‬‭slow down or speed‬
‭up the Timer. Enabling this option makes the time behave the same.‬

‭102‬
‭●‬ ‭StartPaused:‬‭The Timer will display your "StartTime", but it will not start‬
‭until activated by a different Time Trigger or a‬‭Time‬‭Control Trigger‬‭.‬
‭●‬ ‭Dont Override:‬‭Time Triggers with this option enabled‬‭will only affect the‬
‭Timer if it is at 0.00 or has the "StartPaused" option enabled. If the Timer is‬
‭currently counting, the Triggers will not change the value.‬

‭Time Event‬
‭Time Event Triggers spawn a Group ID if a specific time is hit in the Timer.‬
‭Unlike the "TargetID" in the‬‭Time Trigger‬‭, the Timer‬‭does not have to stop at‬
‭this value to Trigger it.‬

‭●‬ ‭ItemID:‬‭The Item ID you want to use as a Timer. Place‬‭the "0" object and‬
‭click "Edit Special" to configure a unique Item ID. Note that you have to set‬
‭the Item ID to "Time Counter" in the "Edit Special" page of the Item ID for‬
‭this Trigger to work.‬
‭●‬ ‭TargetID:‬‭The Group ID you want to spawn when "TargetTime"‬‭is hit‬
‭●‬ ‭TargetTime:‬‭The time at which you want to spawn "TargetID".‬
‭●‬ ‭Multi Activate:‬‭The Triggers can spawn again if the‬‭"TargetTime" is hit‬
‭several times.‬

‭Time Control‬
‭Time Control Triggers can start and stop a Timer.‬

‭●‬ ‭ItemID:‬‭The Item ID you want to use as a Timer. Place‬‭the "0" object and‬
‭click "Edit Special" to configure a unique Item ID. Note that you have to set‬
‭the Item ID to "Time Counter" in the "Edit Special" page of the Item ID for‬
‭this Trigger to work.‬

‭103‬
‭Item Edit‬
‭This Trigger is used to edit an Item ID using two different Item IDs. You can do‬
‭many different operations with these two Item IDs. Note that Item Edit‬
‭Triggers are pretty complicated, so we suggest following along with your own‬
‭example.‬

‭●‬ ‭ItemID1/ItemID2:‬‭The Item IDs you want to use to do‬‭operations. Note that‬
‭depending on what option you have selected in the "Edit Special" menu in‬
‭the Item Trigger, you have to select the respective option from the menu‬
‭to the right of "ItemID1" and "ItemID2". For example, if "ItemID1" is a normal‬
‭Item ID, and "ItemID2" is a Timer, you would select the "Item" and "Timer"‬
‭options respectively. Place the "0" object and click "Edit Special" to‬
‭configure a unique Item ID.‬
‭●‬ ‭Target ItemID:‬‭The Item ID you want to edit. Note‬‭that depending on what‬
‭option you have selected in the "Edit Special" menu in the Item Trigger,‬
‭you have to select the respective option from the menu to the right of‬
‭"Target ItemID". Place the "0" object and click "Edit Special" to configure a‬
‭unique Item ID.‬

‭104‬
‭●‬ ‭Mod:‬‭Modifies the value that "ItemID1" and "ItemID2" produce. Leaving this‬
‭option at 1 will disable the third button, which is "•" in the picture below.‬

‭The three buttons in figure 7.26 correspond to how the numbers interact with‬
‭each other. We will explain what each one does, and then show some‬
‭examples for better understanding.‬

‭●‬ ‭The first button decides how the new values interact with the "Target‬
‭ItemID". If you set it to "=", the "Target ItemID" will use the new value. If you‬
‭set it to "+", the value will be added to the current value of the "Target‬
‭ItemID". Likewise, if you set it to "-", the value will be subtracted from the‬
‭current value. If you set it to "•" instead, the current value will be multiplied‬
‭with the value, while setting it to "/", divides the current value.‬
‭●‬ ‭The second button decides how "ItemID1" and "ItemID2" interact with each‬
‭other to calculate the value. If you set it to "+", "ItemID1" will be added to‬
‭"ItemID2". If you set it to "-", "ItemID2" will be subtracted from "ItemID1".‬
‭Similarly, if you set it to "•", "ItemID1" and "ItemID2" are multiplied, and with‬
‭"/", "ItemID1" will be divided by "ItemID2".‬
‭●‬ ‭The third button decides how the modifier interacts with the value that‬
‭"ItemID1" and "ItemID2" create. If you set it to "•", the value will be‬
‭multiplied with the modifier value. If you set it to "/", the value will be‬
‭divided by the modifier value.‬

‭105‬
‭To the right of these, there are two empty, optional buttons (figure 7.25),‬
‭which can be set to "N" or "A" for "neg" and "abs" respectively. In order, these‬
‭negate or find the absolute value of the number. Absolute value essentially‬
‭drops a negative sign and only uses positive values.‬

‭For our example, "ItemID1" has the value 8, "ItemID2" has the value 5, and‬
‭"Target ItemID" has the value 2. All values and operations are color coded for‬
‭convenience. As you can see, we selected "+" in the first box. This means that‬
‭the value will be added to the current value, indicated by the "I3 +" at the‬
‭bottom. In the second box, we selected "-", which means "ItemID2" will be‬
‭subtracted from "ItemID1", as indicated by "(I1 - I2)". Lastly, we set a modifier.‬
‭We chose "/" in the third box, which means that our value will be divided by‬
‭our modifier.‬

‭106‬
‭Lets replace the Item IDs with the values we chose to see what the result‬
‭should be. (Note that this is edited and cannot be achieved in normal‬
‭Geometry Dash.)‬

‭Doing the calculations, we get I3 = 2 + 3/2 = 2 + 1.5, which cannot be‬


‭represented due to how Geometry Dash rounds by default. Because of this,‬
‭the .5 is dropped and we are left with 2 + 1. Now our equation is I3 = 2 + 1 = 3,‬
‭which means the new value of our "Target ItemID" is 3.‬

‭Dropping of .5 may not be ideal in all cases. Luckily, we can fix this with the‬
‭"NA" buttons. The first "NA" button decides how the value you calculate is‬
‭handled. To use our example, this button decides how decimals are handled‬
‭for (8 - 5) / 2.000. The second "NA" decides how the new value is handled by‬
‭the "Target ItemID", so I3 in our example. Here are all the options you can set‬
‭and how they behave.‬

‭●‬ ‭NA:‬‭The default way Geometry Dash handles the numbers.‬‭Using this‬
‭mode will drop all decimal points.‬
‭●‬ ‭RND:‬‭Rounds the number to the closest integer. If‬‭we take our example,‬
‭3/2 = 1.5 would be rounded to 2, which would mean our answer would be 4‬
‭instead of 3.‬
‭●‬ ‭FLR:‬‭Stands for floor function, which means it will‬‭always round down to‬
‭the next lower integer. For example, 4/5 = 0.8 would be rounded down to 0.‬
‭●‬ ‭CEI:‬‭Stands for ceiling function, which means it will‬‭always round up to the‬
‭next higher integer. For example 1/10 = 0.1 would be rounded up to 1.‬

‭107‬
‭Item Compare‬
‭This Trigger is used to compare two Item IDs and spawn Group IDs‬
‭depending on whether their condition is true or not. Item Compare Triggers‬
‭are pretty complicated, so we suggest following along with your own‬
‭example.‬

‭●‬ ‭ItemID1/ItemID2:‬‭The Item IDs you want to compare‬‭with each other. Note‬
‭that depending on what option you have selected in the "Edit Special"‬
‭menu in the Item Trigger, you have to select the respective option from‬
‭the menu to the right of "ItemID1" and "ItemID2". For example, if "ItemID1"‬
‭is a normal Item ID, and "ItemID2" is a Timer, you would select the "Item"‬
‭and "Timer" options respectively. Place the "0" object and click "Edit‬
‭Special" to configure a unique Item ID.‬
‭●‬ ‭Mod1/Mod2:‬‭Modifiers for "ItemID1" and "ItemID2" respectively.‬‭How the‬
‭modifier interacts with the values can be changed with the "•" buttons,‬
‭which is explained below.‬
‭●‬ ‭TrueID/FalseID:‬‭The IDs that will be spawned if your‬‭condition is true or‬
‭false respectively.‬

‭108‬
‭●‬ ‭Tol+-:‬‭The tolerance. For example, if you set 0.5 here and "ItemID1" is 1,‬
‭while "ItemID2" is 0.5, this would count as true despite "ItemID1" and‬
‭"ItemID2" not being equal.‬

‭The three buttons to the right decide how the values are compared, and how‬
‭the modifiers interact with them. The first box decides the operation for‬
‭"ItemID1" and "Mod1", the second box decides the operation for "ItemID2" and‬
‭"Mod2", and the third box decides how the two values are compared to each‬
‭other.‬

‭For the first and second box, you can select the following options:‬

‭●‬ ‭"+" means that the corresponding modifier will be added to the Item ID‬
‭value.‬
‭●‬ ‭"-" means that the corresponding modifier will be subtracted from the‬
‭Item ID value.‬
‭●‬ ‭"•" means that the corresponding modifier will be multiplied with the Item‬
‭ID value.‬
‭●‬ ‭"/" means that‬‭the Item ID value will be divided by‬‭the corresponding‬
‭modifier.‬

‭109‬
‭For the third box, you can select the following options:‬

‭●‬ ‭"==" will return true if "ItemID1" is equal to "ItemID2".‬


‭●‬ ‭">" will return true if "ItemID1" is larger than "ItemID2".‬
‭●‬ ‭">=" will return true if "ItemID1" is larger than or equal to "ItemID2".‬
‭●‬ ‭"<" will return true if "ItemID1" is smaller than "ItemID2".‬
‭●‬ ‭"<=" will return true if "ItemID1" is smaller than or equal to "ItemID2".‬

‭The first "NA" decides how the left side of the equation is handled, so‬
‭"ItemID1" and "Mod1". The second "NA" decides how the right side of the‬
‭equation is handled, so "ItemID2" and "Mod2". Here are all the options you can‬
‭set and how they behave.‬

‭●‬ ‭NA:‬‭The default way Geometry Dash handles the numbers.‬‭Using this‬
‭mode will drop all decimal points.‬
‭●‬ ‭RND:‬‭Rounds the number to the closest integer. If‬‭we take our example,‬
‭3/2 = 1.5 would be rounded to 2, which would mean our answer would be 4‬
‭instead of 3.‬
‭●‬ ‭FLR:‬‭Stands for floor function, which means it will‬‭always round down to‬
‭the next lower integer. For example, 4/5 = 0.8 would be rounded down to 0.‬
‭●‬ ‭CEI:‬‭Stands for ceiling function, which means it will‬‭always round up to the‬
‭next higher integer. For example 1/10 = 0.1 would be rounded up to 1.‬

‭110‬
‭Persistent Item‬
‭This Trigger marks Item IDs as persistent. Persistent Item IDs do not get reset‬
‭when you die. However, they are reset when you exit the level.‬

‭●‬ ‭Item ID:‬‭The Item ID you want to mark as persistent.‬‭Note that if your Item‬
‭ID is a Timer, you have to select the "Timer" option to the right of "Item ID".‬
‭●‬ ‭Persistent:‬‭Marks the ID as persistent, so the value‬‭will not be reset upon‬
‭death.‬
‭●‬ ‭TargetAll:‬‭Targets all persistent Item IDs at once.‬
‭●‬ ‭Reset:‬‭Resets the Item ID to 0.‬

‭Random‬
‭Randomly triggers one of two Group IDs.‬

‭●‬ ‭Group ID 1/Group ID 2:‬‭The two Group IDs that can‬‭be triggered.‬
‭●‬ ‭Chance %:‬‭The chance that "Group ID 1" is triggered.‬‭For example, if this is‬
‭set to 80, "Group ID 1" has an 80% chance of being triggered, while "Group‬
‭ID 2" has a chance of 100% - 80% = 20%.‬

‭Advanced Random‬
‭Randomly triggers one of up to 10 Group IDs.‬

‭●‬ ‭Group ID:‬‭The Group ID you want to have a chance of‬‭being triggered.‬
‭●‬ ‭Chance:‬‭How likely it is for this Group ID to be triggered.‬‭The way the odds‬
‭are calculated is by multiplying the "Chance" value by 100, and then‬
‭dividing it by the sum of all "Chance" values so far and the one you are‬
‭about to add.‬

‭111‬
‭For example, if you add Group ID 1 with a "Chance" of 20, and then add Group‬
‭ID 2 with a "Chance" of 50, the odds will be calculated as follows. "Chance" of‬
‭Group ID 2, 50, is multiplied by 100, resulting in 5000. Afterwards, it is divided‬
‭by both the "Chance" of Group ID 1 and 2, so 5000 / 70 ≈ 71%. This is the odds‬
‭Group ID 2 will have, while Group ID 1 will have odds of (20 * 100) / 70 ≈ 29%. If‬
‭you were to add Group ID 3 with "Chance" at 60, the odds would change to‬
‭(20 * 100) / 130 ≈ 15% for Group ID 1, (50 * 100) / 130 ≈ 38% for Group ID 2, and‬
‭(60 * 100) / 130 ≈ 46% for Group ID 3.‬

‭Sequence‬
‭The Sequence Trigger is used to spawn a sequence of Triggers. Every time the‬
‭Trigger is triggered, it will advance one step further in the sequence.‬

‭●‬ ‭GroupID/Count:‬‭The Group ID you want to spawn, with‬‭"Count" being how‬


‭often you want to spawn it.‬
‭●‬ ‭MinInt:‬‭Minimum interval that has to pass before you‬‭can activate the next‬
‭step in the sequence.‬

‭112‬
‭●‬ ‭Reset:‬‭If set to 0, this option is ignored. If the Trigger is not triggered for‬
‭the duration you input here, it will stop the sequence and start from the‬
‭beginning again the next time you use it.‬
‭●‬ ‭Mode Stop:‬‭The sequence stops once you reach the end.‬
‭●‬ ‭Mode Loop:‬‭The sequence starts from the beginning‬‭again after you reach‬
‭the end.‬
‭●‬ ‭Mode Last:‬‭The sequence will finish like normal, and‬‭after hitting the‬
‭Trigger again, only the last Group ID will be triggered every time.‬
‭●‬ ‭Reset Full:‬‭If the Trigger has not been triggered‬‭for the "Reset" time, the‬
‭Trigger will return to the first Group ID in the sequence.‬
‭●‬ ‭Reset Step:‬‭If the Trigger has not been triggered‬‭for the "Reset" time, the‬
‭sequence will go back to the Group ID before the current one.‬

‭For example, let us say you have a sequence of Group IDs 1, 2, 3, and 4, and‬
‭use "Reset Step" with a "Reset" time of 1 second. You trigger the first 4‬
‭sequences. If you do not activate the Trigger for 1 second, it will trigger Group‬
‭ID 3. If you do not activate the Trigger for 2 seconds, it will trigger Group ID 2.‬

‭Spawn Particle‬
‭Spawns particles at a specific place upon activating the Trigger. Note that the‬
‭particles you want to spawn cannot have an infinite duration, and that the‬
‭Trigger will spawn the particles once on activation and not loop like normal.‬

‭●‬ ‭Particle Group:‬‭Group of the particles you want to‬‭spawn at the "Position‬
‭Group".‬
‭●‬ ‭Position Group:‬‭Position at which the particles will‬‭spawn. The Group ID‬
‭can only consist of one object.‬
‭●‬ ‭PosVarX/PosVarY:‬‭Position variance. The values you‬‭put into here are‬
‭extended to left and right for "PosVarX", and up and down for "PosVarY".‬

‭113‬
‭The particles will spawn in a random location within the boundaries you‬
‭set here. Note that one block is equal to 30. See below for an example.‬

‭Reset‬
‭Resets‬‭Collectables‬‭and the checkpoint object. Objects‬‭will appear again‬
‭when this Trigger is activated and can be collected again.‬

‭●‬ ‭Group ID:‬‭Group ID of the objects you want to reset.‬

‭Zoom‬
‭Zooms the camera. The center point for the zoom is the camera center.‬

‭●‬ ‭Zoom:‬‭The value you want to zoom to. If you want to‬‭return to the default‬
‭state, leave this value at 1.000.‬
‭●‬ ‭Time:‬‭The duration in which the zoom should happen.‬
‭●‬ ‭Easing:‬‭Easing options change the way the objects‬‭start and end their‬
‭movement.‬

‭114‬
‭Static Camera‬
‭Uses a Target Group ID as the center of the screen and locks to that object.‬

‭●‬ ‭Target Group ID:‬‭The Group ID that should be seen‬‭as the camera center.‬
‭Can only consist of a single object.‬
‭●‬ ‭X Only/Y Only:‬‭The camera only takes the object's‬‭X or Y position as the‬
‭camera X or Y center respectively.‬
‭●‬ ‭Follow:‬‭Follows the movement of the object.‬
‭●‬ ‭Easing:‬‭Adds an easing duration when following an‬‭object.‬
‭●‬ ‭Smooth Velocity:‬‭Reacts to player velocity and tries‬‭to move the camera‬
‭smoothly to where you want. The path is calculated by using a Bézier‬
‭curve.‬
‭●‬ ‭Modifier:‬‭Shifts the Bézier curve for the "Smooth‬‭Velocity" option.‬
‭●‬ ‭Exit Static:‬‭Exits the static mode and returns to‬‭the default camera‬
‭location.‬
‭●‬ ‭Exit Instant:‬‭The camera instantly snaps back to the‬‭default camera‬
‭location when using "Exit Static".‬
‭●‬ ‭Duration:‬‭The duration for the camera to reach the‬‭object.‬

‭Camera Offset‬
‭Offsets the camera center.‬

‭●‬ ‭Offset X:‬‭Moves the camera center along the X-axis.‬‭One block is equal to‬
‭10. Input a positive number to move to the right, and input a negative one‬
‭to move to the left.‬
‭●‬ ‭Offset Y:‬‭Moves the camera center along the Y-axis.‬‭One block is equal to‬
‭10. Input a positive number to move up, and input a negative one to move‬
‭down.‬
‭●‬ ‭Move Time:‬‭The duration for the camera to finish offsetting.‬

‭115‬
‭Gameplay Offset‬
‭Offsets the player by 2.5 blocks to the right, putting them in the X-axis center‬
‭of the screen (assuming no other camera modifications have been made).‬
‭Note that the movement is always 2.5 blocks (or 75 steps) no matter what‬
‭camera offset or zoom you have.‬

‭Camera Rotation‬
‭Rotates the camera.‬

‭●‬ ‭Move Time:‬‭How long it should take to reach the rotation.‬


‭●‬ ‭Degrees:‬‭Rotation you want to have. Enter a positive‬‭value to rotate‬
‭clockwise, and enter a negative one to rotate counter-clockwise. Leave this‬
‭at 0 to return to the default rotation.‬
‭●‬ ‭Easing:‬‭Changes the way the objects start and end‬‭their movement.‬

‭Camera Edge‬
‭Sets edges for the camera. If the edge is within the current screen, it will‬
‭either snap for the object to be at the edge or ignore it until the object is‬
‭outside the screen, depending on the zoom level. The camera edge will adjust‬
‭with the movement of the edge objects.‬

‭●‬ ‭Target ID:‬‭The Group ID you want to set as the edge.‬‭It can only consist of‬
‭a single object.‬
‭●‬ ‭Left/Right/Up/Down:‬‭Defines what kind of edge it is.‬‭Enabling left would‬
‭set the object as the left edge of the screen, while down would set it at the‬
‭bottom edge of the screen, and so on.‬
‭●‬ ‭Unlock:‬‭Press this button to return to the default‬‭state. You can also just‬
‭leave "Target ID" at 0.‬

‭116‬
‭Camera Guide‬
‭Does not serve any other purpose besides functioning as a guide to see the‬
‭camera edges of different zooms. Can also be used as the "Target Group" for‬
‭the‬‭Static Camera Trigger‬‭to always have a good understanding‬‭of what the‬
‭screen will look like.‬

‭●‬ ‭Zoom:‬‭The zoom level you want to display. If you want‬‭to return to the‬
‭default state, leave this value at 1.000.‬
‭●‬ ‭Offset X:‬‭Moves the outlines along the X-axis. One‬‭block is equal to 30.‬
‭Input a positive number to move to the right, and input a negative one to‬
‭move to the left.‬
‭●‬ ‭Offset Y:‬‭Moves the outlines along the Y-axis. One‬‭block is equal to 10.‬
‭Input a positive number to move up, and input a negative one to move‬
‭down.‬

‭Reverse‬
‭Reverses the player direction in Classic levels. Does not do anything in‬
‭Platformer.‬

‭Rotate Gameplay‬
‭Rotates the gameplay (not the camera) in the direction the arrow points. The‬
‭line that is below the arrow indicates the gravity.‬

‭The Rotate Gameplay Trigger direction determines how the Channel’s‬


‭Triggers are sorted. For example, if the Rotate Gameplay Trigger points up,‬
‭Triggers with a smaller Y value are triggered first, and higher ones later. If the‬
‭Trigger points right, Triggers with a smaller X value are triggered first and‬
‭higher ones later, and so on. See‬‭Channel System‬‭for‬‭more information.‬

‭117‬
‭●‬ ‭Keep Velocity:‬‭Keeps the velocity the player has before the gameplay‬
‭rotation and smoothly transitions it to the new gravity. Results in smoother‬
‭movement overall.‬
‭●‬ ‭Change Channel:‬‭Changes the Channel to the number‬‭you have entered‬
‭in the number box at the bottom.‬
‭●‬ ‭Channel Only:‬‭Only changes the Channel and does not‬‭update the‬
‭gameplay rotation.‬
‭●‬ ‭Instant Offset:‬‭The camera updates instantly when‬‭switching gameplay to‬
‭the opposite direction.‬

‭Song‬
‭Changes the song in the middle of a level.‬

‭●‬ ‭Channel:‬‭There are 5 Channels on which a song can‬‭play. Songs on‬


‭different Channels will play simultaneously, while only one song can play‬
‭on the same Channel. Note that Channels used for music are not the same‬
‭as Color Channels or the ones mentioned for‬‭Rotate‬‭Gameplay Triggers‬‭.‬
‭●‬ ‭Start/End:‬‭The time (in milliseconds) at which you‬‭want the song to start‬
‭and end.‬
‭●‬ ‭Fade In/Fade Out:‬‭The time (in milliseconds) at which‬‭the song should‬
‭fade in and out.‬
‭●‬ ‭Prep/Load Prep:‬‭Setting a song time introduces some‬‭delay depending‬
‭on the seek time. If you need the song to sync precisely, you first have to‬
‭"Prep" the Trigger, then "Load Prep" later. "Prep" overwrites any previous‬
‭"Prep", so if you have multiple Song Triggers, you have to alternate‬
‭between loading them. For example, "Prep" and "Load Prep" for the first,‬
‭"Prep" and "Load Prep" for the second, and so on.‬

‭118‬
‭Edit Song‬
‭Edits attributes of a song, such as volume, speed and also allows for proximity‬
‭options.‬

‭●‬ ‭Channel:‬‭The Channel you want to edit the song of.‬


‭●‬ ‭Duration:‬‭How long it should take for the song to‬‭change to the new‬
‭settings.‬
‭●‬ ‭Speed:‬‭Changes the speed of the song. Note that you‬‭have to enable the‬
‭"Change Speed" button for the speed to actually change.‬
‭●‬ ‭Volume:‬‭Changes the volume of the song. Note that‬‭you have to enable‬
‭the "Change Volume" button for the speed to actually change.‬
‭●‬ ‭Stop/Stop Loop:‬‭"Stop" stops the song entirely, while‬‭"Stop Loop" stops the‬
‭looping of the song, so the song will stop the next time it reaches the end.‬
‭●‬ ‭Group ID 1:‬‭Used for proximity. This is the Group‬‭ID where the distance‬
‭should be drawn from.‬
‭●‬ ‭Group ID 2:‬‭Used for proximity. This is the Group‬‭ID the distance will be‬
‭measured to. For example, if your "MinDist" is 60, the "VolNear" volume will‬
‭be played when the Group ID is within 6 blocks of Group ID 1. Choosing‬
‭"P1", "P2", or "Cam" from the buttons below turns Group ID 2 into Player 1,‬
‭Player 2, or the camera center respectively.‬
‭●‬ ‭VolNear/VolMed/VolFar:‬‭Volume near, medium, and far‬‭away for‬
‭proximity. "VolNear" means you are within the "MinDist" boundaries from‬
‭Group ID 1, while "VolMed" refers to "Dist2" and "VolFar" to "Dist3".‬
‭●‬ ‭MinDist/Dist2/Dist3:‬‭Sets the boundaries for "VolNear",‬‭"VolMed", and‬
‭"VolFar" respectively. Below is an example with "MinDist" set to 30 and‬
‭both "Dist2" and "Dist3" set to 20. "MinDist" refers to the closest length and‬
‭is drawn in red, while "Dist2" refers to the middle length and is drawn in‬
‭green. Finally, "Dist3" refers to the furthest length and is drawn in blue. The‬
‭distances stack with each other. For example, if your "MinDist" is 20 and‬

‭119‬
‭your "Dist2" is 30, the "Dist2" circle will be drawn 5 blocks from the object in‬
‭Group ID 1, and not 3 blocks.‬

‭The various arrow buttons indicate how proximity is handled. Here are all‬
‭options and how their sound is drawn. The distance options will be drawn‬
‭from the Group ID 2 object (in this case Player 1) towards the arrow direction.‬
‭In these examples, black is equal to the highest volume and gray is equal to‬
‭the lowest.‬

‭120‬
‭Table 7.2: Proximity buttons.‬

‭121‬
‭122‬
‭SFX‬
‭You can choose a sound effect (SFX) to play from the menu in the top right of‬
‭the first page.‬

‭●‬ ‭Reverb:‬‭Reverb is created when a sound occurs in a‬‭space, resulting in the‬


‭SFX changing pitch and echo accordingly. By clicking the "+" button, you‬
‭can select different spaces for the SFX to occur in.‬
‭●‬ ‭FFT:‬‭Stands for fast Fourier transform. "FFT" is used‬‭to determine the‬
‭fundamental frequencies and therefore pitches that are present in the raw‬
‭signal.‬
‭●‬ ‭Loop:‬‭Loops the SFX until stopped.‬
‭●‬ ‭Pre Load:‬‭Setting a start time introduces some delay‬‭depending on the‬
‭seek time. If you need the SFX to sync precisely, you can preload it.‬
‭●‬ ‭Start/End:‬‭Start and end of the SFX in milliseconds.‬
‭●‬ ‭FadeIn/FadeOut:‬‭Fades the SFX in and out respectively,‬‭with the values‬
‭being in milliseconds.‬

‭123‬
‭●‬ ‭Unique ID:‬‭Assigns a unique ID to SFX within their respective "SFXGroup".‬
‭By enabling the "IsUnique" option, you mark the ID as unique, resulting in‬
‭no other SFX being able to take that ID if it is in the same "SFXGroup".‬
‭●‬ ‭SFXGroup:‬‭You can have several SFX and put them into‬‭their own‬
‭"SFXGroup". This Group ID can later be edited.‬
‭●‬ ‭MinInterval:‬‭Minimum interval before the SFX can be‬‭triggered again.‬
‭●‬ ‭Override:‬‭If another SFX has the same "Unique ID"‬‭and "SFXGroup", this‬
‭new SFX will override the old one.‬
‭●‬ ‭Ignore Volume Test:‬‭SFX played at volume 0 are ignored.‬‭Enable this‬
‭option to not ignore them. This is mainly used for the proximity options,‬
‭where the sound will not play if any distance has a volume of 0.‬
‭●‬ ‭Group ID 1:‬‭Used for proximity. This is the Group‬‭ID where the distance‬
‭should be drawn from.‬
‭●‬ ‭Group ID 2:‬‭Used for proximity. This is the Group‬‭ID the distance will be‬
‭measured to. For example, if your "MinDist" is 60, the "VolNear" volume will‬
‭be played when the Group ID is within 6 blocks of Group ID 1. Choosing‬
‭"P1", "P2", or "Cam" from the buttons below turns Group ID 2 into Player 1,‬
‭Player 2, or the camera center respectively.‬
‭●‬ ‭VolNear/VolMed/VolFar:‬‭Volume near, medium, and far‬‭away for‬
‭proximity. "VolNear" means you are within the "MinDist" boundaries from‬
‭Group ID 1, while "VolMed" refers to "Dist2" and "VolFar" to "Dist3".‬
‭●‬ ‭MinDist/Dist2/Dist3:‬‭Sets the boundaries for "VolNear",‬‭"VolMed", and‬
‭"VolFar" respectively.‬

‭See figure 7.33 and table 7.2 under‬‭Edit Song Trigger‬‭for more information on‬
‭proximity.‬

‭124‬
‭Edit SFX‬
‭Edits attributes of a sound effect (SFX), such as volume, speed and also allows‬
‭setting up proximity options.‬

‭●‬ ‭Group ID:‬‭You can give the SFX Triggers you want to‬‭edit a Group ID and‬
‭change them through this field.‬
‭●‬ ‭SFXGroup/UniqueID: "‬‭SFXGroup" and "UniqueID" can be‬‭used to reference‬
‭the exact SFX you want to edit. You should put the same values you put‬
‭into the SFX Trigger here.‬
‭●‬ ‭Duration:‬‭How long it should take for the song to‬‭change to the new‬
‭settings.‬
‭●‬ ‭Speed:‬‭Changes the speed of the song. Note that you‬‭have to enable the‬
‭"Change Speed" button for the speed to actually change.‬
‭●‬ ‭Volume:‬‭Changes the volume of the song. Note that‬‭you have to enable‬
‭the "Change Volume" button for the speed to actually change.‬
‭●‬ ‭Stop/Stop Loop:‬‭"Stop" stops the song, "Stop Loop"‬‭stops the looping of‬
‭the song, so the song will stop the next time it reaches the end.‬
‭●‬ ‭Group ID 1:‬‭Used for proximity. This is the Group‬‭ID where the distance‬
‭should be drawn from.‬
‭●‬ ‭Group ID 2:‬‭Used for proximity. This is the Group‬‭ID the distance will be‬
‭measured to. For example, if your "MinDist" is 60, the "VolNear" volume will‬
‭be played when the Group ID is within 6 blocks of Group ID 1. Choosing‬
‭"P1", "P2", or "Cam" from the buttons below turns Group ID 2 into Player 1,‬
‭Player 2, or the camera center respectively.‬
‭●‬ ‭VolNear/VolMed/VolFar:‬‭Volume near, medium, and far‬‭away for‬
‭proximity. "VolNear" means you are within the "MinDist" boundaries from‬
‭Group ID 1, while "VolMed" refers to "Dist2" and "VolFar" to "Dist3".‬
‭●‬ ‭MinDist/Dist2/Dist3:‬‭Sets the boundaries for "VolNear",‬‭"VolMed", and‬
‭"VolFar" respectively.‬

‭125‬
‭See figure 7.33 and table 7.2 under‬‭Edit Song Trigger‬‭for more information on‬
‭proximity.‬

‭Event‬
‭Spawns a Group ID upon a player action. The action can be selected from the‬
‭top right menu.‬

‭●‬ ‭Group ID:‬‭The Group ID that is spawned when the player‬‭does the action.‬
‭●‬ ‭Extra ID/Extra ID2:‬‭You can input a Material ID here‬‭for the action to only‬
‭apply if you are on that Material ID. For example, if you choose "Normal‬
‭Landing" and enter a Material ID used for a specific a block, you will only‬
‭activate the Group ID if you land on that block.‬

‭TimeWarp‬
‭Speeds up or slows down time. This affects everything, including player‬
‭movement, durations in Triggers, Timers, and so on..‬

‭●‬ ‭TimeMod:‬‭Modifier for the time. The value you input‬‭here will be‬
‭multiplied with the normal time, so less than 1 will slow the time down and‬
‭above 1 will speed time up.‬

‭126‬
‭Camera Mode‬
‭Allows switching between Free Mode and Normal Mode for camera. In Free‬
‭Mode, the borders for Ship, Ball, UFO, Wave, Spider, and Swing are removed.‬

‭●‬ ‭Edit Camera Settings:‬‭Allows you to edit how the camera‬‭follows the‬
‭player in Free Mode. "Easing" changes how the camera starts and ends its‬
‭movement, while "Padding" modifies how close the player has to be to the‬
‭top or bottom of the screen for the camera to start following.‬
‭●‬ ‭Disable GridSnap:‬‭Normally the camera center will‬‭snap to the closest grid‬
‭space. With this option enabled, the snapping will not happen.‬

‭Setup MG‬
‭Moves the Middleground.‬

‭●‬ ‭Offset Y:‬‭Moves the Middleground up or down. Input‬‭a positive value to‬
‭move it up, and enter a negative value to move it down.‬
‭●‬ ‭Easing:‬‭Easing options change the way the Middleground‬‭starts and ends‬
‭its movement.‬
‭●‬ ‭Move Time:‬‭Duration until the Middleground finishes‬‭its movement.‬

‭BG/MG Speed‬
‭Modifies the speed at which the Background and Middleground follow the‬
‭player.‬

‭●‬ ‭Mod X/Mod Y:‬‭Modifies the X-axis speed and Y-axis‬‭speed respectively. The‬
‭value you input here will be multiplied with the default speed, with 0‬
‭stopping the movement entirely.‬

‭127‬
‭Counter Label‬
‭Displays Item IDs, Timers, or Points.‬

‭●‬ ‭ItemID:‬‭The Item ID that should be displayed. The‬‭value of Item IDs can be‬
‭changed with‬‭Pickup Triggers‬‭,‬‭Time Triggers‬‭or‬‭Collectables‬‭depending on‬
‭what option you choose.‬
‭●‬ ‭Time Counter:‬‭Functions as a Timer. You need a‬‭Time‬‭Trigger‬‭to use this‬
‭Timer.‬
‭●‬ ‭Seconds Only:‬‭The Timer only displays the seconds.‬
‭●‬ ‭MainTime:‬‭Also functions as a Timer that displays‬‭the exact game time.‬
‭●‬ ‭Points:‬‭Points can be configured in the "Edit Special"‬‭page of‬‭Collectables‬‭.‬
‭●‬ ‭Attempts:‬‭Displays the current attempt the player‬‭is on.‬
‭●‬ ‭Left Align/Right Align:‬‭Aligns the ID to the left‬‭or right border respectively.‬
‭The width will change depending on what value it has (for example 8 is‬
‭wider than 1). By default, the width will be extended the same to the left‬
‭and right. Choosing "Left Align", the width will expand only to the right,‬
‭while choosing "Right Align" will expand only to the left.‬

‭UI Settings‬
‭Marks objects as user interface and puts them on a UI layer which is in front of‬
‭everything else, including the Ground. The UI layer is permanent and cannot‬
‭be edited.‬

‭●‬ ‭Group ID:‬‭The objects that get marked as UI.‬


‭●‬ ‭UI Target:‬‭This Group ID is marked as the camera center‬‭reference and can‬
‭only consist of one object.‬
‭●‬ ‭XRef/YRef:‬‭The reference points for aligning the object.‬

‭128‬
‭●‬ ‭Auto/Center/Left/Right/Top/Bottom:‬‭"Auto" aligns objects based on the‬
‭camera edges of the "UI Target" object. "Center" uses the center of the‬
‭object as the camera center. "Left" uses the object as the left edge of the‬
‭camera, while "Right" uses the object as the right edge of the camera.‬
‭Similarly, "Top" uses the object as the top edge of the camera, while‬
‭"Bottom" uses the object as the bottom edge of the camera.‬
‭●‬ ‭Relative:‬‭The position of the UI will scale with the‬‭screen aspect ratio.‬

‭Visibility Link‬
‭This makes every object in a Group ID visible, as long as any of its objects are‬
‭on screen. It is useful for larger collection of blocks that go offscreen often.‬
‭Note that it cannot be toggled throughout the level.‬

‭●‬ ‭Group ID:‬‭The objects you want to be fully visible.‬‭This is processed at‬
‭level load.‬

‭129‬
‭Collision‬
‭Spawns a Group ID when two‬‭Collision Blocks‬‭collide.‬‭One of the two blocks‬
‭must have the "Dynamic Block" activated.‬

‭●‬ ‭BlockA ID/BlockB ID:‬‭Groups of Block 1 and Block 2,‬‭one of which has to‬
‭have the "Dynamic Block" option enabled.‬
‭●‬ ‭Target ID:‬‭The Group ID that gets spawned when the‬‭blocks collide.‬
‭●‬ ‭P1/P2/PP:‬‭Enabling "P1" or "P2" allows triggering‬‭upon Player 1 or 2‬
‭colliding with "BlockB ID" respectively. Enabling both options allows for‬
‭triggering when either player collides with it. "PP" triggers the Group ID‬
‭when both players collide with each other in Dual Mode.‬
‭●‬ ‭Activate Group:‬‭Activates the Group ID. By default,‬‭the Group ID will be‬
‭toggled off. Enable this option if you want to spawn a Group ID or toggle‬
‭an object on.‬
‭●‬ ‭Trigger On Exit:‬‭The Group ID will be triggered when‬‭the blocks do not‬
‭collide anymore.‬

‭Instant Collision‬
‭Instant Collision Triggers function similarly to Collision Triggers, however it is‬
‭only checked on Trigger activation if the condition is true or false. Normal‬
‭Collision Triggers check if the condition is true all the time.‬

‭●‬ ‭BlockA ID/BlockB ID:‬‭Groups of Block 1 and Block 2,‬‭one of which has to‬
‭have the "Dynamic Block" option enabled.‬
‭●‬ ‭True ID/False ID:‬‭The Group ID that gets spawned if‬‭"BlockA ID" and‬
‭"BlockB ID" collide or do not collide respectively in the moment the Trigger‬
‭is activated.‬

‭130‬
‭●‬ ‭P1/P2/PP:‬‭Enabling "P1" or "P2" allows triggering upon Player 1 or 2‬
‭colliding with "BlockB ID" respectively. Enabling both options allows for‬
‭triggering when either player collides with it. "PP" triggers the Group ID‬
‭when both players collide with each other in Dual Mode.‬

‭Collision State‬
‭Spawns a Group ID when the player enters and exits the block hitbox.‬
‭Functions as a quicker alternative to‬‭Collision Blocks‬‭.‬

‭●‬ ‭State On/State Off:‬‭The Group ID that is spawned if‬‭the player is colliding‬
‭with the Collision State hitbox or not colliding respectively.‬

‭Collision Block‬
‭The blocks used for (Instant) Collision Triggers. If you want two blocks to‬
‭collide, you will have to mark one of them as "Dynamic".‬

‭Player Touch‬
‭Toggles or spawns a Group ID if the player clicks while within the block hitbox.‬

‭●‬ ‭Group ID:‬‭The Group ID that gets spawned or toggled‬‭when the Trigger‬
‭gets activated.‬
‭●‬ ‭Activate Group:‬‭Activates the Group ID. By default,‬‭the Group ID will be‬
‭toggled off. Enable this option if you want to spawn a Group ID or toggle‬
‭an object on.‬
‭●‬ ‭Claim Touch:‬‭The player will not jump and no rings‬‭will spawn. The click‬
‭can not be buffered.‬
‭●‬ ‭Spawn Only:‬‭Clicking only spawns the Group ID and‬‭does not toggle it on‬
‭or off.‬

‭131‬
‭●‬ ‭NO Multi Activate:‬‭By default, the Group ID will be toggled or spawned‬
‭every time you click within the hitbox. With this option enabled, you can‬
‭only toggle or spawn it once.‬

‭On Death‬
‭Toggles or spawns a Group ID when the player dies.‬

‭●‬ ‭Group ID:‬‭The Group ID that gets spawned or toggled‬‭when the player‬
‭dies.‬
‭●‬ ‭Activate Group:‬‭Activates the Group ID. By default,‬‭the Group ID will be‬
‭toggled off. Enable this option if you want to spawn a Group ID or toggle‬
‭an object on.‬

‭Disable/Enable Trail‬
‭Disables and enables the player trail respectively.‬

‭Show/Hide‬
‭Shows and hides the player respectively. Hiding the player makes it invisible,‬
‭but note that you can still see the trail if enabled.‬

‭132‬
‭BG Effect On/Off‬
‭Enables and disables the background particles in Ship, Ball, UFO, Wave.‬

‭End‬
‭Marks an object as the end of the level. The player gets pulled towards it. This‬
‭Trigger can be used in both Classic and Platformer levels.‬

‭●‬ ‭TargetPos:‬‭The Group ID of the object that should‬‭be considered as the‬


‭position for the end. The Group ID can only consist of one object.‬
‭●‬ ‭SpawnID:‬‭A Group ID that gets spawned when the player‬‭reaches the end.‬
‭This is optional.‬
‭●‬ ‭Instant:‬‭The player will teleport to the end as soon‬‭as the object is on‬
‭screen instead of slowly jumping towards it.‬
‭●‬ ‭No Effects:‬‭Disables the effects that play when you‬‭reach the end, such as‬
‭the effect lines.‬
‭●‬ ‭No SFX:‬‭Disables the SFX that plays when you reach‬‭the end.‬

‭133‬
‭Player Control‬
‭Controls behavior of the player.‬

‭●‬ ‭P1/P2:‬‭What player you want to control. Both options‬‭enabled or disabled‬


‭results in both players being affected.‬
‭●‬ ‭Stop Jump:‬‭Stops the player jumping.‬
‭●‬ ‭Stop Move:‬‭Stops the player movement.‬
‭●‬ ‭Stop Rot:‬‭Stops the player rotation.‬
‭●‬ ‭Stop Slide:‬‭Stops the low friction state you are in‬‭after being launched by a‬
‭force block. It does not stop the sliding from slopes or ice blocks.‬

‭Options‬
‭Several options to change attributes of the level.‬

‭●‬ ‭Streak Additive:‬‭Changes the trail and particles to‬‭be blending.‬

‭●‬ ‭Unlink Dual Gravity:‬‭Unlinks the gravity of the icons‬‭in Dual Mode. By‬
‭default, if one icon switches gravity, the other icon will switch gravity as‬
‭well.‬
‭●‬ ‭Hide Ground/Hide MG:‬‭Makes the Ground and Middleground‬‭respectively‬
‭invisible.‬
‭●‬ ‭Hide P1/Hide P2:‬‭Hides Player 1 or Player 2 respectively.‬‭Functions the‬
‭same like the‬‭Hide Trigger‬‭.‬

‭134‬
‭●‬ ‭Disable P1 Controls/Disable P2 Controls:‬‭Disables all input for Player 1 or‬
‭Player 2 respectively.‬
‭●‬ ‭Hide Attempts:‬‭Hides the Attempts counter.‬

‭BPM Guide‬
‭Draws lines in the editor at beats per minute you configure. Helps to make‬
‭parts sync based on the BPM the song uses.‬

‭●‬ ‭BPM:‬‭Stands for beats per minute. Lines will be drawn‬‭based on this‬
‭number. For example, if you have 60 BPM, a line will be drawn every‬
‭second.‬
‭●‬ ‭BPB:‬‭Stands for beats per bar. One bar is the space‬‭between two BPM‬
‭lines. The number you input here will split each space into the‬
‭corresponding sections. For example, if you have a BPM of 60 and a BPB of‬
‭2, a line will be drawn every 0.5 seconds.‬
‭●‬ ‭Duration:‬‭How long you want the lines to be drawn.‬
‭●‬ ‭Speed:‬‭Changes the distance between the lines to account‬‭for the‬
‭different speeds.‬
‭●‬ ‭Disable:‬‭Hides the lines.‬

‭Gradient‬
‭Creates a gradient between two colors. You can change the way the gradient‬
‭looks by rotating the Gradient Trigger.‬

‭●‬ ‭Vertex Mode:‬‭Draws the gradient between 3 or 4 points‬‭which get‬


‭connected. By default, the gradient can only be a square with defined top,‬
‭bottom, left, and right boundaries. Using "Vertex Mode" allows the gradient‬
‭to have more interesting shapes.‬

‭135‬
‭●‬ ‭U/D/L/R:‬‭Used to draw the gradient if "Vertex Mode" is disabled. The‬
‭variables refer to the Group IDs of target objects set as up, down, left, and‬
‭right respectively. These variables work as boundaries for the gradient, so‬
‭you do not have to set all.‬
‭●‬ ‭BL/BR/TL/TR:‬‭Used for the "Vertex Mode" boundaries.‬‭The variables refer to‬
‭the Group IDs of target objects set as bottom left, bottom right, top left,‬
‭and top right respectively. Note that putting 3 of those variables is enough‬
‭to draw the gradient in "Vertex Mode".‬
‭●‬ ‭Blending:‬‭How the gradient behaves with colors beneath‬‭it.‬
‭●‬ ‭ID:‬‭Can be used to reference gradients. For example‬‭if you want to disable‬
‭a gradient later on.‬
‭●‬ ‭Disable All:‬‭Disables all gradients. You can disable‬‭only a single gradient by‬
‭using its "ID" and choosing the "Disable" option.‬
‭●‬ ‭Preview Opacity:‬‭The opacity the gradient has in the‬‭editor preview.‬

‭Gravity‬
‭Changes the gravity force.‬

‭●‬ ‭Gravity:‬‭Modifies the gravity. A value below 1 makes‬‭the player lighter,‬


‭while a value above 1 makes the player heavier.‬
‭●‬ ‭P1/P2/PT:‬‭The gravity only affects Player 1 or Player‬‭2 respectively. "PT" only‬
‭affects the player that touches the Trigger.‬

‭136‬
‭Teleport‬
‭Teleports the player to a set location.‬

‭●‬ ‭Target GroupID‬‭: The Group ID the player teleports‬‭to. The Group ID can‬
‭only consist of one object.‬
‭●‬ ‭Gravity:‬‭The gravity the player should have after‬‭finishing the teleportation.‬
‭●‬ ‭Normal:‬‭Normal gravity after teleporting.‬
‭●‬ ‭Flipped:‬‭Flipped gravity after teleporting.‬
‭●‬ ‭Toggle:‬‭The gravity flips to the opposite, depending‬‭on what gravity you‬
‭are when teleporting. You flip from normal to flipped and from flipped to‬
‭normal.‬
‭●‬ ‭Smooth Ease:‬‭The camera follows smoothly to the new‬‭position of the‬
‭player.‬
‭●‬ ‭Save Offset:‬‭The offset the player has to the Trigger‬‭center when‬
‭activating it is saved and applied to the target object, resulting in a slightly‬
‭offset teleport.‬
‭●‬ ‭Ignore X/Ignore Y:‬‭Does not teleport on the X-axis‬‭or Y-axis respectively.‬
‭●‬ ‭Instant Camera:‬‭The camera instantly snaps to the‬‭new position.‬

‭137‬
‭●‬ ‭Snap Ground:‬‭The Ground snaps to the new position.‬
‭●‬ ‭Redirect Dash:‬‭Rotates Dash Orb effect to match teleport‬‭exit rotation.‬
‭Only for Platformer levels.‬
‭●‬ ‭Static Force:‬‭You exit the rotation based on the rotation‬‭of the target, with‬
‭a force applied.‬
‭●‬ ‭Force:‬‭The force the player should have when exiting‬‭the teleport. The‬
‭force is applied in the direction of the target object rotation.‬
‭●‬ ‭Redirect Force:‬‭The force the player should have when‬‭exiting the‬
‭teleport. The force is applied in the direction of the target object rotation‬
‭and an input force.‬
‭●‬ ‭Min/Max:‬‭Limits the exit force. If you leave this‬‭value at 0, no limit will be‬
‭set.‬
‭●‬ ‭Mod:‬‭Modifies the input force value. The speed you‬‭have will be this value‬
‭multiplied with the speed you have when teleporting.‬

‭Shader‬
‭Shader Triggers edit how the other Shader Triggers work. You can disable‬
‭shader effects and limit the layers they affect.‬

‭●‬ ‭Disable All:‬‭Disables all other shaders.‬


‭●‬ ‭No PP:‬‭Stands for no player particles. When using‬‭a shader which only‬
‭affects the player layer, the particles might look weird due to different‬
‭rendering. This option disables the shader from the particles.‬

‭With the buttons at the bottom, you can choose the layers affected by the‬
‭shaders. The blue buttons are the highest and lowest layer that will be‬
‭affected. The green buttons are the ones in between which will be affected,‬
‭and the gray ones will not be affected.‬

‭138‬
‭ShockWave‬
‭Creates a shockwave effect.‬

‭●‬ ‭Speed:‬‭The speed at which the shockwave will happen.‬


‭●‬ ‭Strength:‬‭How strong the shockwave is. The lower the‬‭value, the less‬
‭distorted objects get.‬
‭●‬ ‭Thickness:‬‭The "thickness" of each wave. The higher‬‭the value, the thicker‬
‭the wave will be.‬

‭139‬
‭●‬ ‭WaveW:‬‭Wave width. The higher the value, the less distorted it is.‬
‭●‬ ‭FadeIn/FadeOut:‬‭Fades the shockwave in and out. The‬‭higher the value,‬
‭the longer it takes to fade in or out respectively.‬
‭●‬ ‭TimeOff:‬‭Time offset before the shockwave starts,‬‭with the value being in‬
‭seconds.‬
‭●‬ ‭MaxSize:‬‭Modifies the max size of the wave. Leaving‬‭it at 0 will put it at the‬
‭max value. The value you put here will be multiplied with the wave size.‬
‭●‬ ‭Invert:‬‭Inverts the shockwave effect to go from outside‬‭to inside instead of‬
‭inside to outside.‬
‭●‬ ‭Inner:‬‭Size of the waves in the middle of the shockwave.‬‭Option only‬
‭available with "Invert" enabled.‬
‭●‬ ‭Outer:‬‭Size of the waves at the outside of the shockwave.‬‭Higher values‬
‭means it will take longer to reach the center. Option only available with‬
‭"Invert" enabled.‬
‭●‬ ‭Target:‬‭Chooses a Group ID as the center of the shockwave.‬‭The Group ID‬
‭can only consist of one object.‬
‭●‬ ‭P1/P2:‬‭Makes Player 1 or Player 2, respectively, the‬‭center of the shockwave.‬
‭Option only available with "Target" enabled.‬
‭●‬ ‭Follow:‬‭Follows "Target". By default, it will only‬‭check the position of the‬
‭target when the Trigger is activated and spawn the shockwave there. With‬
‭this option enabled, the center will follow the target. Option only available‬
‭with "Target" enabled.‬
‭●‬ ‭Relative:‬‭The shockwave follows the screen movement.‬‭By default, it will‬
‭stay at the position it was triggered at.‬
‭●‬ ‭Screen OffX/Screen OffY:‬‭Offsets the center of the‬‭shockwave. Negative‬
‭numbers offset it to the left or bottom respectively, while positive numbers‬
‭offset it to the right or up respectively.‬

‭140‬
‭Shock Line‬
‭Creates a shock line effect.‬

‭●‬ ‭Speed:‬‭The speed at which the shockline will happen.‬


‭●‬ ‭Strength:‬‭How strong the shockline is. The lower the‬‭value, the less‬
‭distorted objects get.‬
‭●‬ ‭Thickness:‬‭The thickness of each line. The higher‬‭the value, the thicker the‬
‭wave will be.‬
‭●‬ ‭WaveW:‬‭Line width. The higher the value, the less‬‭distorted it is.‬
‭●‬ ‭FadeIn/FadeOut:‬‭Fades the shockline in and out. The‬‭higher the value, the‬
‭longer it takes to fade in or out respectively.‬
‭●‬ ‭TimeOff:‬‭Time offset before the shockline starts with‬‭the value being in‬
‭seconds.‬
‭●‬ ‭MaxSize:‬‭Modifies the max size of the line. Leaving‬‭it at 0 will put it at the‬
‭max value. The value you put here will be multiplied with the line size.‬
‭●‬ ‭Invert:‬‭Inverts the shockline. If considered in a‬‭3D perspective, the highs of‬
‭the line will become lows and the other way around.‬
‭●‬ ‭Flip:‬‭Flips the line to go from right to left instead‬‭of left to right.‬
‭●‬ ‭Rotate:‬‭Rotates the line to go from bottom to top‬‭instead of left to right.‬
‭●‬ ‭Dual:‬‭Creates two shock lines from the middle, which‬‭go to the left and‬
‭right respectively.‬
‭●‬ ‭Target:‬‭Chooses a Group ID as the center of the shockline.‬‭The Group ID‬
‭can only consist of one object.‬
‭●‬ ‭P1/P2:‬‭Makes Player 1 or Player 2 respectively the‬‭center of the shockline.‬
‭Option only available with "Target" enabled.‬
‭●‬ ‭Relative:‬‭The shockline follows the screen movement.‬‭By default, it will‬
‭stay at the position it was triggered at.‬

‭141‬
‭●‬ ‭Screen Off:‬‭Offsets the center of the shockline. Negative numbers offset it‬
‭to the left or bottom respectively, while positive numbers offset it to the‬
‭right or up respectively. Note that the directions depend on what option‬
‭you choose from the buttons above.‬

‭Glitch‬
‭Creates a glitch effect.‬

‭●‬ ‭Duration:‬‭Duration for the effect to last.‬


‭●‬ ‭Strength:‬‭Strength of the effect. All other values‬‭will be multiplied with the‬
‭strength and adjusted accordingly.‬
‭●‬ ‭Speed:‬‭Speed at which the glitch effects happen. The‬‭lower the value, the‬
‭slower the effects.‬
‭●‬ ‭SliceHeight:‬‭During the glitch effect the screen will‬‭be sliced, which refers‬
‭to the higher blocks getting offset on the X-axis.‬
‭●‬ ‭MaxSliceXOff:‬‭Max offset on the X-axis that the objects‬‭can be sliced.‬
‭●‬ ‭MaxColXOff/MaxColYOff:‬‭Max distance offset for the‬‭color on the X-axis‬
‭and Y-axis respectively.‬
‭●‬ ‭Relative:‬‭The shockline follows the screen movement.‬‭By default, it will‬
‭stay at the position it was triggered at.‬

‭Chromatic‬
‭Chromatically splits the colors.‬

‭●‬ ‭TargetX/TargetY:‬‭How far the colors will split on‬‭the X-axis and Y-axis‬
‭respectively. You have to enable the "Use X" and/or "Use Y" option for the‬
‭distance to apply.‬
‭●‬ ‭Duration:‬‭How long it takes to finish the color splitting.‬

‭142‬
‭Chromatic Glitch‬
‭Chromatically splits the colors while adding a wave effect and glitch lines.‬

‭●‬ ‭Speed:‬‭Speed at which the wave effect happens.‬


‭●‬ ‭Strength:‬‭How big the waves are.‬
‭●‬ ‭LineThickness:‬‭Thickness of the glitch lines.‬
‭●‬ ‭LineStrength:‬‭Opacity of the glitch lines.‬
‭●‬ ‭RGBOff:‬‭How far the RGB values are offset.‬
‭●‬ ‭Duration:‬‭How long until the final state is reached.‬
‭●‬ ‭SegmentH:‬‭Height of a segment. A segment consists‬‭of one wave effect‬
‭and a glitch line.‬
‭●‬ ‭RelativePos:‬‭With this option enabled, the shape of‬‭the effect will stay in‬
‭place no matter the Y height. With it off, the effect will always stay in the‬
‭center of the screen.‬

‭143‬
‭Pixelate‬
‭Pixelates the screen.‬

‭●‬ ‭TargetX/TargetY:‬‭How much the screen will pixelate‬‭on the X-axis and‬
‭Y-axis respectively. You have to enable the "Use X" and/or "Use Y" option for‬
‭the distance to apply.‬
‭●‬ ‭Duration:‬‭How long it takes to finish the color splitting.‬
‭●‬ ‭Snap Grid:‬‭Snaps the pixels to the grid. Without this‬‭option, the pixels will‬
‭smear a little when the player moves.‬

‭Lens Circle‬
‭Creates a lens circle.‬

‭●‬ ‭Size:‬‭Size of the circle. The smaller the number,‬‭the more closed the circle‬
‭is.‬
‭●‬ ‭Fade:‬‭How much the circle fades out. The smaller the‬‭number, the less‬
‭fade there is.‬
‭●‬ ‭Duration:‬‭How long it takes for the circle to appear.‬‭The circle will zoom in‬
‭or out instead of fading in.‬
‭●‬ ‭Strength:‬‭Opacity of the lens circle.‬
‭●‬ ‭Screen OffX/Screen OffY:‬‭Offsets the center of the‬‭lens circle. Negative‬
‭numbers offset it to the left or bottom respectively, while positive numbers‬
‭offset it to the right or up respectively.‬
‭●‬ ‭CenterID:‬‭Center of the lens circle. The Group ID‬‭can only consist of one‬
‭object.‬
‭●‬ ‭Tint Channel:‬‭Color Channel to use for the lens circle.‬‭It will be black by‬
‭default.‬
‭●‬ ‭Easing:‬‭Easing options change the way the circle starts‬‭and ends its‬
‭movement.‬

‭144‬
‭Radial Blur‬
‭Blurs the screen radially, so drawing a circle around the center with a given‬
‭radius.‬

‭●‬ ‭Size:‬‭Size of the blur. In other words, how much it‬‭is blurred per distance‬
‭from the center.‬
‭●‬ ‭Duration:‬‭How long it takes until the final blur state‬‭is reached.‬
‭●‬ ‭Intensity:‬‭Opacity of the blur.‬
‭●‬ ‭Ref Channel:‬‭Uses a Color Channel to reference the‬‭fade color. By default,‬
‭the fade will go towards the Background Color.‬

‭Table 7.3: "Ref Channel" behavior.‬

‭No Ref Channel‬ ‭Ref Channel‬

‭The red object has blur applied. As‬ ‭Here we set the yellow Color Channel‬
‭you can see, the blur color fades‬ ‭as the "Ref Channel", which makes‬
‭towards the Background Color,‬ ‭the blur fade towards yellow.‬
‭which looks weird on a yellow‬
‭Background.‬

‭145‬
‭●‬ ‭Screen OffX/Screen OffY:‬‭Offsets the blur center. Negative numbers offset‬
‭it to the left or bottom respectively, while positive numbers offset it to the‬
‭right or up respectively.‬
‭●‬ ‭Fade:‬‭The smaller the fade value, the more blocks‬‭will blur out. You can‬
‭compare this setting to the "Fade" setting in the‬‭Lens Circle Trigger‬‭, where‬
‭it is easier to visualize.‬
‭●‬ ‭Easing:‬‭Easing options change the way the circle starts‬‭and ends its‬
‭movement.‬
‭●‬ ‭Target:‬‭Uses a Group ID as the center the blur from.‬‭The Group ID can only‬
‭consist of one object.‬
‭●‬ ‭EmptyOnly:‬‭The blur will only be drawn to pixels that‬‭are empty.‬

‭Table 7.4: "EmptyOnly" behavior.‬

‭Without EmptyOnly‬ ‭With EmptyOnly‬

‭Motion Blur‬
‭Blurs objects based on the X-axis, Y-axis, or a Center Group ID.‬

‭●‬ ‭TargetX/TargetY:‬‭Amount of blur that will be applied‬‭to the X-axis and‬


‭Y-axis respectively.‬

‭146‬
‭●‬ ‭Ref Channel:‬‭Uses a Color Channel to reference the fade color. By default‬
‭the fade will go towards the Background Color. See table 7.3.‬
‭●‬ ‭Duration:‬‭How long it takes until the final blur state‬‭is reached.‬
‭●‬ ‭Fade:‬‭The smaller the fade value, the more blocks‬‭will blur out. You can‬
‭compare this setting to the "Fade" setting in the‬‭Lens Circle Trigger‬‭, where‬
‭it is easier to visualize.‬
‭●‬ ‭Follow Ease:‬‭Used for the "TargetID" option, which‬‭follows the object's or‬
‭player's movement to reference the blur. "Follow Ease" eases the‬
‭movement, resulting in less or more blur upon movement.‬
‭●‬ ‭Intensity:‬‭Opacity of the blur.‬
‭●‬ ‭DualDir:‬‭Blurs in both directions instead of only‬‭one. By default, "TargetX"‬
‭will only blur left and "TargetY" will only blur down.‬
‭●‬ ‭EmptyOnly:‬‭The blur will only be drawn to pixels that‬‭are empty. See table‬
‭7.4.‬
‭●‬ ‭TargetID:‬‭Uses a Group ID or the player's movement‬‭as the reference for‬
‭the blur. If the Group ID or player does not move, there will be no blur. On‬
‭quick movements, there will be a lot of blur. If a Group ID is used, it can‬
‭only consist of one object.‬

‭Bulge‬
‭Bulges the screen.‬

‭●‬ ‭Bulge:‬‭How much the screen will bulge.‬


‭●‬ ‭Radius:‬‭How large the bulge circle is.‬
‭●‬ ‭Screen OffX/Screen OffY:‬‭Offsets the center of the‬‭bulge. Negative‬
‭numbers offset it to the left or bottom respectively, while positive numbers‬
‭offset it to the right or up respectively.‬
‭●‬ ‭Duration:‬‭How long it takes for the bulge to reach‬‭its final state. The bulge‬
‭will zoom in and out instead of fading in.‬

‭147‬
‭●‬ ‭Target:‬‭Uses a Group ID as the center the bulge zooms from. The Group ID‬
‭can only consist of one object.‬

‭Pinch‬
‭Pinches the screen. Works in the opposite way of the‬‭Bulge Trigger‬‭.‬

‭●‬ ‭TargetX/TargetY:‬‭How much the screen gets pinched‬‭on the X-axis and‬
‭Y-axis respectively. The smaller the number, the smaller the pinch.‬
‭●‬ ‭Screen OffX/Screen OffY:‬‭Offsets the pinch center.‬‭Negative numbers‬
‭offset it to the left or bottom respectively, while positive numbers offset it‬
‭to the right or up respectively.‬
‭●‬ ‭Radius:‬‭The radius of the circle.‬
‭●‬ ‭Modifier:‬‭Modifies all values. All values will be‬‭multiplied with the value you‬
‭put here.‬
‭●‬ ‭Duration:‬‭How long it takes for the pinch to reach‬‭its final state. The pinch‬
‭will zoom in and out instead of fading in.‬

‭Gray Scale‬
‭Adds a grayscale filter to the screen.‬

‭●‬ ‭Target:‬‭Percentage of grayscale that is applied. For‬‭example, with 0.5 the‬


‭screen will tint 50% gray.‬
‭●‬ ‭Duration:‬‭How long until the final grayscale state‬‭is reached.‬
‭●‬ ‭Tint Channel:‬‭Tints the screen in a Color Channel‬‭instead of gray.‬
‭●‬ ‭UseLum:‬‭Refers to luminosity, which is a different‬‭way to convert color to‬
‭grayscale. Luminosity forms a weighted average to account for human‬
‭perception. The formula for luminosity is 0.21*R + 0.72*G + 0.07*B.‬
‭●‬ ‭Easing:‬‭Easing options change the way the colors start‬‭and end their‬
‭transitions.‬

‭148‬
‭Sepia‬
‭Adds a sepia filter to the screen.‬

‭●‬ ‭Target:‬‭Percentage of sepia that is applied. For example,‬‭with 0.5 the‬


‭screen will tint 50% sepia.‬
‭●‬ ‭Duration:‬‭How long until the final sepia state is‬‭reached.‬

‭Invert Color‬
‭Inverts the screen colors.‬

‭●‬ ‭Target:‬‭Percentage of how much color inversion will‬‭be applied. For‬


‭example, with 0.5 the screen will be 50% inverted.‬
‭●‬ ‭Duration:‬‭How long until the final state is reached.‬
‭●‬ ‭R/G/B:‬‭Percentage of the red, green, and blue value‬‭respectively. For‬
‭example, the color white has the RGB values 255, 255, 255. If you put the R‬
‭slider to 0.5, it will multiply 255 with 0.5, which is 127.5. Now, the new color‬
‭would be 127.5, 255, 255, which is a brighter blue color. Note that the color‬
‭values are inverted due to the Trigger.‬
‭●‬ ‭EditRGB:‬‭Allows editing the RGB values with the sliders‬‭above.‬
‭●‬ ‭TweenRGB:‬‭If you are in the inverted color state with‬‭EditRGB values, and‬
‭want to change to different RGB values the switch will be instant. With this‬
‭option enabled, they will transition smoothly to the new RGB you set.‬
‭●‬ ‭ClampRGB:‬‭Limits the values to 1 so that they cannot‬‭go past that value.‬
‭●‬ ‭Easing:‬‭Easing options change the way the colors start‬‭and end their‬
‭transitions.‬

‭149‬
‭Table 7.5: Example of Invert Color Trigger options.‬

‭"R/G/B" with 1, 1, 1‬ ‭"R/G/B" with 2, 1, 1‬ ‭"R/G/B" with 2, 1, 1 and‬


‭"ClampRGB"‬

‭Normal transition to the‬ T‭ he transition to red will‬ ‭The same result as‬
‭inverted color. Same‬ ‭ e quicker, resulting in‬
b ‭using 1, 1, 1. The‬
‭with "EditRGB" enabled‬ ‭an overall red tint. Only‬ ‭transition is still quicker‬
‭or disabled.‬ ‭with "EditRGB" enabled.‬ ‭for the red color,‬
‭however the result is‬
‭not tinted. "ClampRGB"‬
‭limits the values‬
‭between 0 and 1.‬

‭Hue‬
‭Shifts the screen hue.‬

‭●‬ ‭Degrees:‬‭How many degrees the color should shift.‬


‭●‬ ‭Duration:‬‭How long until the final state is reached.‬
‭●‬ ‭Easing:‬‭Easing options change the way the colors start‬‭and end their‬
‭transitions.‬

‭150‬
‭Edit Color‬
‭Edits the color of the screen.‬

‭●‬ ‭CR/CG/CB:‬‭Stands for color red, green and blue. Tints‬‭the screen in the‬
‭corresponding color, with 1 being no tint. The smaller the value, the more‬
‭of that color is used.‬
‭●‬ ‭BR/BG/BB:‬‭Brightness red, green and blue. Works like‬‭the "Brightness"‬
‭slider in the "HSV" menu when editing colors.‬

‭Split Screen‬
‭Splits the screen in identical sections.‬

‭●‬ ‭TargetX/TargetY:‬‭How many sections the screen gets‬‭split in the X-axis‬


‭and Y-axis respectively. The number you input here gets one more added,‬
‭so with "TargetX" at 1 you split the screen in 2 sections. You have to enable‬
‭the "Use X" and/or "Use Y" option respectively to split the screen.‬
‭●‬ ‭Duration:‬‭How long until the final state is reached.‬
‭●‬ ‭Easing:‬‭Easing options change the way the movements‬‭start and end‬
‭their transitions.‬

‭Enter Effects‬
‭Changes how blocks enter and/or exit the screen.‬

‭●‬ ‭Target Enter Channel:‬‭Input a Enter Channel ID and‬‭assign an Enter‬


‭Channel ID to objects. The Enter Effect will only affect the objects with the‬
‭same Enter Channel ID. By default, all blocks will be affected.‬
‭●‬ ‭Enter Only/Exit Only:‬‭The effect will only be displayed‬‭when the objects‬
‭enter or exit the screen respectively.‬

‭151‬
‭Table 7.6: Enter Effects.‬

‭Effect‬ ‭Explanation‬ ‭Example‬

‭ he objects do not scale in‬


T
‭and out, but they still fade‬
‭in and out.‬

‭ bjects enter the screen by‬


O
‭moving down from the top‬
‭and fading in. Objects exit‬
‭the screen by moving up‬
‭and fading out.‬

‭ bjects enter the screen by‬


O
‭moving up from the bottom‬
‭and fading in. Objects exit‬
‭the screen by moving down‬
‭and fading out.‬

‭ bjects enter the screen by‬


O
‭appearing from behind the‬
‭blocks and moving to the‬
‭right. Objects exit the‬
‭screen by moving to the left‬
‭and fading out.‬

‭Objects enter the screen by‬


‭moving in from the right‬
‭and fading in. Objects exit‬
‭the screen by disappearing‬
‭behind the blocks and‬
‭fading out.‬

‭152‬
‭Objects enter the screen by‬
‭scaling up and fading in.‬
‭Objects exit the screen by‬
‭scaling down and fading‬
‭out.‬

‭ bjects enter the screen by‬


O
‭scaling down and fading in.‬
‭Objects exit the screen by‬
‭scaling up and fading out.‬

‭Objects enter and exit the‬


‭screen in a chaotic‬
‭movement, fading and out‬
‭respectively.‬

‭Objects enter the screen by‬


‭the top half moving down,‬
‭and the bottom half moving‬
‭up. They also appear from‬
‭behind the blocks and‬
‭move to the right and fade‬
‭in. Objects exit the screen‬
‭by splitting in half, with the‬
‭top moving up and the‬
‭bottom moving down while‬
‭moving to the left and‬
‭fading out.‬

‭Objects enter the screen by‬


‭the top half moving down‬
‭and the bottom half moving‬
‭up. They move in from the‬
‭right and fade in. Objects‬
‭exit the screen by splitting‬
‭in half, with the top moving‬

‭153‬
‭up and the bottom moving‬
‭down while disappearing‬
‭behind the blocks and‬
‭fading out.‬

‭Objects enter the screen by‬


‭the top half moving down‬
‭and the bottom half moving‬
‭up while fading in. Objects‬
‭exit the screen by splitting‬
‭in half, with the top moving‬
‭up and the bottom moving‬
‭down while fading out.‬

‭ bjects enter the screen by‬


O
‭the top half moving up and‬
‭the bottom half moving‬
‭down while fading in.‬
‭Objects exit the screen by‬
‭splitting in half, with the top‬
‭moving down and the‬
‭bottom moving up while‬
‭fading out.‬

‭ bjects do not fade in and‬


O
‭out and also do not have an‬
‭Enter Effect.‬

‭154‬
‭Move/Rotate/Scale/Fade/Tint Enter‬
‭Lets you create custom Enter Effects, similar to the default ones above. Due to‬
‭these having many of the same settings, we will be explaining them all first‬
‭and only mention specific ones below. Note that one block is equal to 30 for‬
‭all of these.‬

‭●‬ ‭Length:‬‭Distance from the screen borders where the‬‭effect is applied.‬


‭●‬ ‭Offset:‬‭Offsets the screen borders. Enter a positive‬‭value to offset it to the‬
‭right, and a negative value to offset it to the left.‬
‭●‬ ‭Enter Channel:‬‭Used similarly to Group IDs. The objects‬‭you want to have‬
‭the Enter Effect can be set with "Enter Channel" under "Extra2" in "Edit‬
‭Group".‬
‭●‬ ‭Effect ID:‬‭Specific ID that can be referenced later,‬‭for example in‬‭Stop‬
‭Enter Effect Triggers.‬
‭●‬ ‭Enter Only/Exit Only:‬‭The effect is only applied on‬‭screen entrance or exit‬
‭respectively.‬
‭●‬ ‭Easing:‬‭Modifies how the objects start and end their‬‭transitions.‬

‭155‬
‭For Move Enter, we have these unique settings:‬

‭●‬ ‭MoveDist:‬‭Distance the objects move.‬


‭●‬ ‭MoveAngle:‬‭Angle at which the objects will move. 0‬‭is up, 90 right, 180‬
‭down, 270 left, and so on.‬
‭●‬ ‭XY Mode:‬‭You can enter X and Y values like in the‬‭normal‬‭Move Trigger‬
‭instead of choosing a direction.‬

‭For Rotate Enter, we have these unique settings:‬

‭●‬ ‭Rotation:‬‭The degrees you want the objects to rotate.‬‭Enter a positive‬


‭value to rotate clockwise, and enter a negative value to rotate‬
‭counter-clockwise.‬

‭For Scale Enter, we have these unique settings:‬

‭●‬ ‭ScaleX/ScaleY:‬‭The size the objects scale in the X-axis‬‭and Y-axis‬


‭respectively.‬

‭For Fade Enter, we have these unique settings:‬

‭●‬ ‭Opacity:‬‭The opacity the objects will fade to when‬‭they are near the screen‬
‭edge.‬

‭156‬
‭For Tint Enter, we have these unique settings:‬

‭●‬ ‭Color Channel:‬‭The color you want to tint the objects‬‭in.‬


‭●‬ ‭%:‬‭The percentage you want to tint the color. For‬‭example, if you want to‬
‭tint a black object white and set "%" to 0.5, the object will turn gray.‬
‭●‬ ‭Main Only and Secondary Only:‬‭Some objects have a‬‭Base Color and‬
‭Detail Color, which is seen in the "Edit Object" menu. These options only‬
‭change the these colors respectively.‬
‭●‬ ‭HSV:‬‭Instead of tinting the color of a different Color‬‭Channel, you can‬
‭simply tint the same Color Channel and change the "HSV" values of it.‬

‭Stop Enter‬
‭Stops an Enter Effect. You can stop it by referencing its Enter Channel or its‬
‭Effect ID.‬

‭157‬
‭8. Custom Objects‬
‭As mentioned earlier, you can create your own sets of Custom Objects, which‬
‭can be used across different levels. Custom Objects are in the last tab in the‬
‭"Build" category.‬

‭From left to right, the buttons indicate moving a Custom Object design up‬
‭and down a position, adding a new Custom Object, and deleting an existing‬
‭one. To add a Custom Object, first create the design. For example:‬

‭158‬
‭Now select all of the objects in your design, and click the "+" button to add‬
‭them as a Custom Object. Your design should appear as a new button in the‬
‭Custom Objects tab, as seen in figure 8.3.‬

‭You can now select the Custom Object and place it in the editor whenever‬
‭you wish. Custom Objects can consist of up to 1000 objects, and you can add‬
‭up to 200 unique Custom Objects. Select a Custom Object and click the "–"‬
‭button to delete it, as shown in figure 8.4. Note that this action cannot be‬
‭undone.‬

‭159‬
‭9. Channel System‬
‭Working with‬‭Rotate Gameplay Triggers‬‭can be tricky,‬‭especially when you‬
‭change directions often and want to use many‬‭Triggers‬‭.‬‭See the example in‬
‭figure 9.1. Normally Triggers are read from left to right, but this can lead to‬
‭issues in the example. How should the editor know when these Triggers‬
‭should be activated? This is handled by using the Channel System. Here, we‬
‭cover a short example on how to use Channels well.‬

‭In this example, we want the player to go in a circle across all sides and pulse‬
‭the background in a different color when jumping over a Spike. When‬
‭playtesting in the editor, you will find that the player does not change rotation‬
‭when reaching the top left Rotate Gameplay Trigger. This is because the‬
‭Trigger gets activated first and is immediately overridden by the Trigger in‬
‭the bottom left. To fix this, we have to change the order in which the Triggers‬
‭are read.‬

‭160‬
‭Rotate Gameplay Triggers have a "Change Channel" option, which puts the‬
‭player on a different Channel when that Trigger is activated. By default, the‬
‭player, all Triggers, and all‬‭Gameplay Objects‬‭are‬‭on Channel 0, resulting in‬
‭everything getting activated from left to right.‬

‭In our example, we want to activate the Rotate Gameplay Triggers in the‬
‭following order: bottom right, top right, top left, and bottom left. To achieve‬
‭this, we change the Channel of the player after reaching the bottom right‬
‭Trigger, as seen in figure 9.2.‬

‭After reaching the Trigger, the player is on Channel 1 instead of 0. While on‬
‭the right side of the square, we want to activate the right‬‭Pulse Trigger‬‭and‬
‭the top right Rotate Gameplay Trigger. To achieve this, we have to put them‬
‭on the same Channel as the player.‬

‭To put objects on a different Channel, first select them and click "Edit Group".‬
‭In the bottom right of the menu, you will find a textbox titled "CH". This refers‬
‭to the Channel of the objects. As seen in figure 9.3, you can input "1" in "CH" to‬
‭put them on the same Channel as the player.‬

‭161‬
‭We will now activate the first and second Pulse and Rotate Gameplay Triggers‬
‭in the correct order. When reaching the second Rotate Gameplay Trigger, we‬
‭want to put the player on a different Channel again. If we do not do this, the‬
‭top left Rotate Gameplay Trigger is activated at the same time as the second‬
‭one, resulting in unwanted behavior. Similar to figure 9.2, we now change the‬
‭Channel of the player to 2 by using the "Change Channel" option in the‬
‭Rotate Gameplay Trigger.‬

‭162‬
‭We repeat this for all Triggers. We change the Triggers that we want to‬
‭activate to the Channel the player is currently on, and we change the Channel‬
‭of the player whenever we reach a new Rotate Gameplay Trigger. See figure‬
‭9.5 for the final settings for our example.‬

‭Channels should be used for‬‭Speed Changers‬‭as well,‬‭to ensure that the sync‬
‭does not behave weirdly when having rotated or reversed gameplay. When‬
‭playtesting the music in the editor, you will see that the line now changes‬
‭directions accordingly and at the right position. If you have several Triggers on‬
‭one Channel, they will be read in the direction of the arrow. You can playtest‬
‭the music and see the direction in which the line goes to see the order in‬
‭which the Triggers or Gameplay Objects will be activated.‬

‭163‬
‭10. Keyframe System‬
‭The Keyframe System allows you to create precise animations using‬
‭movement, rotation, and scaling with a single Trigger. This is done with‬
‭several keyframes, which can be freely modified in turn.‬

‭We will be going through all the options by creating an example. Assume we‬
‭want to animate a cube moving in and jumping over Spikes. We will first‬
‭create the cube we plan to animate and assign a Group ID to it, as well as the‬
‭Spikes the cube will interact with, as seen in figure 10.2.‬

‭164‬
‭The cube has Group ID 1 assigned to it. We will now place a‬‭Keyframe Trigger‬
‭to understand how basic movement using keyframes works. Place one of‬
‭these Triggers, click "Copy+Paste" to duplicate it, and move the copied Trigger‬
‭some blocks to the right. The Triggers will draw a green line between them, as‬
‭seen in figure 10.3. The line indicates that they are connected and are part of‬
‭the same animation.‬

‭The Keyframe Triggers by themselves are not enough to create the animation.‬
‭You need to configure a‬‭Keyframe Animation Trigger‬‭as well. Assign a Group‬
‭ID to your first Keyframe Trigger, and input your Group IDs in the Keyframe‬
‭Animation Trigger, as seen in figure 10.4. The Animation Group ID refers to the‬
‭Group ID your first Keyframe Trigger has. The Target ID refers to the objects‬
‭that get animated. The Parent ID is optional and is used to reference the‬
‭center of the target objects for rotation and scaling. By default, all objects will‬
‭use their own center. The second page of the Keyframe Animation Trigger‬
‭modifies several animation options. We will be using some of them later. For‬
‭more information regarding the settings, check its subchapter in the Triggers‬
‭chapter.‬

‭165‬
‭When playtesting, the cube should now move the same distance to the right‬
‭as the distance between the two Keyframe Triggers. We can now add more‬
‭Keyframe Triggers and change their positions, rotations, and sizes, and the‬
‭cube will follow all of them. However, creating precise animations with only‬
‭the Keyframe Triggers is difficult, as we do not have any reference points. To‬
‭change this, we will use the "Preview Art" option in the Keyframe Triggers.‬

‭For the Keyframe Triggers to preview our cube, we have to assign a Parent‬
‭Group ID to the cube. This Parent Group ID works as a reference point for the‬
‭Keyframe Triggers. All movement, rotation, and scaling will use the Parent‬
‭Group ID as the center. Our cube should scale and rotate around its own‬
‭center, so we will add a new object to our cube, as seen in figure 10.5. This‬
‭object also follows the animation. To mark this object as the Group Parent ID,‬
‭we will click the "P" button in the‬‭Edit Group‬‭menu.‬‭Doing so turns the Group‬
‭ID pink, as seen in figure 10.6.‬

‭166‬
‭In the first Keyframe Trigger, we can input the Group ID of our cube now. By‬
‭clicking the Preview Art option, the keyframe will be replaced with our cube‬
‭objects, as seen in figure 10.7. Note that the Preview Art option does not work‬
‭without the objects having a Group Parent ID, as the keyframe Triggers have‬
‭no center to draw from without it. You can enable the Preview Art option in‬
‭the other keyframe Triggers and hide the Group Parent ID object now.‬

‭167‬
‭With our keyframes looking like our art now, we have a lot more control over‬
‭the movements. However, with all the frames showing at full opacity and‬
‭layering between them inconsistently, doing exact animations is difficult. You‬
‭can enable the "Ref Only" option in Keyframe Triggers for lower opacity, as‬
‭seen in figure 10.7. The "Auto Layer" option fixes our layering issues. This‬
‭option draws the most recent keyframe at the highest layer, so you always‬
‭have it completely visible.‬

‭You can now create your animation by setting more keyframes at important‬
‭locations. In our example, this is the beginning of the animation, the position‬
‭where the cube begins to jump, the movement and rotation during the jump,‬
‭and the position the cube lands at. You can modify each keyframe position,‬
‭rotation, and size, as seen in figure 10.8.‬

‭168‬
‭If you look closely, the jump is not smooth at all. It consists of only straight‬
‭lines between frames with no curvature. To fix this, enable the "Curve" option‬
‭for the relevant Keyframe Triggers, which results in a much smoother‬
‭animation, as seen in figure 10.9.‬

‭169‬
‭When playtesting, you will notice that the animation still looks weird. The‬
‭movement speed between the frames is inconsistent, resulting in the jump‬
‭being slower than the sliding. The is is because of the "Time" option, which‬
‭checks for the "Duration" value. Right now, the "Duration" value is 0.5, which‬
‭means the animation from one keyframe to the next one takes 0.5 seconds.‬
‭However, we want the duration to change based on the distance of the‬
‭Triggers. Triggers that are further apart take longer than ones closer to each‬
‭other.‬

‭We can achieve this by enabling the "Dist" option. The "Even" option makes‬
‭the time between keyframes even, disregarding the distance. Note that the‬
‭first Keyframe Trigger should always use the "Time" option, as the other‬
‭keyframes marked as "Ref Only" will not be considered for the other options‬
‭otherwise, resulting in rash movements. The Keyframe Triggers should look‬
‭like this now.‬

‭170‬
‭Depending on how many keyframes you placed, the movement may still look‬
‭too slow. You can change this by modifying the time variable in the Keyframe‬
‭Animation Trigger. On the second page, you will find the "Time Mod" option,‬
‭which speeds up or slows down your animation depending on what value you‬
‭put. A value smaller than 1 will speed the animation up, while a value greater‬
‭than 1 will slow the animation down. Play around with the "Time", "Even",‬
‭"Dist", "Duration", and modifier settings to find a good balance to create‬
‭smooth movements.‬

‭With this, our first animation is complete. Assume that we want to create a‬
‭second cube jumping over the Spikes from the other side using the same‬
‭keyframe animation. We first create our second cube and give it a new Group‬
‭ID. We now want to make a copy of our keyframes. However, using‬
‭"Copy+Paste" does not work, as the keyframes will be connected. We can‬
‭instead use the "Dup Anim" button within the keyframes. By inputting our‬
‭new Group ID, we are now referencing the new cube. Assign a new Group ID‬
‭to the first Keyframe Trigger and place a new Keyframe Animation Trigger‬
‭with all new Group IDs. The result is figure 10.11.‬

‭171‬
‭When playtesting, you will see that the second cube will not jump over the‬
‭Spikes. Instead, it will follow the exact movement of the first cube. By clicking‬
‭the "Reverse Order" button, the animation is done in reverse like we want.‬
‭Movement to the right will go to the left instead.‬

‭If we want to change anything about our cube art, for example adding more‬
‭details or changing the color, we will see that the Keyframe Trigger art is not‬
‭updated accordingly. To fix this, click the "Update Art" button in any Keyframe‬
‭Trigger.‬

‭Due to how we set up the keyframes, our rotations will always be in the‬
‭correct direction. However, you might want to rotate some frames clockwise‬
‭and others counter-clockwise. You can achieve this by clicking "CW" for‬
‭clockwise or "CCW" for counter-clockwise. By default, rotations happen in the‬
‭closer direction. The "x360" option adds an entire rotation before reaching the‬
‭keyframe.‬

‭We want to finalize our animation by adding a screen pulse when the cubes‬
‭land. To do this, we can use the "Spawn ID" feature in the Keyframe Triggers.‬
‭Configure a‬‭Pulse Trigger‬‭like normal and assign it‬‭a Group ID. Input this‬
‭Group ID into a Keyframe Trigger. The pulse will spawn when the animation‬
‭reaches that keyframe. Using the "SpawnDelay" option can delay the Trigger‬
‭by a set duration. Alternatively, you can use the "Prox" option to spawn the‬
‭pulse when the cube is close to the keyframe.‬

‭172‬
‭And with that, our animation is finished. Figure 10.12 shows the final setup.‬
‭You can move the Keyframe Triggers out of the screen now without the‬
‭animation changing. For an easy way to select all keyframes in an animation,‬
‭click one of them and click the "Select All" button.‬

‭173‬
‭11. Auto-Build System‬
‭The Auto-Build System allows you to create designs from a premade‬
‭template. This makes it particularly useful to speed up block design creation.‬
‭However, the system can also be used across levels, making it work well for 3D‬
‭lines, layouts, and more too. To get started, place one of the last 3 objects in‬
‭the Blocks tab (first tab under "Build") in the editor. These are called‬
‭Smart-Blocks. Afterwards, click "Edit Special" to open the following menu:‬

‭We will be going through all the settings by creating several examples. First,‬
‭we will use premade templates to achieve some basic designs. Then, we will‬
‭set up our own templates for more complex designs and use the system to‬
‭generate random Spike designs.‬

‭We start by creating a new template. To do this, go to the "Browser" tab. It‬
‭should look like figure 11.2 when you first open it. Click the "New" button and‬
‭enter a name to create a new template.‬

‭174‬
‭You will see information about our template below the name. "Defined" refers‬
‭to how many different templates we have created. "Variations" refers to how‬
‭many variations our designs have. The "46" refers to the default template‬
‭blocks, which we will use in our first example to create a block design.‬

‭175‬
‭Click the "Browse" button to see all premade Smart-Block templates, as seen‬
‭in figure 11.4. By clicking on a template, you can add it to the editor. The‬
‭amount of templates you add does not matter, but by creating all 46‬
‭premade ones, you ensure your template is functional for simple structures.‬
‭For our example, we will design all templates.‬

‭176‬
‭We can now start creating our design on the template. Blocks with dashed‬
‭outlines function as references. You fill out the solid outline blocks as if the‬
‭reference blocks were in your design. See the figure below.‬

‭You can build your design across different layers. Additionally, you can add‬
‭details up to 1 block space outside of the Smart-Block. After finishing every‬
‭design, we have the result in figure 11.7.‬

‭177‬
‭Now that we have finished our design, we want to update our template to‬
‭include our decoration. Select everything you have created, as well as the‬
‭Smart-Blocks. Go into the "Browser" tab again and ensure you use your‬
‭template. After doing so, click the blue "Template" button on the initial page.‬

‭If you return to the screen from which we copied the premade templates, our‬
‭new designs can now be seen, as shown below.‬

‭178‬
‭With that, we have created our first template. We now want to test it by‬
‭generating the design for custom structures. To do so, build structures using‬
‭the Smart-Blocks, as seen in figure 11.10. After doing so, select all the‬
‭Smart-Blocks, open the system's menu from "Edit Special", and click the‬
‭"Create" button. This gives the result in figure 11.11.‬

‭We can automatically fill any Smart-Block structures with our template‬
‭design. It can also be used across levels if we wish to reuse it at any point.‬

‭179‬
‭Even though the premade templates worked well for our structures, we are‬
‭still limited in what we can create. Because of this, we now want to add to our‬
‭template and expand it with new structures and slopes. Click the "Create All"‬
‭button to paste all of your templates so far. Click "Paste Template" to see the‬
‭first structure we want to expand. As you can see, the template does not‬
‭create the designs correctly, as seen in figure 11.12. We now recreate our‬
‭design in the new structures to be correct, as seen in figure 11.13.‬

‭180‬
‭We created these structures like new templates. We now also want to add‬
‭slopes to our templates. To do this, we can make our own templates to‬
‭decorate. To create your own templates, use the Smart-Blocks to create the‬
‭structures you need. With more variations, your result gets more precise.‬

‭You would usually have to create versions for all rotations of the slopes.‬
‭However, by enabling "Allow Rotation", "Allow Flip X", and "Allow Flip Y" in the‬
‭main menu, seen below, one version is enough.‬

‭181‬
‭We can now fill the slopes with our design. Like with the premade templates,‬
‭we can place details up to 1 block space outside the Smart-Blocks.‬

‭Let us create a new template now with all the new templates added. Like‬
‭before, go to the "Browser" tab and create a new template. Use it, select all‬
‭designs along with their Smart-Blocks, and click "Template". The Auto-Build‬
‭System will deconstruct our slopes into singular blocks, as shown in figure‬
‭10.17. With that, we have finished our second template.‬

‭182‬
‭Templates can have several variations, indicated by a small number on the‬
‭templates, as seen in figure 11.18. Variations can have different odds of being‬
‭used, which can create more details. In our third and final example, we want‬
‭to create a template that generates unique configurations of Spikes on the‬
‭ground.‬

‭We first decide what Spike variations we want to use. The best way to achieve‬
‭this is to create all the variations we want in the editor as follows:‬

‭183‬
‭As you can see, the Spikes always start and end with the same Spikes. We also‬
‭want our Spikes to be variable in length and only have the corner Spikes at‬
‭the start and end. To achieve this, we will be using reference blocks.‬
‭Reference blocks indicate that a variation gets used if another Smart-Block is‬
‭at the location of the reference block. We can use this to set up our templates,‬
‭as shown in figure 11.21. The left corner Spike requires another Spike to the‬
‭right of it, while the right corner Spike requires another Spike to the left of it.‬
‭(You mark a Smart-Block as a reference by clicking the "Reference Only"‬
‭option, as shown in figure 11.20.)‬

‭184‬
‭For our other Spikes, we require another Spike to the left and the right of‬
‭each. We can use the reference blocks to indicate this by placing one to the‬
‭left and one to the right of our Smart-Block. Using the same templates six‬
‭times for all our Spike variations leaves us with the result shown in figure 11.22.‬

‭We now create a new template, and update it with the templates we created.‬
‭The template browser should show our corner Spikes and one of the other six‬
‭Spikes with a small "6" on it.‬

‭185‬
‭You can click on the Spike template to view all variations, as seen in figure‬
‭11.24. Right now, none of the variations have the odds to appear. To change‬
‭this, click all variations and hit the "Add" button.‬

‭186‬
‭Doing so has made the odds of each appear below the respective variation.‬
‭Currently, every variation has a one in six chance. For our example, we want‬
‭the fifth variation to be rarer than the others and the third to be more likely.‬
‭To do this, we first deselect variation five and click "Add" to increase their‬
‭odds. After that, we deselect all besides variation three and click "Add". This‬
‭process changes the odds of the selected variations appropriately.‬

‭Now, all the odds should have changed accordingly. We can now place‬
‭Smart-Blocks and click "Create" to generate unique variations of ground‬
‭Spikes, with each Spike having different odds, the length being variable, and‬
‭the corner Spikes always at the correct position. Figure 11.26 shows some‬
‭examples.‬

‭187‬
‭12. Pause Menu‬
‭There are various options and buttons that can customize your experience in‬
‭the editor. These are mostly found in the Pause Menu of the editor, which is‬
‭found by clicking the button in the top right. It looks like this:‬

‭Here, there are a lot of options (seen as checkboxes) and buttons that may or‬
‭may not be self-explanatory. In this chapter, a small description of each is‬
‭provided in case you need help. For clarity, the options are shown inside a‬
‭blue box, while the buttons are shown inside the red boxes.‬

‭Options‬
‭These options, shown in blue in figure 11.1, customize the editor view in‬
‭specific ways. In other words, they have no actual effect on the level itself, but‬
‭rather the experience of making it. Here is a short description of each one.‬

‭188‬
‭●‬ ‭DebugDraw:‬‭Draws hitboxes for objects that interact with the player. The‬
‭hitboxes of blocks are drawn in white, while the hitboxes of obstacles, such‬
‭as saws and Spikes, are drawn in red. In other words, collision with a red‬
‭line leads to death.‬
‭●‬ ‭Hide Invisible:‬‭Hides objects that are set to be invisible‬‭in the editor. (This‬
‭only affects objects that are set to "Hide" inside‬‭Extras‬‭of‬‭Edit Group‬‭.)‬
‭●‬ ‭Preview Mode:‬‭Shows the level close to how it looks‬‭in-game when played.‬
‭This means that you can see how the colors of objects, the Background,‬
‭Ground, and so on look together while in the editor.‬
‭●‬ ‭Preview Animations:‬‭Shows‬‭Animated Objects‬‭how they‬‭look in-game.‬
‭●‬ ‭Preview Particles:‬‭Shows particles how they look in-game.‬
‭●‬ ‭Preview Shaders:‬‭Shows shader effects how they look‬‭in-game.‬
‭●‬ ‭Show Ground:‬‭Shows the Ground. Disabling this is useful‬‭if you want to‬
‭place objects underneath it.‬
‭●‬ ‭Show Object‬‭Info:‬‭Shows some information about selected‬‭objects. This is‬
‭seen as text in the top left of the editor. The different abbreviations are as‬
‭follows: "C" is Color Channel, "C1" is Base Color, "C2" is Detail Color, "G" is‬
‭grid position, and "EL" is editor layer.‬
‭●‬ ‭Show Grid:‬‭Shows the editor grid.‬
‭●‬ ‭Select Filter:‬‭Lets you use the Group ID and Color‬‭Channel filters in the‬
‭"Delete" tab to select objects (while in the "Edit" tab).‬
‭●‬ ‭Ignore Damage:‬‭Lets you playtest without dying, regardless‬‭of the‬
‭obstacles you touch.‬

‭189‬
‭Buttons‬
‭The buttons seen in red in figure 12.1 perform various actions that are helpful‬
‭when creating. First are the two buttons in the center at the bottom, which‬
‭toggle‬‭music guidelines‬‭and open this guide, respectively.‬

‭●‬ ‭ReGroup:‬‭If you have selected objects with various‬‭Group IDs, you can use‬
‭this to change all the corresponding Group IDs to use the lowest ones not‬
‭yet used.‬
‭●‬ ‭Create Loop:‬‭After selecting a Trigger setup, you‬‭can click this to create a‬
‭Spawn Loop for you.‬
‭●‬ ‭Keys:‬‭Shows various key bindings that are useful while‬‭in the editor.‬
‭●‬ ‭AlignX/AlignY:‬‭If you have various objects selected,‬‭they are all aligned‬
‭evenly on the X-axis or Y-axis respectively.‬
‭●‬ ‭Build Helper:‬‭If you select various objects in your‬‭level, including Triggers,‬
‭and click this, any already used Group IDs and their references inside‬
‭Triggers will be distributed to new unused Group IDs. Useful for‬
‭collaborations where some people may have used overlapping Group IDs.‬
‭●‬ ‭Copy+Color:‬‭Copies the selected objects including‬‭all of their Color‬
‭Channels' starting settings. Useful for copying and pasting across levels. By‬
‭default, copying and pasting does not include the Color Channel info.‬
‭●‬ ‭Select All:‬‭Selects every object in the level.‬
‭●‬ ‭Paste+Color:‬‭Pastes the objects and Color Channel‬‭info after using‬
‭"Copy+Color".‬
‭●‬ ‭Select All Left/Right:‬‭Selects all objects to the‬‭left or right, respectively, of‬
‭where you are in the editor.‬
‭●‬ ‭Create Extras:‬‭This adds outline objects for certain‬‭types of blocks, such as‬
‭the ones that look like rocks.‬
‭●‬ ‭Unlock Layers:‬‭Unlocks all layers that are locked‬‭at once.‬

‭190‬
‭●‬ ‭New GroupX/Y:‬‭Assigns new Group IDs to the selected objects, going from‬
‭left to right or bottom to top respectively.‬
‭●‬ ‭Reset Unused:‬‭Resets all Color Channels that are not‬‭used by any objects.‬
‭●‬ ‭Uncheck Portals:‬‭Unchecks all checked Portals. Checked‬‭Portals show the‬
‭roof and ground boundaries.‬

‭Not mentioned in this list is the gear in the top right. This is used to customize‬
‭the editor in various ways. You can, for example, increase the amount of rows‬
‭or buttons per row for "Build" and "Edit". This is helpful when working with‬
‭tabs that have many buttons. Additionally, there are many other options that‬
‭toggle different things in the editor. If you are unsure what an option does,‬
‭click the information box (seen as an "i" button).‬

‭191‬
‭13. Sharing Your Level‬
‭Verifying‬
‭Once you are finished with your level, you have to verify it before you can‬
‭publish it. This means that you have to beat your level by clicking "Save and‬
‭Play" in the‬‭Pause Menu‬‭. You can also click the play‬‭button from the Level‬
‭Menu (figure 13.1). It must be an attempt from the start of the level, so a‬‭Start‬
‭Position‬‭cannot be used. If your level has any‬‭User‬‭Coins‬‭, these must also be‬
‭collected. Note that you can collect the User Coins on different attempts, as‬
‭long as all lead to you beating the level. For example, if your level has 2 User‬
‭Coins, you can collect the first in one attempt, and then the second in another‬
‭attempt.‬

‭Level Menu‬
‭After successfully verifying your level (and its potential User Coins), head out‬
‭of the level and go to the Level Menu, seen in figure 13.1. As you can see, it says‬
‭that the status is "Verified" on the bottom right. This means that you are ready‬
‭to upload your level.‬

‭192‬
‭The other text gives various other details about the level. To the left is the‬
‭level's length if the Game Type is Classic: 0-10 seconds is "Tiny", 10-30 seconds‬
‭is "Short", 30-60 seconds is "Medium", 60-120 seconds is "Long", and 120+‬
‭seconds is "XL" (for Extra Long). If the level is Platformer, this will simply say‬
‭"Plat." since these levels' length cannot be determined easily. In the middle is‬
‭the starting song, and below that is the version and ID (once shared).‬

‭On the right are buttons for various actions. First is deleting the local editor‬
‭level. This action cannot be undone, so only use this if you are certain. Below‬
‭that is a button that opens this guide. Third is a button to make another‬
‭editor copy of the level, and finally is a button to move the level to the top of‬
‭your editor levels (indicated by the arrow). Clicking this will put the level at the‬
‭top in the list seen by clicking the back arrow in the top left. To organize this‬
‭list better, you can put your level into a specific folder, indicated by the folder‬
‭with a "0" on the left side of the menu. The info button in the bottom left‬
‭shows various statistics about your level.‬

‭Before sharing your level, putting in a title and description at the top is most‬
‭important. The title of a level cannot be updated once it is shared. You would‬
‭have to reupload a new copy with a new name. However, the description can‬
‭easily be changed. Note that writing one is optional.‬

‭Uploading‬
‭Once you have set a title you are satisfied with, click the third big button. This‬
‭opens the level sharing interface, which is shown below. Here, the name and‬
‭description is shown at the top. Below that, you can select how many Stars or‬
‭Moons you want to request. To decide this accurately, we recommend playing‬
‭levels on the Featured tab and getting an idea of the difficulty of rated levels.‬
‭Note that you can skip choosing one without any problems later.‬

‭193‬
‭In the top right, indicated by the gear, are some extra settings. Clicking this‬
‭opens the menu seen in figure 13.3. Here, you can choose whether you want‬
‭to allow users to copy your level into their editor or not. You can also check‬
‭"Requires Password" to require users to input a password from 4 to 6‬
‭numbers long to copy it.‬

‭There is also an option for "Unlisted", which means that your level does not‬
‭show on any level lists or general search results. This means that it will not‬
‭show on your profile either. For users to find it, they must search the exact ID.‬
‭On top of being unlisted, you can also enable "Friends Only", which means a‬
‭user must be your friend and search the exact ID to find it. You can, for‬
‭example, enable these options alongside "Allow Copy" to share a level to a‬
‭friend you want to collaborate with.‬

‭194‬
‭Once you are happy with all these settings, go ahead and click "Share Level".‬
‭This will upload your level to the servers if there are no issues. On the Level‬
‭Menu, the ID field will now be updated with your level's ID. This can be shared‬
‭with others to help them find your level. To see how your level looks on the‬
‭servers, head back to your list of editor levels seen below.‬

‭195‬
‭Here, click the button in the bottom left (marked in red) to see your published‬
‭levels. Your recently published level shows at the top. Clicking it takes you to‬
‭its level page seen below. Here you can play it, see comments and‬
‭leaderboards, and more.‬

‭The two buttons on the left, marked in pink, may be useful in some cases.‬
‭First is a button that removes your level from the server entirely. The button in‬
‭the top right of this page only deletes it from your saved levels, but it can still‬
‭be found by others. Secondly is another copy button, which is always enabled‬
‭for the creator of a level (regardless of the copying options set earlier). This is‬
‭useful if you no longer have a local editor copy of your level.‬

‭196‬
‭Updating Levels‬
‭The easiest way to update an uploaded level is to make edits on the local‬
‭editor copy. This will change its status from "Uploaded" to "Unverified", and‬
‭the version number also says 2 instead of 1. Once done with your edits, go‬
‭through the process of verifying again, and then share it as you did before.‬
‭This will automatically update the online level.‬

‭If you no longer have a local editor copy of the level, copy the online level from‬
‭the button seen in figure 13.5. This makes a copy with an additional number at‬
‭the end of the name. If you want to use this copy to update the level, you have‬
‭to edit the title of this copy to be the exact same as the online level. After that,‬
‭do your edits and share it as before. This also links the update to the shared‬
‭level.‬

‭Updating Descriptions‬
‭As for updating only the description and not the level content, it is also best to‬
‭have the exact copy that was uploaded. Once uploaded, the copy will show a‬
‭new refresh button on the left, marked in red below. This is solely used to‬
‭update the description. Simply type in your new description and click it.‬

‭197‬
‭If you do not have the exact copy, you have to do the same as when you want‬
‭to update a level by copying the published level. Unfortunately, the refresh‬
‭description button will not show up in this case. You will have to verify the‬
‭level again, type in your new description, and go through the sharing process.‬
‭Make sure the level name is the exact same as the online level.‬

‭Rating‬
‭After you have published a level publicly, the displayed Difficulty of the level‬
‭may update. This is based on community ratings through the bottom right‬
‭button in figure 13.5. Using this, players can get an idea of the Difficulty of your‬
‭level. However, this does not mean the level gives any rewards when it is‬
‭beaten.‬

‭Your level gives rewards if RobTop, the developer of the game, plays it and‬
‭gives it a certain amount of Stars or Moons. The amount ranges from 1 to 10.‬
‭Stars are rewarded for Classic levels, while Moons are rewarded for Platformer‬
‭levels. These show below the Difficulty face on the level page or level lists.‬
‭Once rated, the Difficulty is locked and community votes are no longer‬
‭available. These are the Star and Moon values for each Difficulty:‬

‭●‬ ‭Auto:‬‭1 Star or Moon‬


‭●‬ ‭Easy:‬‭2 Stars or Moons‬
‭●‬ ‭Normal:‬‭3 Stars or Moons‬
‭●‬ ‭Hard:‬‭4 to 5 Stars or Moons‬
‭●‬ ‭Harder:‬‭6 to 7 Stars or Moons‬
‭●‬ ‭Insane:‬‭8 to 9 Stars or Moons‬
‭●‬ ‭Demon:‬‭10 Stars or Moons‬

‭198‬
‭Within Demon levels, there is an additional separation into Easy, Medium,‬
‭Hard, Insane, and Extreme Demons in order of increasing difficulty. This is‬
‭solely based on community votes on levels already rated Demon by RobTop.‬
‭Getting a higher Demon rating does not change the reward, only the‬
‭Difficulty Face shown on the level.‬

‭If a player beats a Rated level, the amount of Stars or Moons are added to‬
‭their profile statistics. If the level has User Coins, a rating may also involve‬
‭verifying these so that they show on a user's profile when collected. This is the‬
‭case if they are done properly as explained‬‭here‬‭.‬

‭There are no specific guidelines to ensure your level gets a rating. It is simply‬
‭about whether RobTop likes it or not. However, some general tips are:‬

‭●‬ ‭At least 30 seconds in length‬


‭●‬ ‭Overall clear gameplay‬
‭●‬ ‭Decent visuals‬
‭●‬ ‭Optimized performance‬

‭Additionally, how much RobTop likes it results in various types of ratings. This‬
‭is indicated by an additional effect around the Difficulty Face, which is seen‬
‭below. From left to right, we have Rated, Featured, Epic, Legendary, and‬
‭Mythic. Each gives 1 more Creator Point than the last, which is a statistic‬
‭shown on profiles and the Creators Leaderboard to highlight creators.‬

‭199‬
‭One way to increase the chances of your level being rated is by requesting it‬
‭to a Moderator. Moderators are players that can suggest high-quality levels to‬
‭RobTop for a rating. These are indicated by a special "M" badge on their‬
‭in-game profile.‬

‭For more information about the Rating System:‬


‭https://www.boomlings.com/GDRating‬

‭For more information about the Leaderboards:‬


‭https://www.boomlings.com/GDLeaderboards‬

‭14. Afterword‬
‭Suggestions‬
‭This document took a long time to write for us (Viprin and AutoNick). We‬
‭hope that there is a lot of useful information here to help you create, whether‬
‭you are new or experienced. However, it is by no means perfect. If you have‬
‭suggestions for additions or changes, feel free to contact us through social‬
‭media:‬

‭●‬ ‭Viprin:‬‭Discord‬‭,‬‭Twitter‬‭, and‬‭YouTube‬‭.‬


‭●‬ ‭AutoNick:‬‭Discord‬‭,‬‭Twitter‬‭, and‬‭YouTube‬‭.‬

‭Special Thanks‬
‭First, special thanks to‬‭Erdyuri‬‭and‬‭Spu7Nix‬‭for creating the cover. Of course,‬
‭we also have to give a special thanks to‬‭RobTop‬‭for‬‭creating this amazing‬
‭editor in the first place. There are extremely few games that can compete in‬
‭terms of complexity and possibilities. He also provided explanations and‬
‭support for many parts of this document. Finally, special thanks to you for‬
‭reading this document. Good luck creating in Geometry Dash!‬

‭200‬

You might also like