Listed here are some things about the map editor and the game itself of which many people may not be aware. This game may be almost two decades old, but I'm still finding new surprises every so often. This page also serves well as a reminder of obscurities, since I tend to forget about these things after long periods of disuse.
- Assault Troopers/Captains can fake death. They are most likely to do this if they choke before they drop. After a short time, the faker will come back to life. Apparently they can even fake the fatal head wounds associated with death. The best preventative measure against this dishonest mindgame is to just shoot them while they're choking to death.
- The lasers fired by Assault Troopers/Captains are reflected by mirrors.
- Protozoid Slimers can devour some enemies as well as their corpses. The latter ability is especially helpful in Damn I'm Good mode if you're short on explosives. After extensive testing, I found they are only capable of consuming five varieties of enemies/corpses: Assault Troopers/Assault Captains, Pig Cops, Enforcers, and Protector Drones. Just for a laugh, I tried an assortment of other sprites that looked organic or edible, they wouldn't touch any of it.
- If a hatched Protozoid Slimer Egg is frozen, it will regress back to being unhatched after thawing out, and it will subsequently hatch again to produce a new Protozoid Slimer!
- Freezing a Protozoid Slimer counts as a kill, and the total enemy counter will not increase after they unthaw. It is difficult or impossible to freeze them on the ground, the only way to hit them with the freeze ray is to wait until they stretch between a floor and ceiling.
- If a Protozoid Slimer attempts to attack a frozen player, Protozoid Slimers will no longer be able to attack the player at all: The player will become effectively immune to all Protozoid Slimers until the map is reloaded, either by the player dying or completing the map. This glitch remains in effect after saving and reloading a game session. This glitch does not affect the Protozoid Slimer's ability to devour enemies. In a Multiplayer game, the glitch is per-player, and dying does not reset it since the map is not reloaded. However, the Protozoid Slimers tend to ignore frozen players and focus on live ones, and since the glitch requires them to actually attempt to latch onto you, it is more difficult to trigger in Multiplayer.
- The Protozoid Slimer's individual frames of animation (#2371 - #2377), when applied to a sprite, cast a shadow in-game as if the sprite were alive. This happens because these frames are technically defined as an enemy in the code, although they cannot be killed, do not count towards the total enemy tally, and do not respond to the
- Protozoid Slimers are not attracted to the player's actual position, but to the player's viewing position. This means you can lure them towards security cameras by using a security viewscreen. However, if they happen to cross your path while you are using a viewscreen, they will still latch onto your face and interrupt your viewing session.
- Enforcers occasionally defecate.
- If an Octabrain mental blast projectile connects with a hittable sprite, its animation will pause on the current frame while it attempts to bypass the sprite. If it cannot get past the sprite, it will be stuck there indefinitely and continue to play its sound effect. It will not harm the player while in this state. It will simply annoy them.
- The following enemies are programmed with the ability to use an "operate" function on doors: Assault Trooper/Captain, Enforcer, Sentry Drone, Assault Commander, and the Protector Drone (although I haven't actually caught the last one in action yet).
- You can hold the action button to drink from water sources (rather than continuously pressing it). The only exception is the drinking fountain.
- You can use the action button on pool balls (for the longest time I used guns to play pool).
- There are quite a number of ways to distinguish holodukes from real players: they don't move with the conveyor belt effect, they are not picked up by the crane (despite triggering it), they don't glow in nightvision, they don't cast shadows, and they are always face-aligned in mirrors. Come to think of it, they're almost vampiric.
- Shrunken players cannot use weapons, or pick up any weapons/items. However, they can use all inventory items and all other things a player can normally use (although they may require the assistance of a jetpack in order to reach them).
- Shrunken players can hop while in a sector with a Lo-Tag of 1 (above-water sector).
- Shrunken players are not subject to fall damage. This is either a mistake, or a stunningly insightful feature (because in reality, tiny creatures actually can survive a fall from any height).
- Players on steroids will be invulnerable to shrinkers, and shrunken players can use steroids to grow back to full size immediately. Also, Duke's mighty foot is more powerful when a player is on steroids.
- Security camera perspectives are slightly zoomed out when viewed by a shrunken player.
- If you shrink an enemy, and then freeze it just as it begins to grow back to normal, it will stay at that size after unthawing (this actually seems logical).
- Placing a laser tripbomb while falling causes you to halt momentarily. This can save your life if you don't have a jetpack.
- The mortar has no range limit. It can literally fire across the entire map grid. Also, the time it takes for the mortar shell to reach its destination appears to be constant: The further you are from the source of the mortar shell (either a Battlelord or an Automatic Shooter), the faster the mortar shell will travel to reach you, until it begins to flash by in an instant.
- Despite being rather dim-witted, Dukebots are still capable of operating virtually any object a human player can operate: doors, switches, elevators, etc. However, they only attempt this as a last resort, and rarely go out of their way to do so.
DNSKILL#cheat is valid from values 0-9, despite there being only 4 official skill levels available in the game. Higher values strangely seem to function as actual skill levels, evidenced by the fact that sprites with higher skill setting Lo-Tags will only appear in the map when the corresponding skill level is typed in with the cheat. If a compatible sprite's skill setting Lo-Tag is greater than 9, the object will technically be affected by the tag, but will never appear in-game, because it is impossible to type in a skill number beyond single digits without triggering the cheat. Check the "References - Cheats" section for details.
- It is possible to trigger a mirror's Lo-Tag sound effect through a camera, provided that the player and camera are within the same sector. Simply place the camera within triggering range of the mirror and angle it accordingly (as if the player were the camera). This only seems to work with mirrors, other interactive objects cannot be triggered through a camera.
BLIMP(#3400) sprite with very large x/y repeat values will visually disappear in 3D mode. This is the only texture I'm aware of that can cause this to happen. It must be some kind of memory overflow bug.
NEWBEASTJUMP(#4690) are affected in-game by their sprite size in the map editor (this is quite hilarious because you can make them absolutely enormous or incredibly tiny).
- Lethal space sectors alter gravity. This is most noticeable with lobbed pipebombs (which seem to be attracted to the 'ceiling'), but many other 'active' sprites are also affected and drop to the 'floor' more slowly (for example, the ammunition flung from recently killed enemies). A lethal space sector is one in which the floor and/or ceiling uses a parallaxed
BIGORBIT1(#84) texture (without using a palette value to neutralize the lethal effects).
- A sector that uses the
MIRROR(#560) texture on its floor will have essentially the same properties as a 'behind-the-mirror' sector; It will display the HOM effect, delete most enemies within it, resize most 'active' sprites within it to [0,0], and players will not be able to traverse it unless clipping is disabled. For some reason, the sprites are not deleted or resized in EDuke32.
- All of the switches in the game can be triggered by kicking them, and the following switches can also be triggered by the player's gunfire (bullets only):
HANDSWITCH(#1111), and of course,
DUCKsprites react to more than just bullets, check the "References - Special Textures" section for the details.
DOORTILEtextures linked to an effect can also be triggered by kicking the texture instead of pressing it! This opens the way for an interesting "glitch" in the game: If a
DOORTILEdoor uses both an Activator (linked to the
DOORTILEtexture) and an ActivatorLocked (linked to, for example, an Access Switch), the ActivatorLocked will nullify the player's ability to open the door by pressing it (until unlocked), but not by kicking it. What this means is that one can operate an Activator-controlled
DOORTILEdoor simply by kicking it, even if it's still locked! There are a few examples of this spread throughout the official maps.
- A wall with a Switch texture will act as a functional Switch! This also includes Access Switches, Combination Switches, and MultiSwitches.
- In the original game,
FOODOBJECT4(#4533) would float upwards indefinitely in-game when placed in floor-alignment mode. Since that is their intended relative alignment mode, you never actually see them during normal gameplay pace in the official maps (
E4L2.MAP: "Duke-Burger", and
E4L9.MAP: "Derelict"), because they'll have floated away by the time you reach their location. There are presumably many more sprites that are affected by this bug. I do know that only 'actors' (sprites with code) can be affected, and that enemies are definitely one of them. This bug has been fixed for all affected floor-aligned sprites in EDuke32.
- Masking a wall and assigning the
W_FORCEFIELD(#663) texture to it will cause the walls above and below the texture to pan diagonally with the forcefield. If you unmask the forcefield and make the walls above or below it visible, the overtile (masked texture) will still be in effect, allowing you to make any texture "shift" and damage players who get too close.
- Try placing a
FORCESPHERE(#2590) mid-air in a large room, then see what it does in-game.
- When squished,
NUKEBARRELLEAKED(#1229) will spawn a
BLOODPOOL(#1226) with a palette value of 0, and a random choice between
OOZ2(#2309) with a palette value of 8.
FIRE2(#2311) cannot exist in a sector with a Lo-Tag of 2 (underwater). This behaviour is actually not odd at all, but is noteworthy since many other fire sprites and explosions can exist underwater. These sprites can exist in a sector with a Lo-Tag of 1 though (on top of water), which isn't entirely unrealistic either. They are also affected by palettes, which allows one to make, for example, "blue fire".
- If you use a texture with invisible (pink) pixels on a solid object (floor, ceiling, or non-masked wall), the pink will become black in-game.
- An ActivatorLocked will silence any ambient MusicAndSFX sprites within the sector until it is unlocked.
- Teleporters can be locked/unlocked with an ActivatorLocked (but oddly enough won't work with an Activator).
- Blocked, floor-aligned sprites which are raised above the floor will act as solid ground to 'active' sprites, preventing them from falling through, including the player. I have also been informed by my brother that placing such a sprite underwater cancels the physical effects of water for any player above the sprite, allowing one to breathe and jump while underwater! However, the player will still wear scuba gear (although it won't deplete), spawn bubbles, and appear to be in a swimming position from a third-person perspective.
- Most special wall textures that are compatible with masked walls will still function as usual even if applied to a one-sided masked wall (for example, breakable glass).
- Changing the angle of a Touchplate so it faces down will make it activate even if the player is not touching the floor of the sector.
- If a Touchplate is not at the same height as the floor of the sector, it will function as an "automatic floor rise/lower" effect. Check the "References - Special Textures" section for more information.
- You can designate certain sprites as Multiplayer-only or DukeMatch-only with any palette value greater than 0 (it doesn't have to be 1).
- Assigning a Boss a palette value of anything greater than 0 will turn them into a Mini-Boss affected by that palette value (it doesn't have to be 21). Only the Battlelord is usefully compatible with this feature.
- Standard Nuke Buttons will work with any Lo-Tag value greater than 0.
- Any switch with a Lo-Tag value of 65535 will end the level like a Nuke Button. This includes Access Switches, MultiSwitches, and Combination Switches (except the
DUCK(#4361) sprites. Note that Combination Switches will not be affected by an assigned combination.
- A Touchplate sprite with a palette value greater than 0 will only appear in Single-Player. This is the exact inverse of the usual palette effect, and it's the only known sprite which reacts this way.
- MusicAndSFX sprites with a palette value of 1 will only be audible in Multiplayer.
- Respawn sprites with a palette value of 1 will only spawn the object in Multiplayer.
- The Cycler Hi-Tag functions as a
Channelvalue, allowing it to be toggled on and off! Also, changing the angle of a Cycler so it faces down will make it begin in a 'disabled' state.
- The Activator Hi-Tag functionality is not actually limited to vertical doors. It will technically work with any type of sector! It determines whether a sector is "open" or "closed" by checking its ceiling and floor heights. If they match, then it considers the sector to be "closed". If they do not match, then it considers the sector to be "open". This behaviour makes it partially and/or fully compatible with a wide variety of other effects.
- Every sprite that is technically defined as a projectile in the source code can be fired from the Automatic Shooter (SE 36). In other words, there are many more compatible values for this effect than there were originally listed in the official documents.
- You can use an
S[Delay,10]to control an Automatic Shooter's rate of fire. A
Delayvalue of 30 = 1 second. A
Delayvalue of 0 = hilarious. This trick only seems to work with an Activator (technically, the Activator doesn't even require a Lo-Tag, it just has to exist in the sector). The Automatic Shooter will start firing immediately, and doesn't really toggle properly, so it's probably best to just leave it on permanently. An alternative variation of this trick is to place the
S[Delay,10]in a separate door sector (ST 20), along with a duplicate
A[0,Channel]copied from the Automatic Shooter (the Activators do require Lo-Tags in this variation). Each activation will trigger both the Automatic Shooter and the Ceiling Door. The Ceiling Door will then close after the set
Delay, which turns off and "reloads" (resets) the Automatic Shooter. The net effect is that the player can control the firing of single shots. It's a bit finicky, so use short
Delayvalues for best results.
- To prevent a wall-aligned or floor-aligned 'inactive' sprite from jittering while being carried by a moving sector/floor, make the sprite 'collapsable' by assigning it a unique Hi-Tag. The downside is that the sprite can be destroyed by explosives. Any collapsable sprites sharing the same unique Hi-Tag will collapse together as a unit. Face-aligned sprites cannot be defined as collapsable. My brother showed me this trick.
- Vertically moving floors (except SE 21 w/ST 28, SE 29, and ST 30) carry all sprites, regardless of relative alignment or position; even sprites which are not touching the floor at all. In the original game, wall-aligned and floor-aligned 'inactive' sprites will jitter indefinitely after having been carried by an elevator or door sector floor (except the transport elevator). This can be suppressed somewhat by making the elevator or door move at a much lower speed (values below 64), or prevented entirely by assigning the sprite a unique Hi-Tag to define it as 'collapsable'. This bug has been fixed in EDuke32.
- When you raise a floor up against a ceiling in the map editor (either by holding
PGUP, or just by pressing it too many times), the floor will attempt to move an extra unit but will be unable to do so. However, any sprites that were on the floor will be pushed an extra unit beyond the ceiling Z height (and hence, through the ceiling) and will stay there until manually taken back down. This is worth knowing, because it can cause certain effects which depend on the height of a SectorEffector to behave unexpectedly (particularly Rotate-Rise sectors which are only meant to rotate, such as those used in the Convex Door effect).
- Some effects will trigger their MusicAndSFX sprite even if the floor/ceiling/sector does not move at all, most notably the following: ST 20 Ceiling Door, ST 21 Floor Door, SE 31 Raise/Lower Floor, SE 32 Raise/Lower Ceiling, SE 20 (w/ST 27) Stretching/Shrinking Sector, ST 28 Floor Rise/Ceiling Drop, ST 30 Rotate-Rise Sector (activation only), SE 18 Incremental Sector Raise/Fall (initial activation only).
- Aliens cannot trigger Touchplates, but DukeBots can trigger them.
- If a player begins a map touching an elevator sector floor (including the initial floor of a transport elevator), the elevator will be automatically triggered. Subsequent player spawns in Multiplayer seem to trigger them as well. However, this may just be an illusory side-effect of the player pressing the action button to respawn after dying.
- The moment a player is about to be crushed by a door or elevator (i.e. the ceiling and floor are less than 12 units apart), the sector will be retriggered and open again. This accounts for some strange behaviour in the game; Namely, it explains why Swinging Doors tend to open themselves when the player walks over or under the door. It also causes "cramped" elevators and horizontal doors to retrigger endlessly until the player leaves the sector or dies. More importantly though, this behaviour also retriggers all Activators within the sector (but not MasterSwitches or ActivatorLocked sprites). This makes it possible to trigger other effects that are compatible with a shared Activator
Channel. Unfortunately, it is very finicky about which effects it will trigger (for example, I could not get it to work directly with SectorEffectors). It seems to work best when linked to other Activators. This trick also provides one of very few scenarios where you can trigger a Respawn directly with an Activator (the Two-Way Train being another), though strangely it doesn't finish respawning until the player escapes the sector or dies. In fact, most of the effects that can be linked will cause the door/elevator to think it is "busy", causing it to crush the player instead of bouncing back! I believe it considers itself "busy" when it cannot successfully retrigger all of the Activators within the sector (and its definition of success is probably quite specific). Strangely, it works fine when linked to several vertical door sectors (ST 20/21/22) simultaneously, but crushes the player when linked to just one. Note that clipping must be enabled in order for any of this to work.
- My brother showed me a glitch that can potentially turn a ceiling slope into a "zipline" effect. If a player is running at a certain speed and collides with a sloped ceiling (whether by jumping or not), they will 'stick' to the slope and slide down it, provided that they keep moving while attached to it (holding the jump key is not necessary). Testing reveals that the glitch is directly related to running speed: A minimum of approximately 6 slope units down will 'grab' a player running at standard top speed, and a minimum of approximately 3 slope units down will 'grab' a player running at top speed while on steroids. Of course, I realize now that the number of sloping 'units' is dependent on the size of the sector, so those specific numbers won't mean much, but you get the idea.
- Saving a map file in Build tends to rearrange the order of sprite numbers, sometimes drastically enough to affect significant ordering schemes such as those of security cameras and multiplayer start positions. The difference will not be made obvious until after reloading the map file. Thankfully, Mapster32 is not affected by this issue.