Table of contents
- AfterImage parameters
- AllPalFx parameters
- AngleDraw, AngleSet, AngleMul parameters
- AppendToClipboard, DisplayToClipboard
- AssertSpecial parameters
- Enabled
- Flag
- AnimateHitpause
- AnimFreeze
- AutoGuard
- CameraFreeze
- DrawUnder
- GlobalNoKo
- NoAIButtonJam
- NoAICheat
- NoAiLevel
- NoAirJump
- NoBrake
- NoComboDisplay
- NoCornerPush
- NoCrouch
- NoDestroySelf
- NoDizzyPointsDamage
- NoFaceDisplay
- NoFaceP2
- NoFastRecoverFromLieDown
- NoFallCount
- NoFallDefenceUp
- NoFallHitflag
- NoGetUpFromLieDown
- NoGuardKo
- NoGuardBarDisplay
- NoGuardDamage
- NoGuardPointsDamage
- NoHardcodedKeys
- NoHitDamage
- NoInput
- NoIntroReset
- NoJump
- NoKo
- NoKoFall
- NoKoVelocity
- NoLifeBarAction
- NoLifeBarDisplay
- NoMakeDust
- NoNameDisplay
- NoPowerBarDisplay
- NoRedLifeDamage
- NoScore
- NoStand
- NoStunBarDisplay
- NoTimeDisplay
- NoTurnTarget
- NoWinIconDisplay
- PostRoundInput
- ProjTypeCollision
- RoundFreeze
- RoundNotSkip
- RunFirst
- RunLast
- SizePushOnly
- SkipFightDisplay
- SkipKoDisplay
- SkipRoundDisplay
- SkipWinDisplay
- AttackDist Parameters
- AttackMulSet Parameters
- BGPalFX
- BindToTarget Parameters
- ChangeAnim Parameters
- ChangeAnim2 Parameters
- ChangeState parameters
- DefenceMulSet Parameters
- EnvShake parameters
- Explod parameters
- AfterImage
- AnimElem
- AnimPlayerNo
- HideWithBars
- SpritePlayerNo
- AnimElemTime
- AnimFreeze
- FocalLength
- Friction
- Interpolation
- LayerNo
- PalFx
- Projection
- Reflection
- RemoveOnChangeState
- Shader
- ShaderTime
- ShaderParam.pX
- ShaderTexX.spr
- ShaderTexX.anim
- SpritePlayerNo
- syncid
- synclayer
- syncparams
- under
- window
- xshear
- Forcefeedback parameters
- Helper parameters
- ClsnProxy
- ExtendsMap
- Immortal
- InheritChannels
- InheritJuggle
- keyctrl
- KOVelocity
- Map
- OwnClsnScale
- OwnProjectile
- Preserve
- Size
- Standby
- HitBy parameters
- HitDef parameters
- air.juggle (changed)
- air.velocity (changed)
- airguard.velocity (changed)
- attack.depth
- dizzypoints
- down.recover
- down.recovertime
- down.velocity (changed)
- envshake.mul
- envshake.dir
- fall.envshake.mul
- fall.envshake.dir
- fall.zvelocity
- forcecrouch
- guard.hittime
- guardpoints
- ground.velocity (changed)
- guard.dist (changed)
- guard.dist.width
- guard.dist.height
- guard.velocity (changed)
- guard.sparkangle
- guard.sparkscale
- stand.friction
- crouch.friction
- guardsound.channel
- hitsound.channel
- ignorereversaldef
- keepstate
- maxdist (changed)
- mindist (changed)
- missonoverride
- nochainID (changed)
- p1sprpriority
- p2clsncheck
- p2clsnrequire
- redlife
- score
- snap
- sparkangle
- sparkscale
- teamside
- unhittabletime
- xaccel
- zaccel
- HitOverride parameters
- HitVelSet parameters
- ModifyExplod parameters
- NotHitBy parameters
- PalFx parameters
- PlayerPush parameters
- PlaySnd parameters
- Projectile parameters
- IkemenVersion
- ProjAngle
- ProjXAngle
- ProjYAngle
- ProjClsnAngle
- ProjClsnScale
- ProjDepthBound
- ProjLayerNo
- ProjFocalLength
- ProjProjection
- ProjReflection
- ProjWindow
- ProjXshear
- Shader
- ShaderTime
- ShaderParam.pX
- ShaderTexX.spr
- ShaderTexX.anim
- RemoveExplod parameters
- ReversalDef parameters
- ScreenBound parameters
- SelfState parameters
- SprPriority Parameters
- StopSnd parameters
- SuperPause
- TargetBind parameters
- TargetFacing parameters
- TargetLifeAdd parameters
- TargetPowerAdd parameters
- TargetState parameters
- TargetVelAdd parameters
- TargetVelSet parameters
- Trans parameters
- Zoom parameters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
The state controllers listed in this page already existed in Mugen, but were adjusted or expanded in Ikemen GO.
Use the sidebar for quick navigation.
AfterImage parameters
palinvertblend
palinvertblend = blend_mode (int)
Inverts current blend mode if enabled so Sub becomes Add and Add becomes Sub.
For PalFx it accepts 4 values:
- 0 = Disabled (Mugen 1.0 blending behavior)
- 1 = Enabled (Mugen 1.0 blending behavior)
- -1 = Disabled (Mugen 1.1 blending behavior)
- 2 = Enabled (Mugen 1.1 blending behavior)
If character MugenVersion is 1.1 and invertall = 1 and if invertblend param is omitted, it inverts blend by default. For all other MugenVersion invertblend is 0 if omitted.
AllPalFx parameters
invertblend
invertblend = blend_mode (int)
Inverts current blend mode if enabled so Sub becomes Add and Add becomes Sub.
For AllPalFx it accepts 2 values:
- 0 = Disabled (Mugen 1.0 blending behavior)
- 1 = Enabled (Mugen 1.1 blending behavior)
Defaults to 0 if omitted. If 1 it inverts blending on chars "layer".
AngleDraw, AngleSet, AngleMul parameters
xangle
xangle = xangle (int)
yangle
xangle = yangle (int)
AppendToClipboard, DisplayToClipboard
Unlike Mugen, Ikemen GO can use unlimited amount of numeric arguments. Also it supports format specifiers, e.g. %0.2f (prints float value truncated to 2 digits), %v (prints the value in a default format and optimal formatting, regardless if it's int, float or string).
AssertSpecial parameters
Enabled
Setting this parameter to 0 will disable the specified flags instead. Defaults to 1.
Flag
AssertSpecial now allows setting up to 8 flags at a time.
Example:
[State Test]
type = AssertSpecial
trigger1 = 1
flag = ...
flag2 = ...
flag3 = ...
flag4 = ...
flag5 = ...
flag6 = ...
flag7 = ...
flag8 = ...
In addition, the following flags were added or changed.
AnimateHitpause
While asserted, this flag makes the player's animation advance normally even during a hitpause.
AnimFreeze
While asserted, the player's animation will be frozen on the current frame.
AutoGuard
While asserted, makes the player guard automatically, without need to press back direction. The player will also switch automatically between standing and crouching guard.
CameraFreeze
While asserted, prevents the camera from updating, effectively freezing it in place.
DrawUnder
While asserted, makes the player sprites be drawn with the same properties of Explod under parameter. That is, if the player is on layer 0, it will always be drawn behind lifebars and character shadows.
GlobalNoKo
While asserted all players won't die from taking damage.
NoAIButtonJam
While asserted, disables the random direction and button jamming of Ikemen's default AI.
NoAICheat
While asserted, makes the player's AI unable to cheat commands, i.e. complete them without performing the respective inputs.
NoAiLevel
While asserted, makes the player AILevel and AILevelF triggers return 0.
NoAirJump
Disables the hard-coded state transitions to State 45 when Ctrl=1 && StateType=A && Command="holdup" and AirJump.Num allows
NoBrake
Disables the hard-coded state transitions to State 0 when StateNo=20 && Command!="holdfwd" && Command!="holdback"
NoComboDisplay
While asserted, disables displaying combo counter by this playerno (the flag has to be asserted on team leader to disable combo counter rendering for the teamside).
NoCornerPush
While asserted, the player won't be affected by HitDef cornerpush.veloff.
NoCrouch
Disables the hard-coded state transitions to State 10 when Ctrl=1 && StateType=S && Command="holddown".
NoDestroySelf
While asserted, disables destroyself sctrl.
NoDizzyPointsDamage
While asserted, player won't be affected by a HitDef's dizzypoints parameter.
NoFaceDisplay
While asserted, disables displaying the face icon for this player.
NoFaceP2
While asserted, StateDef facep2 parameter will have no effect.
NoFastRecoverFromLieDown
Disables the hard-coded faster recover from lie down on key input mashing when StateType=L && GetHitVar(RecoverTime)>0.
NoFallCount
Disables the hard-coded FallCount increment when StateNo=5070 || StateNo=5100.
NoFallDefenceUp
Disables the hard-coded defence increase when StateNo=5070 || StateNo=5100.
NoFallHitflag
While asserted, every HitDef will act as if its HitFlag has no F parameter. In other words, the player becomes unable to hit falling enemies.
NoGetUpFromLieDown
Disables the hard-coded state transitions to State 5120 when StateNo=5110 && GetHitVar(RecoverTime)=0.
NoGuardKo
While asserted player won't die from taking chip damage.
NoGuardBarDisplay
While asserted, disables displaying guardbars by this playerno.
NoGuardDamage
While asserted, player won't be affected by HitDef damage guard_damage.
NoGuardPointsDamage
While asserted, player won't be affected by HitDef guardpoints.
NoHardcodedKeys
Disables the hard-coded state transitions when pressing directional keys (combination of NoJump, NoAirJump, NoCrouch, NoStand, NoWalk, NoBrake, NoStandGuard, NoCrouchGuard, NoAirGuard).
NoHitDamage
While asserted, player won't be affected by HitDef damage hit_damage.
NoInput
While asserted, makes the player ignore any player/CPU inputs.
NoIntroReset
While asserted, prevents a player from being forced to their starting position after the round number announcement.
NoJump
Disables the hard-coded state transitions to State 40 when Ctrl=1 && StateType=S && Command="holdup"
NoKo
While asserted, the player won't die from taking damage.
If ikemenversion is not 0, the NoKO flag affects only the player that called it. Otherwise, the MUGEN behavior is replicated, and all players are affected. The new GlobalNoKo flag can be used to replicate the old MUGEN behavior.
NoKoFall
While asserted, the player won't be forced to fall when receiving a hit that depletes their remaining life. In Mugen this was hardcoded into Training mode.
NoKoVelocity
While asserted, player won't be affected by HitDef velocity adjustments upon KO.
NoLifeBarAction
While asserted, disables displaying lifebar actions by this playerno (the flag has to be asserted on team leader to disable lifebar actions rendering for the teamside).
NoLifeBarDisplay
While asserted, disables displaying lifebars by this playerno.
NoMakeDust
While asserted, the player does not generate hardcoded dust effects. The MakeDust state controller will also have no effect.
NoNameDisplay
While asserted, disables displaying the Name by this playerno.
NoPowerBarDisplay
While asserted, disables displaying powerbars by this playerno (with team power share option enabled and/or lifebar design with only 1 powerbar per side, the flag has to be asserted on team leader to disable powerbar rendering for whole team).
NoRedLifeDamage
While asserted, player won't be affected by HitDef redlife.
NoScore
While asserted, player won't be affected by HitDef score or the ScoreAdd / TargetScoreAdd state controllers.
NoStand
Disables the hard-coded state transitions to State 12 when StateType=C && Command!="holddown".
NoStunBarDisplay
While asserted, disables displaying stunbars by this playerno.
NoTimeDisplay
While asserted, disables displaying the fight screens [Time] elements.
NoTurnTarget
While asserted, keeps the opponent from automatically turning to face the player. This includes the facep2 parameter.
NoWinIconDisplay
While asserted, disables displaying winicons by this playerno (the flag has to be asserted on team leader to disable winicon rendering for the teamside).
PostRoundInput
While asserted, player's inputs are not disabled post-match (RoundState>2 || RoundState=-1).
ProjTypeCollision
While asserted, the player will clash with projectiles (and other players with the same flag) if their Clsn2 boxes overlap. This allows helpers to easily replicate this kind of projectile clashing.
RoundFreeze
While asserted, round related lifebar actions and internal timers are frozen (allows maintaining current roundstate).
RoundNotSkip
Disables intro and victory pose skipping via button press.
RunFirst
While asserted, makes the player code be processed before that of any other players.
RunLast
While asserted, makes the player code be processed after all other players.
SizePushOnly
In Ikemen, like Mugen, characters will push each other when both their size boxes (width * height) and their Clsn2 boxes overlap. Asserting this flag makes it so that only the size boxes are checked, as in most fighting games.
SkipFightDisplay
While asserted, the "fight" announcement on round start will be skipped.
SkipKoDisplay
While asserted, the KO announcement on round end will be skipped.
SkipRoundDisplay
While asserted, the round number announcement on round start will be skipped.
SkipWinDisplay
While asserted, the winner announcement on round end will be skipped.
AttackDist Parameters
Value
The value parameter now takes a second number. This number sets the distance that a player can attack behind the enemy and still allow them to enter proximity guard.
Example:
[State Test]
type = AttackDist
trigger1 = 1
value = 100, 50
Width
Works the same as Value.
Height
Changes the value of the attack.dist.height parameter for the player's current HitDef.
Example:
[State Test]
type = AttackDist
trigger1 = 1
height = 160, 0
Depth
Changes the value of the attack.dist.depth parameter for the player's current HitDef.
Example:
[State Test]
type = AttackDist
trigger1 = 1
depth = 10, 10
AttackMulSet Parameters
Damage
Sets an attack multiplier for regular damage only.
DizzyPoints
Sets an attack multiplier for dizzy points only.
GuardPoints
Sets an attack multiplier for guard points only.
RedLife
Sets an attack multiplier for red life only.
Value
Sets the attack multiplier for all types of damage.
Example:
[State Test]
type = AttackMulSet
trigger1 = 1
Damage = 0.50
RedLife = 2.00
DizzyPoints = 0.75
GuardPoints = 0.00
BGPalFX
BGPalFX now also accepts ID and index parameters. This allows it to apply PalFX to specific BG elements of the stage.
ID
The ID of the stage BG element to affect. Defaults to -1 (any).
Index
The index of the stage BG element to affect. Defaults to -1 (any).
Example:
[State Test]; Invert colors for the sixth BG element with any ID
type = BGPalFX
trigger1 = 1
ID = -1
index = 5
time = 10
invertall = 1
BindToTarget Parameters
PosZ
posz = pos_z (float)
Specify the offset (in the z-axis) to bind to. Can be skipped, so it's backward compatible with lines having only x,y declared.
Index
The index of the target to bind to. Defaults to 0 (first one).
ChangeAnim Parameters
ElemTime
Specifies the exact time of an animation element to change to. Defaults to 0.
Example:
[State 1000, Anim]; Change to animation 1003, element 4, second frame
type = ChangeAnim
trigger1 = Time = 30
value = 1003
elem = 4
elemtime = 1
AnimPlayerNo
This parameter lets a character use the specified animation from another character. Defaults to own playerno.
SpritePlayerNo
This parameter lets a character use the specified sprites from another character. Defaults to own playerno.
ReadPlayerID
This parameter lets a character use the specified animation from another character, including their sprites.
ChangeAnim2 Parameters
ElemTime
See ChangeAnim.
ReadPlayerID
This parameter lets a character use the specified animation from another character, but maintaining their own sprites.
ChangeState parameters
Continue
Due to the way State -1 is normally used to read inputs and change states, Mugen had it so that using a ChangeState in a negative state would stop the execution of the rest of the code in that state. Setting Continue to 1 will disable this behavior.
When a ChangeState is redirected, Continue will default to 1.
DefenceMulSet Parameters
In Mugen, DefenceMulSet changes the player's final defense multiplier. That means it will override any defense buffs such as those gained through the fall.defence_up constant or the SuperPause p2defmul parameter. In Ikemen GO, it is only another multiplier, meaning the other defense buffs will still work correctly.
IkemenVersion
Characters with ikemenversion will have DefenceMulSet work correctly and more intuitively by default. See MulType and OnHit.
MulType
multype = bvalue (boolean int)
Defines how damage taken should be multiplied.
If 0, damage taken is multiplied by value.
If 1, defense is multiplied by value (therefore the damage is divided).
Defaults to 1 for characters with ikemenversion, and to 0 otherwise.
OnHit
onHit = bvalue (boolean int)
Defines if the defense value should also apply outside of moveType = H.
If 0, the defense value works without delay.
If 1, the defense value is only active if the char is already in moveType = H.
Defaults to 0 for characters with ikemenversion, and 1 otherwise.
Example:
[State -2, Evil Ryu Defense]
type = defencemulset
trigger1 = map(evilryu) != 0
value = 0.80
onhit = 0
multype = 1
ignorehitpause = 1
EnvShake parameters
Decay
decay = exponent (float)
Applies an exponential decay to the shake amplitude over time, making it fade out automatically.
decay = 0: no fading0 < decay < 1: fades slow, then fastdecay = 1: fades linearlydecay > 1: fades fast, then slow
Example:
[State Shake]
type = envshake
trigger1 = !time
time = 30
ampl = 10
freq = 90
decay = 1.5
Dir
dir = angle (int)
Changes the direction in degrees in which the shake is applied. Defaults to 0. For a negative amplitude, 90 will make the screen shake from left to right.
DirAdd
diradd = angle (int)
Increases the shaking angle by the specified value each frame. Allows the effect to appear more exaggerated and erratic.
Mul
mul = factor (float)
For every EnvShake cycle, the amplitude is multiplied by this value. Defaults to 1. Cycle duration is determined by frequency, with a frequency of 180 needing two frames to complete one cycle.
Example:
[State 3051, Shake]
type = envshake
trigger1 = !time
time = 30
ampl = 5
freq = 180
mul = 0.9
In this case, the screen shakes 5 pixels in the first cycle, then 4.50 pixels, then 4.05 and so on.
Note: This parameter has been superseded by the decay parameter.
Explod parameters
AfterImage
Explods now support AfterImage parameters (e.g. afterimage.time, afterimage.length, afterimage.trans). Usage is identical to Projectile's AfterImage.
AnimElem
animelem = elem_no (int)
Sets the element where the explod's animation should start. Defaults to 1.
AnimPlayerNo
animplayerno = playerno (int)
This parameter lets a explod use the specified animation from another character. Defaults to own playerno.
HideWithBars
hidewithbars = bvalue (boolean int)
This parameter hides the explod automatically when the fight screen is hidden. Defaults to 0.
SpritePlayerNo
spriteplayerno = playerno (int)
This parameter lets a explod use the specified sprites from another character. Defaults to own playerno.
AnimElemTime
animelemtime = time (int)
Sets the time at which the explod's animation element should start. Defaults to 0.
AnimFreeze
animfreeze = bvalue (boolean int)
Freezes the explod's animation. Defaults to 0.
Example:
[State 0, Custom Afterimage]
type = Explod
trigger1 = time%5=0
anim = anim
animelem = animelemno(0)
animfreeze = 1
ID = 1000
postype = none
pos = pos x+camerapos x,pos y
facing = 1
vfacing = 1
bindtime = 1
supermovetime = 0
pausemovetime = 0
scale = 1,1
sprpriority = 10
ontop = 0
shadow = 0,0,0
ownpal = 1
trans = add
removetime = 40
palfx.time = 40
palfx.sinmul = -255,-255,-255,160
removeongethit = 0
ignorehitpause = 1
FocalLength
Focal Length of the projection. Does nothing when projection is not perspective or perspective2.
This value is fixed in Mugen 1.1, the explods will look differently under different different resolution/loaclcoord/camera zoom.
In Ikemen, this value scales internally like xy scales so that the explods will always look the same.
Default value is 2048.
Friction
Applies friction to explod on the defined axis (Friction value example: 0.95).
Friction = friction_x, friction_y, friction_z (float, float, float)
Interpolation
Interpolation works just as the .air counterpart, interpolating linearly between 2 values.
The syntax is as follows: Interpolation. Where is one of: time, animElem, scale, alpha, angle, offset, xshear, focallength
Interpolation.Time is required for any of the parameters to work.
Time = duration (int)
Specifies the time period of the animation (if omitted, defaults to 0).
AnimElem = elem_no (int)
Interpolation between AnimElem and Interpolation.AnimElem. if AnimElem is omitted, defaults to 1. AnimFreeze will stop the animation from going further than Interpolation.AnimElem.
Alpha = alpha_source, alpha_dest (int, int)
Interpolation between Alpha values and Interpolation.Alpha. Sub and Add1 are not supported.
Angle = angle, xangle, yangle (float, float, float)
Interpolation between Angle / XAngle / YAngle and Interpolation.Angle.
Offset = offset_x, offset_y (float, float)
Interpolation between Pos and Interpolation.Offset.
Scale= scale_x, scale_y (float, float)
Interpolation between Scale and Interpolation.Scale.
Xshear= xshear (float)
Interpolation between Xshear and Interpolation.Xshear.
FocalLength = value(float)
Interpolation between FocalLength and Interpolation.FocalLength.
Palfx is also compatible with the syntax:
Interpolation.PalFx.(type)
where (type) is one of: mul, add, hue, color
PalFx.Time and OwnPal = 1 is required for any of the parameters to work.
Mul = mul_r, mul_g, mul_b (int, int, int)
Interpolation between PalFx.Mul values and Interpolation.PalFx.Mul. If PalFx.Mul is omitted, defaults to 256, 256, 256.
Add = add_r, add_g, add_b (int, int, int)
Interpolation between PalFx.Add values and Interpolation.PalFx.Add. If PalFx.Add is omitted, defaults to 0, 0, 0.
Hue = value (int)
Interpolation between PalFx.Hue value and Interpolation.PalFx.Hue. If PalFx.Hue is omitted, defaults to 0.
Color = value (int)
Interpolation. between PalFx.Color value and Interpolation.PalFx.Color. If PalFx.Color is omitted, defaults to 256.
These parameters can be used interchangeably.
Examples:
- Spinning object doing a full circle in a period of 60 ticks:
Angle = 0;
XAngle = 0;
YAngle = 0;
Interpolation.Time = 60;
Interpolation.Angle = 360, 0, 0;
- Moving object from 0, 0 to 50, 0 in a period of 100 ticks:
Pos = 0, 0;
Interpolation.Time = 100;
Interpolation.OffSet = 50, 0;
- Object fading out in 30 ticks:
Trans = AddAlpha;
Alpha = 256, 0;
Interpolation.Time = 30;
Interpolation.Alpha = 0, 256;
- Object Changing from Blue to Red in 50 ticks:
PalFx.Time = 50;
PalFx.Mul = 0, 0, 256;
Interpolation.Time = 50;
Interpolation.PalFx.Mul = 256, 0, 0;
LayerNo
Specify on which layer the explod should be drawn. Valid values are -1, 0 and 1. Defaults to the same layer as the player.
Layer number 1 is effectively the same as the legacy ontop parameter.
PalFx
Apply palette effects on explods. The parameters are the same as in the HitDef controller. Requires ownpal to be a nonzero value.
Projection
Affect how the explod is drawn when xangle or yangle is not zero.
- orthographic: The default value when Mugen version is not 1.1 or Ikemen version is not 0. The explod is drawn using orthographic projection.
- perspective: The default value when Mugen version is 1.1 and Ikemen version is 0. The explod is drawn using perspective projection. Distortion is affected by the position of the sprite relative to the center of the screen.
- perspective2: The explod is drawn using perspective projection. Distortion is affected by the position of the sprite relative to the center of the animation.
Reflection
If 0, disables reflection on the explod regardless of its shadow color. If 1, enables reflection on the explod regardless of its shadow color. Defaults to showing a reflection if the explod's shadow is not 0, 0, 0.
RemoveOnChangeState
If set to 1, the Explod will be removed if the character changes state. Defaults to 0.
Shader
shader = "shader_name" (string)
Specifying the name of the currently loaded custom shader will apply that shader to Explod.
ShaderTime
shadertime = time (int)
Specifying this parameter will remove the custom shader after it has been displayed for the specified number of ticks. The default value is -1.
ShaderParam.pX
shaderparam.pX = value (float)
Specifies the value to send to the custom shader. The value specified here can be used as a variable within the custom shader. X is limited to 0 to 15, and a maximum of 16 values can be sent.
ShaderTexX.spr
shadertexX.spr = group, image (int, int)
ShaderTexX.anim
shadertexX.anim = anim_no (int)
Specifies the texture to send to the custom shader. The sprites specified here can be used as textures within the custom shader. You can specify 1 or 2 for X, and send up to two sprites. Each tex can be assigned either a sprite number (spr) or an anim number. It is not possible to assign both sprite and anim numbers to the same tex number simultaneously. Note that since textures are loaded as raw data, images with palettes may not display correctly as is.
SpritePlayerNo
spriteplayerno = playerno (int)
This parameter lets a explod use the specified sprites from another character. Defaults to own playerno.
syncid
syncid = id (int)
Specifies the ID of a character to synchronize with. The Explod will group with the target in the draw order. If syncparams is 1, it also copies the target's drawing properties (Position, Scale, Angle, Trans, etc.).
synclayer
synclayer = layer (int)
Adjusts the drawing order relative to the character specified in syncid.
- 0: Same layer as the character (default).
- > 0: Drawn in front of the character.
- < 0: Drawn behind the character.
syncparams
syncparams = value (bool)
If set to 1, visual parameters (Scale, Angle, Trans, etc.) are continuously copied from the character specified in syncid. If set to 0, only the draw order is synchronized. Defaults to 1.
under
If set to 1 and the explod is on layer 0, it will always be drawn behind lifebars and character shadows.
window
window = x1, y1, x2, y2 (float)
This parameter takes four numbers (similar to the format of a Clsn box) which forms a rectangle outside of which the pixels will not be rendered.
xshear
xshear = xshear (float)
Specifies the amount of horizontal shearing to apply to the explod. Defaults to 0.
Forcefeedback parameters
Note: The below parameters are considered "new API" and override all freq and ampl parameters of ForceFeedback. ampl is ignored regardless of API used.
lo
lo = lo_value (int)
Sets the frequency for the low frequency (left) rumble motor. Defaults to 0.
hi
hi = hi_value (int)
Sets the frequency for the high frequency (right) rumble motor. Defaults to 0.
Helper parameters
ClsnProxy
If set to 1, any overlap with the helper's clsn boxes will instead affect its parent as if the helper's clsn boxes were part of the parent's anim. Defaults to 0.
ExtendsMap
If set to 1, the parent map is inherited by helper. Defaults to 0.
Immortal
If set to 1, the helper's life can't be reduced to 0. Defaults to 0.
InheritChannels
If set to 1, helper shares parent's sound channels. Setting it to 2 does the same thing but for root instead of parent. Defaults to 0.
InheritJuggle
If set to 1, helper's attacks also update parent's target list and add to the parent's juggle points. Also, the helper will inherit its parent's juggle points against attacked enemy. Setting it to 2 does the same thing but for root instead of parent. Defaults to 0.
keyctrl
In Mugen this parameter accepts a single boolean int value that makes the helper being able to read command input and inherit its root's State -1. In Ikemen GO, on top of this functionality, the parameter optionally accepts more values that enable additional root's negative state inheritance (2 means that helper inherit its root's State -2 and so forth).
keyctrl = 1, 3
KOVelocity
If set to 1, the helper will be affected by increased KO Velocity (defeated character flying across the screen), just like normal player. Defaults to 0.
Map
A helper's maps can be set immediately upon its creation via map.<mapname> syntax.
helper{...; map.speed: 8; map.angle: 45}
OwnClsnScale
A helper with this parameter will have its collision box scale be based on its own size.xscale and size.yscale constants rather than its root's.
OwnProjectile
A helper with this parameter can own its own projectiles instead of the root player.
Note: If a helper is destroyed while a projectile is still active, the orphaned projectile loses its ability to interact with other players.
Preserve
If set to 1, the helper won't be destroyed after skipping round 1 intro and will move over to the next round, just like normal player. Defaults to 0.
Size
New size constants like depth and weight can also be attributed to helpers upon their creation, with the size prefix.
Example:
type = Helper
size.weight = 200
size.depth = 10, 10
Standby
Helpers inherit standby flag from root characters. By using this parameter, a character can force a specific standby for its helper, regardless of the standby value of the character itself.
HitBy parameters
IkemenVersion
In Mugen, the behavior of HitBy (and NotHitBy) is not as documented. The player's invincibility is compared to the enemy's actual statetype instead of their Hitdef's SCA flags. If a character has ikemenversion, it will work as documented.
New syntax
HitBy (and NotHitBy) now also accepts a syntax similar to HitOverride, using attr and slot instead of value. Every player has access to 8 individual slots (numbered 0 to 7).
This new syntax is required to use the new features.
Example of equivalent code in old and new syntax:
[State -3, Old Syntax]
type = hitby
trigger1 = 1
value = SC, AP
time = 1
[State -3, New Syntax]
type = hitby
trigger1 = 1
attr = SC, AP
slot = 0
time = 1
Stack
stack = value (bool)
Using this parameter makes a vulnerability slot stack with other slots. This allows setting vulnerability combinations not previously possible in Mugen.
Example, make a player vulnerable to Standing Attacks and Air Projectiles:
[State -2, Test]
type = hitby
trigger1 = 1
attr = S, AA
time = 1
slot = 0
stack = 1
[State -2, Test]
type = hitby
trigger1 = 1
attr = A, AP
time = 1
slot = 1
stack = 1
PlayerNo
playerno = player_number (int)
Using this parameter limits vulnerability to a specific player number.
PlayerID
playerid = player_id (int)
Using this parameter limits vulnerability to a specific player ID.
HitDef parameters
air.juggle (changed)
In Mugen, the air.juggle parameter is only used by the Projectile state controller. Characters with ikemenversion can now use this parameter in a Hitdef to update their juggle points. This allows a move with multiple hits to have different juggle properties in every hit, for instance.
air.velocity (changed)
This parameter now takes a third value, It specifies the z velocity.
air.velocity = x_vel, y_vel, z_vel (float, float, float)
airguard.velocity (changed)
This parameter now takes a third value, It specifies the z velocity.
airguard.velocity = x_vel, y_vel, z_vel (float, float, float)
attack.depth
attack.depth = z_dist_front, z_dist_back (int, int)
Specifies the range of the attack in the Z plane. An attack with more depth reaches further into or out of the Z plane. Defaults to the character's attack.depth size constant.
dizzypoints
dizzypoints = hit_value (int)
Specifies the amount of dizzy points to give P2 if this HitDef connects successfully. If omitted, it defaults to hit_damage (from "damage" parameter) multiplied by the value of Default.LifeToDizzyPointsMul / Super.LifeToDizzyPointsMul specified in data/common.const, scaled by the targets' defense multipliers if necessary.
down.recover
down.recover = recover_flag (bool)
This parameter controls the enemy's ability to use "fast recovery from lie down" after being hit.
down.recovertime
down.recovertime = recover_time (int)
This parameter determines how long the enemy will stay down (in state 5110) after being knocked down. Defaults to the enemy's data.liedown.time constant. Together with down.recover, this allows one to effectively apply "hard knockdown" states on the enemy.
down.velocity (changed)
down.velocity = x_vel, y_vel, z_vel (float, float, float)
This parameter now takes a third value, It specifies the z velocity.
envshake.mul
envshake.mul = envshake_mul (float)
For every envshake cycle, the envshake.ampl is multiplied by this value. Defaults to 1.
envshake.dir
envshake.dir = angle (int)
Changes the direction in degrees in which the shake is applied. Defaults to 0. For a negative amplitude, 90 will make the screen shake from left to right.
fall.envshake.mul
fall.envshake.mul = fall_envshake_mul (float)
For every fall.envshake cycle, the fall.envshake.ampl is multiplied by this value. Defaults to 1.
fall.envshake.dir
fall.envshake.dir = angle (int)
Changes the direction in degrees in which the shake is applied. Defaults to 0. For a negative amplitude, 90 will make the screen shake from left to right.
fall.zvelocity
fall.zvelocity = fall_zvelocity (float)
This is the z-velocity that P2 gets when bouncing off the ground in the "fall" state. Defaults to no change if omitted.
forcecrouch
forcecrouch = bvalue (boolean int)
Forces a standing opponent to crouch upon hit. Similar to ForceStand. Defaults to 0.
guard.hittime
If the character has ikemenversion, this value now defaults to ground.hittime as documented, as opposed to ground.slidetime.
guardpoints
guardpoints = hit_value (float)
Specifies the amount of guard points to give P2 if this HitDef is guarded. If omitted, it defaults to hit_damage (from "damage" parameter) multiplied by the value of Default.LifeToGuardPointsMul / Super.LifeToGuardPointsMul specified in data/common.const, scaled by the targets' defense multipliers if necessary.
ground.velocity (changed)
This parameter now takes a third value, It specifies the z velocity.
ground.velocity = x_vel, y_vel, z_vel (float, float, float)
guard.dist (changed)
guard.dist = x_dist_front, x_dist_back (int, int)
This parameter now takes a second value. It specifies the distance that a player can attack behind the enemy and still allow them to enter proximity guard. This second value defaults to 0.
guard.dist.width
guard.dist.width = x_dist_front, x_dist_back (int, int)
Alternative syntax for guard.dist, for consistency with guard.dist.height and guard.dist.depth.
guard.dist.height
guard.dist.height = y_dist_top, y_dist_bottom (int, int)
Specifies the vertical distance (height) within which a player's attack can trigger the enemy's proximity guard. The default value is 1000, 1000.
guard.dist.depth = z_dist_top, z_dist_bottom (int, int)
Specifies the depth range (along the Z-axis) within which a player's attack can trigger the enemy's proximity guard. The default value is 4, 4.
guard.velocity (changed)
guard.velocity = x_vel, y_vel, z_vel (float, float, float)
This parameter now takes a second and a third value. It specifies the Y and the Z guard velocities. They default to 0.
guard.sparkangle
guard.sparkangle = angle_value (float)
Specifies the guard spark rotation directly from a Hitdef. Defaults to 0.
guard.sparkscale
guard.sparkscale = x_scale, y_scale (float, float)
Specifies the guard spark's scale directly from a Hitdef. Defaults to 1, 1 (no change).
stand.friction
stand.friction = friction_value (float)
Overrides the opponent's Movement.Stand.Friction constants while they are in the gethit state caused by this HitDef.
crouch.friction
crouch.friction = friction_value (float)
Overrides the opponent's Movement.Crouch.Friction constants while they are in the gethit state caused by this HitDef.
guardsound.channel
guardsound.channel = channel_no (int)
Specifies which of the player's sound channels the guardsound should play on. If omitted, channel_no defaults to -1, meaning the sound will play on any free channel.
hitsound.channel
hitsound.channel = channel_no (int)
Specifies which of the player's sound channels the hitsound should play on. If omitted, channel_no defaults to -1, meaning the sound will play on any free channel.
ignorereversaldef
ignorereversaldef = value (bool)
If set to 1, this HitDef will ignore any active ReversalDef on the opponent, hitting them normally. Defaults to 0.
keepstate
keepstate = value (bool)
If set to 1, the hit will apply effects (damage, hitpause, etc.) but the opponent will not change to a gethit state. Defaults to 0.
maxdist (changed)
This parameter now takes a third value. It specifies the Z maxdist.
mindist (changed)
This parameter now takes a third value. It specifies the Z mindist.
missonoverride
missonoverride = bvalue (boolean int)
This parameter allows you to choose whether or not a HitDef will miss if it would be overridden(HitOverride), by default, it missing only if P1StateNo, P2StateNo, or P2GetP1State is specified. P1StateNo and P2StateNo both do not apply if the hit is overridden.
nochainID (changed)
This parameter now accepts up to 8 values, up from 2.
p1sprpriority
In Mugen, the default value for this parameter was not intuitive and often became a problem. In Ikemen, it defaults to no change.
p2clsncheck
p2clsncheck= clsn_type (string)
This parameter makes a hit be checked against a specific type of collision box. Valid parameters are Clsn1, Clsn2, Size and None.
Traditionally, fighting games check throws with the Size box.
p2clsnrequire
p2clsnrequire= clsn_type (string)
This parameter prevents a hit from happening if the enemy lacks a particular type of collision box, regardless of them overlapping or not with the player.
Note: All Mugen characters were created on the assumption that lacking Clsn2 makes them invulnerable. Therefore, if a character is designed for compatibility with other Mugen characters, this parameter should be used when checking hits against other types of collision boxes.
redlife
redlife = hit_value, guard_value (int)
Specifies the amount of red life to give P2 if this HitDef connects successfully. If omitted, it defaults to hit_damage (from "damage" parameter) multiplied by the value of Default.LifeToRedLifeMul / Super.LifeToRedLifeMul specified in data/common.const, scaled by the targets' defense multipliers if necessary. Additional second value is optional and assigns an amount of guard red life to P2.
score
score = p1_value, p2_value (float)
Specifies the score value added to P1 and P2 score count.
snap
This parameter now actually uses the third value. It specifies the P2 Pos Z.
snap takes 4 arguments the 4th one being snaptime.
sparkangle
sparkangle = angle_value (float)
Specifies the hitspark rotation directly from a Hitdef. Defaults to 0.
sparkscale
sparkscale = x_scale, y_scale (float, float)
Specifies the hit spark's scale directly from a Hitdef. Defaults to 1, 1 (no change).
teamside
Makes the HitDef be treated as an attack from the TeamSide you specify (similar to the trigger of TeamSide).
When used with Projectile, setting a teamside different from the player's will allow the projectile to hit its owner and interact with other projectiles from the same player.
unhittabletime
unhittabletime = p1_time, p2_time (int)
Makes the player or the enemy invincible for the specified number of the frames after the hit. Use -1 for no change.
Defaults to p1_pausetime + 1, p1_pausetime + 1 for throw attribute attacks, 0, p1_pausetime + 1 for ReversalDef, or -1, -1 otherwise.
xaccel
xaccel = accel (float)
Specifies the x acceleration to impart to P2 if the hit connects. Defaults to 0.
For backwards compatibility reasons, this acceleration is not used by default, as it is not called by common1.cns.
zaccel
zaccel = accel (float)
Specifies the z acceleration to impart to P2 if the hit connects. Defaults to 0.
For backwards compatibility reasons, this acceleration is not used by default, as it is not called by common1.cns.
HitOverride parameters
forceguard
forceguard = value (bool)
If set to 1, a successful override will be considered a guarded attack.
guardflag
guardflag = hit_flags (string)
Only hits containing the specified flags in their guardflag will be overridden.
guardflag.not
guardflag.not = hit_flags (string)
Hits containing the specified flags in their guardflag will not be overridden.
Example:
[State Test]; Override attacks that can be blocked standing but not crouching (overheads)
type = HitOverride
trigger1 = 1
attr = SCA, AA
guardflag = H
guardflag.not = L
keepstate
keepstate = value (bool)
If set to 1, the character will override a hit without changing states at all.
HitVelSet parameters
Z
z = z_flag (int)
A nonzero flag means to change that z-component of the player's velocity to the gethit velocity.
ModifyExplod parameters
IkemenVersion
In general, characters with ikemenversion are able to to modify their explods more freely.
Additionally, if a character has ikemenversion, modifying an explod timer such as bindtime or removetime will use the current frame as the reference time. For example, if removetime is modified to 10, the explod will be removed 10 frames later, regardless of what the original time was.
anim
Modifies the anim parameter of an existing Explod. Requires ikemenversion.
animelem
Modifies the animelem parameter of an existing Explod.
animelemtime
Modifies the animelemtime parameter of an existing Explod.
ignorehitpause
Modifies the ignorehitpause parameter of an existing Explod. Requires ikemenversion.
index
The index of the explod to be affected. Defaults to -1 (all).
space
Modifies the space parameter of an existing Explod. Requires ikemenversion.
under
Modifies the under parameter of an existing Explod.
NotHitBy parameters
See HitBy.
PalFx parameters
invertblend
invertblend = blend_mode (int)
Inverts current blend mode if enabled so Sub becomes Add and Add becomes Sub.
For PalFx it accepts 4 values:
- 0 = Disabled (Mugen 1.0 blending behavior)
- 1 = Enabled (Mugen 1.0 blending behavior)
- -1 = Disabled (Mugen 1.1 blending behavior)
- 2 = Enabled (Mugen 1.1 blending behavior)
If character MugenVersion is 1.1 and invertall = 1 and if invertblend param is omitted, it inverts blend by default. For all other MugenVersion invertblend is 0 if omitted.
hue
hue = value (int)
This affects the hue level of the palette. Avaiable range is -256 to 256.
sinmul
sinmul = ampl_r, ampl_g, ampl_b, period (int)
Similliar to "sinadd" parameter but instead it creates effect related to "mul" parameter.
sincolor
sincolor= ampl, period (int)
Similliar to "sinadd" parameter but instead it creates effect related to "color" parameter.
sinhue
sinhue= ampl, period (int)
Similliar to "sinadd" parameter but instead it creates effect related to "hue" parameter.
PlayerPush parameters
Priority
PlayerPush now accepts a priority parameter. A player with a higher priority can't be pushed by a player with a lower priority and will also push them out of a stage corner. Priority is reset to 0 every frame.
AffectTeam
affectteam = team_type (string)
specifies which team's players can be push.
- F : Allows only allies to be pushed out (enemies will pass through)
- B : Pushes both allies and enemies
- E : Pushes only enemies (default)
PlaySnd parameters
Priority
priority = snd_priority (int)
Sets the priority of the sound. Does nothing when channel is not specified. A sound with higher priority will not be interrupted by sounds with lower priority. Defaults to 0.
LoopStart
loopstart = loop_start_sample (int)
Sets the sample to begin looping from.
LoopEnd
loopend = loop_end_sample (int)
Sets the sample to end looping at.
StartPosition
startposition = start_sample (int)
Sets the sample to begin playing from.
LoopCount
loopcount = loop_count
If set, will play the sound loop_count number of times before stopping. Nonzero values take precedence over the loop parameter.
StopOnGetHit
stopongethit = stop (bool)
This parameter makes the sound be interrupted if the player gets hit. Defaults to 1 if channel is set to 0.
StopOnChangeState
stoponchangestate = stop (bool)
This parameter makes the sound be interrupted if the player changes states.
Projectile parameters
IkemenVersion
In MUGEN, contrary to its documentation, projectiles do not support the ChainID and NochainID parameters. This behavior has been replicated by default in Ikemen GO. However, when a character's ikemenversion is not 0, projectiles do take these parameters into account.
ProjAngle
Specifies the angle to rotate the Projectile animation.
ProjXAngle
Specifies the Xangle of the Projectile animation.
ProjYAngle
Specifies the Yangle of the Projectile animation.
ProjClsnAngle
Defines the angle for the projectile's collision boxes. In degrees.
ProjClsnScale
Defines the collision box scale for the projectile.
ProjDepthBound
Like projedgebound but for the Z space. Determines how far out of the Z boundaries the projectile can travel before being removed.
ProjLayerNo
Specify on which layer the projectile should be drawn. Valid values are -1, 0 and 1. Defaults to the same layer as the player.
ProjFocalLength
Focal Length of the projection. Does nothing when projection is not perspective or perspective2.
ProjProjection
Affect how the projectile is drawn when xangle or yangle is not zero.
- orthographic: The default value, the projectile is drawn using orthographic projection.
- perspective: The projectile is drawn using perspective projection. Distortion is affected by the position of the sprite relative to the center of the screen.
- perspective2: The projectile is drawn using perspective projection. Distortion is affected by the position of the sprite relative to the center of the animation.
ProjReflection
If 0, disables reflection on the projectile regardless of its shadow color. If 1, enables reflection on the projectile regardless of its shadow color. Defaults to showing a reflection if the projectile's shadow is not 0, 0, 0.
ProjWindow
This parameter takes four numbers (similar to the format of a Clsn box) which forms a rectangle outside of which the pixels will not be rendered.
ProjXshear
Specifies the amount of horizontal shearing to apply to the projectile. Defaults to 0.
Shader
shader = "shader_name" (string)
Specifying the name of the currently loaded custom shader will apply that shader to Projectile.
ShaderTime
shadertime = time (int)
Specifying this parameter will remove the custom shader after it has been displayed for the specified number of ticks. The default value is -1.
ShaderParam.pX
shaderparam.pX = value (float)
Specifies the value to send to the custom shader. The value specified here can be used as a variable within the custom shader. X is limited to 0 to 15, and a maximum of 16 values can be sent.
ShaderTexX.spr
shadertexX.spr = group, image (int, int)
ShaderTexX.anim
shadertexX.anim = anim_no (int)
Specifies the texture to send to the custom shader. The sprites specified here can be used as textures within the custom shader. You can specify 1 or 2 for X, and send up to two sprites. Each tex can be assigned either a sprite number (spr) or an anim number. It is not possible to assign both sprite and anim numbers to the same tex number simultaneously. Note that since textures are loaded as raw data, images with palettes may not display correctly as is.
RemoveExplod parameters
index
The index of the explod to be affected. Defaults to -1 (all).
ReversalDef parameters
ReversalDef can also use the new HitDef parameters. In addition it has the following exclusive parameters.
reversal.guardflag
reversal.guardflag = hit_flags (string)
Only hits containing the specified flags in their guardflag will be countered.
reversal.guardflag.not
reversal.guardflag.not = hit_flags (string)
Hits containing the specified flags in their guardflag will not be countered.
Example:
[State Test]; Counter attacks that can be blocked crouching but not standing (lows)
type = ReversalDef
trigger1 = 1
reversal.attr = SCA, AA
reversal.guardflag = L
reversal.guardflag.not = H
ScreenBound parameters
StageBound
Lets a character bypass leftbound and rightbound from stage.
SelfState parameters
ReadPlayerID
Change to the state of the character with the specified Player ID. If successful, it would take the character with the specified PlayerID to the selected state.
See also ChangeState.
SprPriority Parameters
LayerNo
layerno = layer_number (int)
Change the layer number on which the player is drawn on. Valid values are -1, 0 and 1. Defaults to 0.
[TODO - Link to explanation on layer drawing order]
Example:
[State Test]
type = SprPriority
trigger1 = Time = 0
value = 5
layerno = -1
StopSnd parameters
Channel
Mugen allowed stopping all sounds for all players with channel = -1, but had no way to stop only the player's own sound channels. Using channel = -2 will now do just that.
SuperPause
Brightness
Determines how much the screen should darken during the pause. Valid values are between 0 (pitch black) and 255 (no change). Defaults to 128 (same as old darken parameter).
TargetBind parameters
Index
The index of the target to be affected. Defaults to -1 (all).
Pos (changed)
pos = x_pos, y_pos, pos_z (float, float, float)
This parameter now takes a third value, Specifies the offset from the player's z-axis to bind the target to.
TargetFacing parameters
Index
The index of the target to be affected. Defaults to -1 (all).
TargetLifeAdd parameters
Dizzy
If set to 1, enables life to dizzy points conversion support using Default.LifeToDizzyPointsMul / Super.LifeToDizzyPointsMul const. Defaults to 1.
Index
The index of the target to be affected. Defaults to -1 (all).
TargetPowerAdd parameters
Index
The index of the target to be affected. Defaults to -1 (all).
TargetState parameters
Index
The index of the target to be affected. Defaults to -1 (all).
TargetVelAdd parameters
Index
The index of the target to be affected. Defaults to -1 (all).
Z
z = z_value (float)
Specifies the value to add to the target's z-velocity.
TargetVelSet parameters
Index
The index of the target to be affected. Defaults to -1 (all).
Z
z = z_value (float)
Specifies the value to set the target's z-velocity to.
Trans parameters
Ikemen GO has some expanded transparency options.
Note: Applies to all trans definitions (e.g. explods, backgrounds, etc).
Sub
The sub transparency now also supports alpha values.
trans{trans: sub; alpha: 192, 64}
SubAdd
The subadd transparency mode was added. It draws the sprite in grayscale subtractive transparency, then draws it again in full color additive transparency. The result is a transparent effect that looks more solid and is easier to see against bright backgrounds.
The alpha source parameter controls the intensity of the additive layer, while destination controls the subtractive layer.
Native implementation of a classic Mugen trick.
trans{trans: subAlpha; alpha: 256, 256}
Zoom parameters
Zoom was a beta feature in Mugen 1.1. It is a fully functional state controller in Ikemen GO.
CameraBound
If set to 1, the zoom position is restricted to the current camera position. Defaults to 1.
EndLag
Like the lag parameter, but it applies after the Zoom effect ends.
Lag
Controls the smoothing effect for camera position and scale transitions during zoom, with smaller values leading to quicker adjustments and larger values causing more gradual changes.
Valid values are between 0 and 1, where 0 snaps the camera instantly and 1 delays the zoom effect indefinitely.
Defaults to 0.
Pos
The position on screen to bind the zoom, relative to the center of the screen. A value of Pos X, Pos Y will zoom in on P1.
Scale
The camera zoom factor as a float. Values greater than 1 zoom in, while values between 0 and 1 zoom out. For example, a value of 2 doubles the size of the sprites.
StageBound
If set to 1, the zoom position is restricted to the stage boundaries. Defaults to 1.
Time
Countdown timer that controls how long zoom effects are applied, decreasing by 1 every frame. Once it reaches 0, the zoom stops, and the camera resets to its default behavior without any smoothing or zoom effects. Defaults to 1.