Index

Information

Site Introduction

Welcome to dustforce.info!

This site was originally designed as a replacement for the tech pastebin, but aims to centralize the collective Dustforce knowledge in a single spot!

The site is currently in development and can be contributed to on Github: gonX/dustforce-wiki

Everyone is welcome to contribute, and we’re at the point where any content is better than no content - however please read CONTRIBUTING.md before submitting a pull request. Contributing unfortunately requires a Github account.

If you aren’t already, using Dustmod is highly recommended!

As this is more of an information center rather than a guide to the game, we highly suggest that you read czyys’ Dustforce guide which is linked in the list below.

Dustmod

Dustmod is a drop-in replacement mod designed to enhance the original Dustforce experience, both in terms of performance, usability, as well as visuals.

A significant amount of newer custom maps use elements that are only available in Dustmod.

Some features include:

  • Extended configuration options
  • Extended leaderboard filtering
  • Daily featured custom level
  • Online multiplayer (2-4 players)
  • Additional community nexuses (maps technically individually available on atlas without Dustmod)
  • Replay ghosts
  • Plugin framework
  • Save file management
  • Extended DirectX 12 and OpenGL support (Vanilla is DX9)
  • TAS tools

Dustmod is closed source software created and maintained by msg555 with the original Dustforce DX source code provided pro bono by Hitbox Team.

For more information, please see dustmod.com

Point values on Atlas

On the official custom map hub, Atlas, the point system (which dictate your displayed “rank” on your Atlas profile page) are as follows:

  • Making an account: 100
  • Voting on a map: 10
  • Commenting on a map: 40 (labelled as “answers”. Only includes top-level comments, not replies)
  • Replying to a comment: 0

  • Making a map: 300 (labelled as “questions”. Does not include hidden maps)
  • Receiving an “upvote”: 30 (3-5 hearts)
  • Receiving a “downvote”: -10 (1-2 hearts)

(note, it seems possible to have received votes without having any maps. may be votes on hidden maps?)

Daily Algorithm

msg555 reports this on the Daily algorithm:

The pool of levels is all maps (visible or not) on Atlas that are not part of the CMP and have not been the daily before. It picks 5 maps uniformly at random from that set and chooses the one that has the most SSes. There’s nothing preventing a map with 0 SSes from being chosen.

Why do replays sometimes get a negative replay ID?

Negative IDs occur when using Dustmod and the replay wouldn’t have been saved by the vanilla client.

Examples include early exits and completions that aren’t PB’s.

Mechanics / Tech

Basics

tags: beginner, tutorial

Basic Game Mechanics

The basics of the game are that you have 4 directional keys for movement, a Dash, Jump, and a Light attack, and Heavy attack button.

Dust on surfaces act as collectibles that we must route to gather along our way.

Characters can jump or dash once in midair, downdash to rapidly begin falling, run up walls briefly, climb over ledges, jump and dash off of walls, slide or run along ceilings and slide on slopes.

Once your combo meter reaches 100, your character has charged up a “special attack” (aka super) which cleans dust on surfaces within line of sight, dustblocks and enemies around you in a limited range. (see Super)

Routing where to use Super(s) is one of the primary considerations we had to make when optimizing a level.

Attacks

Your attacks are multi purpose, both serving as combat tools for enemies, as extra reach for cleaning dust on surfaces, and as a mobility tool. Hitting an enemy or Dustblock in midair cancels your fall, and fully cleaning an enemy restores your aircharges allowing you to air-jump or air-dash again.

There are two types of attacks, with heavy attacks dealing 3 times as much damage and hitting a larger area, but their startup time is much longer and they can’t be chained as easily into followup attacks.

Additionally, enemies cleaned by a heavy attack as the final blow will spread dust on nearby surfaces based on the attack direction.

Your attacks can differ when performed in the air or on the ground, and different versions of the attack will be performed depending on your directional keys.

Each attack applies some time dilation only for the player (game time continues normally), and hitting enemies causes hitstop, thus to maximize time, it is almost always better to hit as many enemies in as few attacks as possible, including using the knockback of an attack to push an enemy towards another enemy to hit them both.

The 4 characters do have mechanical differences, and they greatly affect our choice for which is used at which points in the TAS. Their attack hitbox differences are shown to exact scale in this album (This album is for attacks on enemies only. Attacks on dustblocks and to clean dust on surfaces have some variable range based on the quadrant you are located in etc. The general sizes and shapes are still roughly what is shown in the album)

insert link to #hitboxes here

Terminology

(TYPE)boost

Gaining speed via impacting level geometry (groundboost, slopeboost, etc.) or abusing other mechanics (airdash boost/ADB, magnet hijack boost/MHB, etc.)

See Boosting

Light, Heavy

The two strengths of attack available to each character.

See Attacks in the Advanced section.

Super

The wide-area special attack usable only after the combo meter reaches 100.

See Supers

Empty Super

A fast super hitting no enemies, used to clean only surfaces and dustblocks.

See Empty super in the Supers card.

Seam attacks

Attacks can sometimes clean or spread dust via the “seam” between adjacent blocks.

See Seam Attacks

Time dilation

The way supers and attack startup slow the relative timescale for the player.

See Time Dilation in the Attacks card.

Time manipulation

Taking advantage of how time dilation subtly changes movement.

See Time Dilation in the Attacks card.

Land-cancel

Air downlights are automatically aborted shortly after landing on the ground.

This is briefly covered in the Dash Rhythm section of the Dashes card.

Early exit

Menuing and selecting “exit level” before the level finishes, but late enough that the level end triggers during the fadeout.

See Early Exit

Mouse exit

When exiting a level, clicking “yes” rather than navigating with the keyboard or controller sends the player directly back to the Main Nexus.

Cycle

Entity (ie. enemy) positions are calculated from when the entity was last loaded, which is indirectly influenced by the path (and time) taken through the level.

Aircharge

The counter tracking how many times a character can jump or dash in midair.

This is covered in the stats for the characters, but briefly put, all characters except Dustkid only has 1 air charge.

Air dashjump

A simultaneous dash and jump in the air with only one aircharge.

See Aerial Dash Jumping

Ledgeclip

The game nudges the player up/down when approaching a corner from the side

See Ledge Clips

Slopejump

An instant startup ground jump from slope slide state.

See Slope and Spike Jumps

Spikejump

A safe jump off of 45 degree spikes.

See Slope and Spike Jumps

Walltap

Grabbing a wall for one frame or less to clean dust or reset x speed while falling.

Related reading would be Wall Grab in the Walls card.

Superdrop

Unrelated to actual Supers, this is the technique used for quickly cleaning dust (using light attacks) while falling at high speeds.

Left friction

An unintentional programming oversight causes air friction to be much more intense when travelling left.

See Air Friction

Updash

Avoiding friction by delaying a wallrun after dashing from a slope up a wall.

See Updashing in the Expert section.

Extended ceiling run/slide

The player can briefly remain in ceiling slide state mid-air after the ceiling ends.

See Ceiling Grab

Air walljump

After grabbing and sliding off a wall, the player can still walljump in midair.

See Air Walljump

Infinite walljump

Left friction allows for repeated jumps off left-facing overhanging walls.

See Infinite Walljumo

Dyno

Walljumping and regrabbing the same wall by jumping at the point where it transfers from vertical to an overhanging slant.

Jorf

A small area near the edge of a spiked surface which can be touched safely.

See Jorfs

Mapler Slide

A technique to extend ceiling runs to retain speed for longer and/or travel farther.

See Mapler Slides

Droof

A technique to gain great horizontal speed by falling next to a right-facing slanted wall.

See Droofs

Taildash

A technique to rapidly turn around or gain a small amount of speed on a slope.

See Itay Dash and Taildash

Slopesurfing

Technique used to dash on a slope but cancel the dash immediately.

See Slopesurfing

Raiserun

A tech that enters the wrong state when jumping, allowing an earlier wallrun.

See Raiserunning

Clip

Certain configurations of geometry allow the player to pass through solid walls.

Magnet

Jumping or dashing mid-air will “magnet” you to walls up to 42 horizontal units away (almost a full tile).

This is often negatively experienced for the first time for many players in Backup Shift (TODO: earlier levels?) However, it can also be used for positive effect as is often seen in the Walls (last) section of Giga Difficult.

Hitrise

When you damage (or kill) an enemy with an attack, your character rises ever so slightly.

This is often negatively experienced for the first time for many players in Mega Difficult.

See Hitrise

Boosting

Surface Boosting

When a character hits a surface, they lose some portion of their speed based on their angle of incidence as shown below, and the rest of their speed is converted to line up parallel with the surface they’ve run into.

This is used most frequently to convert falling speed into ground speed (referred to as Groundboosting for flat ground and Slant- or Slopeboosting when taking advantage of advantageous ground angles), but also applies to collisions with walls and ceilings.

Angle of Incidence

Corner/Ceiling Boost

Boosting on a slanted or sloped ceiling by walljumping at the point where the wall and ceiling meet is often referred to as a “Corner Boost” and is a reliable way to get a fast ceiling boost.

When jumping from a overhanging slanted wall, the extra horizontal speed makes for an even faster boost. This is known as an “Access boost” (named after the stock map, Access).

Even without an advantageous slope it’s possible to get a boost on a ceiling, but the fact that you need to be moving upward rather than downward means that these sorts of Ceilingboosts generally aren’t as significant as other boosts, as the amount of upward speed we can get is usually very limited.

Wall Boost

The most common kind of Wallboost is when transferring a ground speed boost into a wall with the help of a slope or a slanted wall.

However, when jumping into a wall, jump timing and the resultant angle you hit the wall at can have a dramatic effect on your upward speed after the collision. Occasionally, it’s even possible to get a downward Wallboost when trying to fall quickly.

Parallel Boost / Fitboost

Lastly, though most boosts center around converting a high amount of speed in one direction into less speed in a more useful direction (e.g. fall speed to sideways speed), it’s also possible to get a “boost” by aligning your movement as closely as possible with a surface.

For example, if jumping upward at a 45 degree angle toward a 45 degree upward slope, it’s possible to land with a near-0 degree angle of incidence, keeping almost all of your total speed.

Once the ground levels out, this converts to about a 40% increase in horizontal speed.

Clipboost

When Ground-, Slant- or Slopeboosting, it’s sometimes possible to fall slightly past the surface in question and gain extra falling speed, then ledgeclip up onto it for a better speed boost than you’d normally be able to get from your initial height.

tags: frames, ceilings

Ceilings

Ceiling Grab

Also known as “Ceiling Cling” or “Neutral Ceiling Run”

The first 10 frames are frictionless, allowing full speed conservation, this is increased to 15 frames as normal Dustman as mentioned in Dustman

Once friction has started to apply, releasing from the ceiling has a 10 frame delay, this occurs regardless of the ceiling tiles ending, so can be extended into midair, this is known as an “extended ceiling run/slide” or previously “air extended ceiling slide”.

Notably this ceiling run friction is frequently a smaller penalty to your speed than leftward air friction or, if travelling at an upward angle, gravity, so it is still intentionally used and saves time occasionally.

Ceiling Run

Started by holding up and forward. You can only ceiling run in the direction you already have velocity, so e.g. holding up and left will leave you in Ceiling Grab state if you have no sideways velocity or X velocity toward the right.

Sets you to 522 (all characters’ run speed) if your speed is less, and is frictionless for the first 20 frames.

Same rules for releasing the ceiling apply as with Ceiling Grab state. Air Ceiling Slides can be performed after either state so long as friction was applying.

Maplers

An advanced technique to preserve speed is by combining the frictionless frames of a ceiling grab together with the frictionless frames of a ceiling run.

This is called a Mapler slide

tags: tech, frames, dash, adb

Dashes

When you dash, first your speed is converted to horizontal (possibly with some loss) if in midair, then if your speed is below your character’s dash speed it is increased to that value.

After these conversions occur, your velocity is locked in (barring collisions with surfaces) for the duration of the dash (12.5 frames, which due to subframe counts rounds up to 12 frames and 3 subframes under normal circumstances).

Dash Rhythm

When your character has a boost, dashing to lock the speed value is very important. Dash inputs will buffer for the remainder of the frame on which the input is sent.

Due to the input buffering, this allows a new dash to begin directly after the previous dash ends, even when that occurs on a subframe that normally does not accept inputs.

This is what we call “perfect dash rhythm” and results in a repeating sequence of 5 dashes.

This rhythm normally follows a 12-13-12-13-13 pattern due to the three subframes of spillover each dash.

If your dash input is processed on the first subframe, your dash will always begin at the beginning of the sequence.

If your dash input is buffered, you can start anywhere in the sequence, based on what subframe the dash started.

When you have an available air charge to use, buffering a ground dash is normally only possible if you would land within one subframe, as otherwise an airdash to occur.

If it’s not possible to buffer a dash or precisely time your landing, you may undergo up to 4 subframes of landing state friction before you can dash, significantly reducing your speed, though this can sometimes be reduced to 1 subframe through use of a land-canceled downlight. This means buffered or timed dashes are usually much preferred for keeping maximum speed.

Aerial Dash Boosting

When dashing in midair, if your speed vector angle before the dash is within 18 degrees of horizontal, in either direction, 100% of your total speed is transferred into the dash, giving you a horizontal speed boost.

This is known as Aerial Dash Boosting. When outside of this 18 degree range, you still keep a portion of your speed (1-[change in angle]/90°) so it’s still possible to airdash faster than normal dash speed when travelling at a sharp angle, but a significant amount of speed will be lost.

tags: mapmaking, frames

Deathzones

Touching a deathzone will cause you to respawn on your last checkpoint, if any, after FILLME frames.

If an enemy touches a deathzone, they get removed and the end result is the same as if you cleaned them.

(TODO: talk about Moon Temple any% checkpoint/deathzone thingy)

Friction

Air Friction

Applies when X speed is over 522, adjusts your speed based on how far away your X speed is from POSITIVE 522.

This results in significantly stronger speed penalties when moving left (at negative values greater than 522).

Ground Friction

Does not have the same left vs right issue that air friction has (thankfully)

Still applies when speed is over 522

tags: frame, jump, tech, ledgejump, shorthop, fulljump, frames

Jumps

Ground Jump

When not in slopeslide state, a ground jump has 7.5 frames (rounding up to 7 frames and 3 subframes, like with dashes) of startup.

This startup will end immediately if the player would become airborne, leading to a “ledgejump.”

If the player is still holding jump when jump startup completes, the player gets a “fulljump,” if not then a “shorthop” will occur.

A shorthop normally gets slightly less initial upward velocity, and experiences significantly more gravity during the rising part of the jump.

At the start of the jump, your upward velocity is increased to your character’s jump velocity if it is less. However, if you already have more upward velocity (almost always because of a significant speed boost which you have transfered to an upward ramp), then you will instead keep your current Y velocity, even in the case of a shorthop.

When jumping from the ground, your total speed is converted to X velocity in the direction of the jump, then capped based on your new Y velocity.

This means that when travelling up or down slopes, you may gain some X speed because you no longer have the angle of the ground working against you, and when turning around as you jump you can keep most of your speed in the opposite direction.

However, friction during jump crouch will significantly reduce your speed, and the speed cap usually limits horizontal velocity to not much above dash speed (exactly how fast depends on your character’s initial jump velocity), even if you were previously going much faster.

In the case of a “ledgejump,” however, the jump doesn’t consume an aircharge, but uses the airjump rules for X velocity. (See below.)

You must wait 5 frames after a jump before you can jump or dash, and must wait 10 frames before you can enter a Wall Grab state.

Air Jump

A jump performed in midair has no jumpsquat or startup delay, and thus occurs instantly.

As such, jumps in midair cannot be a shorthop and will always give the same height as a fulljump.

At the start of an air jump, your Y velocity is set (or left alone) using the same rules as with ground jumps, above. However, your X velocity is set according to what direction you’re pressing:

  • If pressing neither left nor right and your X velocity is between positive and negative 300, it’s immediately set to 0. Otherwise, it’s left at its current value.
  • If pressing a direction, then your X velocity is set to a minimum of 300 in that direction if it’s less (or in the opposite direction) – If it’s already 300 or greater in the appropriate direction, then it’s left at its current value.

Aerial Dash Jumping (Air Dashjump)

See Aerial Dash Jumping

Slope Slides

When the tile of ground beneath the player is 45 degrees, you can press down to begin a slope slide.

While in slope slide state, the character will asymptotically approach their slope slide speed (see stats for M/G/K/W), so slope slides allow the character to gain much more speed than simply dashing or running, and are better than running or skidding at preserving speed when going even faster than that.

Landing on a slope from a large fall allows the player to gain even higher speeds (see Boosting) and once the slope ends at the bottom this speed can be fully transferred into horizontal speed.

You can begin slope sliding even while attacking.

Supers

The super takes a variable amount of time depending on the number of enemies it hits.

Generally, the amount of time one enemy adds is fairly small, so you need to be cleaning several enemies per attack to make it worth using heavy attacks to reduce the number of enemies a super will hit.

However, there’s a base amount of time that a super takes, and this base amount is doubled if the super hits at least one enemy.

Empty super

In the case where a super is primarily being used to clean surface dust or dustblocks, the super will come out much faster if it’s not hitting any enemies.

Ranges

Enemy hitrange is a square

Dustblock hitrange is a circle

Dust-on-Surface hitrange is a circle requiring Line Of Sight (same circle as dustblocks?)

Other Properties

Grants Hitrise upon coming out of the Super

Applies time dilation during startup (expand on this more if we know more about it exactly)

Boosts can be preserved through a super, Including reversing the boost.

Attack Time

The attack time of a super depends whether you will be hitting enemies with it or not.

An empty Super has a attack time of 22f.

A super which hits enemies has a base attack time of 36.3f with each target adding an additional 7.7f. Time is rounded up to the nearest subframe.

tags: tech, frames

Walls

Wall Grab

Grabbing a Wall can actually be used to cancel several different states, most notably dashes and attack recovery.

Walls can be used to cancel heavy attack recovery or perform a followup attack in a normally disallowed direction (seen on Dahlia and Archive), cancel aerial dashes to immediately let you downdash (seen on Titan), and cancel hitrise out of attacks that hit enemies (seen on Exa Difficult and Yotta Difficult).

Wall Grab itself may be canceled immediately by simply pressing away from the wall.

When you do so, if you have downward Y velocity and are not holding down, your Y velocity is set to 0. If you have upward Y velocity or are holding down, you keep your current Y velocity.

Wall Run

Initiated by pressing up during a wall grab, wall runs immediately set your speed to 522 in the direction of the wall if it is less.

During the first 21 frames speed decays linearly, after which it begins a significantly faster logarithmic decay.

Unlike Wall Grab, Wall Run cannot be canceled by pressing away from the wall, only by walljumping, walldashing, or reaching the ledge or ceiling at the top of the wall.

Wall Slide

When touching towards a wall, you can slide down it, most frequently done via “Wall Tapping” the wall while falling, or simply by sliding down a long slanted wall such as in the ending of Archive.

Speed of the wall slide will vary based on character, directional inputs, and the angle of the wall.

Wall Jump

Has 5 frames of startup before jumping off of the wall, these can be edge cancelled however, which is usually done at the top of a wall as we are wallrunning up it, and very occasionally at the bottom of a wall as we fall past it.

These give you the same height of a regular grounded or aerial jump, but usually give you only 348 horizontal speed and radically limit your air control until the peak of your jump.

When jumping off an overhanging slanted wall, however, you receive significantly more horizontal speed, actually slightly over dash speed..

If the player is close enough to a wall when inputting a jump in midair, they will be immediately pulled over to the wall and start a walljump instead of an airjump.

This can be used to save some time by walljumping before actually reaching the wall, but can also be fatal if the nearby wall has spikes on it.

When performing an “early” walljump like this, if the player has upward velocity in the air and is holding up and toward the wall, the player will actually get some slight upward speed during the beginning of the walljump startup, as they would if they started a wallrun immediately before walljumping.

Walljumps have no startup when performed from “wall grab idle” state, but reaching that state requires hanging on a wall for so long this is almost never useful.

If you’re jumping off a left-facing slant wall you may be able to walljump “infinitely”. See Infinite Walljump

Wall Dash

Has 5 frames of startup before releasing from the wall, these can be edge cancelled however, though it is rare to be able to do so.

If you also have an air charge to use, you can wall dash and then airjump to jump with significantly higher speed than most walljumps would grant you, at the cost of an aircharge of course.

However, during the very beginning of this dash, you’re still close enough to the wall to be able to walljump off of it, cancelling your dash and returning you to the wall.

As with a walljump, walldashes can be performed when only near a wall, but unlike a walljump, walldashes cannot be performed while holding toward the wall, only with a neutral or away horizontal direction input.

As with walljumps, walldashes have no startup from “wall grab idle” state, but this basically never useful.

Advanced

tags: jump, dash, frame

Aerial Dash Jumping

While in hover state, which begins in the air when a character no longer has upward velocity and ends when falling faster than a certain speed, the order in which inputs are checked allows the player to both dash and jump on the same frame in the air, even if the player has only one aircharge.

In this case, the dash is applied, setting the player’s horizontal speed to dash velocity, then the jump is applied, immediately cancelling the dash and giving the player the vertical velocity of a jump.

This allows the player to gain significant horizontal speed in the air without sacrificing the ability to airjump (or, in the case of Dustkid, airjump twice). These are very useful when wanting to change movement direction in midair while also needing to jump.

As with normal airdashes, a speed conversion is applied at the start so it’s also possible to get an Airdash Boost when performing an Aerial Dashjump, which is known as an Aerial Dashjump Boost.

However, since the dash state is immediately canceled, the speed will not be locked in as it would be with a normal Airdash Boost.

Air Walljump

An interesting oversight in the code means that if you grab a wall with vertical speed, and then your vertical speed carries you off the top of the wall without wallrunning, you can store the ability to walljump in midair, with no wall nearby.

This stored ability to walljump only lasts while you remain in the “raise” state, so once your vertical speed hits 0, you can no longer walljump in midair. This is used only once in the entire run.

tags: frames

Attacks

Attacks have 3 phases, startup (aka windup), hit, and recovery.

Light and Heavy attacks have three possible angles: Up, Down, or Neutral.

At the beginning of attack startup, the attack’s direction, either in terms of left/right or up/down, can be changed via directional inputs.

The period where these changes can occur lasts 2 frames for light attacks, 4 frames for vertical direction changes to heavy attacks, and 8 frames for horizontal direction changes to heavy attacks.

Once the player has attacked “behind” them, their attack facing cannot be changed again, even in followup attacks, until they’ve completely recovered from attacking.

In order to attack “forward,” they must either wait to completely finish attack recovery, or cancel recovery with an action other than attack (such as grabbing a wall or jumping).

(TODO: merge with basics?)

Time Dilation

During attack startup, the character’s time rate is adjusted such that they move and accelerate less during each subframe, as though time was moving slower for them.

This is referred to as “Time Dilation.”

Only 70% as much time passes for the player during light attack windup, and 2/3rds as much time passes during heavy attack windup (except for Kid, whose heavy attacks still dilate time at the 70% rate).

During this time, shifts in subframe boundaries and the granular nature of movement/acceleration calculations can produce a slightly different end result in movement that should theoretically just be the same movement but iterated through more slowly.

Taking advantage of these calculation differences to produce a more favorable result is referred to as “Time Manipulation,” but this is done fairly rarely since the Time Dilation itself will always have a time cost.

Notably, attack startup on the ground forces the character into idle state, which has stronger friction than even holding opposite to your current movement direction, and thus allows you to slow down more quickly.

Idle state also allows the character to open doors while still moving.

One exception is on a ground slope, where holding down will keep the character in slopeslide state rather than idle state, which is preferable when high friction is not a desired effect of the attack.

At the end of startup, the attack makes a single check to see what the attack hits, with no lingering hitbox.

When an attack connects with enemies, if the character is in midair, their upward velocity will be increased to a certain minimum if it is less.

This slight upward nudge is referred to as Hitrise

When the player hits dustblocks in midair, they don’t get an upward nudge but their vertical velocity will be set to 0 if they were travelling downward.

Hitstop

When an attack hits an enemy or dustblocks, the character (and the targets in the case of enemies) will be “frozen in time” for a period of time based on the attack and what was being hit.

This is referred to as “hitstop,” and it lasts 1 frame for hits on dustblocks, and 2.5 or 7.5 frames (0.5 rounding up to 3 subframes as with dashes) respectively for light and heavy attacks on enemies.

This hitstop begins one frame after the character detects that the attack has finished, so there’s usually one frame when the player can input actions that cannot be performed during attack startup (e.g. ground dashes) but before hitstop occurs.

Hitstop will still apply afterward as normal, but in particular it is often highly favorable to dash immediately upon an attack connecting to minimize time spent outside of dash state, and sometimes to convert the hitrise to forward speed via an Airdash Boost.

This concept is demonstrated in the top replays of the Atlas map taskid by fishmcmuffins

Iteration Order of Attacks

Though the attack will hit enemies after a consistent amount of time, the character will react to the hit having completed (and clean surface dust) dependent on the Iteration Order of the attack hitbox in comparison to your character.

This can sometimes be manipulated favorably via Iteration Boundaries.

While it’s unlikely, iteration order can occasionally cause dust that would otherwise be cleaned by an attack to be iterated after the level completion (e.g. hitting the enemy), resulting in A completion where S completion would have been expected. This is demonstrated in this replay by gonX of the Atlas map Big Metal Shaft by Kuitar

Attack Recovery

Attack Recovery can be cancelled via jumps, dashes or grabbing a wall. This is Known as Heavy Cancelling, or Light Cancelling.

Cancelling recovery used on nearly every single attack in the entire TAS.

Light or Heavy attacks can be completely canceled during startup with a walldash or super attack input, and downward-angled aerial Light attacks are cancelled by landing on the ground.

Cancelling attack startup with a super input can be useful for time manipulation and positioning, and cancelling light startup by landing can be helpful to buffer certain ground actions from the air, though a light attack canceled in this way always results in at least one subframe of “land” state which has fairly unfavorable friction properties.

Bonking

Also known as Ceiling Bonking and Head Bonking.

Hitting your head on a ceiling without clinging to the ceiling, is useful when the ceiling is close to your current height, as you can jump cancel and downdash sooner than a dash cancel would allow.

Ceiling boosts can be achieved without clinging to the ceiling, meaning in many circumstances it’s best to just briefly bonk the ceiling to get a small ceiling boost rather than having to actually grab the ceiling.

tags: mhb

Droofs

Walls and ceilings in this game have a “sticky” property where coming in contact with them makes it a little difficult to move away from them until the character grabs then releases the surface.

In some situations this can be problematic, but it can be used to gain speed in certain situations.

When your character gets stuck to a wall but hasn’t actually grabbed it, they remain in the appropriate airborne state (jump, raise, hover or fall) and are affected by gravity as normal, but their left/right motion is forced to remain in line with the wall in question.

For overhanging slanted walls, this can actually give the player great horizontal speed as the character falls as per normal, but is pulled along sideways by the stickiness of the wall above them.

For somewhat arcane reasons, this maneuver is known as a Droof.

It is not possible to droof on leftward slants.

Magnet Hijack Boost

At the exact moment that a ceiling changes angle, your character’s speed will be angled to line up with the new angle of a ceiling.

If simultaneous to this your character does something that makes their movement not line up with the angle of the ceiling, this will be overridden.

In particular, if your character downdashes, giving them significant downward velocity, precisely at a corner on a ceiling, their new speed including the velocity of the downdash will be calculated then angled to line up with the ceiling.

This gives a significant speed boost, often at an upward angle, without requiring use of an aircharge.

Taking advantage of MHBs requires fairly specific ceiling geometry, but when possible it can quickly generate high speeds in situations where that would otherwise be impossible without the use of an aircharge.

The same magnetic sticky phenomenon used for MHB’s is also how Zetta Slopes work.

tags: speedtech, frames

Early Exit

If we finish the level during level exit fadeout, we still receive credit for completing the level.

This will be done on nearly every level in the game, as it both starts the fadeout as soon as possible (usually saving 18 frames per level) and skips the extremely slow score screen.

Early exits do place some restrictions on what actions can be done during fadeout and sometimes a slower IGT is gotten as a result of saving real time from allowing a sooner early exit.

Hitrise

Occurs when hitting an enemy with a damaging attack, or after a super.

Total height gained upwards is based on the characters fall acceleration; you are set to a fixed value (FILLME) and then your fall acceleration determines how quickly it reduces to 0

Also see advanced attacks (TODO: merge?)

Infinite Walljump

One reason for the extra horizontal speed when jumping off an overhanging slanted wall is to push the player further away from the wall to prevent them from repeatedly walljumping off the same wall.

However, with left-facing overhanging slant walls, left air friction rapidly reduces that speed below 522, so all characters other than dustkid will still be close enough to the wall to walljump again after the 5 frames during which you can’t jump or dash at the beginning of a jump.

This process can be repeated indefinitely as long as the slanted wall continues, though having to repeatedly undergo jump startup means it usually isn’t very fast.

tags: mantle, frames

Ledge Cancels

Whenever we climb over the top of a wall, we can avoid spending a lot of time floating above the ground by ledge canceling (downdash -> dash). This is one of the few uses for Double Tap Dash as the operation (down -> down -> dash) is easier than (down+dash -> dash).

Mantles

A Mantle is another form for ledge canceling, but it requires an aircharge.

By dashing at ground height (within 4(?) frames of leaving wallclimb) we are on the ground down to 1(?) frame faster than a normal ledge cancel. However, there are often better uses for an aircharge prior to the wallclimb.

Ledge Climb

When wallrunning, if you reach the top of the wall you will climb over the ledge and enter a special hover state.

Your Y value is modified through a special separate variable so that you are still able to downdash and dashjump while moving upwards, which is normally not possible.

Ledgeclimbs are nearly always cancelled via Mantling or Ledge Cancelling.

They are rarely useful to gain a small amount of additional height for an attack or before Aerial Dashjumping.

Ledge Clips

The corners of ledges are not completely solid, and can be clipped into and used to push yourself upwards or downwards slightly by doing so.

These are abused in various ways: to gain a small amount of extra height, to airjump/dash slightly earlier than should be possible when falling past a ceiling, to get extra falling speed or better align certain boosts, etc.

Ledgeclipping is sometimes important to avoid or delay, however, since when ledgeclipping up to a higher ledge than you technically should be able to reach, you retain your velocity when the ledgeclip bumps you upward, which can actually delay the time you can land on that ledge as you get stuck in hover.

tags: ceiling, maplers

Mapler Slides

Also see Ceilings

Can be transferred into Ceiling Run, which gives the 10, or 15 frictionless frames of the ceiling grab, followed by the 20 frictionless frames of the ceiling run, allowing a larger amount of time spent on a ceiling to have no speed reductions.

This technique of transferring between a Ceiling Grab and Ceiling Run is known as a “Mapler Slide”, sometimes shortened to just “Mapler”, named after the player who pioneered the technique.

Seam Attacks

Normally, attacks on surface dust are blocked by impeding walls.

The direction of the attack matters for this check, so a downward attack can clean dust on the far side of a wall as long as the attack isn’t blocked by a ceiling above it, but a side attack won’t normally be able to clean dust on the far side of a wall.

However, under certain circumstances, it’s possible for the line-of-sight calculations performed to squeeze through the seams between adjacent tiles and clean some dust on the far side.

This only works when the relevant coordinates are negative (e.g. if Y coordinates are negative, there’s a slight gap between vertically adjacent tiles), but by lining up attacks this way it’s sometimes possible to reach dust much further away than would normally be possible, since a side heavy attack or a super will have much more horizontal reach than the up/down heavy which you would normally need to use to clean dust on the other side of a wall.

Also applies to Dust Spreading in rare cases, which causes dust to spread in an unreachable location through a wall, as demonstrated by Fishy in this Store Room (AS) replay.

TODO: insert example screenshot of seam attack

Slope and Spike jumps

As vaguely mentioned in Ground Jump, a jump from slopeslide state has no startup. As such it can never be a shorthop.

It is also a grounded jump, so X speed conversion happens as with other ground jumps.

Spike Jumps

Notably, it’s possible to transition from hover or fall state, to land state, to slopeslide state, and then jump all within a single subframe.

This means that in the case of a spiked slope, it’s possible to actually land on the spikes and jump back off before the game checks if the spikes should kill you. This is known as a “spikejump.”

Spikejumps normally require buffering the jump input and thus requires that you have used your aircharge, but with precise positioning it’s possible to spikejump even when you still have an aircharge by aligning yourself to land on the first subframe.

Similarly, dustblock slopes can be jumped off of before the game checks that you should collect them.

However, you will always collect the surface dust from a solid slope even if you jump off it immediately.

tags: half-tera, spikes

Tera Drop/Jump

A 1 tile wide gap with spikes on both sides is known as a Tera gap.

These have a 3 unit gap that the character can fit within without dying.

Can be jumped up between, or fallen through (known as a Tera Jump or Tera Drop respectively)

A gap with spikes only on 1 side is known as a Half-Tera

This is occasionally used in the Nexus, Tera Difficult and Yotta Difficult (and others?)

Expert

Attack Hitboxes

All Dustforce character hitboxes overlapped

Click image to view full album on Imgur

ah_ = attack heavy
al_ = attack light
_f = front
_u = up
_b = back
_ah = aerial front
_au = aerial up
_ad = aerial down
_of = offset relative to bottom center of character

Dustman

      //heavy
      ah_f.left = 0; ah_f.right = 285; ah_f.top = -48; ah_f.bottom = 48; ah_f_of.x = -10; ah_f_of.y = -48;        //DONE
      ah_u.left = -70; ah_u.right = 70; ah_u.top = -230; ah_u.bottom = 0; ah_u_of.x = 60; ah_u_of.y = -50;        //DONE
      ah_d.left = -70; ah_d.right = 70; ah_d.top = 0; ah_d.bottom = 225; ah_d_of.x = 70; ah_d_of.y = -220;        //DONE
      //air
      ah_af.left = 0; ah_af.right = 285; ah_af.top = -48; ah_af.bottom = 48; ah_af_of.x = -10; ah_af_of.y = -48;      //DONE
      ah_au.left = -75; ah_au.right = 75; ah_au.top = -205; ah_au.bottom = 0; ah_au_of.x = 65; ah_au_of.y = -70;      //DONE
      ah_ad.left = -80; ah_ad.right = 80; ah_ad.top = 0; ah_ad.bottom = 270; ah_ad_of.x = 80; ah_ad_of.y = -200;      //DONE

      ////light
      al_f.left = 0; al_f.right = 170; al_f.top = -65; al_f.bottom = 65; al_f_of.x = -10; al_f_of.y = -65;        //DONE
      al_u.left = -55; al_u.right = 55; al_u.top = -170; al_u.bottom = 0;  al_u_of.x = 45; al_u_of.y = -50;        //DONE
      al_d.left = -82; al_d.right = 82; al_d.top = 0; al_d.bottom = 136; al_d_of.x = 74; al_d_of.y = -131;        //DONE
      //air
      al_af.left = 0; al_af.right = 170; al_af.top = -65; al_af.bottom = 65; al_af_of.x = -10; al_af_of.y = -65;          //DONE
      al_au.left = -55; al_au.right = 55; al_au.top = -170; al_au.bottom = 0; al_au_of.x = 45; al_au_of.y = -50;      //DONE
      al_ad.left = -50; al_ad.right = 50; al_ad.top = 0; al_ad.bottom = 110;  al_ad_of.x = 40; al_ad_of.y = -55;      //done

Dustgirl

  dm.ah_f.left = 0; dm.ah_f.right = 285; dm.ah_f.top = -60;
  dm.ah_f.bottom = 60; dm.ah_f_of.x = -10; dm.ah_f_of.y = -60;        //DONE

  dm.ah_u.left = -70; dm.ah_u.right = 70; dm.ah_u.top = -205;
  dm.ah_u.bottom = 0; dm.ah_u_of.x = 70; dm.ah_u_of.y = -80;        //DONE

  dm.ah_d.left = -80; dm.ah_d.right = 80; dm.ah_d.top = 0;dm.ah_d.bottom = 225;dm.ah_d_of.x = 70;dm.ah_d_of.y = -220;        //DONE
  //air
 dm.ah_af.left = 0;dm.ah_af.right = 285;dm.ah_af.top = -60;dm.ah_af.bottom = 60;dm.ah_af_of.x = -10;dm.ah_af_of.y = -60;      //
 dm.ah_au.left = -70;dm.ah_au.right = 70;dm.ah_au.top = -205;dm.ah_au.bottom = 0;dm.ah_au_of.x = 70;dm.ah_au_of.y = -80;      //
 dm.ah_ad.left = -80;dm.ah_ad.right = 80;dm.ah_ad.top = 0;dm.ah_ad.bottom = 270;dm.ah_ad_of.x = 80;dm.ah_ad_of.y = -200;      //DONE
 

  ////light
  dm.al_f.left = 0; dm.al_f.right = 170; dm.al_f.top = -50; dm.al_f.bottom = 50; dm.al_f_of.x = -10; dm.al_f_of.y = -50;        //DONE
  dm.al_u.left = -60; dm.al_u.right = 60; dm.al_u.top = -150; dm.al_u.bottom = 0;  dm.al_u_of.x = 45; dm.al_u_of.y = -60;        //DONE
  dm.al_d.left = -82; dm.al_d.right = 82; dm.al_d.top = 0; dm.al_d.bottom = 136; dm.al_d_of.x = 74; dm.al_d_of.y = -131;        //DONE
  //air
  dm.al_af.left = 0; dm.al_af.right = 170; dm.al_af.top = -50; dm.al_af.bottom = 50; dm.al_af_of.x = -10; dm.al_af_of.y = -50;          //DONE
  dm.al_au.left = -60; dm.al_au.right = 60; dm.al_au.top = -150; dm.al_au.bottom = 0; dm.al_au_of.x = 45; dm.al_au_of.y = -60;      //DONe
  dm.al_ad.left = -55; dm.al_ad.right = 55; dm.al_ad.top = 0; dm.al_ad.bottom = 120;  dm.al_ad_of.x = 32; dm.al_ad_of.y = -65;      //DONE


Dustkid

  dm.ah_f.left = 0;dm.ah_f.right = 195;dm.ah_f.top = -55;dm.ah_f.bottom = 55;dm.ah_f_of.x = -10;dm.ah_f_of.y = -55;        //DONE
 dm.ah_u.left = -60;dm.ah_u.right = 60;dm.ah_u.top = -195;dm.ah_u.bottom = 0;dm.ah_u_of.x = 40;dm.ah_u_of.y = -30;        //DONE
 dm.ah_d.left = -65;dm.ah_d.right = 65;dm.ah_d.top = 0;dm.ah_d.bottom = 185;dm.ah_d_of.x = 57;dm.ah_d_of.y = -180;        //DONE
  //air
 dm.ah_af.left = 0;dm.ah_af.right = 195;dm.ah_af.top = -55;dm.ah_af.bottom = 55;dm.ah_af_of.x = -10;dm.ah_af_of.y = -55;      //
 dm.ah_au.left = -60;dm.ah_au.right = 60;dm.ah_au.top = -195;dm.ah_au.bottom = 0;dm.ah_au_of.x = 40;dm.ah_au_of.y = -30;      //
 dm.ah_ad.left = -65;dm.ah_ad.right = 65;dm.ah_ad.top = 0;dm.ah_ad.bottom = 185;dm.ah_ad_of.x = 57;dm.ah_ad_of.y = -180;      //

  ////light
  dm.al_f.left = 0; dm.al_f.right = 150; dm.al_f.top = -45; dm.al_f.bottom = 45; dm.al_f_of.x = -10; dm.al_f_of.y = -45;        //DONE
  dm.al_u.left = -50; dm.al_u.right = 50; dm.al_u.top = -130; dm.al_u.bottom = 0;  dm.al_u_of.x = 40; dm.al_u_of.y = -60;        //DONE
  dm.al_d.left = -75; dm.al_d.right = 75; dm.al_d.top = 0; dm.al_d.bottom = 126; dm.al_d_of.x = 55; dm.al_d_of.y = -121;        //DONE
  //air
  dm.al_af.left = 0; dm.al_af.right = 150; dm.al_af.top = -45; dm.al_af.bottom = 45; dm.al_af_of.x = -10; dm.al_af_of.y = -45;          //DONE
  dm.al_au.left = -50; dm.al_au.right = 50; dm.al_au.top = -130; dm.al_au.bottom = 0; dm.al_au_of.x = 40; dm.al_au_of.y = -60;      //DONE
  dm.al_ad.left = -75; dm.al_ad.right = 75; dm.al_ad.top = 0; dm.al_ad.bottom = 135;  dm.al_ad_of.x = 55; dm.al_ad_of.y = -121;      //DONE

Dustworth
  //heavy
 dm.ah_f.left = 0;dm.ah_f.right = 295;dm.ah_f.top = -70;dm.ah_f.bottom = 70;dm.ah_f_of.x = -10;dm.ah_f_of.y = -70;        //DONE
 dm.ah_u.left = -80;dm.ah_u.right = 80;dm.ah_u.top = -230;dm.ah_u.bottom = 0;dm.ah_u_of.x = 80;dm.ah_u_of.y = -70;        //DONE
 dm.ah_d.left = -110;dm.ah_d.right = 110;dm.ah_d.top = 0;dm.ah_d.bottom = 165;dm.ah_d_of.x = 100;dm.ah_d_of.y = -130;        //DONE
  //air
 dm.ah_af.left = 0;dm.ah_af.right = 295;dm.ah_af.top = -70;dm.ah_af.bottom = 70;dm.ah_af_of.x = -10;dm.ah_af_of.y = -70;      //DONE
 dm.ah_au.left = -85;dm.ah_au.right = 85;dm.ah_au.top = -230;dm.ah_au.bottom = 0;dm.ah_au_of.x = 75;dm.ah_au_of.y = -70;      //DONE
 dm.ah_ad.left = -80;dm.ah_ad.right = 80;dm.ah_ad.top = 0;dm.ah_ad.bottom = 200;dm.ah_ad_of.x = 60;dm.ah_ad_of.y = -100;      //

  ////light
  dm.al_f.left = 0; dm.al_f.right = 235; dm.al_f.top = -70; dm.al_f.bottom = 70; dm.al_f_of.x = -10; dm.al_f_of.y = -70;        //DONE
  dm.al_u.left = -75; dm.al_u.right = 75; dm.al_u.top = -200; dm.al_u.bottom = 0;  dm.al_u_of.x = 50; dm.al_u_of.y = -70;        //
  dm.al_d.left = -100; dm.al_d.right = 100; dm.al_d.top = 0; dm.al_d.bottom = 120; dm.al_d_of.x = 90; dm.al_d_of.y = -111;        //DONE

  //air
  dm.al_af.left = 0; dm.al_af.right = 235; dm.al_af.top = -70; dm.al_af.bottom = 70; dm.al_af_of.x = -10; dm.al_af_of.y = -70;          //DONE
  dm.al_au.left = -75; dm.al_au.right = 75; dm.al_au.top = -200; dm.al_au.bottom = 0; dm.al_au_of.x = 50; dm.al_au_of.y = -70;      //
dm.al_ad.left = -70; dm.al_ad.right = 70; dm.al_ad.top = 0; dm.al_ad.bottom = 160; dm.al_ad_of.x = 30; dm.al_ad_of.y = -111; //

Code source: gist.github.com (pinned in #tasforce on Discord server)

Bad State Transitions

Some errors in state transition logic mean that state transition checks can be run for states that the player has already transitioned out of, allowing for a variety of abusable effects:

Itay Dash and Taildash

When simultaneously pressing dash+jump from slope_slide state, slope_slide transitions to jump and then to dash despite already having transitioned to jump state, resulting in a horizontal airdash from the slope despite normally not being able to airdash for the first five frames after jumping.

This is known as an “Itay Dash,” and is used rarely during some nexus movement.

However, when transitioning from idle or skid state then simultaneously pressing down+slopeDirection+dash+jump, we can enter slope_slide and get the instant airdash, followed by a second bad state transition from idle or skid to hover state, which in turn can downdash, giving us an instantaneous downhill speed boost.

This is referred to as a “taildash,” and is useful for rapidly getting a modest slopeboost.

Slopesurfing

When in slope_slide state, pressing dash+heavy simultaneously results in both occuring and then immediately cancelling each other, putting the player into idle state which then immediately can transition to slope_slide or run depending on direction input.

This is referred to as “slopesurfing” and has a variety of applications.

By pressing down+dash+heavy, one can get to dash speed and immediately resume slopesliding and accelerating. This generally isn’t as useful as a taildash, but can be performed in many situations where a taildash isn’t immediately possible. Alternately, when accelerating downhill, the nature of the bad state transitions also results in you accelerating very slightly faster (one subframe gets double the acceleration, so since you can only input every other frame, results in 10% faster acceleration overall).

Lastly, this “consumes” the grounded dash input but still sends a downdash input, which will be used if slide off the bottom of the slope later this frame.

By pressing (left/right)+dash+heavy, one can dash, then go into idle state followed by run, then we can release forward and enter skid next frame, enabling Taildashing and Raiserunning (see below).

Lastly, by pressing no directions when pressing dash+heavy, we can enter idle state, which we can transition into run next frame.

That transition to run converts all our speed into movement in the appropriate direction, allowing us to almost instantly reverse a speed boost with comparatively little speed loss.

Raiserunning

When going from skid to slope_slide to jump (via slopejumping) in one subframe, a bad state transition occurs where the skid logic notices that you have become airborne and, assuming that you’ve skidded off an upward slope, puts you into state raise.

Unlike jump state, raise state has no restrictions on jumping, dashing, or most importantly, grabbing walls.

This allows us to transfer all the speed of the wallboost we get, usually close to or even higher than the character’s initial jump speed, into a wallrun, which decelerates much more slowly than a jump would.

Updashing

By dashing into a wall at a less than 90 degree angle (e.g. from a slope into a flat wall), a collision occurs, generally reducing your speed to 80% or 50% what it was before and aligning your velocity with the wall.

However, if you’re not pressing toward the wall, you don’t enter wall grab state and instead remain in dash state, which means your (admittedly reduced) speed stays locked in either for the remainder of the dash or until a wallgrab is started, at which point the player can begin a wallrun as normal.

In the cases where this conversion results in a favorable speed up the wall, this functionally adds some frictionless time to the start of the wallrun.

Notably, while in dash state the player will not collect surface dust or break wall dustblocks, and if the wall changes angle again another collision will occur while the player would seamlessly change directions while wallrunning.

Since the most common state which allows for Updashing (a slope next to a vertical wall) also allows for Raiserunning, it’s often necessary to weigh the two options against each other and determine which produces the most favorable result.

tags: tech, frames

Character States

Your movement abilities generally correspond to a state that you will be put into that lasts for some duration.

These states, and the transitions between states are what makes up a large portion of the movement techniques seen within the TAS.

Dustforce accepts inputs at 60 fps. However, for the player physics, steps are done at a rate of 5 per frame, we count each of these physics steps as 1 “subframe”.

States may not last a “clean” whole frame number, and instead might end on a subframe instead.

Inputs are only registered on a full-frame basis, but manipulating our inputs so that a specific event occurs at a specific subframe is still often possible.

Entity Hitboxes

entity
left right top bottom (unit displacement from sprite center)
dust_man
-24 24 -96 0
hittable_apple
-24 24 -24 24
enemy_tutorial_square
-40 40 -40 40
enemy_tutorial_hexagon
-60 60 -60 60
enemy_critter
-24 24 -24 24
enemy_bear
-50 50 -130 0
enemy_wolf
-48 48 -48 0
enemy_porcupine
-24 24 -48 0
enemy_stonebro
-24 24 -48 0
enemy_stoneboss
-48 48 -96 0
enemy_hawk
-40 40 -24 24
enemy_gargoyle_small
-24 24 -24 24
enemy_gargoyle_big
-24 24 -96 0
enemy_book
-40 40 -24 24
enemy_knight
-24 24 -48 0
enemy_maid
-25 25 -96 0
enemy_butler
-24 24 -48 0
enemy_chest_scrolls
-48 48 -48 0
enemy_chest_treasure
-48 48 -48 0
enemy_scrolls
-24 24 -24 24
enemy_treasure
-24 24 -24 24
enemy_flag
-24 24 -48 0
enemy_trash_ball
-24 24 -24 24
enemy_trash_beast
-50 50 -130 0
enemy_trash_can
-36 36 -96 0
enemy_trash_bag
-24 24 -24 24
enemy_trash_tire
-24 24 -24 24
enemy_slime_ball
-24 24 -24 24
enemy_slime_beast
-50 50 -130 0
enemy_slime_barrel
-24 24 -24 24
enemy_spring_ball (left)
-81 1 -38 33
enemy_spring_ball (right)
-1 81 -33 38
enemy_spring_ball (up)
-33 38 -81 1
enemy_spring_ball (down)
-38 33 -1 81

source: pastebin.com (posted in #tasforce by Zaandaa)

Facegrinding / Toegrinding

During the first 10 frames of jump state or during an attack, the player cannot grab walls.

If the player is adjacent to a wall during this time and presses toward the wall, the mechanics for speed conversion upon hitting a surface will be run every subframe, causing the character to lose a significant amount of vertical speed per frame, and when this property was discovered it was called “facegrinding” (particularly when travelling upward) because of the harsh speed loss.

This is usually a situation to be avoided, though occasionally it’s necessary to slow the character down so that we have an opportunity to grab a wall before the character passes it completely

Jorfs

Named after the player who discovered it, there’s a small oversight with edges of spiked platforms which allows for 1 “pixel” of leniency where you can stand on the platform without the spikes killing you.

This “Jorf” pixel is extremely handy for quick platforming, as you essentially have another platform to utilize to jump, regain aircharges, or even get a boost (often called Jorfboosting).

This applies to ceilings, floors and walls, regardless if they are sloped or flat. Slanted and sloped jorfs are especially noteworthy, as the window of leniency is significantly wider due to the angle of the ground and, with a downhill angle, can be particularly effective for generating boosts.

Due to a separate oversight, the lower left corner of your character does not detect spikes on walls at all, so there is a much larger window of safety near the top right of spiked walls.

Despite the difference in cause and size, these are still often mistakenly known as “Walljorfs,” with Jorfs on other corners of walls sometimes being referred to as “true walljorfs” or similar.

Because of their great size (a full tile, rather than only one pixel) they can much more easily be used to walljump or wallcancel, and they allow for a brief wallrun as well.

Playable Characters

Dustman

Dustman
Stats
  • 522
    Dash Speed
  • 23
    Hover Frames
  • 1400
    Slope Speed
  • 25
    Fulljump Frames
  • 15
    Shorthop frames
  • 1
    Air Charges

Dustman and Dustgirl both have the highest terminal Velocity, so they are able to get faster slopeboosts than Dustkid or Dustworth.

Has slightly more favorable (a 0.7% difference) ground friction compared to Dustgirl.

Has the best Mapler Slides, as his neutral ceiling run is frictionless for 15 frames, the rest of the characters only have 10.

This is only the case for “regular” Dustman, the virtual-Dustman does not have this benefit. This is due to an extra frame of animation for the ceiling grab only in the files of regular dustman.

Dustgirl

Dustgirl
Stats
  • 522
    Dash Speed
  • 21
    Hover Frames
  • 1400
    Slope Speed
  • 25
    Fulljump Frames
  • 15
    Shorthop frames
  • 1
    Air Charges

In comparison to Dustman, generally has less advantageous hitboxes on her light attacks, but more useful heavy attacks.

Her heavy attack hitboxes are slightly wider than Dustman’s, which is useful in several places. See Attack Hitboxes.

Accelerates faster than Dustman when falling without downdashing.

This means she gets a bit less distance out of her jumps, but when levels start with the character falling, she reaches terminal velocity slightly sooner than Dustman, giving her a headstart of about 2 frames.

Is located second, rather than first, in the character select, which can save 2 frames switching to/from the characters further right in the list.

Since she and Dustman generally play very similarly, there are several levels where this is actually the deciding factor for character choice.

In comparison to Dustman, she has higher ground friction, so keeping speed with perfect dash rhythm is more important. This is particularly seen in dash rhythm Atlas maps such as How Do I Boost.

Dustkid

Dustkid
Stats
  • 522
    Dash Speed
  • 27
    Hover Frames
  • 1260
    Slope Speed
  • 20
    Fulljump Frames
  • 12
    Shorthop frames
  • 2
    Air Charges

Has 2 maximum air charges and restores both upon cleaning an enemy in midair, all other characters have only 1.

Due to a programming error, she only starts a level with 1 air charge if the start position is located in the air. The extra aircharge can be used on additional dashes allowing her to lock her speed for longer than other characters over long aerial distances.

Smaller jump height, somewhat mitigated by having a triple jump as opposed to a double jump, but is still generally a weakness.

Smaller attack hitboxes, but extremely fast attack speed.

Least used character in the TAS, although TAS allows her niche strengths to be more strongly taken advantage of.

Dustworth

Dustworth
Stats
  • 495
    Dash Speed
  • 25
    Hover Frames
  • 1260
    Slope Speed
  • 29
    Fulljump Frames
  • 18
    Shorthop frames
  • 13
    Light Frontswing F
  • 20
    Heavy Frontswing F
  • 29
    Light Total F
  • 48
    Heavy Total F
  • 1843
    Terminal Velocity
  • 50
    Terminal Velocity F
  • 25
    Terminal V Downdash F
  • 1
    Air Charges

Largest jump height

Large attack hitboxes with a slow attack speed

Dash speed is not also Maximum Run speed like is the case for other characters, he must spend 11~ frames accelerating after a dash finishes to fully accelerate from a stop.

Most used character in the TAS, since his high jumps and large attacks are extremely useful.

Climbing is generally the slowest movement we have to do, and Dustworth climbs the fastest.

Levels

Tutorials

General
  • newtutorial1
    Source File
  • None
    Key Reward
  • true
    Virtual Chars
  • 44
    Props
  • 0
    Apples
  • 38.999 📷
    Best Score record
  • 33.782 📷
    Best Time record
Tiles
  • 1960
    Layer 14
  • 8
    Layer 15
  • 728
    Layer 16
  • 27462
    Layer 17
  • 3533
    Layer 19
Dust
  • 160
    Covered Tiles
  • 0
    Dustblocks
  • 162
    Filthy Surfaces
  • 0
    Spiked Surfaces
  • 0
    Enemy Dust
  • 162
    Total Dust
General
  • newtutorial2
    Source File
  • None
    Key Reward
  • true
    Virtual Chars
  • 15
    Props
  • 0
    Apples
  • 34.949 📷
    Best Score record
  • 20.399 📷
    Best Time record
Tiles
  • 1023
    Layer 16
  • 22901
    Layer 17
  • 2234
    Layer 19
Dust
  • 38
    Covered Tiles
  • 0
    Dustblocks
  • 38
    Filthy Surfaces
  • 0
    Spiked Surfaces
  • 47
    Enemy Dust
  • 85
    Total Dust
Enemies
  • 39
    Square
  • 8
    Hexagon
General
  • newtutorial3
    Source File
  • None
    Key Reward
  • true
    Virtual Chars
  • 37
    Props
  • 0
    Apples
  • 36.566 📷
    Best Score record
  • 33.399 📷
    Best Time record
Tiles
  • 21617
    Layer 6
  • 31979
    Layer 8
  • 22144
    Layer 10
  • 931
    Layer 16
  • 2453
    Layer 19
Dust
  • 80
    Covered Tiles
  • 0
    Dustblocks
  • 80
    Filthy Surfaces
  • 0
    Spiked Surfaces
  • 5
    Enemy Dust
  • 85
    Total Dust
Enemies
  • 5
    Square

Forest

General
  • downhill
    Source File
  • Bronze
    Key Reward
  • false
    Virtual Chars
  • 262
    Props
  • 2
    Apples
  • 12.516 📷
    Best Score record
  • 11.8 📷
    Best Time record
Tiles
  • 4010
    Layer 6
  • 10414
    Layer 8
  • 25372
    Layer 11
  • 1709
    Layer 12
  • 4721
    Layer 13
  • 92
    Layer 16
  • 17744
    Layer 19
Dust
  • 114
    Covered Tiles
  • 0
    Dustblocks
  • 94
    Filthy Surfaces
  • 22
    Spiked Surfaces
  • 15
    Enemy Dust
  • 109
    Total Dust
Enemies
  • 5
    Critter
General
  • shadedgrove
    Source File
  • Bronze
    Key Reward
  • false
    Virtual Chars
  • 70
    Props
  • 1
    Apples
  • 16.833 📷
    Best Score record
  • 10.366 📷
    Best Time record
Tiles
  • 16759
    Layer 11
  • 1746
    Layer 16
  • 3
    Layer 17
  • 22025
    Layer 19
  • 11012
    Layer 20
Dust
  • 124
    Covered Tiles
  • 0
    Dustblocks
  • 124
    Filthy Surfaces
  • 0
    Spiked Surfaces
  • 15
    Enemy Dust
  • 139
    Total Dust
Enemies
  • 5
    Critter
General
  • dahlia
    Source File
  • Bronze
    Key Reward
  • false
    Virtual Chars
  • 45
    Props
  • 1
    Apples
  • 11.016 📷
    Best Score record
  • 8.033 📷
    Best Time record
Tiles
  • 11458
    Layer 11
  • 1046
    Layer 13
  • 1763
    Layer 16
  • 12092
    Layer 19
  • 18
    Layer 20
Dust
  • 25
    Covered Tiles
  • 0
    Dustblocks
  • 25
    Filthy Surfaces
  • 0
    Spiked Surfaces
  • 21
    Enemy Dust
  • 46
    Total Dust
Enemies
  • 7
    Critter
General
  • fields
    Source File
  • Bronze
    Key Reward
  • false
    Virtual Chars
  • 197
    Props
  • 5
    Apples
  • 19.15 📷
    Best Score record
  • 12.866 📷
    Best Time record
Tiles
  • 1296
    Layer 7
  • 2040
    Layer 11
  • 161
    Layer 12
  • 1824
    Layer 16
  • 27137
    Layer 19
  • 15053
    Layer 20
Dust
  • 94
    Covered Tiles
  • 0
    Dustblocks
  • 94
    Filthy Surfaces
  • 0
    Spiked Surfaces
  • 21
    Enemy Dust
  • 115
    Total Dust
Enemies
  • 7
    Critter
General
  • momentum
    Source File
  • Silver
    Key Reward
  • false
    Virtual Chars
  • 288
    Props
  • 2
    Apples
  • 34.582 📷
    Best Score record
  • 17.533 📷
    Best Time record
Tiles
  • 8874
    Layer 8
  • 16400
    Layer 10
  • 8101
    Layer 12
  • 4603
    Layer 13
  • 1170
    Layer 15
  • 358
    Layer 17
  • 30773
    Layer 19
Dust
  • 341
    Covered Tiles
  • 4
    Dustblocks
  • 126
    Filthy Surfaces
  • 217
    Spiked Surfaces
  • 26
    Enemy Dust
  • 156
    Total Dust
Enemies
  • 4
    Critter
  • 2
    Porcupine
  • 1
    Stonebro
  • 1
    Bear
General
  • fireflyforest
    Source File
  • Silver
    Key Reward
  • false
    Virtual Chars
  • 34
    Props
  • 1
    Apples
  • 34.799 📷
    Best Score record
  • 17.9 📷
    Best Time record
Tiles
  • 638
    Layer 7
  • 2378
    Layer 8
  • 5004
    Layer 11
  • 180
    Layer 13
  • 12
    Layer 14
  • 98
    Layer 15
  • 3013
    Layer 16
  • 19606
    Layer 19
Dust
  • 205
    Covered Tiles
  • 14
    Dustblocks
  • 205
    Filthy Surfaces
  • 0
    Spiked Surfaces
  • 56
    Enemy Dust
  • 275
    Total Dust
Enemies
  • 10
    Critter
  • 1
    Wolf
  • 1
    Stoneboss
  • 1
    Bear
General
  • tunnels
    Source File
  • Silver
    Key Reward
  • false
    Virtual Chars
  • 91
    Props
  • 1
    Apples
  • 28.666 📷
    Best Score record
  • 24.683 📷
    Best Time record
Tiles
  • 26139
    Layer 9
  • 4704
    Layer 10
  • 20190
    Layer 11
  • 407
    Layer 16
  • 23725
    Layer 19
  • 15310
    Layer 20
Dust
  • 202
    Covered Tiles
  • 0
    Dustblocks
  • 202
    Filthy Surfaces
  • 0
    Spiked Surfaces
  • 18
    Enemy Dust
  • 220
    Total Dust
Enemies
  • 6
    Critter
General
  • momentum2
    Source File
  • Silver
    Key Reward
  • false
    Virtual Chars
  • 248
    Props
  • 1
    Apples
  • 35.116 📷
    Best Score record
  • 20.983 📷
    Best Time record
Tiles
  • 11
    Layer 8
  • 12144
    Layer 11
  • 14657
    Layer 12
  • 22
    Layer 15
  • 6
    Layer 17
  • 21168
    Layer 19
Dust
  • 387
    Covered Tiles
  • 0
    Dustblocks
  • 196
    Filthy Surfaces
  • 198
    Spiked Surfaces
  • 35
    Enemy Dust
  • 231
    Total Dust
Enemies
  • 7
    Critter
  • 1
    Wolf
  • 1
    Bear
General
  • suntemple
    Source File
  • Gold
    Key Reward
  • false
    Virtual Chars
  • 34
    Props
  • 1
    Apples
  • 19.15 📷
    Best Score record
  • 15.283 📷
    Best Time record
Tiles
  • 4913
    Layer 8
  • 12155
    Layer 11
  • 36
    Layer 15
  • 2119
    Layer 16
  • 36684
    Layer 19
Dust
  • 156
    Covered Tiles
  • 0
    Dustblocks
  • 82
    Filthy Surfaces
  • 75
    Spiked Surfaces
  • 60
    Enemy Dust
  • 142
    Total Dust
Enemies
  • 4
    Stoneboss
  • 4
    Stonebro
General
  • ascent
    Source File
  • Gold
    Key Reward
  • false
    Virtual Chars
  • 50
    Props
  • 1
    Apples
  • 33.116 📷
    Best Score record
  • 27.299 📷
    Best Time record
Tiles
  • 413
    Layer 9
  • 888
    Layer 10
  • 554
    Layer 11
  • 184
    Layer 14
  • 338
    Layer 15
  • 1197
    Layer 16
  • 17767
    Layer 19
Dust
  • 174
    Covered Tiles
  • 0
    Dustblocks
  • 142
    Filthy Surfaces
  • 32
    Spiked Surfaces
  • 18
    Enemy Dust
  • 160
    Total Dust
Enemies
  • 3
    Critter
  • 1
    Bear
General
  • summit
    Source File
  • Gold
    Key Reward
  • false
    Virtual Chars
  • 126
    Props
  • 3
    Apples
  • 29.999 📷
    Best Score record
  • 24.566 📷
    Best Time record
Tiles
  • 10346
    Layer 8
  • 10581
    Layer 12
  • 1792
    Layer 13
  • 12487
    Layer 19
Dust
  • 241
    Covered Tiles
  • 0
    Dustblocks
  • 187
    Filthy Surfaces
  • 54
    Spiked Surfaces
  • 38
    Enemy Dust
  • 225
    Total Dust
Enemies
  • 5
    Critter
  • 1
    Wolf
  • 2
    Bear
General
  • grasscave
    Source File
  • Gold
    Key Reward
  • false
    Virtual Chars
  • 143
    Props
  • 3
    Apples
  • 24.633 📷
    Best Score record
  • 10.366 📷
    Best Time record
Tiles
  • 10982
    Layer 6
  • 12336
    Layer 8
  • 2135
    Layer 9
  • 3636
    Layer 10
  • 9462
    Layer 11
  • 88
    Layer 14
  • 8
    Layer 15
  • 19023
    Layer 19
Dust
  • 184
    Covered Tiles
  • 0
    Dustblocks
  • 144
    Filthy Surfaces
  • 40
    Spiked Surfaces
  • 54
    Enemy Dust
  • 198
    Total Dust
Enemies
  • 5
    Critter
  • 1
    Wolf
  • 4
    Porcupine
  • 2
    Stoneboss
  • 2
    Stonebro
General
  • den
    Source File
  • Red
    Key Reward
  • false
    Virtual Chars
  • 19
    Props
  • 0
    Apples
  • 5.716 📷
    Best Score record
  • 5.716 📷
    Best Time record
Tiles
  • 8474
    Layer 11
  • 110
    Layer 13
  • 221
    Layer 14
  • 208
    Layer 15
  • 278
    Layer 17
  • 22557
    Layer 19
Dust
  • 10
    Covered Tiles
  • 0
    Dustblocks
  • 10
    Filthy Surfaces
  • 0
    Spiked Surfaces
  • 57
    Enemy Dust
  • 67
    Total Dust
Enemies
  • 3
    Critter
  • 3
    Porcupine
  • 1
    Stoneboss
  • 2
    Stonebro
  • 3
    Bear
General
  • autumnforest
    Source File
  • Red
    Key Reward
  • false
    Virtual Chars
  • 92
    Props
  • 2
    Apples
  • 57.051 📷
    Best Score record
  • 25.633 📷
    Best Time record
Tiles
  • 4661
    Layer 8
  • 22576
    Layer 9
  • 3507
    Layer 10
  • 4790
    Layer 11
  • 3858
    Layer 14
  • 55
    Layer 15
  • 7698
    Layer 16
  • 33354
    Layer 19
Dust
  • 486
    Covered Tiles
  • 106
    Dustblocks
  • 180
    Filthy Surfaces
  • 340
    Spiked Surfaces
  • 60
    Enemy Dust
  • 346
    Total Dust
Enemies
  • 12
    Critter
  • 1
    Stoneboss
  • 1
    Stonebro
  • 1
    Bear
General
  • garden
    Source File
  • Red
    Key Reward
  • false
    Virtual Chars
  • 96
    Props
  • 1
    Apples
  • 19.65 📷
    Best Score record
  • 11.3 📷
    Best Time record
Tiles
  • 183
    Layer 10
  • 1502
    Layer 11
  • 206
    Layer 14
  • 24
    Layer 15
  • 1148
    Layer 16
  • 5999
    Layer 19
Dust
  • 260
    Covered Tiles
  • 0
    Dustblocks
  • 58
    Filthy Surfaces
  • 217
    Spiked Surfaces
  • 24
    Enemy Dust
  • 82
    Total Dust
Enemies
  • 8
    Critter
General
  • hyperdifficult
    Source File
  • Red
    Key Reward
  • false
    Virtual Chars
  • 41
    Props
  • 1
    Apples
  • 43.917 📷
    Best Score record
  • 37.699 📷
    Best Time record
Tiles
  • 2726
    Layer 11
  • 2157
    Layer 16
  • 8866
    Layer 19
Dust
  • 905
    Covered Tiles
  • 7
    Dustblocks
  • 146
    Filthy Surfaces
  • 940
    Spiked Surfaces
  • 48
    Enemy Dust
  • 201
    Total Dust
Enemies
  • 12
    Critter
  • 1
    Stoneboss

Mansion

General
  • atrium
    Source File
  • Bronze
    Key Reward
  • false
    Virtual Chars
  • 7
    Props
  • 1
    Apples
  • 6.983 📷
    Best Score record
  • 3.183 📷
    Best Time record
Tiles
  • 1292
    Layer 9
  • 1073
    Layer 11
  • 659
    Layer 12
  • 185
    Layer 14
  • 336
    Layer 15
  • 430
    Layer 16
  • 938
    Layer 19
  • 9
    Layer 20
Dust
  • 55
    Covered Tiles
  • 0
    Dustblocks
  • 55
    Filthy Surfaces
  • 0
    Spiked Surfaces
  • 15
    Enemy Dust
  • 70
    Total Dust
Enemies
  • 5
    Gargoyle, Small
General
  • secretpassage
    Source File
  • Bronze
    Key Reward
  • false
    Virtual Chars
  • 40
    Props
  • 1
    Apples
  • 19.65 📷
    Best Score record
  • 12.416 📷
    Best Time record
Tiles
  • 28710
    Layer 8
  • 1629
    Layer 11
  • 903
    Layer 15
  • 787
    Layer 16
  • 42
    Layer 17
  • 22019
    Layer 19
Dust
  • 105
    Covered Tiles
  • 6
    Dustblocks
  • 107
    Filthy Surfaces
  • 0
    Spiked Surfaces
  • 21
    Enemy Dust
  • 134
    Total Dust
Enemies
  • 7
    Gargoyle, Small
General
  • alcoves
    Source File
  • Bronze
    Key Reward
  • false
    Virtual Chars
  • 57
    Props
  • 1
    Apples
  • 18.35 📷
    Best Score record
  • 13.95 📷
    Best Time record
Tiles
  • 18255
    Layer 16
  • 326
    Layer 17
  • 2021
    Layer 19
Dust
  • 164
    Covered Tiles
  • 0
    Dustblocks
  • 164
    Filthy Surfaces
  • 0
    Spiked Surfaces
  • 15
    Enemy Dust
  • 179
    Total Dust
Enemies
  • 5
    Gargoyle, Small
General
  • mezzanine
    Source File
  • Bronze
    Key Reward
  • false
    Virtual Chars
  • 87
    Props
  • 1
    Apples
  • 26.349 📷
    Best Score record
  • 21.216 📷
    Best Time record
Tiles
  • 2865
    Layer 14
  • 4769
    Layer 15
  • 40
    Layer 16
  • 2464
    Layer 19
Dust
  • 94
    Covered Tiles
  • 0
    Dustblocks
  • 98
    Filthy Surfaces
  • 0
    Spiked Surfaces
  • 30
    Enemy Dust
  • 128
    Total Dust
Enemies
  • 10
    Gargoyle, Small
General
  • cave
    Source File
  • Silver
    Key Reward
  • false
    Virtual Chars
  • 49
    Props
  • 3
    Apples
  • 42.0 📷
    Best Score record
  • 16.933 📷
    Best Time record
Tiles
  • 25742
    Layer 6
  • 487
    Layer 7
  • 10436
    Layer 8
  • 8006
    Layer 11
  • 148
    Layer 12
  • 239
    Layer 13
  • 23
    Layer 14
  • 344
    Layer 15
  • 2631
    Layer 16
  • 54
    Layer 17
  • 36312
    Layer 19
  • 418
    Layer 20
Dust
  • 317
    Covered Tiles
  • 23
    Dustblocks
  • 294
    Filthy Surfaces
  • 30
    Spiked Surfaces
  • 65
    Enemy Dust
  • 382
    Total Dust
Enemies
  • 4
    Gargoyle, Big
  • 15
    Gargoyle, Small
General
  • cliffsidecaves
    Source File
  • Silver
    Key Reward
  • false
    Virtual Chars
  • 158
    Props
  • 2
    Apples
  • 1:03.135 📷
    Best Score record
  • 54.017 📷
    Best Time record
Tiles
  • 23644
    Layer 6
  • 4722
    Layer 8
  • 8031
    Layer 11
  • 178
    Layer 15
  • 7858
    Layer 16
  • 61008
    Layer 19
  • 27
    Layer 20
Dust
  • 352
    Covered Tiles
  • 27
    Dustblocks
  • 354
    Filthy Surfaces
  • 0
    Spiked Surfaces
  • 48
    Enemy Dust
  • 429
    Total Dust
Enemies
  • 3
    Gargoyle, Big
  • 5
    Gargoyle, Small
  • 2
    Knight
General
  • library
    Source File
  • Silver
    Key Reward
  • false
    Virtual Chars
  • 165
    Props
  • 1
    Apples
  • 50.834 📷
    Best Score record
  • 34.799 📷
    Best Time record
Tiles
  • 1472
    Layer 6
  • 2296
    Layer 7
  • 6059
    Layer 8
  • 1267
    Layer 9
  • 4428
    Layer 11
  • 128
    Layer 12
  • 8
    Layer 13
  • 1381
    Layer 15
  • 5171
    Layer 16
  • 4
    Layer 17
  • 19630
    Layer 19
Dust
  • 270
    Covered Tiles
  • 84
    Dustblocks
  • 270
    Filthy Surfaces
  • 0
    Spiked Surfaces
  • 55
    Enemy Dust
  • 409
    Total Dust
Enemies
  • 2
    Butler
  • 5
    Maid
  • 1
    Chest, Treasure
  • 13
    Book
General
  • courtyard
    Source File
  • Silver
    Key Reward
  • false
    Virtual Chars
  • 152
    Props
  • 1
    Apples
  • 50.25 📷
    Best Score record
  • 31.632 📷
    Best Time record
Tiles
  • 558
    Layer 6
  • 703
    Layer 7
  • 3566
    Layer 8
  • 4300
    Layer 9
  • 2191
    Layer 10
  • 1768
    Layer 11
  • 262
    Layer 12
  • 111
    Layer 13
  • 2013
    Layer 15
  • 6046
    Layer 16
  • 4
    Layer 17
  • 41974
    Layer 19
  • 812
    Layer 20
Dust
  • 238
    Covered Tiles
  • 28
    Dustblocks
  • 239
    Filthy Surfaces
  • 0
    Spiked Surfaces
  • 28
    Enemy Dust
  • 295
    Total Dust
Enemies
  • 1
    Maid
  • 9
    Gargoyle, Small
General
  • precarious
    Source File
  • Gold
    Key Reward
  • false
    Virtual Chars
  • 4
    Props
  • 1
    Apples
  • 27.033 📷
    Best Score record
  • 24.216 📷
    Best Time record
Tiles
  • 124436
    Layer 6
  • 10671
    Layer 8
  • 4136
    Layer 11
  • 3390
    Layer 16
  • 50791
    Layer 19
Dust
  • 518
    Covered Tiles
  • 0
    Dustblocks
  • 259
    Filthy Surfaces
  • 260
    Spiked Surfaces
  • 27
    Enemy Dust
  • 286
    Total Dust
Enemies
  • 6
    Gargoyle, Small
  • 1
    Knight
General
  • treasureroom
    Source File
  • Gold
    Key Reward
  • false
    Virtual Chars
  • 44
    Props
  • 1
    Apples
  • 30.416 📷
    Best Score record
  • 19.266 📷
    Best Time record
Tiles
  • 22361
    Layer 11
  • 407
    Layer 12
  • 4508
    Layer 13
  • 527
    Layer 14
  • 845
    Layer 16
  • 20898
    Layer 19
Dust
  • 203
    Covered Tiles
  • 0
    Dustblocks
  • 185
    Filthy Surfaces
  • 18
    Spiked Surfaces
  • 144
    Enemy Dust
  • 329
    Total Dust
Enemies
  • 2
    Butler
  • 4
    Maid
  • 6
    Chest, Treasure
  • 7
    Gargoyle, Small
  • 7
    Knight
General
  • arena
    Source File
  • Gold
    Key Reward
  • false
    Virtual Chars
  • 23
    Props
  • 0
    Apples
  • 5.966 📷
    Best Score record
  • 5.466 📷
    Best Time record
Tiles
  • 397
    Layer 9
  • 245
    Layer 10
  • 201
    Layer 11
  • 45
    Layer 12
  • 219
    Layer 15
  • 99
    Layer 16
  • 1859
    Layer 17
  • 956
    Layer 19
Dust
  • 22
    Covered Tiles
  • 0
    Dustblocks
  • 22
    Filthy Surfaces
  • 0
    Spiked Surfaces
  • 55
    Enemy Dust
  • 77
    Total Dust
Enemies
  • 2
    Chest, Scrolls
  • 2
    Gargoyle, Big
  • 1
    Knight
  • 6
    Book
General
  • ramparts
    Source File
  • Gold
    Key Reward
  • false
    Virtual Chars
  • 103
    Props
  • 1
    Apples
  • 1:01.951 📷
    Best Score record
  • 45.033 📷
    Best Time record
Tiles
  • 42
    Layer 9
  • 2456
    Layer 10
  • 7532
    Layer 11
  • 2954
    Layer 12
  • 711
    Layer 13
  • 66
    Layer 15
  • 5379
    Layer 16
  • 8434
    Layer 19
  • 311
    Layer 20
Dust
  • 235
    Covered Tiles
  • 0
    Dustblocks
  • 239
    Filthy Surfaces
  • 0
    Spiked Surfaces
  • 89
    Enemy Dust
  • 328
    Total Dust
Enemies
  • 1
    Flag
  • 9
    Gargoyle, Big
  • 10
    Gargoyle, Small
  • 1
    Knight
General
  • moontemple
    Source File
  • Red
    Key Reward
  • false
    Virtual Chars
  • 66
    Props
  • 1
    Apples
  • 35.316 📷
    Best Score record
  • 22.166 📷
    Best Time record
Tiles
  • 1339
    Layer 11
  • 18
    Layer 12
  • 39
    Layer 15
  • 4421
    Layer 16
  • 3473
    Layer 19
Dust
  • 431
    Covered Tiles
  • 24
    Dustblocks
  • 238
    Filthy Surfaces
  • 233
    Spiked Surfaces
  • 27
    Enemy Dust
  • 289
    Total Dust
Enemies
  • 3
    Gargoyle, Small
  • 2
    Knight
General
  • observatory
    Source File
  • Red
    Key Reward
  • false
    Virtual Chars
  • 3
    Props
  • 0
    Apples
  • 16.366 📷
    Best Score record
  • 12.533 📷
    Best Time record
Tiles
  • 356
    Layer 6
  • 138
    Layer 7
  • 1645
    Layer 8
  • 1173
    Layer 9
  • 688
    Layer 10
  • 1486
    Layer 11
  • 79
    Layer 14
  • 54
    Layer 15
  • 478
    Layer 16
  • 4747
    Layer 19
Dust
  • 149
    Covered Tiles
  • 0
    Dustblocks
  • 83
    Filthy Surfaces
  • 77
    Spiked Surfaces
  • 14
    Enemy Dust
  • 97
    Total Dust
Enemies
  • 1
    Butler
  • 1
    Maid
  • 4
    Gargoyle, Small
General
  • parapets
    Source File
  • Red
    Key Reward
  • false
    Virtual Chars
  • 78
    Props
  • 1
    Apples
  • 44.183 📷
    Best Score record
  • 37.566 📷
    Best Time record
Tiles
  • 4301
    Layer 8
  • 2833
    Layer 11
  • 4761
    Layer 16
  • 127
    Layer 17
  • 975
    Layer 19
Dust
  • 162
    Covered Tiles
  • 0
    Dustblocks
  • 168
    Filthy Surfaces
  • 0
    Spiked Surfaces
  • 5
    Enemy Dust
  • 173
    Total Dust
Enemies
  • 1
    Flag
General
  • brimstone
    Source File
  • Red
    Key Reward
  • false
    Virtual Chars
  • 38
    Props
  • 1
    Apples
  • 23.833 📷
    Best Score record
  • 5.649 📷
    Best Time record
Tiles
  • 556
    Layer 15
  • 1066
    Layer 16
  • 1211
    Layer 19
Dust
  • 179
    Covered Tiles
  • 16
    Dustblocks
  • 70
    Filthy Surfaces
  • 113
    Spiked Surfaces
  • 108
    Enemy Dust
  • 194
    Total Dust
Enemies
  • 36
    Gargoyle, Small

City

General
  • vacantlot
    Source File
  • Bronze
    Key Reward
  • false
    Virtual Chars
  • 83
    Props
  • 1
    Apples
  • 7.316 📷
    Best Score record
  • 3.316 📷
    Best Time record
Tiles
  • 22
    Layer 6
  • 94
    Layer 13
  • 695
    Layer 14
  • 87
    Layer 15
  • 341
    Layer 16
  • 5638
    Layer 19
  • 283
    Layer 20
Dust
  • 11
    Covered Tiles
  • 0
    Dustblocks
  • 11
    Filthy Surfaces
  • 0
    Spiked Surfaces
  • 42
    Enemy Dust
  • 53
    Total Dust
Enemies
  • 14
    Ball, Trash
General
  • sprawl
    Source File
  • Bronze
    Key Reward
  • false
    Virtual Chars
  • 42
    Props
  • 1
    Apples
  • 17.233 📷
    Best Score record
  • 9.366 📷
    Best Time record
Tiles
  • 13381
    Layer 8
  • 5057
    Layer 11
  • 358
    Layer 12
  • 593
    Layer 14
  • 1
    Layer 15
  • 2925
    Layer 16
  • 163
    Layer 17
  • 33504
    Layer 19
  • 1039
    Layer 20
Dust
  • 0
    Covered Tiles
  • 1275
    Dustblocks
  • 0
    Filthy Surfaces
  • 0
    Spiked Surfaces
  • 42
    Enemy Dust
  • 1317
    Total Dust
Enemies
  • 14
    Ball, Trash
General
  • development
    Source File
  • Bronze
    Key Reward
  • false
    Virtual Chars
  • 63
    Props
  • 1
    Apples
  • 7.799 📷
    Best Score record
  • 3.083 📷
    Best Time record
Tiles
  • 54
    Layer 13
  • 171
    Layer 14
  • 87
    Layer 15
  • 418
    Layer 16
  • 395
    Layer 17
  • 7823
    Layer 19
  • 1355
    Layer 20
Dust
  • 115
    Covered Tiles
  • 0
    Dustblocks
  • 121
    Filthy Surfaces
  • 0
    Spiked Surfaces
  • 3
    Enemy Dust
  • 124
    Total Dust
Enemies
  • 1
    Ball, Trash
General
  • abandoned
    Source File
  • Bronze
    Key Reward
  • false
    Virtual Chars
  • 90
    Props
  • 1
    Apples
  • 16.583 📷
    Best Score record
  • 7.983 📷
    Best Time record
Tiles
  • 553
    Layer 9
  • 428
    Layer 10
  • 854
    Layer 11
  • 141
    Layer 15
  • 708
    Layer 16
  • 430
    Layer 17
  • 1057
    Layer 19
  • 7874
    Layer 20
Dust
  • 104
    Covered Tiles
  • 0
    Dustblocks
  • 105
    Filthy Surfaces
  • 0
    Spiked Surfaces
  • 21
    Enemy Dust
  • 126
    Total Dust
Enemies
  • 7
    Ball, Trash
General
  • park
    Source File
  • Silver
    Key Reward
  • false
    Virtual Chars
  • 407
    Props
  • 3
    Apples
  • 32.166 📷
    Best Score record
  • 22.616 📷
    Best Time record
Tiles
  • 3985
    Layer 6
  • 534
    Layer 7
  • 134
    Layer 8
  • 2218
    Layer 9
  • 2213
    Layer 11
  • 2979
    Layer 12
  • 15
    Layer 13
  • 516
    Layer 14
  • 2741
    Layer 15
  • 83
    Layer 16
  • 5298
    Layer 17
  • 11083
    Layer 19
  • 6848
    Layer 20
Dust
  • 180
    Covered Tiles
  • 57
    Dustblocks
  • 163
    Filthy Surfaces
  • 17
    Spiked Surfaces
  • 21
    Enemy Dust
  • 241
    Total Dust
Enemies
  • 1
    Tire
  • 6
    Ball, Trash
General
  • boxes
    Source File
  • Silver
    Key Reward
  • false
    Virtual Chars
  • 44
    Props
  • 1
    Apples
  • 8.316 📷
    Best Score record
  • 0.983 📷
    Best Time record
Tiles
  • 1116
    Layer 7
  • 6
    Layer 8
  • 182
    Layer 9
  • 6643
    Layer 11
  • 14318
    Layer 19
Dust
  • 116
    Covered Tiles
  • 0
    Dustblocks
  • 140
    Filthy Surfaces
  • 0
    Spiked Surfaces
  • 3
    Enemy Dust
  • 143
    Total Dust
Enemies
  • 1
    Ball, Trash
General
  • chemworld
    Source File
  • Silver
    Key Reward
  • false
    Virtual Chars
  • 132
    Props
  • 3
    Apples
  • 25.699 📷
    Best Score record
  • 8.999 📷
    Best Time record
Tiles
  • 1264
    Layer 9
  • 408
    Layer 10
  • 626
    Layer 11
  • 3717
    Layer 15
  • 2891
    Layer 16
  • 1
    Layer 17
  • 2406
    Layer 19
Dust
  • 202
    Covered Tiles
  • 0
    Dustblocks
  • 202
    Filthy Surfaces
  • 0
    Spiked Surfaces
  • 63
    Enemy Dust
  • 265
    Total Dust
Enemies
  • 21
    Ball, Trash
General
  • factory
    Source File
  • Silver
    Key Reward
  • false
    Virtual Chars
  • 173
    Props
  • 1
    Apples
  • 31.266 📷
    Best Score record
  • 14.25 📷
    Best Time record
Tiles
  • 12600
    Layer 8
  • 759
    Layer 11
  • 50
    Layer 12
  • 635
    Layer 13
  • 150
    Layer 15
  • 913
    Layer 16
  • 9723
    Layer 19
Dust
  • 183
    Covered Tiles
  • 58
    Dustblocks
  • 183
    Filthy Surfaces
  • 0
    Spiked Surfaces
  • 42
    Enemy Dust
  • 283
    Total Dust
Enemies
  • 1
    Can, Trash
  • 1
    Beast, Trash
  • 8
    Ball, Trash
General
  • tunnel
    Source File
  • Gold
    Key Reward
  • false
    Virtual Chars
  • 181
    Props
  • 2
    Apples
  • 43.35 📷
    Best Score record
  • 24.333 📷
    Best Time record
Tiles
  • 68684
    Layer 6
  • 500
    Layer 8
  • 573
    Layer 9
  • 12741
    Layer 10
  • 1086
    Layer 11
  • 2796
    Layer 12
  • 6
    Layer 14
  • 54
    Layer 15
  • 76
    Layer 16
  • 229
    Layer 17
  • 20843
    Layer 19
Dust
  • 266
    Covered Tiles
  • 92
    Dustblocks
  • 259
    Filthy Surfaces
  • 7
    Spiked Surfaces
  • 39
    Enemy Dust
  • 390
    Total Dust
Enemies
  • 1
    Beast, Trash
  • 10
    Ball, Trash
General
  • basement
    Source File
  • Gold
    Key Reward
  • false
    Virtual Chars
  • 85
    Props
  • 1
    Apples
  • 26.916 📷
    Best Score record
  • 18.433 📷
    Best Time record
Tiles
  • 21621
    Layer 11
  • 1190
    Layer 12
  • 56
    Layer 14
  • 16076
    Layer 19
Dust
  • 244
    Covered Tiles
  • 44
    Dustblocks
  • 139
    Filthy Surfaces
  • 108
    Spiked Surfaces
  • 45
    Enemy Dust
  • 228
    Total Dust
Enemies
  • 2
    Beast, Trash
  • 9
    Ball, Trash
General
  • scaffold
    Source File
  • Gold
    Key Reward
  • false
    Virtual Chars
  • 57
    Props
  • 1
    Apples
  • 32.732 📷
    Best Score record
  • 27.816 📷
    Best Time record
Tiles
  • 56
    Layer 11
  • 2527
    Layer 16
  • 2366
    Layer 19
Dust
  • 200
    Covered Tiles
  • 8
    Dustblocks
  • 178
    Filthy Surfaces
  • 33
    Spiked Surfaces
  • 30
    Enemy Dust
  • 216
    Total Dust
Enemies
  • 1
    Beast, Trash
  • 7
    Ball, Trash
General
  • cityrun
    Source File
  • Gold
    Key Reward
  • false
    Virtual Chars
  • 130
    Props
  • 1
    Apples
  • 24.816 📷
    Best Score record
  • 21.133 📷
    Best Time record
Tiles
  • 820
    Layer 11
  • 3580
    Layer 16
  • 4536
    Layer 19
Dust
  • 112
    Covered Tiles
  • 16
    Dustblocks
  • 93
    Filthy Surfaces
  • 20
    Spiked Surfaces
  • 30
    Enemy Dust
  • 139
    Total Dust
Enemies
  • 2
    Can, Trash
  • 1
    Beast, Trash
  • 1
    Ball, Trash
General
  • clocktower
    Source File
  • Red
    Key Reward
  • false
    Virtual Chars
  • 141
    Props
  • 1
    Apples
  • 14.983 📷
    Best Score record
  • 14.833 📷
    Best Time record
Tiles
  • 58760
    Layer 12
  • 38
    Layer 13
  • 18055
    Layer 15
  • 1407
    Layer 19
Dust
  • 223
    Covered Tiles
  • 68
    Dustblocks
  • 42
    Filthy Surfaces
  • 186
    Spiked Surfaces
  • 33
    Enemy Dust
  • 143
    Total Dust
Enemies
  • 11
    Ball, Trash
General
  • concretetemple
    Source File
  • Red
    Key Reward
  • false
    Virtual Chars
  • 62
    Props
  • 1
    Apples
  • 54.434 📷
    Best Score record
  • 40.95 📷
    Best Time record
Tiles
  • 4076
    Layer 6
  • 7020
    Layer 7
  • 2203
    Layer 8
  • 1813
    Layer 11
  • 3324
    Layer 16
  • 23042
    Layer 19
  • 4189
    Layer 20
Dust
  • 435
    Covered Tiles
  • 24
    Dustblocks
  • 216
    Filthy Surfaces
  • 257
    Spiked Surfaces
  • 90
    Enemy Dust
  • 330
    Total Dust
Enemies
  • 4
    Can, Trash
  • 1
    Beast, Trash
  • 15
    Ball, Trash
General
  • alley
    Source File
  • Red
    Key Reward
  • false
    Virtual Chars
  • 25
    Props
  • 0
    Apples
  • 6.699 📷
    Best Score record
  • 6.566 📷
    Best Time record
Tiles
  • 2334
    Layer 9
  • 263
    Layer 11
  • 250
    Layer 16
  • 1386
    Layer 19
Dust
  • 45
    Covered Tiles
  • 0
    Dustblocks
  • 46
    Filthy Surfaces
  • 0
    Spiked Surfaces
  • 75
    Enemy Dust
  • 121
    Total Dust
Enemies
  • 3
    Can, Trash
  • 3
    Beast, Trash
  • 4
    Tire
  • 3
    Ball, Trash
General
  • hideout
    Source File
  • Red
    Key Reward
  • false
    Virtual Chars
  • 114
    Props
  • 1
    Apples
  • 34.566 📷
    Best Score record
  • 27.783 📷
    Best Time record
Tiles
  • 38829
    Layer 6
  • 16075
    Layer 9
  • 202
    Layer 14
  • 1380
    Layer 15
  • 1111
    Layer 16
  • 20048
    Layer 19
Dust
  • 812
    Covered Tiles
  • 8
    Dustblocks
  • 63
    Filthy Surfaces
  • 832
    Spiked Surfaces
  • 18
    Enemy Dust
  • 89
    Total Dust
Enemies
  • 2
    Beast, Trash

Lab

General
  • control
    Source File
  • Bronze
    Key Reward
  • false
    Virtual Chars
  • 54
    Props
  • 1
    Apples
  • 16.283 📷
    Best Score record
  • 10.683 📷
    Best Time record
Tiles
  • 6737
    Layer 10
  • 4455
    Layer 11
  • 81
    Layer 14
  • 820
    Layer 16
  • 1449
    Layer 19
  • 14589
    Layer 20
Dust
  • 118
    Covered Tiles
  • 0
    Dustblocks
  • 122
    Filthy Surfaces
  • 0
    Spiked Surfaces
  • 15
    Enemy Dust
  • 137
    Total Dust
Enemies
  • 5
    Ball, Slime
General
  • ferrofluid
    Source File
  • Bronze
    Key Reward
  • false
    Virtual Chars
  • 22
    Props
  • 1
    Apples
  • 13.2 📷
    Best Score record
  • 7.583 📷
    Best Time record
Tiles
  • 17348
    Layer 8
  • 813
    Layer 9
  • 731
    Layer 10
  • 635
    Layer 11
  • 2626
    Layer 15
  • 20876
    Layer 16
  • 1422
    Layer 19
Dust
  • 104
    Covered Tiles
  • 5
    Dustblocks
  • 105
    Filthy Surfaces
  • 0
    Spiked Surfaces
  • 15
    Enemy Dust
  • 125
    Total Dust
Enemies
  • 5
    Ball, Slime
General
  • titan
    Source File
  • Bronze
    Key Reward
  • false
    Virtual Chars
  • 103
    Props
  • 1
    Apples
  • 14.983 📷
    Best Score record
  • 8.633 📷
    Best Time record
Tiles
  • 4
    Layer 6
  • 4847
    Layer 16
  • 729
    Layer 17
  • 30022
    Layer 19
  • 1681
    Layer 20
Dust
  • 132
    Covered Tiles
  • 0
    Dustblocks
  • 134
    Filthy Surfaces
  • 0
    Spiked Surfaces
  • 24
    Enemy Dust
  • 158
    Total Dust
Enemies
  • 8
    Ball, Slime
General
  • satellite
    Source File
  • Bronze
    Key Reward
  • false
    Virtual Chars
  • 17
    Props
  • 1
    Apples
  • 20.966 📷
    Best Score record
  • 16.8 📷
    Best Time record
Tiles
  • 828
    Layer 16
  • 1414
    Layer 19
Dust
  • 191
    Covered Tiles
  • 0
    Dustblocks
  • 191
    Filthy Surfaces
  • 0
    Spiked Surfaces
  • 3
    Enemy Dust
  • 194
    Total Dust
Enemies
  • 1
    Ball, Slime
General
  • vat
    Source File
  • Silver
    Key Reward
  • false
    Virtual Chars
  • 59
    Props
  • 1
    Apples
  • 32.649 📷
    Best Score record
  • 23.049 📷
    Best Time record
Tiles
  • 41287
    Layer 11
  • 1364
    Layer 12
  • 1556
    Layer 14
  • 4662
    Layer 16
  • 80117
    Layer 19
  • 26276
    Layer 20
Dust
  • 254
    Covered Tiles
  • 238
    Dustblocks
  • 254
    Filthy Surfaces
  • 0
    Spiked Surfaces
  • 75
    Enemy Dust
  • 567
    Total Dust
Enemies
  • 3
    Ball, Spring
  • 4
    Barrel, Slime
  • 1
    Beast, Slime
  • 13
    Ball, Slime
General
  • venom
    Source File
  • Silver
    Key Reward
  • false
    Virtual Chars
  • 44
    Props
  • 1
    Apples
  • 17.633 📷
    Best Score record
  • 6.399 📷
    Best Time record
Tiles
  • 32384
    Layer 8
  • 1249
    Layer 10
  • 260
    Layer 11
  • 1618
    Layer 15
  • 274
    Layer 16
  • 2805
    Layer 19
  • 36127
    Layer 20
Dust
  • 407
    Covered Tiles
  • 93
    Dustblocks
  • 168
    Filthy Surfaces
  • 239
    Spiked Surfaces
  • 27
    Enemy Dust
  • 288
    Total Dust
Enemies
  • 2
    Beast, Slime
  • 3
    Ball, Slime
General
  • security
    Source File
  • Silver
    Key Reward
  • false
    Virtual Chars
  • 52
    Props
  • 1
    Apples
  • 31.149 📷
    Best Score record
  • 21.683 📷
    Best Time record
Tiles
  • 8766
    Layer 12
  • 5366
    Layer 13
  • 2435
    Layer 14
  • 3037
    Layer 19
  • 15358
    Layer 20
Dust
  • 146
    Covered Tiles
  • 6
    Dustblocks
  • 146
    Filthy Surfaces
  • 0
    Spiked Surfaces
  • 96
    Enemy Dust
  • 248
    Total Dust
Enemies
  • 1
    Barrel, Slime
  • 3
    Beast, Slime
  • 22
    Ball, Slime
General
  • mary
    Source File
  • Silver
    Key Reward
  • false
    Virtual Chars
  • 139
    Props
  • 3
    Apples
  • 43.1 📷
    Best Score record
  • 27.799 📷
    Best Time record
Tiles
  • 61473
    Layer 6
  • 11248
    Layer 7
  • 7068
    Layer 10
  • 2833
    Layer 16
  • 17648
    Layer 19
  • 48
    Layer 20
Dust
  • 311
    Covered Tiles
  • 0
    Dustblocks
  • 301
    Filthy Surfaces
  • 12
    Spiked Surfaces
  • 72
    Enemy Dust
  • 373
    Total Dust
Enemies
  • 3
    Ball, Spring
  • 2
    Barrel, Slime
  • 3
    Beast, Slime
  • 8
    Ball, Slime
General
  • wiringfixed
    Source File
  • Gold
    Key Reward
  • false
    Virtual Chars
  • 19
    Props
  • 0
    Apples
  • 38.049 📷
    Best Score record
  • 17.3 📷
    Best Time record
Tiles
  • 136456
    Layer 6
  • 3269
    Layer 8
  • 3504
    Layer 11
  • 21
    Layer 13
  • 4191
    Layer 16
  • 6315
    Layer 17
  • 4079
    Layer 19
  • 38349
    Layer 20
Dust
  • 589
    Covered Tiles
  • 21
    Dustblocks
  • 230
    Filthy Surfaces
  • 362
    Spiked Surfaces
  • 39
    Enemy Dust
  • 290
    Total Dust
Enemies
  • 13
    Ball, Slime
General
  • containment
    Source File
  • Gold
    Key Reward
  • false
    Virtual Chars
  • 25
    Props
  • 0
    Apples
  • 9.566 📷
    Best Score record
  • 8.616 📷
    Best Time record
Tiles
  • 214
    Layer 8
  • 1148
    Layer 11
  • 640
    Layer 12
  • 418
    Layer 13
  • 179
    Layer 16
  • 400
    Layer 19
  • 7937
    Layer 20
Dust
  • 24
    Covered Tiles
  • 0
    Dustblocks
  • 24
    Filthy Surfaces
  • 0
    Spiked Surfaces
  • 92
    Enemy Dust
  • 116
    Total Dust
Enemies
  • 4
    Ball, Spring
  • 6
    Barrel, Slime
  • 4
    Beast, Slime
  • 6
    Ball, Slime
General
  • orb
    Source File
  • Gold
    Key Reward
  • false
    Virtual Chars
  • 38
    Props
  • 1
    Apples
  • 23.683 📷
    Best Score record
  • 11.383 📷
    Best Time record
Tiles
  • 10634
    Layer 6
  • 860
    Layer 11
  • 2289
    Layer 16
  • 14604
    Layer 19
Dust
  • 336
    Covered Tiles
  • 0
    Dustblocks
  • 152
    Filthy Surfaces
  • 187
    Spiked Surfaces
  • 39
    Enemy Dust
  • 191
    Total Dust
Enemies
  • 2
    Beast, Slime
  • 7
    Ball, Slime
General
  • pod
    Source File
  • Gold
    Key Reward
  • false
    Virtual Chars
  • 49
    Props
  • 1
    Apples
  • 26.933 📷
    Best Score record
  • 15.0 📷
    Best Time record
Tiles
  • 4891
    Layer 6
  • 3512
    Layer 7
  • 1426
    Layer 16
  • 16
    Layer 17
  • 19141
    Layer 19
Dust
  • 197
    Covered Tiles
  • 0
    Dustblocks
  • 199
    Filthy Surfaces
  • 0
    Spiked Surfaces
  • 24
    Enemy Dust
  • 223
    Total Dust
Enemies
  • 3
    Ball, Spring
  • 3
    Ball, Slime
General
  • mary2
    Source File
  • Red
    Key Reward
  • false
    Virtual Chars
  • 1
    Props
  • 1
    Apples
  • 42.216 📷
    Best Score record
  • 38.466 📷
    Best Time record
Tiles
  • 16406
    Layer 6
  • 1292
    Layer 7
  • 3525
    Layer 11
  • 119
    Layer 12
  • 1654
    Layer 16
  • 4814
    Layer 19
  • 20072
    Layer 20
Dust
  • 787
    Covered Tiles
  • 82
    Dustblocks
  • 85
    Filthy Surfaces
  • 724
    Spiked Surfaces
  • 104
    Enemy Dust
  • 271
    Total Dust
Enemies
  • 4
    Ball, Spring
  • 2
    Barrel, Slime
  • 2
    Beast, Slime
  • 20
    Ball, Slime
General
  • coretemple
    Source File
  • Red
    Key Reward
  • false
    Virtual Chars
  • 4
    Props
  • 1
    Apples
  • 45.417 📷
    Best Score record
  • 31.299 📷
    Best Time record
Tiles
  • 15523
    Layer 6
  • 3966
    Layer 8
  • 25519
    Layer 10
  • 6707
    Layer 12
  • 82
    Layer 13
  • 50
    Layer 14
  • 4627
    Layer 15
  • 255
    Layer 16
  • 2033
    Layer 17
  • 5394
    Layer 19
Dust
  • 915
    Covered Tiles
  • 0
    Dustblocks
  • 221
    Filthy Surfaces
  • 710
    Spiked Surfaces
  • 66
    Enemy Dust
  • 287
    Total Dust
Enemies
  • 22
    Ball, Slime
General
  • abyss
    Source File
  • Red
    Key Reward
  • false
    Virtual Chars
  • 50
    Props
  • 1
    Apples
  • 31.432 📷
    Best Score record
  • 11.6 📷
    Best Time record
Tiles
  • 63906
    Layer 6
  • 5402
    Layer 8
  • 5677
    Layer 9
  • 1198
    Layer 12
  • 648
    Layer 13
  • 304
    Layer 15
  • 4019
    Layer 16
  • 41868
    Layer 19
Dust
  • 276
    Covered Tiles
  • 114
    Dustblocks
  • 84
    Filthy Surfaces
  • 202
    Spiked Surfaces
  • 75
    Enemy Dust
  • 273
    Total Dust
Enemies
  • 3
    Beast, Slime
  • 16
    Ball, Slime
General
  • dome
    Source File
  • Red
    Key Reward
  • false
    Virtual Chars
  • 130
    Props
  • 1
    Apples
  • 38.899 📷
    Best Score record
  • 20.783 📷
    Best Time record
Tiles
  • 163480
    Layer 6
  • 1630
    Layer 7
  • 2472
    Layer 8
  • 131
    Layer 9
  • 6202
    Layer 10
  • 1168
    Layer 11
  • 1196
    Layer 13
  • 408
    Layer 14
  • 38
    Layer 15
  • 4118
    Layer 16
  • 489
    Layer 17
  • 7150
    Layer 19
Dust
  • 508
    Covered Tiles
  • 54
    Dustblocks
  • 197
    Filthy Surfaces
  • 319
    Spiked Surfaces
  • 84
    Enemy Dust
  • 335
    Total Dust
Enemies
  • 3
    Ball, Spring
  • 2
    Beast, Slime
  • 17
    Ball, Slime

Difficults

General
  • kilodifficult
    Source File
  • None
    Key Reward
  • true
    Virtual Chars
  • 0
    Props
  • 0
    Apples
  • 21.366 📷
    Best Score record
  • 11.383 📷
    Best Time record
Tiles
  • 1204
    Layer 6
  • 588
    Layer 8
  • 886
    Layer 14
  • 1116
    Layer 16
  • 717
    Layer 19
Dust
  • 517
    Covered Tiles
  • 35
    Dustblocks
  • 27
    Filthy Surfaces
  • 915
    Spiked Surfaces
  • 14
    Enemy Dust
  • 76
    Total Dust
Enemies
  • 8
    Square
  • 6
    Hexagon
General
  • megadifficult
    Source File
  • None
    Key Reward
  • true
    Virtual Chars
  • 4
    Props
  • 0
    Apples
  • 28.766 📷
    Best Score record
  • 1.549 📷
    Best Time record
Tiles
  • 3827
    Layer 6
  • 5473
    Layer 7
  • 3121
    Layer 8
  • 395
    Layer 11
  • 419
    Layer 16
  • 1158
    Layer 19
Dust
  • 960
    Covered Tiles
  • 71
    Dustblocks
  • 66
    Filthy Surfaces
  • 921
    Spiked Surfaces
  • 35
    Enemy Dust
  • 172
    Total Dust
Enemies
  • 22
    Square
  • 13
    Hexagon
General
  • gigadifficult
    Source File
  • None
    Key Reward
  • true
    Virtual Chars
  • 0
    Props
  • 0
    Apples
  • 36.833 📷
    Best Score record
  • 18.433 📷
    Best Time record
Tiles
  • 940
    Layer 6
  • 1557
    Layer 8
  • 1488
    Layer 11
  • 1402
    Layer 19
Dust
  • 792
    Covered Tiles
  • 62
    Dustblocks
  • 90
    Filthy Surfaces
  • 1002
    Spiked Surfaces
  • 37
    Enemy Dust
  • 189
    Total Dust
Enemies
  • 24
    Square
  • 13
    Hexagon
General
  • teradifficult
    Source File
  • None
    Key Reward
  • true
    Virtual Chars
  • 4
    Props
  • 0
    Apples
  • 18.166 📷
    Best Score record
  • 5.533 📷
    Best Time record
Tiles
  • 32909
    Layer 6
  • 1081
    Layer 8
  • 30228
    Layer 10
  • 112
    Layer 13
  • 738
    Layer 14
  • 1478
    Layer 16
  • 26011
    Layer 19
Dust
  • 684
    Covered Tiles
  • 143
    Dustblocks
  • 3
    Filthy Surfaces
  • 984
    Spiked Surfaces
  • 32
    Enemy Dust
  • 178
    Total Dust
Enemies
  • 25
    Square
  • 7
    Hexagon
General
  • petadifficult
    Source File
  • None
    Key Reward
  • true
    Virtual Chars
  • 0
    Props
  • 0
    Apples
  • 15.883 📷
    Best Score record
  • 7.399 📷
    Best Time record
Tiles
  • 1977
    Layer 11
  • 17555
    Layer 16
  • 541
    Layer 19
Dust
  • 275
    Covered Tiles
  • 115
    Dustblocks
  • 0
    Filthy Surfaces
  • 320
    Spiked Surfaces
  • 6
    Enemy Dust
  • 121
    Total Dust
Enemies
  • 2
    Square
  • 4
    Hexagon
General
  • exadifficult
    Source File
  • None
    Key Reward
  • true
    Virtual Chars
  • 0
    Props
  • 0
    Apples
  • 21.849 📷
    Best Score record
  • 2.016 📷
    Best Time record
Tiles
  • 485
    Layer 10
  • 466
    Layer 11
  • 379
    Layer 16
  • 389
    Layer 19
Dust
  • 328
    Covered Tiles
  • 18
    Dustblocks
  • 0
    Filthy Surfaces
  • 667
    Spiked Surfaces
  • 44
    Enemy Dust
  • 62
    Total Dust
Enemies
  • 38
    Square
  • 6
    Hexagon
General
  • zettadifficult
    Source File
  • None
    Key Reward
  • true
    Virtual Chars
  • 0
    Props
  • 0
    Apples
  • 33.399 📷
    Best Score record
  • 28.399 📷
    Best Time record
Tiles
  • 13050
    Layer 8
  • 4407
    Layer 16
  • 2194
    Layer 19
Dust
  • 834
    Covered Tiles
  • 151
    Dustblocks
  • 193
    Filthy Surfaces
  • 660
    Spiked Surfaces
  • 10
    Enemy Dust
  • 354
    Total Dust
Enemies
  • 4
    Square
  • 6
    Hexagon
General
  • yottadifficult
    Source File
  • None
    Key Reward
  • true
    Virtual Chars
  • 3
    Props
  • 0
    Apples
  • 1:54.277 📷
    Best Score record
  • 1:03.818 📷
    Best Time record
Tiles
  • 68448
    Layer 6
  • 780
    Layer 14
  • 5567
    Layer 16
  • 5117
    Layer 19
Dust
  • 2733
    Covered Tiles
  • 232
    Dustblocks
  • 211
    Filthy Surfaces
  • 2999
    Spiked Surfaces
  • 135
    Enemy Dust
  • 578
    Total Dust
Enemies
  • 106
    Square
  • 29
    Hexagon

Enemies

Forest

Bear

Stats
  • Can attack and break your combo
  • Attacks when entering field of view
  • Can be given a path in the editor
  • Paths 'attached' to the ground
  • Aerial pathing nodes are ignored(?)
  • Affected by gravity
  • Attacks do not move it
  • Can be placed in the editor
  • Health: 9

Attacks with a single hitbox in the direction it is facing.

Forest variant of the Golem style enemy.

Critter

Stats
  • Can't hurt
  • Can be given a path in the editor
  • Flies to aerial pathing nodes
  • Movable with attacks
  • Can be placed in the editor
  • Health: 3

Forest variant of the Small Gargoyle

Commonly referred to as a Turkey.

Hawk

Stats
  • Can attack and break your combo
  • Attacks when entering field of view
  • Does not change behavior when attacked (excluding hitstun)
  • Can be given a path in the editor
  • Considers ground as walls when pathing
  • Flies to aerial pathing nodes
  • Movable with attacks
  • Not in the editor entity list
  • Health: 3

A mostly complete entity present in the game files that was not used in the completed game.

Despite not being able to place it from the level editor in vanilla Dustforce, Dustmod will list it.

When it initiates an attack, the hawk will be attracted towards your mouse cursor. This may cause desyncs if you are not using Dustmod, as the standard replay format does not record mouse position.

Porcupine

Stats
  • Can attack and break your combo
  • Attacks when entering field of view
  • Spawns additional enemies that will hurt you
  • Shoots spike
  • Can be given a path in the editor
  • Paths 'attached' to the ground
  • Aerial pathing nodes are ignored(?)
  • Frozen when footing lost
  • Can be placed in the editor
  • Health: 1

Attacks by spawning three quills, directed forward and diagonally forward from the surface it is on.

Behaves strangely when not on a surface. If placed in the air, it will remain static and unable to attack. If it is removed from a surface while moving, bugs may occur as seen in 4 Lexie

Spike

Stats
  • Can attack and break your combo
  • Spawned by porcupine
  • Movable with attacks
  • Not in the editor entity list
  • Unkillable via conventional means

Can be hit and redirected by entities on the opposing “team” to the previous owner. The entity that hits it becomes the new owner. Once redirected by the player with an attack, it can hit other enemies for 100 (!) damage, as demonstrated in top Wild Den replays.

This can also be used for quill passing as seen in Redirection

Commonly referred to as a Quill.

Stoneboss

Stats
  • Can attack and break your combo
  • Attacks when entering field of view
  • Can be given a path in the editor
  • Paths 'attached' to the ground
  • Aerial pathing nodes are ignored(?)
  • Affected by gravity
  • Attacks do not move it
  • Can be placed in the editor
  • Health: 12

Attacks by falling on the enemy. Has an active hitbox as long as it is falling during its attack, which allows the player to farm super quickly as demonstrated in top Overgrown Temple Any% replays.

Can be lured outside of its path.

Commonly referred to as a Large Totem.

Stonebro

Stats
  • Can attack and break your combo
  • Attacks when entering field of view
  • Can be given a path in the editor
  • Paths 'attached' to the ground
  • Aerial pathing nodes are ignored(?)
  • Affected by gravity
  • Movable with attacks
  • Can be placed in the editor
  • Health: 3

Has an active hitbox as long as it is moving at a speed of 400 units per second or higher.

When grounded, it will accelerate up to its max speed at 16.666 u/s/s, unless it is perfectly motionless, then it will accelerate at 26.666 u/s/s for a single frame. Its ground speed is capped at 400 u/s.

When airborne, it will accelerate due to gravity at 16.666 u/s/s.

When colliding with a wall, it will perform an elastic collision, reflecting its speed vector according to the angle of the wall.

Can be lured outside of its path, but will return once aggro is lost.

Commonly referred to as a Small Totem.

Wolf

Stats
  • Can attack and break your combo
  • Attacks when entering field of view
  • Can be given a path in the editor
  • Paths 'attached' to the ground
  • Aerial pathing nodes are ignored(?)
  • Movable with attacks
  • Can be placed in the editor
  • Health: 5

Its attack is performed by “lunging” at the player. Hitting them interrupts their attack.

When out of range to lunge, they will accelerate to a very high top speed until close enough to attack. If they are in mid-air at this point, they can still lunge while falling.

Commonly referred to as Fox or Wolf interchangeably.

Mansion

Book

Stats
  • Can attack and break your combo
  • Attacks when entering field of view
  • Can be given a path in the editor
  • Movable with attacks
  • Can be placed in the editor
  • Health: 3

Will fall to a fixed maximum distance, or until it makes contact with an enemy when attacking. It will then return to a point on its path before it can attack again.

Butler

Stats
  • Can't hurt
  • Can be given a path in the editor
  • Paths 'attached' to the ground
  • Aerial pathing nodes are ignored(?)
  • Frozen when footing lost
  • Can be placed in the editor
  • Health: 1

Similar to the enemy Maid, but has a faster movement speed, and a smaller hitbox.

Chest, Scrolls

Stats
  • Can attack and break your combo
  • Attacks when entering field of view
  • Spawns additional enemies that will hurt you
  • Shoots scrolls
  • Can not be given and/or will not obey a path
  • Affected by gravity
  • Movable with attacks
  • Can be placed in the editor
  • Health: 9

Spawns a single scroll when attacking.

Acts similarly to the Treasure Chest

Chest, Treasure

Stats
  • Can attack and break your combo
  • Attacks when entering field of view
  • Spawns additional enemies that will hurt you
  • Shoots treasure
  • Can not be given and/or will not obey a path
  • Affected by gravity
  • Movable with attacks
  • Can be placed in the editor
  • Health: 9

Spawns three random treasures when attacking.

Acts similarly to the Scroll Chest

Commonly referred to as a Gold Chest.

Flag

Stats
  • Can't hurt
  • Can not be given and/or will not obey a path
  • Frozen when footing lost
  • Attacks do not move it
  • Can be placed in the editor
  • Health: 5

Always spreads dust upwards when killed.

Its hitbox is much smaller than its sprite.

Gargoyle, Big

Stats
  • Can attack and break your combo
  • Attacks when entering field of view
  • Can be given a path in the editor
  • Paths 'attached' to the ground
  • Aerial pathing nodes are ignored(?)
  • Affected by gravity
  • Movable with attacks
  • Can be placed in the editor
  • Health: 5

Due to the long startup of their attack, can commonly cause “Ghost punches” to occur, where the attack hitbox becomes active after they have already died.

Commonly referred to as a Ground Gargoyle, or just Gargoyle.

Gargoyle, Small

Stats
  • Can't hurt
  • Can be given a path in the editor
  • Flies to aerial pathing nodes
  • Movable with attacks
  • Can be placed in the editor
  • Health: 3

Will deviate slightly from their path by bobbing up and down. This can lead to strategies that only work at certain points in their Bob cycle.

Commonly referred to as a Flying Gargoyle, or just Gargoyle.

Knight

Stats
  • Can attack and break your combo
  • Attacks when entering field of view
  • Can be given a path in the editor
  • Paths 'attached' to the ground
  • Aerial pathing nodes are ignored(?)
  • Affected by gravity
  • May block from some or all directions
  • Movable with attacks
  • Can be placed in the editor
  • Health: 9

Has a shield that blocks incoming attacks from the front when it is grounded. Attacking this shield does not give hitrise, but instead stalls the players vertical momentum. It also rewards double the combo progress of most attacks (2 combo per light, 6 combo per heavy).

When they see an enemy, they will try to move into a position a swords length away before attacking. This can be used to lure them away from their path as seen on this Ramparts replay.

Maid

Stats
  • Can't hurt
  • Can be given a path in the editor
  • Paths 'attached' to the ground
  • Aerial pathing nodes are ignored(?)
  • Frozen when footing lost
  • Can be placed in the editor
  • Health: 1

Similar to the enemy Butler, but has a slower movement speed, and a larger hitbox.

Scrolls

Stats
  • Can attack and break your combo
  • Attacks when entering field of view
  • Spawned by chest-scrolls
  • Can not be given and/or will not obey a path
  • Can be placed in the editor
  • Health: 1

Behaves like Treasure. Will stay idle at its spawn position until an enemy enters its radius, at which point it will fly in a straight line to the position the enemy was seen until it hits the enemy or a surface.

Can be prevented from firing or frozen mid-flight using a Super Cancel.

Treasure

Stats
  • Can attack and break your combo
  • Attacks when entering field of view
  • Spawned by chest-treasure
  • Can not be given and/or will not obey a path
  • Can be placed in the editor
  • Health: 1

Behaves like Scrolls. Will stay idle at its spawn position until an enemy enters its radius, at which point it will fly in a straight line to the position the enemy was seen until it hits the enemy or a surface.

Can be prevented from firing or frozen mid-flight using a Super Cancel.

City

Bag, Trash

Stats
  • Can attack and break your combo
  • Attacks when entering field of view
  • Spawned by can-trash
  • Not in the editor entity list
  • Health: 1

Does not reward any combo when hit by a heavy attack, however it still returns any air charges. This can be abused to avoid starting the combo timer in maps such as Garbage Day.

Ball, Trash

Stats
  • Can't hurt
  • Can be given a path in the editor
  • Considers ground as walls when pathing
  • Flies to aerial pathing nodes
  • Movable with attacks
  • Can be placed in the editor
  • Health: 3

City variant of the Small Gargoyle

Commonly referred to as a Trash Turkey.

Beast, Trash

Stats
  • Can attack and break your combo
  • Attacks when entering field of view
  • Can be given a path in the editor
  • Paths 'attached' to the ground
  • Aerial pathing nodes are ignored(?)
  • Affected by gravity
  • Attacks do not move it
  • Can be placed in the editor
  • Health: 9

Attacks with a single large hitbox in the direction it is facing.

City variant of the Golem style enemy.

Commonly referred to as a Trash Golem.

Can, Trash

Stats
  • Can attack and break your combo
  • Attacks when entering field of view
  • Spawns additional enemies that will hurt you
  • Shoots bag-trash
  • Can not be given and/or will not obey a path
  • Affected by gravity
  • Movable with attacks
  • Can be placed in the editor
  • Health: 9

When attacking, it spawns three Trash bags in sequence before entering a cooldown period before it can attack again.

With good timing, a player can dash through it between the trash bags being fired without getting hit.

Tire

Stats
  • Can attack and break your combo
  • Attacks when entering field of view
  • Changes behavior on player attack
  • Can not be given and/or will not obey a path
  • Affected by gravity
  • Movable with attacks
  • Can be placed in the editor
  • Health: 3

This enemy bounces around like a rubber ball, preserving its momentum and redirecting its velocity when it hits a surface, or is hit by an attack. When dropped from a large height it can move much faster than the player. It has an active hitbox at all times.

Can be frozen using a Super Cancel.

Lab

Ball, Slime

Stats
  • Can't hurt
  • Can be given a path in the editor
  • Considers ground as walls when pathing
  • Flies to aerial pathing nodes
  • Movable with attacks
  • Can be placed in the editor
  • Health: 3

Lab variant of the Small Gargoyle

Commonly referred to as a Slime Blob.

Ball, Spring

Stats
  • Can attack and break your combo
  • Does not attack offensively
  • Changes behavior on player attack
  • Can not be given and/or will not obey a path
  • Attacks do not move it
  • Can be placed in the editor
  • Health: 5

While this enemy traditionally has 5 health, you can “snap the stem” by attacking away from the surface it is on, then in a perpendicular direction of the stretch in quick succession. This means it effectively only has 2 HP if you can use this technique properly. If not killed during the stretch, the blob will snap back and create a large hitbox.

During the recoil animation, they have some invulnerability frames where the player may attack them to build combo without dealing damage. This can be abused in maps such as Slime Invulnerability.

Commonly referred to as a Spring Blob, or a Rooted Slime Blob.

Barrel, Slime

Stats
  • Can attack and break your combo
  • Attacks when entering field of view
  • Can be given a path in the editor
  • Considers ground as walls when pathing
  • Flies to aerial pathing nodes
  • Movable with attacks
  • Can be placed in the editor
  • Health: 3

Attacks passively every 56 frames, unless interrupted by an attack.

Bobs on its path similarly to a Small Gargoyle.

Commonly referred to as a Paintcan.

Beast, Slime

Stats
  • Can attack and break your combo
  • Attacks when entering field of view
  • Can be given a path in the editor
  • Paths 'attached' to the ground
  • Affected by gravity
  • Attacks do not move it
  • Can be placed in the editor
  • Health: 9

Attacks with six small hitboxes travelling forward in the direction it’s facing.

Lab variant of the Golem style enemy.

Commonly referred to as a Slime Golem.

Attack Hitbox

Generic

Apple

Stats
  • Can't hurt
  • Movable with attacks
  • Can be placed in the editor
  • Unkillable via conventional means

An enemy with effectively infinite health that does not count towards the level’s completion. Can be used for a large variety of movement options due to being an infinite source of combo and Hitrise.

Hitting an apple with a super rewards 5 Combo.

Door

Stats
  • Can't hurt
  • Can not be given and/or will not obey a path
  • Frozen when footing lost
  • Attacks do not move it
  • Can be placed in the editor
  • Unkillable via conventional means

Behaves like solid blocks, and snaps to the tile grid. Cannot be removed unless its associated Key is killed.

Can be used to farm super.

Placing this in the map editor will spawn an associated key and will “select” the key, making any pathing nodes placed affect the key rather than the door.

Hexagon

Stats
  • Can't hurt
  • Can be given a path in the editor
  • Considers ground as walls when pathing
  • Flies to aerial pathing nodes
  • May block from some or all directions
  • Attacks do not move it
  • Can be placed in the editor
  • Health: 3

This enemy can only be destroyed by hitting it with a heavy attack.

Light attacks will reward 2 combo, but will not deal any damage, and will not grant any Hitrise. However, light attacks will stall the players vertical momentum, allowing them to hover while attacking repeatedly.

Supering this entity will reward only 1 combo.

Commonly referred to as a Heavy Prism.

Key

Stats
  • Can't hurt
  • Can be given a path in the editor
  • Can be placed in the editor
  • Health: 1

When killed, will fly to its associated Door and unlock it, causing the door to open so that entities may pass through.

Bobs on its path similarly to a Small Gargoyle.

Square

Stats
  • Can't hurt
  • Can be given a path in the editor
  • Considers ground as walls when pathing
  • Flies to aerial pathing nodes
  • Can be placed in the editor
  • Health: 1

A stationary floating enemy. Commonly used in precise air control maps as it is the only flying enemy that does not bob up and down.

Commonly referred to as a Light Prism.