Build a fighter from scratch or from a sprite sheet, give it animations and moves, test it against the AI, and publish it for everyone to play. The maker exports real MUGEN-format files (SFF, AIR, CNS, CMD, SND), so what you build runs on the actual fighting engine.
You must be logged in to use the Character Maker. This guide is long on purpose β skim the table of contents and jump to what you need.
A MUGEN-style fighter is four things working together. The maker hides most of the file-format detail, but understanding the pieces makes everything click:
group = which animation, image = which frame.The key mental model: an attack is an Action number that is BOTH an animation and a state. You draw/import the animation under, say, action 200; you add a move whose Anim/state # is 200 and whose Input is the button that triggers it. Press the button β the engine changes to state 200 β it plays animation 200 and applies the hit.
The maker is three columns with a test area underneath.
The full fight area: a roster, library pickers, stage, P1/P2 controls, the fight canvas, and FIGHT β so you can build and test in one place.
The engine triggers specific action numbers for built-in behavior. Number your animations to match so your fighter behaves correctly. Action 0 is required β it's the resting/idle animation; without it the fighter won't show.
| Action # | Used for | Notes |
|---|---|---|
| 0 | Stand / idle | Required. Played whenever the fighter is at rest. |
| 10β12 | Crouch (down, hold, up) | Played while holding Down. |
| 20 | Walk forward | 21 = walk back. |
| 40 | Jump (up) | 41/42 = jump fwd/back; 43β47 = land/air-transitions. |
| 100 | Run / dash forward | 105 = hop back. |
| 120β155 | Guard (stand/crouch/air) | Played while blocking. |
| 200 | Stand light attack | The default punch move points here. |
| 210 / 230 / 240 | Strong punch / light kick / strong kick | Add more attacks on these. |
| 5000β5080 | Get-hit / hurt / knockdown | 5000 = light stand hit; great to have at least one. |
| 190 | Round intro pose | Plays once at round start, then returns to idle. |
| 180 | Win pose | Plays on victory. |
You can use any number for custom moves (e.g. 1000, 1010) and point a move's Anim/state # at it. The numbers above are the ones the engine looks for on its own.
Click πΌ Import sprite sheetβ¦. A sprite sheet is one image holding many small poses. The importer turns regions of it into animation frames, one move at a time.
Frames cells in a row, each Cell W apart. Best when the sprites are evenly spaced.| Control | What it does |
|---|---|
| Col offset (x) / Row (y) | Top-left corner of the first cell, in sheet pixels. |
| Cell W / Cell H | Size of one sprite cell. Height becomes the canvas height on the first import; width is preserved per-frame by aspect. |
| Frames | How many cells across "Import row" grabs. |
| Action # | Which animation the imported frames go into. |
| Colors | Max palette size (e.g. 32). More colors = closer to the source, bigger palette. |
| BG tolerance | How aggressively near-background pixels are made transparent. Raise this for JPGs whose "white" isn't pure white (kills speckles). |
You can build or touch up any frame by hand.
Click a swatch to paint with it. Slot 0 = transparent (the "erase" color). To recolor a swatch, pick a color in the color box and press SET SLOT.
The slider ghosts the previous frame underneath the current one so you can line up motion. Set it to 0 to turn it off.
Each frame has its own width (px) field. If a wide pose (an extended punch, a projectile) is being clipped, increase that frame's width. The height stays uniform across the character.
Mirror the current frame horizontally or vertically β handy for reusing a pose facing the other way, or flipping a knockdown.
The gold crosshair is the axis (the fighter's feet center / origin). Keep the feet near the bottom of the canvas and centered on the vertical axis line so the fighter stands correctly and lines up with the floor and the opponent.
-1 means hold forever (good for the last frame of a non-looping pose).Collision boxes decide what connects. Under the editor, toggle draw Clsn2 (hurt) or draw Clsn1 (attack), then drag on the canvas to add a box; click an existing box to delete it.
| Box | Color | Meaning |
|---|---|---|
| Clsn2 | Blue | Hurtbox / body β where this fighter can be hit. Put one on (almost) every frame, covering the body. |
| Clsn1 | Red | Attack box β where this fighter hits the opponent. Put one only on the active frames of an attack (the frames where the fist/foot/projectile is out). |
The rule: an attack lands only when the attacker's current frame has a red Clsn1 that overlaps a frame of the opponent that has a blue Clsn2. If your attacks pass through the enemy, you're missing a red box on the active frame (or the enemy is missing body boxes).
In π₯ Moves, each card maps an input to an attack. + MOVE adds another.
| Field | What it means |
|---|---|
| Command | A name for the move (e.g. punch, fireball). Just a label. |
| Input | The button or motion that triggers it (section 9). |
| Anim/state # | The action number the move plays. This is the one field that ties the move to its animation/attack (e.g. 200). |
| Type | normal, projectile, or throw (below). |
| Damage | Life removed on a clean hit. |
| Knockback | How far the opponent is pushed/launched. |
| Hit-stun | How long the opponent is stunned after being hit (in ticks). |
| Sound | Optional voice/SFX played when the move fires (section 10). |
punch, Input x, Anim/state # 200. Import or draw an animation as action 200 and that move works immediately.Inputs are written the way fighting games do, relative to the way your fighter faces:
| Token | Means |
|---|---|
F / B | Forward (toward opponent) / Back (away) |
U / D | Up / Down |
DF DB UF UB | The four diagonals |
a b c x y z | The six attack buttons |
~ | Release (e.g. ~D = release Down β used in charge moves) |
/ | Hold |
| commas | Separate steps of a motion, in order |
Examples:
x β just press the x button (a light attack).~D, DF, F, x β quarter-circle-forward + x (a classic fireball motion).~B, F, x β a "charge back, forward + x" special.F, F β double-tap forward (a dash).So you know which real keys press which buttons:
| Move | Jump | a b c x y z | Start/Pause | |
|---|---|---|---|---|
| Player 1 | WASD | W | FGHVBN | R |
| Player 2 | Arrow keys | β | Numpad 456123 | Numpad Enter |
| Gamepad | D-pad / left stick | β | Face + shoulder buttons (standard layout) | Start |
So a move with Input x is pressed with the V key (Player 1). A move on y is the B key, and so on. A key only does something if a move uses that button β unmapped buttons do nothing by design.
In π Sounds, import WAV files. Each is stored at a (group, sample) address and packed into the character's .snd. Attach a sound to a move via the move's Sound dropdown (a hit voice / swing SFX), or set the intro voice that plays during the round-intro pose. Keep clips short; they play once when the move fires.
Scroll to β Test Your Fighter at the bottom of the maker:
In the β Your account panel:
| File | Contents |
|---|---|
.sff | Sprites |
.air | Animations |
.cns | State machine (states, hit data, constants) |
.cmd | Commands + the launchers that trigger moves |
.snd | Sounds |
| Symptom | Cause & fix |
|---|---|
| Fighter is invisible / T-poses / won't move | No action 0 (idle). Import or draw one and number it 0. |
| Part of a pose is cut off | That frame's width (px) is too small. Increase it, or re-import the frame with a wider box (β» Replace selected). |
| A pose looks squished/stretched | The import cell's aspect didn't match. Re-grab it with οΌ Add 1 frame using a box that matches the sprite's shape. |
| Attacks pass through the opponent | Missing a red Clsn1 box on the attack's active frame, or the opponent has no blue Clsn2 body box. |
| The attack hits too early or too late | The red box is on a startup/recovery frame. Put it only on the strike frame(s). |
| A button does nothing | No move uses that button. Map a move's Input to it (remember x = the V key for P1). |
| White speckles around imported sprites | Raise BG tolerance in the importer (especially for JPGs). PNGs with real transparency are cleanest. |
| Sounds didn't carry after publishing | Community publish ships the fighter's logic + sprites; use Save to account to preserve a project with its imported sounds. |
| Action | An animation, identified by a number. Also doubles as the state number for moves. |
| Axis / origin | The reference point of a sprite β the fighter's feet center. |
| Clsn1 / Clsn2 | Collision boxes: attack (red) / hurt-body (blue). |
| Tick | One engine step, β 1/60 of a second. Frame times and stun are measured in ticks. |
| State | A mode the fighter is in (idle, walking, attacking). Moves are states you switch into. |
| ctrl | Whether the player has control. You can only start a move when you have control β that's why you can't cancel mid-attack. |
| Hitstun | The time the victim can't act after being hit. |
| SFF / AIR / CNS / CMD / SND | The five MUGEN files: sprites / animations / states / commands / sounds. |
punch / x / 200 (or edit it); set Damage/Knockback/Hit-stun to taste.That's everything. Build something ridiculous β and remember, the house keeps the bugs.