This page heavily uses some information from Duke Nukem 3D Infosuite by Ryan "Nukey" Lennox, please check out his awesome documentation at: http://infosuite.duke4.net/. Some bits have been modified to better suit Ion Fury
Common special "effect" sprites
With Build engine games, it was very common to use special sprites to add behavior in to maps.
These effects can range from all sorts of things such as geometry morphing to things like emitting sounds. Since Build map format can only store a limited amount of data, all additional attributes get modified with additional sprites that generally have a specific function.
Ion Fury's effect system essentially builds upon the one seen in Duke Nukem 3D but expands the roster and possibilities tremendously.
You still have your "bread and butter" tools from Sector effectors
to GPSpeed
sprites, however most of the cooler logic is done with specifics sprites instead.
Generally any effect sprite you place on a map will have various fields that you can set. Typically games only utilized two values: Lotag
and Hitag
that you can set with ALT T
and ALT H
while pointing at a sprite (these two values also exist for sectors via T
and H
). It isn't always intuitive on what each of these tag fields do so you will need to refer to the on-screen help or references quite a bit to see what is what.
Do not worry if you can't remember them all, nobody does! :)
In Ion Fury, we use not just 2 or 3 tags but up to 8! These are: Lotag
, Hitag
, Extra
, Xvel
, Yvel
, Zvel
, Owner
, Blend
.
This approach allows many of the new effects to be highly customizable and easier to edit in one place rather than being split between 3 or more further sprites just to describe things like speed and such.
What are Channels
and Pairing tags
?
Many effects rely on remote triggering or linking two points together. Say you want to create a teleporter, or you create monster closet that you want to open once a player trips a touchplate, you have to somehow have two points communicate with each other. Remember those tags we talked about? A single value in these can be used as a linking tag
or as a channel
.
There is some degree of consistency for most effects: Anything that requires pairing, it's done with Hitag
and anything that is trigger related (switches/activation), it's Lotag
. Due to the increased amount of tags in Fury, the linking tags might vary quite a bit depending on use. However I highly recommend double checking any documentation on these. Many effects in Fury started simple but later on mappers ended up demanding more flexibility, due to this reason the linking tag
or channel
isn't always consistent.
In other words: Think of channels
as literal radio channels that effects can tune in to. When someone presses a switch, it will say "Fire!" to that channel and any effects that are tuned to this channel will activate.
For pairings like rotating sectors which need a pivot/hinge, the term channel
is exchanged for pairing tag
i.e. SE0 Hitag
and SE1 Hitag
are clearly used for cross-communication between each other but they will not react to any triggers. In most cases the numbers will have no overlap between regular channels
but with some effects the Pairing tag
also doubles as a channel input
.
Effects above SE64
are new to Ion Fury and generally do not rely on activator
or masterswitch
operation.
1
Sector effector
These sprites can do anything from rotating sectors to escalators. For Fury, we added a new range of effects and expanded on some existing ones slightly.
Usually the sprites do exactly what it says on the tin: Make sectors do something cool. These used to be your main tool in Duke3D mapping.
Since the effect is extremely multi-purpose, I will list all the Lotag variants below. A common way of referring to Sector effectors
is by their Lotag, i.e. whenever you see SE7
mentioned, it refers to a Sector effector
with Lotag 7
- Any effect with ! in front is a remnant from it's earlier development or Duke3D and isn't really recommended (or even tested) for use.
- With pretty much all
sector effector
sprites, you will have to use anActivator
orMasterswitch
to activate the effect. - Effects above
SE64
are new to Ion Fury and generally do not rely onActivator
orMasterswitch
operation.
SE 0
Rotate sector
Used to either rotate or spin a sector. Rotation happens around a pivot point sprite SE1
.
Alternate functionality exists when used with Sector tag 30 (Rotate-rise sector)
, which is documented under that sector tag.
For finer rotation control, you may want to use SE72
, which is new and specific to Ion Fury.
Hitag
Pairing tag This should matchHitag
of a pivot spriteSE1
-
Angle
Rotation mode Based on the sprite's tail pointing directionDOWN
Rotate, Rotate sector aroundSE1
UP
Rotate & spin, Rotates sector AND pivot aroundSE1
.
Notes
- If Relative bit
R
is set on the floor and/or ceiling, the texture will move along with the sector - If Relative bit
R
is set on the floor, the sector will carry most sprites. - Rotation speed can be adjusted with
GPSpeed
'sLotag
SE 1
Rotation pivot
Used as a rotation axis for SE0
or Rotate ride door
This pivot sprite will not work with SE72
, please use SE71
for that instead.
Hitag
Pairing tag This should matchHitag
of a pivot spriteSE1
-
Angle
Direction Based on the sprite's tail pointing directionDOWN
Clockwise, Will rotate sector clockwiseUP
Counter clockwise, Will rotate sector counter-clockwise
SE 2
! Earthquake
A combination effect that manipulates wallpoints, spawns debris, shakes the screen and plays sounds for about 4 secnds.
In Ion Fury, use of this effect is not recommended as it relies on many hardcoded Duke3D specific assets that no longer exist. A combination of SE73
SE76
and SE75
will achieve the same effect with much more control over the outcome.
Angle
Direction Sector will be shifted towards this direction by ~9 grid spaces on grid size 6
Notes
- Not compatible with
Activator
, you must use aMasterswitch
- Should be constructed in pre-sloped state as it will be flattened in-game. Maximum sloping value it supports is 3 key presses on
[
]
. - Any static sprites placed on this sector will keep jittering after the effect has taken place.
SE 3
! Flickering light when shot
Essentially an on-demand activated SE3
after a light source gets shot. First acts as a light that you can toggle on/off but if a wall or ceiling light gets shot, it turns in to a flickering light.
When shot
part (Hitag
) will not work with Ion Fury but you may use light switch properties otherwise.
Hitag
Channel MatchingWall Lotag
orSector Hitag
with a breakable textureShade
Brightness Should be set to theon
state brightness and sector should representoff
statePalette
Colouring What the palette should be inon
state, sector representsoff
Notes
- Wall palette changes will be permanent
- Lights will not always flicker after getting destroyed
- Compatible with
SE12
, allowing lights to be toggled on/off before entering flicker state.
SE 4
Flickering light
Will flicker a sector's light on/off randomly
Hitag
RNG seed Flicker pattern modifier, arbitrary numberShade
Brightness Should be set to theon
state brightness and sector should representoff
statePalette
Colouring What the palette should be inon
state, sector representsoff
Notes- For
RNG seed
, ideally every light source in a map should have unique numbers and every sector belonging to a light source must share the same number
- For
SE 5
! Helicopter
This is a cut effect from Duke3D that is heavily buggy, it was intended for a helicopter boss fight at top of the U.S. Bank tower. This effect will work even worse in Ion Fury and using it is not really recommended at all.
SE 6
! Subway engine
Used to move a sector around a set path indicated by Locator
sprites. Can be combined with SE14
to introduce additional trailing sectors. Most commonly used to create subway trains.
Hitag
Path position Set this equal to the firstLocator
'sLotag
to visitSector Hitag
"Car" number This sector and the nested sectors must share this valueAngle
Bearing SE Sprite's tail indicates the front of the train
Notes
- If Relative bit
R
is set on the floor and/or ceiling, the texture will move along with the sector . - If Relative bit
R
is set on the floor, the sector will carry most sprites. - To have a sound, you must insert a
MFX
sprite withLotag
=Sound number
in the same sector as theSector effector
sprite - Movement speed can be adjusted with
GPSpeed
'sLotag
in the engine sector.- You will only need to do this once as all trailing cars will use the same speed.
- When adjusting speed, it will also affect how long the train pauses during station breaks
- A value less than
65
will disable any sounds
- A Subway Vehicle with a parallaxed floor will attempt to fire rockets at the player, this will not be handled properly in Fury and will eventually end up in a sprite overflow crash! Use a floor
Palette
higher than 0 to fix this. - A Subway Vehicle with a parallaxed floor or ceiling will not play sound effects.
- All Subway Vehicles must start in the track sector, and the track cannot be split into multiple sectors. The track sector is still allowed to be complex, the important thing is that all of the Locators are contained within the same sector
- All nested sectors must be contained within a single bounding sector containing the SE
- Vehicles cannot move up or down slopes
SE 7
Teleport, 2-way (water/land)
Teleports the player between A <-> B sectors of identical shape. SE7
acts as a SOURCE and DESTINATION where SE23
is only DESTINATION. If placed on a sector with Lotag 1
(liquid/submergible) it will work as a water teleporter instead. If raised from the ground, it will be Z based.
Hitag
Linking tag MatchingSE7 Hitag
orSE23 Hitag
-
Sector Lotag
Teleporter mode0
Normal Regular ground teleportation1
Water, above Makes the ground submersible when combined withSE7
2
Water, below Makes the ceiling surface able when combined withSE7
-
Palette
Cosmetics UNUSED IN ION FURY0
Normal Play sound and flash when used1 or more
Silent No sound or flashing
-
Floor palette
Liquid type Modifier for slime/water/etc0
Water Play sound and flash when used- **
Brownpal
Brown goo - **
Nukagepal
Nukage - If usingNormal
Teleporter mode, you can turn the operation to beZ based
instead ofsector based
. To do this, raise the sprite from the ground. Now the teleportation will happen ONLY once the specific height is reached. Useful for manholes and such. This teleportation will be instant and play no sounds or other flashy things. - Valid player space must exist on the destination sector, this also means that destination sector can theoretically be larger the source. - WhileLiquid type
only requires the surface palette to be done, this should be done on the underwater "ceiling" as well to achieve proper visual consistency. - You may toggle this effect's state withActivatorlocked
- In normal operation, there is a slight delay for any projectile or player/actor that passes through the teleporter. - If there is a conflict between sprite multiple destinations that shareHitag
, the sprite with the lowest sprite number index will be picked (oldest).
SE 8
! Triggered light: When door opens
Similar to SE LightFX
but triggered when a ST
based door opens, also compatible with some other effects.
One of these sprites has to be in a sector with an "opening effect", i.e. ST20
Hitag
Channel This should be shared AND unique for each door light setupShade
Brightness Should be set to theon
state brightness and sector should representoff
statePalette
Colouring What the palette should be inon
state, this will be permanent!- Also compatible with
Activator
Activatorlocked
andMasterswitch
- Compatible with
SE31
andSE32
- Some degree of compatibility with GPSpeed but use is not recommended
- Also compatible with
SE 9
Triggered light: When door closes
Similar to other SE LightFX
but triggered when a ST
based door closes, also compatible with some other effects.
One of these sprites has to be in a sector with an "opening effect", i.e. ST20
Hitag
Channel This should be shared AND unique for each door light setupShade
Brightness Should be set to theon
state brightness and sector should representoff
statePalette
Colouring What the palette should be inon
state, this will be permanent!- Height of the
SE9
on the door sector determines the closing height - Also compatible with
Activator
Activatorlocked
andMasterswitch
- Compatible with
SE31
andSE32
- Some degree of compatibility with GPSpeed but use is not recommended
- Height of the
SE 10
Auto-close door
Automatically re-toggles doors and various other moving sector effects after a certain time has passed. Primary function is to auto-close a door after a few seconds.
-
Hitag
Linking tag Link this withX
0
Normal, Example flag
SE 11
Rotating door hinge
{to be done}
-
{tag}
{title} {text}{flag}
{title}, {text}
SE 12
Triggered light: Switch / Touchplate
{to be done}
-
{tag}
{title} {text}{flag}
{title}, {text}
SE 13
Explodable wall or ceiling
{to be done}
-
{tag}
{title} {text}{flag}
{title}, {text}
SE 14
Subway car/train
{to be done}
-
{tag}
{title} {text}{flag}
{title}, {text}
SE 15
Sliding door
{to be done}
-
{tag}
{title} {text}{flag}
{title}, {text}
SE 16
! Rotate sector & Piston - Reactors only
{to be done}
-
{tag}
{title} {text}{flag}
{title}, {text}
SE 17
Transport elevator
{to be done}
-
{tag}
{title} {text}{flag}
{title}, {text}
18
Incremental sector rise/fall
{to be done}
-
{tag}
{title} {text}{flag}
{title}, {text}
SE 19
! Ceiling fall
{to be done}
-
{tag}
{title} {text}{flag}
{title}, {text}
SE 20
Stretching/Compressing sector, bridge
{to be done}
-
{tag}
{title} {text}{flag}
{title}, {text}
SE 21
! Floor rise
{to be done}
-
{tag}
{title} {text}{flag}
{title}, {text}
SE 22
! Teeth door
{to be done}
-
{tag}
{title} {text}{flag}
{title}, {text}
SE 23
Teleport, exit only
{to be done}
-
{tag}
{title} {text}{flag}
{title}, {text}
SE 24
Conveyor Belt: Normal speed
{to be done}
-
{tag}
{title} {text}{flag}
{title}, {text}
25
Piston, crushing ceiling
{to be done}
-
{tag}
{title} {text}{flag}
{title}, {text}
SE 26
Escalator
Example text
-
Hitag
Linking tag Link this withX
0
Normal, Example flag
SE 27
! Demo camera for autodemo
{to be done}
-
{tag}
{title} {text}{flag}
{title}, {text}
SE 28
! Lightning bolt
{to be done}
-
{tag}
{title} {text}{flag}
{title}, {text}
SE 29
Floating sector, floor
{to be done}
-
{tag}
{title} {text}{flag}
{title}, {text}
SE 30
Two way train
{to be done}
-
{tag}
{title} {text}{flag}
{title}, {text}
SE 31
Move sector Floor Z
{to be done}
-
{tag}
{title} {text}{flag}
{title}, {text}
SE 32
Move sector Ceiling Z
{to be done}
-
{tag}
{title} {text}{flag}
{title}, {text}
SE 33
! Earthquake debris
{to be done}
-
{tag}
{title} {text}{flag}
{title}, {text}
SE 34
Conveyor belt: Half speed
{to be done}
-
{tag}
{title} {text}{flag}
{title}, {text}
SE 35
! Drill
{to be done}
-
{tag}
{title} {text}{flag}
{title}, {text}
SE 36
! Shooter
{to be done}
-
{tag}
{title} {text}{flag}
{title}, {text}
64
Hub transition: Load new area
For Hub
map usage. Transition the player to a new map section
. This pairs with SE65
to determine where to place the player in the next area.
Raise this SE off of the ground to make the transition point require passing this sprite's z.
Note: Requires Hubmap Section (5904)
to tell SE64
which section
the current map is.
Hitag
Linking tag Pair with destinationSE65
Extra
Map section to load Specify whichsection
should be loaded(0 to 63)
. Internal math will use the currently definedHubmap Section
to determine which map file to load nextShade
Campaign/Episode Determined bylevels.con
, this is0
for the defaultCapital Offense
campaignXvel
Linking tag for remote trigger Although you may forcibly trigger SE64, doing so can put the player out of bounds in the next map unless great care is takenZvel
Skip Autosave Set this to1
to disable autosaving on the next map load
SE 65
Hub transition: Destination marker
Example text
-
Hitag
Linking tag Link this withX
0
Normal, Example flag
SE 66
Rain spawner
SE 67
Sector attribute copy: Destination
SE 68
Sector attribute copy: Source
SE 69
Texture panner
SE 70
Hazardous sector
SE 71
Pivot for SE72 (New rotate)
SE 72
"New" Rotate sector
SE 73
Change sector slope: Floor
SE 74
Change sector slope: Ceiling
SE 75
Wallpoint dragger
SE 76
Screen shaker
SE 77
Teleport, triggered
SE 78
Firstwall changer
SE 79
Floating sector, ceiling
SE 80
Triggered Hub transition: Departure
SE 100
Skybox
SE 101
Move skybox camera
SE 102
Remove Objects (dangerous)
SE 127
Anchor point for SE31/SE32
SE 200
Cross-map trigger transfer
SE 201
Invincible fade-to-white
SE 420
Enemy Electrocution Death
2
Activator
For any sector effector, you usually need something to activate it.
This, along with Masterswitch #8
are the only way to trigger non-fury specific behavior. Once triggered, it will immediately activate all non-fury specific inside the sector. Reason why Fury doesn't use this method is that the added tags allow us to skip this altogether and have effects inside a sector be triggered individually instead of simultaneously.
When placed on most doors, it will lock the door and only allow opening them when the Input
channel is triggered
3
Touchplate
Legacy touchplate, in most cases you will want to use 5896
Touchplate Plus instead.
4
Activatorlocked
Locks door operation until triggered
5
Music and FX
Used to add door/ambient sounds
6
Locator
Multi-purpose path indicator
7
Cycler
Fading lights
8
Masterswitch
Similar to Activator
but is single use. It also has the possibility to add a forced delay, which allows some limited additional control when doing more complex sequences.
Unlike Activator
, this will not lock any doors when placed on one.
9
Respawn (legacy)
Legacy respawn sprite, in most cases you will want to use 5915
Respawn 2.0 (NEW!) instead.
Press CTRL ALT Q
to upgrade any R
that you are pointing at.
10
GPSpeed
General Purpose Speed, internally this modifies the extra
of a sector. Most common use case is to place these on moving sectors to adjust their movement speed.
1247
Explosion FX
This is an adaptation of the old SEENINE from Duke 3D, however we hijacked this completely and demoted it to an invisible effect that has much more flexibility than before. Not to mention that unlike Duke, this is invisible regardless of size. It is highly recommended that Remove Masterswitch requirement (Yvel 1)
is used. If you do complex sequences, keep in mind that every explosion that damages will call hitradius
, which is not very performant. Instead of using 10 damaging explosions, keep it to 2-3 while rest are purely visual and you can instead tick the damage scale up a tiny bit.
Lotag
Explosion delay Forced detonation delay once triggered, 30 units ~ 1 secondHitag
Linking tag Normally this also requires aMasterswitch
for activation unlessYvel
bit 1 is true-
Palette
Behavior modifiers Defaults to0
0
Normal, this does Damage / Sound / Visuals1
Damage only, don't show any visuals or sounds9
Cosmetic, removes all damage instead10
Only visuals, removes all sounds too11
Only audio, removes all sounds too
Xvel
Damage scale _Multiplies inflicted damage with this value, 2-10 supported. Useful for making sure things gib the player or enemies.-
Yvel
Trigger modifiers Defaults to0
0
Normal1
RemoveMasterswitch
requirement, explosion will only require a trigger fromHitag
2
Allow Re-triggering the explosion, recommended that you combine withYvel 1
Size
Explosion size _Adjustment on sprite sizing will make the explosion larger or smaller, along with appropriate sounds.
3744
Sector switch
Allows you to operate sectors as buttons. This allows creation of complex doors, elevators and buttons that do not natively support direct use without a touchplate or button operation. By default this effect only works on floors, however..
Lotag
Output channel-
Extra
Behavior modifiers1
USE works with ceilings instead of floor2
USE works everywhere, as long as the player is IN the same sector
3745
Multiswitch, aka. Trigger Multiplexer / Relay
One input and one or more outputs. Default behavior is that once INPUT
gets triggered, it will output a channel (100 in this example). Next use will trigger 100 again but also 101, one after that is 101 and 102. One example use is to have 3 doors, each having 100 / 101 / 102, each use would close the previous one and open the next one. Can be set to optionally loop, forced delays make it nice for having it as a single "buffer relay" as well if needed.
Lotag
Input channelHitag
Output channel Base channelExtra
Additional channels Output range will be:BASE
toBASE+EXTRA
Xvel
Forced delay Time in ticks (30 ~ 1 second) before another trigger is allowed-
Yvel
Behavior modifiers1
Reverse direction once end is reached2
Skip re-triggering previous tag, output will be:A-B-C-D
instead of default:AB-BC-CD-..
4
Turn off once end is reached, normal behavior will loop back to beginning8
Skill based, ignore extra and use skill value instead. This allows you to create triggers that fire off different sequences based on player skill. NOTE You must have the correct skill selected in-game when loading the map or it will not be initialized for the correct skill.
3746
Combination lock
Listen for a sequence of inputs and depending on behavior modifiers will accept the input sequence. This effect has two major operation modes: Sequence
& Combination
. It is recommended that you use the built-in sequencer available from SHIFT W
once prompted.
-
Input channels You have six channels:
Lotag
>Hitag
>Extra
>Xvel
>Yvel
>Zvel
. Channels left unpopulated will be skipped. i.e. for a combination of 3, you just need to defineLotag
Hitag
Extra
, rest can be left as 0. -
Owner
Output channel Toggled once theInput
sequence checks out -
Palette
Operation mode-
- Sequences
1,2,9
- Piano modes allow chaining
Output
to another Combo-lock'sInput
, allowing VERY long sequences to be constructed! 1
"Piano sequence" Listens for a sequence but has the ability to monitor channels beyond the ones used in the sequence. Wrong key press to these will reset the whole sequence.
NOTE: You will lose 6th InputZvel
in this mode!Zvel
Monitor base channel Generally this is set to the lowest tag in the set piano keysBlend
Monitor additional channels i.e. if base is300
and piano keys end at336
, set this to36
2
"Piano sequence", Single use Same as above but one successful use will disable it permanently9
Sequence, Single use Listens for a sequence:Lotag
>Hitag
>Extra
>Xvel
>Yvel
>Zvel
and triggersOwner
once matched. If tags are left0
then they will be skipped.
- Sequences
-
- Combination
10,11
- To use these efficiently, set the
CSTAT
(transparency) of the combo-lock sprite to the 2nd level as it will enable Logical AND. 10
All on Expects a certain on/off combination from the 6Inputs
.11
All on, single use Same as above but will never revert/re-trigger the output once reached for the first time
- Combination
-
-
CSTAT
Upside down If at any point the combination gets broken after reaching it, the output will be re-triggered.
Note: By giving an Input
channel a negative value, the combo lock expects it to be off.
For example, a button chain that is to be X o X X o
the tags should be set: A -B C D -E
5885
Soda machine
A very basic setup, red part will show roughly where the cans will dispense.
-
Palette
Modifiers0
Default9
90 rotated, Will offset the dispensing slightly to allow 90' rotated dispensers (fallen down)
5887
Locked door sound
Used to tell when a door is locked. Place it in front of a door and stretch it to fit. It will be made invisible ingame.
Lotag
Sound effect SeeF2
for a full list of sounds, defaults to #1535Hitag
Toggle channel Will enable or disable the effect-
Palette
Modifiers0
Start enabled9
Start disabled
5888
Ladders (A_LADDER)
Place this flatly in front of whatever you want to be climbable. This should be at least one of the smallest grid units away from a wall.
The player will climb within the area of the ladder sprite. They will stop when the top or bottom is reached. No tags required by default. Note: Please leave head clearance for dismount.
Attributes
Lotag
Toggle channel Will enable or disable the ladder, a negative value will start disabled-
Hitag
Surface type Modifies step/movement sounds0
Default (custom metallic)1
Stone2
Tile3
Metal4
Glass5
Wood6
Dirt7
Grass8
Water9
Slime10
Light11
Electrical12
Paper13
Plastic14
Fabric15
Carpet
-
Palette
Modifiers0
Default5
Extension - If use is pressed flip the player 180° and push down to main ladder9
Push player up and forward at end of climb
5889
Clip barrier
Invisible sprite that acts as a collision for the player or bullets.
Hitag
Toggle channel Will enable or disable the clipping-
- **
Palette
Toggle initial state 0
Start enabled9
Start disabled
- **
- If made
Hitscan
withH
then it will also block bullets
5890
Particle spawner
5891
Door Smooth
This is a general purpose hack sprite with three main purposes: Add easing to doors
& Allow MFX sounds over 999
& Toggle lights when opened
. Default function for smoothing and MFX does not need any additional tags.
-
- This effect is compatible with the following:
ST20
Ceiling door All functions, alsoPAL9
ST21
Floor door All functions, alsoPAL9
ST22
Split door All functions, noPAL9
ST15 / SE25
Slide door Smoothing enabled by default,DS
needed forLightFX
andMFX
ST23 / SE11
Swinging door Smoothing enabled by default,DS
needed forLightFX
andMFX
SE31
Floor Z Only smoothing supported, slightly jankySE32
Ceiling Z Only smoothing supported, slightly janky
- Easing movement The good old acceleration/slowdown that is seen in games such as Blood, when you open a door, instead of constant speed it will have easing to it's movement, giving a much nicer smooth appearance
- MFX "fix" Once placed on a door, any MFX sprite with a sound number of
1000
or over will work properly. Hitag
Output channel DS has the ability to toggle lights and other triggers as you open a door-
Palette
Acceleration modifier0
Ramp up on start, slow down before the end9
Ramp up on start, do not slow down before the end.
5892
End Of Level (EOL)
Immediately end the level and show the stats screen. This is what's used between zones in the main game. By default, this is walk-on triggered.
Lotag
Next map index Next map part is taken from levels.con where0
is the first mapHitag
Next campaign/episode index Next episode part is taken from levels.con where0
is the default campaign(Capital Offense)
Yvel
Input channel Remote triggerEOL
with this channel-
Pal
Modifier This allows two additionalEOL
types from default0
Normal Shows the level end screen and load the level specified8
Ending Shows the full ending scene, including stats. Exits to main menu9
Preview ending Shows teaser screen for main campaign. Exits to main menu
5893
Secrets left / PONR
5894
Heskelcast
Heskel's face will appear on nearby monitors (a minimum of 7), when this effect is triggered. All selected monitors will play a specified sound for a duration set by the mapper. Monitors are turned off (no display) at the end of the broadcast.
Note: CRT style and Plot related (Generator On/Off images, etc) are excluded from selection.
Attributes
Lotag
Linking tag to activateHitag
Sound number This is the number of the sound that will be played back by each monitor. When unset(Less than or equal to 0)
this defaults toS_HES_X_JUMBOTRON (3870)
Extra
Duration of broadcast This is the length of time in tics Heskel's face will appear and the sound defined byHitag
will play. When unset(Less than or equal to 0)
this defaults to140
Yvel
Number of monitors The number of monitors that will be changed is modified by this value. It is clamped to between and including7
and30
Pal
Display Modifier _When set toPal 9
the broadcast style becomes aRed
, sinister, flickering Heskel face.Xvel
Sound Modifier When set to1
a "global" version of theHitag
sound will play in addition to the monitor sounds
5895
Waypoint
This is normally unused in maps, although a hidden setting exists to place a fresh Waypoint
sprite in a room with Pal 9
to cause it to draw enemies toward itself for 5 seconds.
5896
Touchplate Plus
The bread and butter when it comes to doing more complex effects.
Any channel which is output from this will operate virtually any effect, door, sprite which has an 'Input' channel specified. This includes but not limited to: Activator, Masterswitch, Other TP+, any of the new SE exclusive to Fury, other special sprites like EOL and particles.
In other words: You will use this a lot.
While you can simply output Hitag
directly, the true power is in Lotag
and Extra
, which allow you to trigger for example 10 consecutive channels with a 30tick (5s) delay in between, however each of these 10 can point to another TP+
which in turn can trigger further actions or more chains. On paper you end up with a 50 second timeline where every 5 seconds you can have something cool happen, since not every tag has to be used, you can create some very neat sequences. In fact, the whole "queen of the hill" mode has been created with these sprites: Each wave is just a new newsted TP+
sequence :)
Attributes
-
Hitag
Output channel Base channel that gets output immediately once triggered -
Lotag
Additional channels Output range will be:BASE
toBASE+HITAG
-
Extra
Delay before next channel Time to wait before moving to next channel in ticks (30t ~ 1s). Internally the lowest value will always be1
due to how the code executes. -
Palette
Usage modifiers0
Single use, Normal operation mode9
Multiple use, When placed on a door trigger, it will cause the door to reset without any re-trigger
-
Owner
Input channel, ACTIVATE Allows remote activation without any door or touchplate, i.e. switch or enemy kill -
Yvel
Input channel, DISABLE When in a disabled state, theTP+
will not send anyOutput
triggers.
Note: Any activations will be queued and triggered once theTP+
is enabled again. UseXvel 512
to change this.
You must combine this with either 'Yvel 16' or 'Yvel 32'.Positive value
Disabled, Start in disabled stateNegative value
Enabled, Start in enabled state
-
Zvel
Grouping tag for deletion OtherTouchplate Plus
sprites sharing thisZvel
tag will be deleted when one of them activates -
Xvel
Modifier Flags These act asbit flags
and should be added together1
Count backward, forLotag
multi-activation.2
Loop multi-activation cycle, When used withPal 9
there may be unintended results4
Start squished If placed in a door, and the door is closed, do not trigger until initial door state changes.8
Ignore player A Touchplate without touch..., will still react to doors andowner
16
Yvel
is multi use, enable/disable can be toggled repeatedly32
Yvel
is single use, enable/disable toggle state will be permanent once triggered64
Always door trigger, For multi-activation — Reactivate always when a door changes state vs. only when squished128
IgnoreZvel
, setting on this sprite. Can still be deleted by otherTouchplate Plus
sprites.256
Owner auto-start, IfOwner
is> 0
then activate this sprite immediately on startup- *
512
Do not queue, IfYvel
is> 0
then activation ofOwner
will not be queued
5897
Music and FX Plus
Play sounds on demand. Various parameters allow anything from pitch shifting to looping. Downside is that there is little to no volume or distance control, sounds will always be played at a "normal volume"
5899
Sound emitter (unused in maps)
5900
LightFX
This is used to trigger Shade
(and Pal
) shifting in a sector — to both brighten and darken — and can overlap. Ceilings, floors, and walls can be exempted individually. Since the shift is relative it allows a wide range of light effects never before possible.
This effector can act either as a Light
or as a Flicker Controller
. Each time a Light
goes through a change is referred to as a Cycle
_
You may use SHIFT CTRL X
to toggle light preview on/off when in 3D mode
Attributes
First you must choose the Operation mode
which will determine what the rest of the tags will do.
-
Extra
Operation mode0 or lower
Light1 or higher
Flicker controller
Operation: Light
The usual light that can be operated by switches or anything that sends a Channel
, including DS
Hitag
Stepping speed Default speed of1
is30
units per second.Shade
should always divide withHitag
.
For example: +12Shade
should haveHitag
values of1 2 3 4 6
.
Generally sectors furthest from the light source should turn off first so this can used as a toolLotag
Input channel Triggering this will toggle the light on or offXvel
Delay steps Forced delay between steps, where every unit is worth 33.3ms.
i.e. a value of2
will only changeHitag
units of shade every other tick (15 times per second vs. 30).Pal
Palette to apply The palette all surfaces affected by thisLight
should change to, see: https://furymap.lerppu.net/references/palette for a full listShade
Brightness/shade offsetLights
act as a relative adjustment, so for example — If aSector Floor
isShade 4
and thisLight
hasShade -4
, when activated theSector Floor
will becomeShade 0
-
Yvel
Modifier Flags These act asbit flags
and should be added together1
Skip ceilings, Do not affectCeilings
2
Skip floors, Do not affectFloors
4
Skip walls, Do not affectWalls
8
Force palette, Set the palette on surfaces even ifPalette
is0
16
Flat sprite override, AffectWall Aligned
(sprite cstat 16
) sprites even whenYvel
flag4
is set32
Delay palette restore, When turning off, delay palette change until after shade changes are finished64
Adjust parallax, Change ceiling shade even when parallaxed (ceiling stat 1
)
Operation: Flicker controller
The value of Extra
then becomes the delay — in tics
(30 = 1sec) — before a Light
will (potentially) Cycle
_
There are two more main modes: Always flicker
and Flicker when triggered
.
Pay close attention since the functions of Hitag
and Lotag
can switch places.
-
- Always flicker
Hitag
must be 0Lotag
ofController
must matchLotag
of "slave"Light
sprites that you wish to control
-
- Flicker when triggered
Hitag
ofController
must matchLotag
of "slave"Light
sprites that you wish to controlLotag
ofController
acts as anInput
toggle channel for switches and triggers
-
Extra
Flicker frequency Adds a forced delay in ticks (30t = ~1s) before a light will potentially cycle -
Xvel
Modifier Flags These act asbit flags
and should be added together1
Remove Randomization from flicker`2
Reset lights, If triggered,Lights
will reset back to their starting state4
Start Enabled, Flicker controller will start in 'on' state
-
Zvel
Delay before reset WhenXvel
flag2
is set this is a forced delay before the reset intics
(30t ~ 1s)
5901
Proximity sensor
5902
Dialog trigger
5903
Movego
The "secret sauce" abused by mappers throughout the project. This effector is just a simple sprite that checks for any movement in its sector's firstwall
and shoves all sprites inside around in the direction of its angle when that happens. This is by default regardless of the type of sprite — meaning other effectors as well.
5904
Hubmap section
Indicates which area/part the map is in the current zone
Hitag
Level part Set this to current map's level part, start from0
5905
Autosave trigger
Creates a new checkpoint save as soon as the player on the sector
Hitag
Input channel Adds linking tag for activation-
Lotag
Multi activation RequiresHitag
to be above 00
Single use1 or more
Multi-use
5906
PLAYER - Get the fuck out
Used to push away nasty speedrunners (and nasty players) from sectors. In reality it's a handy tool to work around collision bugs. Default state is Enabled
.
Lotag
Input channel Toggle state-
Hitag
Behavior modifiers0
Normal , Magic invisible wall1
Push player , Magic invisible force compels you2
Reject bombs, Reject bowlingbombs4
Ignore player, Useful for allowing bomb-only pushing
-
Palette
Initial state0
Start enabled- `9 Start disabled
5907
Toilet effector
Turns toilet sector work in to an actual functional toilet by somewhat cleverly manipulating height/sloping and textures of the toilet itself. This generally does not get built manually so I would highly recommend using the template from the sample maps.
5908
Tainted sector
Prevents decals from spawning in this sector, used to prevent stuff like floating bullet holes etc..
5909
PLAYER - Z fall killer
Player death pit, if the player is in the same sector as this sprite and below it, you will get a prompt for optional screaming.
5910
Particle shooter
Shoots particles
5911
ENEMY - Z fall killer
Enemy death pit, if the enemy is in the same sector as this sprite and below it, the enemy will die.
5912
Secret area trigger
Trigger a secret without relying on sector Lotag 32767
.
5913
Shelly speech
Used to output speech lines, internally this is a sound that is not positional. It is compatible with other sounds as well.
5914
Horde mode attributes
Some initialization attributes and tells the horde-routine how many spawns to kill there are per wave.
5915
Respawn 2.0 (NEW!)
New respawn setup that can pass virtually all attributes to the spawned sprite
5916
"Music beast"
Used for changing music
5917
"Quote buster"
Display quotes on demand, can also override the default message of Unlocked/Locked
from activatorlocked
5931
Chest effector
Turns chest sector work in to an actual functional chest by somewhat cleverly manipulating height/sloping and textures of the chest itself. This generally does not get built manually so I would highly recommend using the template from the sample maps.
5932
ENEMY - Get the fuck out
Used to push away nasty nasty enemies from sectors. In reality it's a handy tool to work around collision bugs. Default state is Enabled
.
Lotag
Input channel Toggle state-
Hitag
Behavior modifiers0
Every enemy , Block all1
Every enemy , Block all2
Ground only, Block only ground enemies4
Aerial TROR hack, Tells drones and deacons that the there is room below the TROR layer
-
Palette
Initial state0
Start enabled- `9 Start disabled