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.

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

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

AssertSpecial now allows setting 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 (nightly build only)

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

GlobalNoKo

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

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"

NoCrouch

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

NoDizzyPointsDamage

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

NoFaceDisplay (nightly build only)

While asserted, disables displaying the face icon by this playerno.

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

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

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

NoKoVelocity

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

NoLifeBarDisplay (nightly build only)

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

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

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

NoStand

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.

NoTurnTarget

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

PostRoundInput

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.

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

AttackDist Parameters

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

AttackMulSet Parameters

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.

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

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

ChangeAnim Parameters

ReadPlayerID

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

ChangeAnim2 Parameters (nightly build only)

ReadPlayerID

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

ChangeState parameters

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.

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

Mul

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.

Explod parameters

AnimElem

animelem = elem_no (int)

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

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

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, focallenght

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.

FocalLenght = value(float)

Interpolation between FocalLenght and Interpolation.FocalLenght.

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.

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.

RemoveOnChangeState

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

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

xshear = xshear (float)

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

Helper parameters

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.

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.

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.

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

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. (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
value = S, AA
time = 1
stack = 1

[State -2, Test]
type = hitby
trigger1 = 1
value2 = A, AP
time = 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.

HitDef parameters

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

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

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

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

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

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

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.

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.

snap (changed) (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.

nochainID (changed) (nightly build only)

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

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.

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.

sparkangle

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

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

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.

HitOverride parameters

KeepState (nightly build only)

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

HitVelSet parameters

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.

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

anim

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

animelem (nightly build only)

Modifies the animelem parameter of an existing Explod.

ignorehitpause

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

space

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

under

Modifies the under parameter of an existing Explod.

NotHitBy

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

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

sinhue= ampl, period (int)

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

PlayerPush (nightly build only)

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.

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

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.

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.

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.

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

TargetBind parameters

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.

TargetFacing parameters

Index (nightly build only)

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

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

TargetPowerAdd parameters

Index (nightly build only)

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

TargetState parameters

Index (nightly build only)

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

TargetVelAdd parameters

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.

TargetVelSet parameters

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

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. Defaults to 0 (camera snaps instantly)

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 value by which to zoom in. A value of 1.0 or greater is required. A value of 2 will double the scale of all 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.