The system motif describes the look and feel of all menus and screens of the game. This is defined in mugen.cfg [Options] Motif setting. This file is tipically named system.def.
As in any DEF file, it follows the same INI-like structure, with some exceptions like Animations.
[Info]: Ownership, version and coordinate information.
- name: Name of motif.
- author: Motif author name.
- versiondate: Version date of motif (MM-DD-YYYY).
- mugenversion: Version of the engine this motif is compatible with. Valid options are any M.U.G.E.N version plus MUGENext's own version format: ext [VerMajor].[VerMinor].[Revision] (eg.: ext 0.1.0).
- localcoord: Local coordinate space in the form of: width, height (comma separated integer values).
[Files]: Additional files for system resources.
- spr: Filename of sprite data. See more.
- snd: Filename of sound data. See more.
- logo.storyboard: Logo Storyboard definition filename (optional).
- intro.storyboard: Intro Storyboard definition filename (optional).
- select: Character and stage selection list defintion filename. See more.
- fight: Fight definition filename.
- font1 / font2 / font3 / font4 / font5 / font6 / font7 / font8 / font9 / font10: System fonts (filenames). See more.
Directories are checked in this order:
- current directory system.def is in
- data/
- your MUGENext directory
eg.: If you write "spr = system.sff", and this system.def file is in ~/MUGENext/data/mymotif/, then the engine will first look for ~/MUGENext/data/mymotif/system.sff. If it does not find it there, it looks for ~/MUGENext/data/system.sff (the default). Finally, if that is not found, it will look for ~/MUGENext/system.sff.
[Music]: Background music settings.
- title.bgm: Music to play at title screen (BGM element).
- select.bgm: Music to play at char select screen (BGM element).
- vs.bgm: Music to play at versus screen (BGM element).
- victory.bgm: Music to play at victory screen (BGM element).
[Title Info]: Title screen definition.
- fadein.time: Duration of the fade in effect (integer value).
- fadeout.time: Duration of the fade out effect (integer value).
- menu.pos: Menu position. Format: X, Y (comma separated integer values).
- menu.item.font: Default item Font element.
- menu.item.active.font: Active item Font element.
- menu.item.spacing: Space in between items. Format: X, Y (comma separated integer values).
- menu.itemname.arcade: Arcade Menu entry name (double quoted, left empty to ommit).
- menu.itemname.versus: Versus Menu entry name (double quoted, left empty to ommit).
- menu.itemname.teamarcade: Team Arcade Menu entry name (double quoted, left empty to ommit).
- menu.itemname.teamversus: Team Versus Menu entry name (double quoted, left empty to ommit).
- menu.itemname.teamcoop: Team CoOp Menu entry name (double quoted, left empty to ommit).
- menu.itemname.survival: Survival Menu entry name (double quoted, left empty to ommit).
- menu.itemname.survivalcoop: Survival CoOp Menu entry name (double quoted, left empty to ommit).
- menu.itemname.training: Training Menu entry name (double quoted, left empty to ommit).
- menu.itemname.watch: Watch Menu entry name (double quoted, left empty to ommit).
- menu.itemname.options: Options entry name (double quoted, left empty to ommit).
- menu.itemname.exit: Exit entry name (double quoted, left empty to ommit).
- menu.window.margins.y: This parameter define the window in which the items are visible in. Format: Top, Bottom (comma separated integer values).
- menu.window.visibleitems: Number of visible items (integer value).
- menu.boxcursor.visible: Set to 0 to disable default cursor display, 1 to enable.
- menu.boxcursor.coords: Coordinates for the box cursor highlighting the current item. Format: Left, Top, Right, Bottom (comma separated integer values).
- cursor.move.snd: Sound for cursor movement. Format: groupNo, soundNo (comma separated integer values).
- cursor.done.snd: Sound for selection confirmation. Format: groupNo, soundNo (comma separated integer values).
- cancel.snd: Cursor for selection cancel. Format: groupNo, soundNo (comma separated integer values).
After these options comes the Background elements for this Menu (including its Animations).
[Select Info]: Character select screen definition. See Character Roster and Stages for details about the contents displayed in this screen.
- fadein.time: Duration of the fade in effect (integer value).
- fadeout.time: Duration of the fade out effect (integer value).
- rows: Number of rows to fill with characaters from the roster (integer value).
- columns: Number of cells per row to fill with characaters from the roster (integer value).
- wrapping: 1 to let cursor wrap around, 0 to clamp to the edges.
- pos: Position to draw to. Format: X, Y (comma separated integer values).
- showemptyboxes: 1 to show empty boxes, 0 to hide otherwise.
- moveoveremptyboxes: 1 to allow cursor to move over empty boxes, 0 to jump over them.
- cell.size: Size of each cell (in pixels). Format: X, Y (comma separated integer values).
- cell.spacing: Space between each cell (in pixels). Format: X, Y (comma separated integer values).
- cell.bg: Graphic element for the background of each cell.
- cell.random: Icon for random select (Graphic element).
- cell.random.switchtime: Time to wait before changing to another random portrait (integer value).
- random.move.snd.cancel: 1 to have random move sound cancel itself when played repeatedly, 0 otherwise.
- cancel.snd: Sound for exiting this screen. Format: groupNo, soundNo (comma separated integer values).
- portrait: Graphic element for the character small portraits in cells.
- title.font: Font element of title (-1 for none).
- title.offset: Position of title (Arcade Mode, etc). Format: X, Y (comma separated integer values).
- stage.pos: Position of the Stage name. Format: X, Y (comma separated integer values).
- stage.active.font: Primary Font element of the Stage name.
- stage.active2.font: Second Font element color for blinking of Stage name.
- stage.done.font: Font element for the Stage name when the selection is done.
- stage.done.snd: Sound to be played when the Stage selection is done. Format: groupNo, soundNo (comma separated integer values).
- stage.move.snd: Sound to be played while switching between Stages in the list. Format: groupNo, soundNo (comma separated integer values).
- teammenu.move.wrapping: 1 to let cursor wrap around in Team Menu, 0 to clamp to the edges.
- p[N].teammenu.pos: Team Menu position. Format: X, Y (comma separated integer values).
- p[N].teammenu.bg: Graphic element for the background.
- p[N].teammenu.selftitle: Select team mode title Graphic element.
- p[N].teammenu.enemytitle: Opponent team mode title Graphic element.
- p[N].teammenu.move.snd: Sound to be played while switching between team modes. Format: groupNo, soundNo (comma separated integer values).
- p[N].teammenu.value.snd: Sound to be played while switching between values. Format: groupNo, soundNo (comma separated integer values).
- p[N].teammenu.done.snd: Sound to be played when the team mode setup is confirmed. Format: groupNo, soundNo (comma separated integer values).
- p[N].teammenu.item.offset: Team Menu item offset. Format: X, Y (comma separated integer values).
- p[N].teammenu.item.spacing: Space between items. Format: X, Y (comma separated integer values).
- p[N].teammenu.item.font: Font element for the items.
- p[N].teammenu.item.active.font: Primary Font element for the active item.
- p[N].teammenu.item.active2.font: Second Font element for item blinking
- p[N].teammenu.item.cursor: Graphic element for the item cursor.
- p[N].teammenu.value.icon: Graphic element for the values.
- p[N].teammenu.value.empty.icon: Graphic element for an empty value.
- p[N].teammenu.value.spacing: Spacing between values. Format: X, Y (comma separated integer values).
- p[N].cursor.startcell: Starting cell for Player 1. Format: X, Y (comma separated integer values).
- p[N].cursor.active: Graphic element for the cell while active.
- p[N].cursor.done: Graphic element for the cell when the selection has been confirmed.
- p[N].cursor.move.snd: Sound for cursor movement. Format: groupNo, soundNo (comma separated integer values).
- p[N].cursor.done.snd: Sound for selection confirmation. Format: groupNo, soundNo (comma separated integer values).
- p[N].random.move.snd: Sound for movement of the random selection cursor. Format: groupNo, soundNo (comma separated integer values).
- p[N].face: Graphic element for the Player 1 big portrait.
- p[N].name.font: Font element for the Character's name. Set to -1 for no display.
- p[N].name.offset: Position to put name. Format: X, Y (comma separated integer values).
- p[N].name.spacing: Spacing between names (for non-single game modes). Format: X, Y (comma separated integer values).
[N] is 1 for Player 1, 2 for Player 2.
After these options comes the Background elements for this Menu (including its Animations).
[VS Screen]: Versus screen definition.
- time: Time to show screen (integer value).
- bg.stop.time: Time to stop updating the Background elements (to keep the user on the versus screen while preloading instead of waiting in a black screen). Defaults to time if ommited (integer value).
- fadein.time: Duration of the fade in effect (integer value).
- fadeout.time: Duration of the fade out effect (integer value).
- match: Graphic element for Match text in arcade modes (%i can be used for the match number).
- p[N]: Graphic element for Big portraits.
- p[N].name.font: Font element for the Player name.
- p[N].name.offset / p[N].name.pos: Player name display offset. Format: X, Y (comma separated integer values).
- p[N].name.spacing: Space between names. Format: X, Y (comma separated integer values).
[N] is 1 for Player 1, 2 for Player 2.
After these options comes the Background elements for this Menu (including its Animations).
[Victory Screen]: Victory screen definition. This is the screen that is shown when you win a match in arcade mode. It will not be displayed on the last match of arcade mode.
- enabled: Set to 1 to show victory screen, 0 to disable.
- time: Time to show screen (integer value).
- fadein.time: Duration of the fade in effect (integer value).
- fadeout.time: Duration of the fade out effect (integer value).
- p[N]: Graphic element for the winner portrait.
- p[N].name.font: Font element for the Player name.
- p[N].name.offset / p[N].name.pos: Player name display offset. Format: X, Y (comma separated integer values).
- p[N].name.spacing: Space between names. Format: X, Y (comma separated integer values).
- winquote: Graphic element for the win quote (must be of Font type).
[N] is 1 for Player 1, 2 for Player 2.
After these options comes the Background elements for this Menu (including its Animations).
[Option Info]: Options screen definition.
- fadein.time: Duration of the fade in effect (integer value).
- fadeout.time: Duration of the fade out effect (integer value).
- title: Graphic element for the title (must be of Font type).
- cursor.move.snd: Sound for cursor movement. Format: groupNo, soundNo (comma separated integer values).
- cursor.done.snd: Sound for selection confirmation. Format: groupNo, soundNo (comma separated integer values).
- cancel.snd: Cursor for selection cancel. Format: groupNo, soundNo (comma separated integer values).
After these options comes the Background elements for this Menu (including its Animations).
[Survival Results Screen]: Survival mode results screen definition. This is the screen that is shown when you win in survival mode. It will not be displayed if the winning character has an ending.
- enabled: Set to 1 to show survival results screen, 0 to disable.
- fadein.time: Duration of the fade in effect (integer value).
- fadeout.time: Duration of the fade out effect (integer value).
- wintext: Graphic element for the win text (must be of Font type).
- show.time: Time to show screen (integer value).
- roundstowin: Number of rounds to get win pose, lose pose otherwise (integer value).
[Win Screen]: Win screen definition. This is the screen that is shown when you win in arcade mode. It will not be displayed if the winning character has an ending.
- enabled: Set to 1 to show win screen, 0 to disable.
- winstext: Graphic element for the rounds survived text (must be of Font type. Use %i for win counter).
- pose.time: Duration of the character pose (integer value).
- fadein.time: Duration of the fade in effect (integer value).
- fadeout.time: Duration of the fade out effect (integer value).
[Continue Screen]: Continue screen definition.
- enabled: Set to 1 to show continue screen, 0 to disable.
- pos: Position of the continue elements. Defaults to 159, 40. Format: X, Y (comma separated integer values).
- continue: Graphic element for the Continue text (must be of Font type).
- yes: Graphic element for the Yes text (must be of Font type).
- no: Graphic element for the No text (must be of Font type).
- yes.active: Graphic element for the Yes text while active (must be of Font type).
- no.active: Graphic element for the No text while active (must be of Font type).
[Game Over Screen]: Game over screen definition.
- enabled: Set to 1 to show game over screen, 0 to disable.
- storyboard: Game over Storyboard filename.
[Default Ending]: Game ending screen definition. This screen shows up after the Win Screen. It will not be displayed if the winning character has an ending.
- enabled: Set to 1 to show default ending, 0 to disable.
- storyboard: Default ending Storyboard filename.
[End Credits]: Ending credits screen definition. This screen shows up after the Win Screen and Ending.
- enabled: Set to 1 to show credits, 0 to disable.
- storyboard: Credits Storyboard filename.
[Demo Mode]: Demo mode definition
- enabled: Set to 1 to enable demo mode, 0 to disable.
- select.enabled: Set to 1 to display select screen, 0 to disable.
- vsscreen.enabled: Set to 1 to display versus screen, 0 to disable.
- title.waittime: Time to wait at title before starting demo mode (integer value).
- fight.endtime: Time to display the fight before returning to title (integer value).
- fight.playbgm: Set to 1 to enable in-fight BGM, 0 to disable.
- fight.stopbgm: Set to 1 to stop title BGM (only if playbgm = 0).
- fight.bars.display: Set to 1 to display lifebar, 0 to disable.
- intro.waitcycles: Cycles to wait before intro cutscene is played again (integer value).
- debuginfo: Set to 0 to hide debugging info (debug mode only).
Font element
Font values are written in the following format: No, Bank, Alignment, R, G, B (comma separated integer values).
- No: Font number (one of the 10 fonts specified in [Files] font1-10).
- Bank: Color bank (for Bitmap fonts only. Can be a Sprite group or Palette No, depending on the Font's definitions). See Font for details.
- Alignment: -1 = right, 0 = center, 1 = left.
- R: value for the R component of this font's color (for TrueType fonts only).
- G: value for the G component of this font's color (for TrueType fonts only).
- B: value for the B component of this font's color (for TrueType fonts only).
BGM element
The BGM is a multi-option element describing a Music to play.
- .bgm: Put a filename for a MOD, MP3 or MIDI here, or just leave it blank if you do not want music. If an invalid filename is given, then no music will play. To play mymusic.mp3 from the sound/ directory, put: .bgm = sound/mymusic.mp3. Music will continue to play between screens if the files names are the same, and both BGMs are specified to loop.
- .bgm.loop: Volume scaling factor in percent (integer value). 100 is default.
- .bgm.loopstart: Sample to start looping (integer value).
- .bgm.loopend: Sample to end the loop (integer value).
Graphic element
It's a multi-option element describing a graphic element to be displayed on screen.
- .spr: Uses a Sprite to draw this entry. Format: GroupNo, SpriteNo (comma separated integer values).
- .anim: Uses an Animation to draw this entry. Format: ActionNo (integer value).
- .font: Uses a Font to draw this entry. Format: Font element.
The options above are mutually exclusive, and the only required ones. Optional parameters:
- .displaytime: The duration where this entry will be displayed (integer value). -2 means the same duration as the Animation or 1 if not an Anim type. -1 is infinite. Defaults to -2.
- .offset: Displaces the display element horizontally by X pixels, and vertically by Y pixels. If this element is omitted, the offset is assumed to be 0,0. Format: X, Y (comma separated integer values).
- .facing: Sets the horizontal flipping of the display element. 1 means no flipping, and -1 means flip horizontally. Does not affect "font" elements. Defaults to 1 if omitted.
- .vfacing: Sets the vertical flipping of the display element. 1 means no flipping, and -1 means flip vertically. Does not affect "font" elements. Defaults to 1 if omitted.
- .layerno: This element lets you set the layer to which the display element will be drawn on. 0 is in front of the background, but behind the players. 1 is in front of the players, but behind the foreground. 2 is in front of the foreground. The default is 0 in most cases. An example of where this might be useful is when you want to have the life or power bars appear on top. In that case, set all the components to have layerno = 2.
- .scale: Scales the display element by a horizontal scale factor of X, and vertically by a factor of Y. Defaults to 1,1 if omitted. Format: X, Y (comma separated integer values).
- .angle: Drawing angle around Z axis (float).
- .yangle: Drawing angle around Y axis (float).
- .xangle: Drawing angle around X axis (float).
- .window: Rectangle to clip inside. Format: Top, Left, Right, Bottom (comma separated integer values).
- .text: Menu item's text (string, Font type only).
- .textwrap: Text Wrap mode (Font type only). Valid values are None, Char and Word.