State controllers (changed) - ikemen-engine/Ikemen-GO GitHub Wiki

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.

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.

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".

xangle = xangle (int)

xangle = yangle (int)

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).

Enabled (nightly build only)

Setting this parameter to 0 will disable the specified flags instead. Defaults to 1.

AssertSpecial now allows setting up to 8 flags at a time. (nightly build only)

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 (nightly build only)

While asserted, this flag makes the player's animation advance normally even during a hitpause.

While asserted, the player's animation will be frozen on the current frame.

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 (nightly build only)

While asserted, prevents the camera from updating, effectively freezing it in place.

DrawUnder (nightly build only)

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.

While asserted all players won't die from taking damage.

NoAIButtonJam (nightly build only)

While asserted, disables the random direction and button jamming of Ikemen's default AI.

NoAICheat (nightly build only)

While asserted, makes the player's AI unable to cheat commands, i.e. complete them without performing the respective inputs.

While asserted, makes the player AILevel and AILevelF triggers return 0.

Disables the hard-coded state transitions to State 45 when Ctrl=1 && StateType=A && Command="holdup" and AirJump.Num allows

Disables the hard-coded state transitions to State 0 when StateNo=20 && Command!="holdfwd" && Command!="holdback"

NoComboDisplay (nightly build only)

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 (nightly build only)

While asserted, the player won't be affected by HitDef cornerpush.veloff.

Disables the hard-coded state transitions to State 10 when Ctrl=1 && StateType=S && Command="holddown".

NoDestroySelf (nightly build only)

While asserted, disables destroyself sctrl.

While asserted, player won't be affected by a HitDef's dizzypoints parameter.

NoFaceDisplay (nightly build only)

While asserted, disables displaying the face icon for this player.

NoFaceP2 (nightly build only)

While asserted, StateDef facep2 parameter will have no effect.

Disables the hard-coded faster recover from lie down on key input mashing when StateType=L && GetHitVar(RecoverTime)>0.

Disables the hard-coded FallCount increment when StateNo=5070 || StateNo=5100.

Disables the hard-coded defence increase when StateNo=5070 || StateNo=5100.

NoFallHitflag (nightly build only)

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.

Disables the hard-coded state transitions to State 5120 when StateNo=5110 && GetHitVar(RecoverTime)=0.

While asserted player won't die from taking chip damage.

NoGuardBarDisplay (nightly build only)

While asserted, disables displaying guardbars by this playerno.

While asserted, player won't be affected by HitDef damage guard_damage.

While asserted, player won't be affected by HitDef guardpoints.

Disables the hard-coded state transitions when pressing directional keys (combination of NoJump, NoAirJump, NoCrouch, NoStand, NoWalk, NoBrake, NoStandGuard, NoCrouchGuard, NoAirGuard).

While asserted, player won't be affected by HitDef damage hit_damage.

While asserted, makes the player ignore any player/CPU inputs.

While asserted, prevents a player from being forced to their starting position after the round number announcement.

Disables the hard-coded state transitions to State 40 when Ctrl=1 && StateType=S && Command="holdup"

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 (nightly build only)

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.

While asserted, player won't be affected by HitDef velocity adjustments upon KO.

NoLifeBarAction (nightly build only)

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 (nightly build only)

While asserted, disables displaying lifebars by this playerno.

While asserted, the player does not generate hardcoded dust effects. The MakeDust state controller will also have no effect.

NoNameDisplay (nightly build only)

While asserted, disables displaying the Name by this playerno.

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 (nightly build only)

While asserted, player won't be affected by HitDef redlife.

NoScore (nightly build only)

While asserted, player won't be affected by HitDef score or the ScoreAdd / TargetScoreAdd state controllers.

Disables the hard-coded state transitions to State 12 when StateType=C && Command!="holddown".

NoStunBarDisplay (nightly build only)

While asserted, disables displaying stunbars by this playerno.

NoTimeDisplay (nightly build only)

While asserted, disables displaying the fight screens [Time] elements.

While asserted, keeps the opponent from automatically turning to face the player. This includes the facep2 parameter. (nightly build only)

NoWinIconDisplay (nightly build only)

While asserted, disables displaying winicons by this playerno (the flag has to be asserted on team leader to disable winicon rendering for the teamside).

While asserted, player's inputs are not disabled post-match (RoundState>2 || RoundState=-1).

ProjTypeCollision (nightly build only)

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.

While asserted, round related lifebar actions and internal timers are frozen (allows maintaining current roundstate).

Disables intro and victory pose skipping via button press.

RunFirst (nightly build only)

While asserted, makes the player code be processed before that of any other players.

RunLast (nightly build only)

While asserted, makes the player code be processed after all other players.

SizePushOnly (nightly build only)

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 (nightly build only)

While asserted, the "fight" announcement on round start will be skipped.

SkipKoDisplay (nightly build only)

While asserted, the KO announcement on round end will be skipped.

SkipRoundDisplay (nightly build only)

While asserted, the round number announcement on round start will be skipped.

SkipWinDisplay (nightly build only)

While asserted, the winner announcement on round end will be skipped.

Value (nightly build only)

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 (nightly build only)

Works the same as Value.

Height (nightly build only)

Changes the value of the guard.dist.height parameter for the player's current HitDef.

Example:

[State Test]
type = AttackDist
trigger1 = 1
height = 160, 0

Depth (nightly build only)

Changes the value of the guard.dist.depth parameter for the player's current HitDef.

Example:

[State Test]
type = AttackDist
trigger1 = 1
depth = 10, 10

Damage (nightly build only)

Sets an attack multiplier for regular damage only.

DizzyPoints (nightly build only)

Sets an attack multiplier for dizzy points only.

GuardPoints (nightly build only)

Sets an attack multiplier for guard points only.

RedLife (nightly build only)

Sets an attack multiplier for red life only.

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 (nightly build only)

BGPalFX now also accepts ID and index parameters. This allows it to apply PalFX to specific BG elements of the stage.

The ID of the stage BG element to affect. Defaults to -1 (any).

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

PosZ (nightly build only)

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 (nightly build only)

The index of the target to bind to. Defaults to 0 (first one).

ElemTime (nightly build only)

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 (nightly build only)

This parameter lets a character use the specified animation from another character. Defaults to own playerno.

SpritePlayerNo (nightly build only)

This parameter lets a character use the specified sprites from another character. Defaults to own playerno.

This parameter lets a character use the specified animation from another character, including their sprites.

ChangeAnim2 Parameters (nightly build only)

ElemTime (nightly build only)

See ChangeAnim.

This parameter lets a character use the specified animation from another character, but maintaining their own sprites.

Continue (nightly build only)

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.

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.

Characters with ikemenversion will have DefenceMulSet work correctly and more intuitively by default. See MulType and OnHit.

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 = 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

decay = exponent (float)

Applies an exponential decay to the shake amplitude over time, making it fade out automatically.

  • decay = 0: no fading
  • 0 < decay < 1: fades slow, then fast
  • decay = 1: fades linearly
  • decay > 1: fades fast, then slow

Example:

[State Shake]
type = envshake
trigger1 = !time
time = 30
ampl = 10
freq = 90
decay = 1.5

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 = angle (int)

Increases the shaking angle by the specified value each frame. Allows the effect to appear more exaggerated and erratic.

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.

AfterImage (nightly build only)

Explods now support AfterImage parameters (e.g. afterimage.time, afterimage.length, afterimage.trans). Usage is identical to Projectile's AfterImage.

animelem = elem_no (int)

Sets the element where the explod's animation should start. Defaults to 1.

AnimPlayerNo (nightly build only)

animplayerno = playerno (int)

This parameter lets a explod use the specified animation from another character. Defaults to own playerno.

HideWithBars (nightly build only)

hidewithbars = bvalue (boolean int)

This parameter hides the explod automatically when the fight screen is hidden. Defaults to 0.

SpritePlayerNo (nightly build only)

spriteplayerno = playerno (int)

This parameter lets a explod use the specified sprites from another character. Defaults to own playerno.

AnimElemTime (nightly build only)

animelemtime = time (int)

Sets the time at which the explod's animation element should start. Defaults to 0.

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

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.

Applies friction to explod on the defined axis (Friction value example: 0.95).

Friction = friction_x, friction_y, friction_z (float, float, float)

Interpolation (nightly build only)

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 (nightly build only)

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.

Apply palette effects on explods. The parameters are the same as in the HitDef controller. Requires ownpal to be a nonzero value.

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.

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.

If set to 1, the Explod will be removed if the character changes state. Defaults to 0.

syncid (nightly build only)

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 (nightly build only)

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 (nightly build only)

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.

If set to 1 and the explod is on layer 0, it will always be drawn behind lifebars and character shadows.

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 (nightly build only)

xshear = xshear (float)

Specifies the amount of horizontal shearing to apply to the explod. Defaults to 0.

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_value (int)

Sets the frequency for the low frequency (left) rumble motor. Defaults to 0.

hi = hi_value (int)

Sets the frequency for the high frequency (right) rumble motor. Defaults to 0.

ClsnProxy (nightly build only)

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.

If set to 1, the parent map is inherited by helper. Defaults to 0.

If set to 1, the helper's life can't be reduced to 0. Defaults to 0.

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.

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.

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

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 (nightly build only)

A helper's maps can be set immediately upon its creation via map.<mapname> syntax.

helper{...; map.speed: 8; map.angle: 45}

OwnClsnScale (nightly build only)

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 (nightly build only)

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.

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.

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

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.

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. (nightly build only)

New syntax (nightly build only)

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 (nightly build only)

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 (nightly build only)

playerno = player_number (int)

Using this parameter limits vulnerability to a specific player number.

PlayerID (nightly build only)

playerid = player_id (int)

Using this parameter limits vulnerability to a specific player ID.

air.juggle (changed) (nightly build only)

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) (nightly build only)

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) (nightly build only)

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 (nightly build only)

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 = 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 (Nightly build only)

down.recover = recover_flag (bool)

This parameter controls the enemy's ability to use "fast recovery from lie down" after being hit.

down.recovertime (Nightly build only)

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) (nightly build only)

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 (float)

For every envshake cycle, the envshake.ampl is multiplied by this value. Defaults to 1.

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 (float)

For every fall.envshake cycle, the fall.envshake.ampl is multiplied by this value. Defaults to 1.

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 (nightly build only)

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 (nightly build only)

forcecrouch = bvalue (boolean int)

Forces a standing opponent to crouch upon hit. Similar to ForceStand. Defaults to 0.

guard.hittime (nightly build only)

If the character has ikemenversion, this value now defaults to ground.hittime as documented, as opposed to ground.slidetime.

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) (nightly build only)

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) (nightly build only)

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 (nightly build only)

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 (nightly build only)

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) (nightly build only)

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 = angle_value (float)

Specifies the guard spark rotation directly from a Hitdef. Defaults to 0.

guard.sparkscale (nightly build only)

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 (nightly build only)

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 (nightly build only)

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 = 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 = 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 (nightly build only)

ignorereversaldef = value (bool)

If set to 1, this HitDef will ignore any active ReversalDef on the opponent, hitting them normally. Defaults to 0.

keepstate (nightly build only)

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) (nightly build only)

This parameter now takes a third value. It specifies the Z maxdist.

mindist (changed) (nightly build only)

This parameter now takes a third value. It specifies the Z mindist.

missonoverride (nightly build only)

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) (nightly build only)

This parameter now accepts up to 8 values, up from 2.

p1sprpriority (nightly build only)

In Mugen, the default value for this parameter was not intuitive and often became a problem. In Ikemen, it defaults to no change.

p2clsncheck (nightly build only)

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 (nightly build only)

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.

p2sprpriority (nightly build only)

See p1sprpriority.

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 = p1_value, p2_value (float)

Specifies the score value added to P1 and P2 score count.

snap (nightly build only)

This parameter now actually uses the third value. It specifies the P2 Pos Z. snap takes 4 arguments the 4th one being snaptime.

sparkangle = angle_value (float)

Specifies the hitspark rotation directly from a Hitdef. Defaults to 0.

sparkscale (nightly build only)

sparkscale = x_scale, y_scale (float, float)

Specifies the hit spark's scale directly from a Hitdef. Defaults to 1, 1 (no change).

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. (nightlly build only)

unhittabletime (nightly build only)

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 (nightly build only)

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 (nightly build only)

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.

forceguard (nightly build only)

forceguard = value (bool)

If set to 1, a successful override will be considered a guarded attack.

guardflag (nightly build only)

guardflag = hit_flags (string)

Only hits containing the specified flags in their guardflag will be overridden.

guardflag.not (nightly build only)

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 (nightly build only)

keepstate = value (bool)

If set to 1, the character will override a hit without changing states at all.

Z (nightly build only)

z = z_flag (int)

A nonzero flag means to change that z-component of the player's velocity to the gethit velocity.

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. (nightly build only)

Modifies the anim parameter of an existing Explod. Requires ikemenversion.

animelem (nightly build only)

Modifies the animelem parameter of an existing Explod.

animelemtime (nightly build only)

Modifies the animelemtime parameter of an existing Explod.

Modifies the ignorehitpause parameter of an existing Explod. Requires ikemenversion.

Modifies the space parameter of an existing Explod. Requires ikemenversion.

Modifies the under parameter of an existing Explod.

See HitBy.

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 (nightly build only)

hue = value (int)

This affects the hue level of the palette. Avaiable range is -256 to 256.

sinmul = ampl_r, ampl_g, ampl_b, period (int)

Similliar to "sinadd" parameter but instead it creates effect related to "mul" parameter.

sincolor= ampl, period (int)

Similliar to "sinadd" parameter but instead it creates effect related to "color" parameter.

sinhue (nightly build only)

sinhue= ampl, period (int)

Similliar to "sinadd" parameter but instead it creates effect related to "hue" parameter.

Priority (nightly build only)

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 (nightly build only)

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)

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 (nightly build only)

loopstart = loop_start_sample (int)

Sets the sample to begin looping from.

LoopEnd (nightly build only)

loopend = loop_end_sample (int)

Sets the sample to end looping at.

StartPosition (nightly build only)

startposition = start_sample (int)

Sets the sample to begin playing from.

LoopCount (nightly build only)

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 (nightly build only)

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 (nightly build only)

stoponchangestate = stop (bool)

This parameter makes the sound be interrupted if the player changes states.

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.

Specifies the angle to rotate the Projectile animation.

Specifies the Xangle of the Projectile animation.

Specifies the Yangle of the Projectile animation.

ProjClsnAngle (nightly build only)

Defines the angle for the projectile's collision boxes. In degrees.

ProjClsnScale (nightly build only)

Defines the collision box scale for the projectile.

ProjDepthBound (nightly build only)

Like projedgebound but for the Z space. Determines how far out of the Z boundaries the projectile can travel before being removed.

ProjLayerNo (nightly build only)

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 (nightly build only)

Focal Length of the projection. Does nothing when projection is not perspective or perspective2.

ProjProjection (nightly build only)

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.

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 (nightly build only)

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 (nightly build only)

Specifies the amount of horizontal shearing to apply to the projectile. Defaults to 0.

ReversalDef can also use the new HitDef parameters. In addition it has the following exclusive parameters.

reversal.guardflag (nightly build only)

reversal.guardflag = hit_flags (string)

Only hits containing the specified flags in their guardflag will be countered.

reversal.guardflag.not (nightly build only)

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

Lets a character bypass leftbound and rightbound from stage.

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.

LayerNo (nightly build only)

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

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.

Brightness (nightly build only)

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).

Index (nightly build only)

The index of the target to be affected. Defaults to -1 (all).

Pos (changed) (nightly build only)

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.

Index (nightly build only)

The index of the target to be affected. Defaults to -1 (all).

If set to 1, enables life to dizzy points conversion support using Default.LifeToDizzyPointsMul / Super.LifeToDizzyPointsMul const. Defaults to 1.

Index (nightly build only)

The index of the target to be affected. Defaults to -1 (all).

Index (nightly build only)

The index of the target to be affected. Defaults to -1 (all).

Index (nightly build only)

The index of the target to be affected. Defaults to -1 (all).

Index (nightly build only)

The index of the target to be affected. Defaults to -1 (all).

Z (nightly build only)

z = z_value (float)

Specifies the value to add to the target's z-velocity.

Index (nightly build only)

The index of the target to be affected. Defaults to -1 (all).

Z (nightly build only)

z = z_value (float)

Specifies the value to set the target's z-velocity to.

Zoom was a beta feature in Mugen 1.1. It is a fully functional state controller in Ikemen GO.

If set to 1, the zoom position is restricted to the current camera position. Defaults to 1.

EndLag (nightly build only)

Like the lag parameter, but it applies after the Zoom effect ends.

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. Defaults to 0, which makes the camera snap instantly.

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.

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.

If set to 1, the zoom position is restricted to the stage boundaries. Defaults to 1.

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.

⚠️ **GitHub.com Fallback** ⚠️