MMXOD Sprite Editor Help

Welcome to the modding scene for MMXOD! Here you will learn how to use the sprite editor tool. Previously this was used only by Gamemaker19 to develop the game, but was released to the public to allow others to much more quickly edit sprite JSONs for visual mods.

Installation/Getting Started

Download the editor from the Tools section of the site, and then unzip it. Note that right now, this program is only for Windows. Run "MMXOD Sprite Editor.exe" in the program folder. Follow the prompt to select an assets folder where the program will make its edits. Afterwards, the program will load all sprites for editing. If you need to change it, edit the assetPath string in the "config.json" file that gets generated in the program folder (be sure to use forward slashes in the path), or simply delete config.json and re-run the program to select a new path in the UI.

config.json is the settings file with all persistent settings that the program uses that gets saved to disk, and you can put it in a Documents folder called "MMXOD Editor" to have the program look there instead of the program folder on startup. Otherwise you will have to copy-paste it over every time the editor gets a new update.

Basic Architecture

A sprite is the base entity for MMXOD graphics/rendering/drawing. It is better thought of as an animation, as it is a collection of frames. Each sprite maps to one spritesheet, and the frames are rectangles in this spritesheet. Each frame can have data such as hitboxes and the top-level sprite has top-level sprite/animation metadata.

In MMXOD, sprite data is stored in three folders: the "assets\sprites" folder and the "assets\sprites_visualmods" folder which has JSON files, each of which represents a single sprite and contains the metadata for that sprite, and the "assets\spritesheets" folder which has the spritesheet images that the sprites use.

The difference between "assets\sprites" and "assets\sprites_visualmods" is that changes to "assets\sprites" will change the game's checksum version, meaning you can only play online with those who made the same exact edits. So, if you just want to mod visual aspects of sprites, to get around this there's a separate folder for that, "assets\sprites_visualmods". Copy-paste into this folder the sprite JSONs you want to visually mod only, and switch the editor's context to that folder (using the "sprites_visualmods folder" button at the top menu of the editor). Only visual edits to JSONs in this folder will be respected, but you can still play online with anyone else.

The editor allows you to modify the JSONs, but won't help you for modifying actual image files. For modifying the spritesheet PNGs, use an external drawing program like Photoshop, Aseprite, Paint.NET, Gimp, etc. You'll have to reload the program after saving any changes to the PNGs.

UI Component Overview

Here's an overview of the high level UI components of the sprite editor.

Important Concepts

Activate "Ghost" mode by pressing G, a highly useful feature that overlays a transparent image of the current sprite in the sprite display and leaves it there even if you change sprites or frames. Press Escape to remove the "Ghost". This is useful for aligning frames in the sprite as well as aligning different sprites that transition into each other (i.e. jump into fall into land into idle, etc).

Undo/redo are supported (ctrl+z, ctrl+y). All actions are undoable, including selections, though there can only be 100 undo entries in the queue before the earliest one gets deleted. Be careful when undoing many times in sequence; if you undo several times and then make a change, you'll lose all the undo'd changes up to that point.

It is recommended to save often and tread through the UI slowly and carefully. This is not a professional project supported by a large team and so may not be of the highest quality or stability. Therefore be slow and cautious and try not to spam clicks or keystrokes too quickly. Saving individual sprites frequently is preferred to "banking up" a large number of changes in multiple sprites and using Save All.

Text/number fields don't have an "apply" button. To apply your changes after typing in a value, either click outside of it, or press the TAB key to exit focus on the input and move to the next one.

Hotkeys are important to be productive. You should have your left hand on WASD and your right hand on the mouse (like in an FPS). This allows you to quickly edit sprite frame positioning with WASD while switching frames with Q/E with your left hand. Your right hand can add frames in the spritesheet display and press buttons.

Modding frames and hitboxes in "assets\sprites" can open up the possibility of new attacks, but for some sprites this can introduce bugs and instability. For example, some attacks are coded by the engine to read off a certain frame number for an effect, so removing that frame can have unintended consequences. Remember that you can only play online with others who have the same "assets\sprites" changes as you do.

Hotkeys

Changelog

3.0.0

2.0.0

1.0.0