A complete free course for creating original MUGEN characters and custom stages. Draw sprites, write code, build a stage, design sound effects, customise screen packs, and put it all into a playable fighting game.
Start here if you're new to MUGEN. This section covers everything from drawing your first sprites to getting your character onto the select screen.
MUGEN is a free, customisable 2D fighting game engine created by Elecbyte. It lets you build your own roster of fighters, stages, and screen packs all from scratch or downloaded from the community.
The two most common versions are MUGEN 1.0 and MUGEN 1.1. Make sure your content matches your engine version.
What you'll need to get started:
Sprites are the individual images that make up your character's animations. Before touching any MUGEN tools, you need to draw them.
Sprite rules:
idle_01.png, walk_01.png, punch_01.pngMinimum sprite set to get started:
| Animation | Frames | Group |
|---|---|---|
| Idle stance | 4–6 frames | 0 |
| Walk forward | 6–8 frames | 20 |
| Jump | 3–5 frames | 40 |
| Light punch | 3–5 frames | 200 |
| Light kick | 3–5 frames | 400 |
| Getting hit | 2–3 frames | 5000 |
| Portrait | 1 frame | 9000 |
The .SFF (Sprite File Format) bundles all your character's images into one file that MUGEN can read. Each sprite is stored with a Group number and an Image number.
yourcharacter.sffEvery MUGEN character is a folder containing six files. Here's your mychar.def template the master config that links everything together:
; mychar.def edit names to match your character [Info] name = "My Character" displayname = "My Character" author = "Your Name" pal.defaults = 1 [Files] sprite = mychar.sff anim = mychar.air cmd = mychar.cmd cns = mychar.cns stcommon = common1.cns sound =
stcommon = common1.cns points to MUGEN's built-in states file. Don't create it it already exists inside MUGEN's data folder.Your complete character folder structure:
MUGEN/chars/mychar/mychar.defMUGEN/chars/MUGEN/data/select.def in a text editor[Characters] section and add your folder name on a new line: mycharselect.def and launch mugen.exeCommon issues:
| Problem | Fix |
|---|---|
| Not on select screen | Check select.def folder name must match exactly (case-sensitive) |
| Character invisible | .AIR has wrong Group/Image numbers check against .SFF |
| Character frozen | Action 0 (idle) is missing or has wrong sprite numbers |
| Floats/sinks | Axis points wrong re-align in Fighter Factory 3 |
| MUGEN crashes | Missing file in .DEF or typo in .CNS/.CMD check the error log |
Fighter Factory 3 is the essential MUGEN tool. This section walks through every major section sprites, animations, collision boxes, sounds, and code.
Fighter Factory 3 (FF3) is a free, all-in-one editor for MUGEN content. It replaces multiple separate tools with a single visual interface the go-to standard for the MUGEN community.
Download: Go to virtualltek.com and download FF3 (3.0.1) or FF Studio for your OS. No installer needed just extract and run FighterFactory.exe.
mychar.sffThe Animations editor is where you build your .AIR file sequences of sprites that play as actions. Each animation is an "Action" with a number.
; .AIR format (you can also edit this as text) [Begin Action 0] ; idle animation 0,0, 0,0, 7 ; Group,Image, X,Y, Duration 0,1, 0,0, 7 0,2, 0,0, 7 0,3, 0,0, 7 ; loops back to start
Collision boxes define where your character can be hit (Clsn2) and where their attacks deal damage (Clsn1).
The Sounds editor builds your .SND file. Each sound gets a Group and Sound number, just like sprites.
mychar.snd| Group | Type |
|---|---|
| 0, X | Punch & kick impacts |
| 1, X | Character voice lines / grunts |
| 2, X | Special move effects |
| 3, X | Super move effects |
| 10, X | Win / loss quotes |
FF3's built-in code editors handle .DEF, .CMD, and .CNS files with syntax highlighting, auto-complete, and error checking.
; .CNS snippet light punch state [Statedef 200] type = S movetype = A anim = 200 ctrl = 0 [State 200, HitDef] type = HitDef trigger1 = AnimElem = 2 damage = 20, 0 hitsound = 5, 0 [State 200, End] type = ChangeState trigger1 = AnimTime = 0 value = 0 ctrl = 1
To test directly from FF3: set your MUGEN path in Options, then click Run in M.U.G.E.N. no manual file copying needed.
Learn to build a multi-layer parallax stage with animated torches. A complete walkthrough using the Dungeon Arena as the example project template .DEF file included to download.
A MUGEN stage is a stack of background images (layers) that scroll at different speeds as the camera moves. Far layers move slowly, close layers move fast this is called parallax scrolling and it makes a flat 2D stage feel three-dimensional.
Each layer has a delta value that controls its scroll speed relative to the camera.
Files you need:
The Dungeon Arena uses 5 layers at different depths. Each layer has a delta value lower = further away, higher = closer.
The stage .DEF defines every layer, the camera bounds, and player start positions. Here's the Dungeon Arena floor layer as an example:
[BGdef] spr = dungeon.sff [BG ArenaFloor] type = normal spriteno = 3, 0 ; Group 3, Image 0 layerno = 0 start = 0, 185 delta = 1, 1 ; matches camera exactly tile = 1, 0 ; tile horizontally tilespacing = 0, 0 mask = 0 [BG DeepWall] type = normal spriteno = 0, 0 start = 0, 0 delta = 0.1, 0.1 ; barely moves feels far away tile = 1, 0
dungeon.def template below it has all 5 layers, camera settings, and player positions ready to use.Use type = anim instead of type = normal to make a layer play a looping animation. Perfect for flickering torches, dripping water, or lava bubbles.
; Define the animation in your stage .DEF [Begin Action 10] 10,0, 0,0, 6 ; bright frame 10,1, 0,0, 4 ; dim frame 10,2, 0,0, 6 ; bright again 10,1, 0,0, 3 ; dim — loops ; Then reference it as a background layer [BG TorchFlicker] type = anim actionno = 10 start = -80, 50 delta = 0.7, 0.7 mask = 1
Animation ideas for the dungeon:
| Effect | Frames | Difficulty |
|---|---|---|
| Flickering torches | 3–4 alternating brightness | Easy |
| Lava glow pulse | 2–3 fading orange | Easy |
| Swaying chains | 4–6 subtle swing | Medium |
| Dripping water | 5–8 droplet frames | Medium |
| Floating dust | 6–10 drifting particles | Hard |
MUGEN/stages/dungeon/ and place dungeon.def and dungeon.sff insideMUGEN/data/select.def and find [ExtraStages]stages/dungeon/dungeon.defmugen.exe — your stage appears in VS mode stage selectTroubleshooting:
| Problem | Fix |
|---|---|
| Black screen | Check dungeon.sff exists and spr= path in [BGdef] is correct |
| No parallax | Check each [BG] has different delta values |
| Coloured blocks | Set mask = 1 on transparent layers, or use SFF v2 with PNG alpha |
| Fighters float | Adjust start Y on your floor layer or tweak [PlayerInfo] p1starty |
| Anim not playing | Check type = anim and actionno matches your [Begin Action N] |
Screen packs control everything you see outside the fight title screens, character select grids, life bars, and menus. Learn how to install, edit, and personalise them.
A screen pack controls everything you see in MUGEN that isn't the actual fight the title screen, character select grid, VS screen, life bars, combo counter, win screen, and all the menus.
It's defined in system.def and uses its own .SFF for graphics and .SND for menu sounds.
The four main screens:
fight.def)All screen pack files live in MUGEN/data/. Here's what each one controls:
| File | Controls |
|---|---|
| system.def | Title screen, select screen, VS screen, options menu layout |
| system.sff | All graphics for the above screens |
| system.snd | Menu sounds (cursor move, select, cancel) |
| fight.def | Life bars, power bars, combo counter, round display, timer |
| fight.sff | Graphics for all fight HUD elements |
| fight.snd | Fight sounds (round call, KO, time over) |
mugen.cfg controls which screen pack is loaded via the motif = data/system.def line. Some packs use a subfolder.MUGEN/data/ folder somewhere safeMUGEN/data/, replacing the existing onesmugen.cfg make sure motif = data/system.def points to the right placedata/ somewhere safe.Open system.def in a text editor to customise the title and select screens.
[Title Info] menu.pos = 159, 158 ; menu X,Y position menu.item.font = 3,0,0 ; normal menu font menu.item.active.font = 3,5,0 ; highlighted font menu.itemname.arcade = "ARCADE" menu.itemname.versus = "VS MODE" [Select Info] columns = 5 ; grid columns rows = 2 ; grid rows cell.size = 27, 27 ; portrait cell pixels cell.spacing = 2
Things to try:
system.sff in Fighter Factory 3 and replacing sprites[TitleBGdef] it works exactly like a stage with layers and delta values. You already know how to build those!The fight HUD is controlled by fight.def — a separate file from the menu screens.
| Section | Controls |
|---|---|
| [Lifebar] | Health bars position, size, colours, name display |
| [Powerbar] | Super meter fill animation, level count (Lv1–3) |
| [Round] | "Round 1 FIGHT!" text, timing, animations |
| [Combo] | Hit combo counter position, font, display time |
| [WinIcon] | Round win markers under the health bar |
Best practices:
.fnt files the Font Factory tool lets you create them from any TrueType fontA hands-on workshop using free tools. Record, edit, and add sound effects to your character impacts, voice lines, and move effects.
A fighting game without sound feels lifeless. Think about the crack of a fireball, the thud of a heavy kick, a character shouting their attack name those sounds are 50% of the impact.
The three categories you need:
audacityteam.orgSound checklist create at least one WAV for each:
| Category | Sounds to Make | Group |
|---|---|---|
| Impacts | Light hit, heavy hit, block sound | 0 |
| Voice | Attack grunt, heavy shout, "oof" on hit, win celebration | 1 |
| Effects | Punch whoosh, kick whoosh, special charge, super impact | 2–3 |
mychar.sndsound = mychar.sndSounds don't play automatically — you need a PlaySnd controller inside your attack states in the .CNS file.
; Play a grunt when the punch starts [State 200, Attack Grunt] type = PlaySnd trigger1 = AnimElem = 1 ; frame 1 = wind-up value = 1, 0 ; Group 1, Sound 0 ; Play impact when fist connects [State 200, Hit Sound] type = PlaySnd trigger1 = AnimElem = 2 ; frame 2 = hit frame value = 0, 0 ; Group 0, Sound 0 channel = 1 ; separate audio channel
channel numbers so sounds play simultaneously (grunt + impact together). Same channel = previous sound stops.Workshop activity (30 minutes):
Guides, cheat sheets, project briefs, a quiz, screen pack & sound design workshops, and the Dungeon Arena .DEF template. All free no sign-up needed.
dungeon.def 5 parallax layers, camera settings, player positions, and animated torch definition. Ready to use immediately.