Character features - ikemen-engine/Ikemen-GO GitHub Wiki

Character files have the following new features.

Commands

The character's Command file (referenced to as cmd in the character's DEF file) has the following new features.

L and R inputs (nightly build only)

In addition to B and F, characters can now use L (left) and R (right) absolute directions when defining commands.

Example:

[Command]
name = "QCR_x"
command = ~D, DR, R, x

Constants

The character's Constants file (referenced to as cns in the character's DEF file) has the following new features.

[Constants]

Defining a [Constants] group in the character's cns file allows you to set an unlimited amount of your own custom float type constants. These can be returned by the Const trigger like any other constant.
A character's constants will overwrite the default constants assigned via the data/common.const file.
Constant names should not contain spaces or brackets.

[Constants]
Default.Attack.LifeToPowerMul = 0.7
Default.GetHit.LifeToPowerMul = 0.6
Super.TargetDefenceMul = 1.5
Default.LifeToGuardPointsMul = -1.5
Default.LifeToDizzyPointsMul = 0
Default.LifeToRedLifeMul = 0.25
Default.IgnoreDefeatedEnemies = 1
Input.PauseOnHitPause = 1

[Data]

The [Data] constants group accepts the following new constants.

dizzypoints

Amount of Dizzy Points to start with (defaults to same as life)

guardpoints

Amount of Guard Points to start with (defaults to same as life)

guardsound.channel

The default channel for guardsounds. Defaults to -1, meaning the sound will play on any free channel.

hitsound.channel

The default channel for hitsounds. Defaults to -1, meaning the sound will play on any free channel.

[Size]

The [Size] constants group accepts the following new constants.

attack.dist.width (nightly build only)

Sets the default attack distance that can trigger an enemy's proximity guard in the x-axis. Takes two parameters: front and back.
The back distance allow a player to attack from behind the enemy and still trigger proximity guard.

attack.dist.height (nightly build only)

Sets the default attack distance that can trigger an enemy's proximity guard in the y-axis. Takes two parameters: top and bottom.

attack.dist.depth (nightly build only)

Sets the default attack distance that can trigger an enemy's proximity guard in the z-axis. Takes two parameters: top and bottom.

height.crouch (nightly build only)

Sets the character's height value while crouching.

height.air (nightly build only)

Sets the character's height value while in the air. Takes two parameters: topand bottom.

height.down (nightly build only)

Sets the character's height value while lying down.

proj.attack.dist.width (nightly build only)

Sets the default projectile distance that can trigger an enemy's proximity guard in the x-axis. Takes two parameters: front and back.
The back distance allow a player's projectile to be behind the enemy and still allow them to enter proximity guard.

proj.attack.dist.height (nightly build only)

Sets the default projectile distance that can trigger an enemy's proximity guard in the y-axis. Takes two parameters: topand bottom.

proj.attack.dist.depth (nightly build only)

Sets the default projectile distance that can trigger an enemy's proximity guard in the z-axis. Takes two parameters: topand bottom.

pushfactor (nightly build only)

The push factor constant determines how smoothly a player size box overlap is resolved. Lower values will make players push "out of" each other more gradually. Defaults to 1.0.

weight (nightly build only)

The weight constant is factored into how much characters can push each other. If two players push each other with the same velocity, the player with the higher weight constant will win the struggle proportionally. Defaults to 100.

depth (nightly build only)

Defines the player width in the Z axis. Accepts two values, for topand bottom size respectively.
This constant was named z.width in early Mugen beta versions. Ikemen GO reintroduces Z axis functionality, so this constant is brought back.
Similar to ground.front and ground.back in the X axis.

attack.depth (nightly build only)

The default Z width for every attack. In other words, the default attack.depth when a character uses a Hitdef. Accepts two values: topand bottom.
This constant was named attack.width in early Mugen beta versions. Ikemen GO reintroduces Z axis functionality, so this constant is brought back.

[Velocity]

The [Velocity] constants group accepts the following new constants.

air.gethit.ko.add

Extra velocity for a KO'd character in the air (x, y, z). Defaults to -2, -2, 0 for 240p chars (auto scaled based on localcoord, if omitted).

air.gethit.ko.ymin

Minimum y-velocity for a non-falling KO'd character in the air. Defaults to 3 for 240p chars (auto scaled based on localcoord, if omitted).

ground.gethit.ko.xmul

Multiplier for the x-velocity of a KO'd character on the ground. Defaults to 0.66 for 240p chars.

ground.gethit.ko.add

Extra velocity for a KO'd character on the ground (x, y, z). Defaults to -2.5, -2, 0 for 240p chars (auto scaled based on localcoord, if omitted).

ground.gethit.ko.ymin

Minimum y-velocity for a non-falling KO'd character on the ground. Defaults to -6 for 240p chars (auto scaled based on localcoord, if omitted).

Character Definition

The character's Definition file (the DEF file itself) supports the following new features.

[Files]

All parameters in the [Files] section of the character definition file are now optional. This update is particularly beneficial for AttachedChars that do not intend to utilize sprites, sounds or commands, but solely character state code. In such cases, they can simply declare st files and proceed accordingly without the need for additional parameters.

Font

Up to 10 fonts can be specified in the same way as in motif definition files (fight.def and system.def). These fonts can be used with the Text controller. Fonts are searched in the following order: the character's DEF file directory, the motif directory, the mugen program directory, data/, and font/. Currently, font loading for AttachedChar is not supported.

font0 = font/jg.fnt
font1 = font/num1.fnt
font2 = mssansserif-tt36.def
font2.height = 36

Movelist

The Ikemen GO Pause menu allows you to view a character's commands during the game. The command data must be assigned via the character's DEF file, under the Files section, using the new movelist file type (recommended file extension: dat).

[Files]
movelist = movelist.dat

[Info]

The information section accepts the following new parameters.

IkemenVersion

Similarly to mugenversion, ikemenversion identifies the version of Ikemen GO that the content was developed for. One of its purposes is to maintain backward compatibility with legacy content, so, in general, content without this parameter will work as it did in Mugen. To take full advantage of Ikemen GO's features one should use it, however. Defaults to 0.0.

The behavior of some triggers and state controllers will change when this parameter is defined. Refer to this wiki's respective sections to see what changes when ikemenversion is used.

LifebarName

The name of the character to be displayed on the lifebar can be specified. If no name is specified, the default name "DisplayName" will be used.

PortraitScale

This setting specifies the display magnification of the portrait, overriding the display magnification according to Localcoord.

portraitscale = 1.0

[Map]

This variant of associative array allows to link a string and a float value for each character. This can be used as a variable, as a tag, or as a flag for a specific technique. For example, a map can be set by adding the following description to the character def file:

[Map]
Ryu = 1
Streetfighter = 1
man = 1
birthyear = 1964
Japan = 1
Ansatsuken = 1

This map can be recognized by a Map trigger and its value can be modified or set by MapSet and MapAdd state controllers. Note that spaces cannot be used in map names.

[RemapPreset X]

Ikemen GO allows you to remap your character's sprites using the RemapSprite state controller. You can use the [RemapPreset X] sections, declared in your character's CNS (referenced as cns in the character's DEF file), alongside other constant groups, to prepare multiple sprite remaps in advance and use them all at once. There can be multiple [RemapPreset X] sections in the cns file; X is the name of the preset.

[RemapPreset Claw]
5000,0 = 5000,100
5071,10 = 5071,110
5071,20 = 5071,120

[RemapPreset ClawAndMask]
5000,0 = 5000,200
5071,10 = 5071,210
5071,20 = 5071,220

Character States

The character's States files (referenced to as st in the character's DEF file) have the following new features.

Negative States

In MUGEN, declaring a negative StateDef in one file prevents doing so in other files. For characters with ikemenversion, this limitation is lifted, allowing one to define the same negative state in multiple files. State controllers defined in the current StateDef will be appended to the previously defined StateDef.

Note: ZSS files and files defined under CommonStates don't require an IkemenVersion declared to work like this.

Statedef Constant

Statedef headers can now also parse constants using the Const trigger. This allows to easily change character state numbers to avoid conflicts between characters and gameplay systems.
New constant variables can be used to make your code easier to read by replacing confusing numbers (like helper ID, states etc.) with Const trigger.

[Constants]
TagInState = 5600

[StateDef const(TagInState)]
type = S

Variables (nightly build only)

The Mugen limit of 60 var, 40 fvar, 5 sysvar and 5 sysfvar has been lifted. The index will now accept any positive int32 number.
For performance reasons, VarRangeSet has been capped at setting 2500 variables per use.

trigger1 = var(12345) > 0