The Stage Editor - SlightlySimple/FNF-Restructure-Engine GitHub Wiki
The stage editor allows you to create new stages or edit existing ones in Restructure Engine. It can be accessed from the Editors Menu, which by default is accessed by pressing "E" on the Main Menu.
Creating a new stage
In order to create a stage, you first need a folder for all the images in your stage. By default, in a new mod, there should be a "stages" folder in the "images" folder, or in a subfolder of the "images" folder. In this "stages" folder, create a new folder and name it to what you want your stage to be named. Inside this folder, place all the images and sprite sheets your stage needs.
To create the stage, click on the "Stage Editor" text in the Editors Menu to bring up a menu that allows you to select three options. Clicking on "New" will bring up a file selector. From here, select any image inside the folder you created earlier.
Once you have selected an image, you will be taken into the editor. By default, it will place Boyfriend, Girlfriend, and Daddy Dearest into a void to which you can add pieces to build a stage.
Adding Pieces
To get started, click on "Lock Positions" to allow yourself to click and drag pieces around. Then, click on the "Pieces" tab, select an image or sprite sheet from the "Asset" menu. If you're selecting a sprite sheet, click on the "Type" menu and select "animated." Once this is done, click "Add Piece." You can click and drag your new piece around, and go to the "Properties" tab to change it in various ways. If it's a sprite sheet, you can add animations to it by clicking on the "Animations" tab.
Saving
On the left side of the editor is a menu, and on the default tab of that menu is a "Save" button. Clicking this will bring up a file selector which lets you decide where to save the stage. The stage should be saved in the "stages" folder inside the "data" folder of a mod, or in a subfolder of that "stages" folder. It should have the same name as the folder created earlier, which should be the default name given to it by the editor.
Tabs
Since many parameters in these Tabs are self-explanatory, this will only briefly go over them.
Settings
This tab contains basic actions and some options within the editor itself.
"Lock Positions" will prevent you from moving around any pieces or characters, and should be checked to prevent doing it accidentally. It is checked by default, and will need to be unchecked to move things around.
"Pixel Perfect" is meant to be used for stages such as the school in Week 6. It will cause every piece and character to align with each other based on how much they're scaled up.
"Asset Directories" is a list of folders from which the stage will look for pieces. If this is changed, the stage must be saved and reloaded for it to take effect in the editor.
"Grid Snapping" controls the position snapping of characters and pieces in the stage.
Characters
This tab controls the character slots of a stage. By default, a stage has 3 slots, but you can have as many as you want or as little as 2.
"Character Slots" controls the amount of slots in the stage.
"Character ID" controls the current slot being edited. This can be changed by clicking on a character in the stage itself.
"Layer" controls when the character spawns relative to other characters. A character with a higher layer will be on top of a character with a lower layer.
"Camera Offset" controls where the camera will be when it's focused on the character. By default, the camera will move relative to the current character's position.
"Absolute" makes the camera focus on the coordinates as specified, instead of moving the camera based on the character's position.
Pieces
This tab controls all the pieces in a stage. In it is a list of all these pieces, from which you can select them. Pieces are listed in the order they're spawned, with the first piece being below every other, and the last piece being above every other.
"ID" is used mainly for scripting as an identifier for the piece. No two pieces can have the same ID. If this is left blank, the piece's asset is treated as it's ID.
"Type" controls what kind of piece is being made. "static" means the piece will not be animated at all. "animated" should be used either for sprite sheets, or for pieces that are made up of a grid of animated frames. "tiled" means the piece will repeat infinitely. "group" means the piece will not use it's asset at all, but is instead a sprite group intended to be added to by a script. All other types are for softcoded stage-specific behavior.
"Add Piece" will add a new piece at the end of the list. "Insert Piece" will add the piece just before the current one.
Properties
This tab controls the properties of the currently selected piece.
"Update Hitbox" is used for scaling. By default, the piece will scale around it's center. When "Update Hitbox" is checked, the piece will instead scale around it's top-left corner. This should usually only be turned off when porting a stage that already didn't use "Update Hitbox."
"Alignment" controls the piece's actual position relative to it's coordinates.
"Layer" controls which characters the piece will appear above. A piece will appear above all characters with a lower layer than itself.
Animations
This tab controls the animations and animation properties of the currently selected piece, if applicable.
"Animation Name" is the name of the current animation as the game understands it.
"Prefix" is the name of the animation in the sprite sheet, and below it is a dropdown list of all the prefixes the editor found in the sprite sheet.
"Indices" is a comma-separated list of the specific frames of an animation you want it to use.
"Current Animation" is the animation that's currently playing in the editor.
"First Animation" is the animation that will play by default when the stage is loaded.
"Beat Animations" is a comma-separated list of animations that will play on every beat of a song. If just one animation is in this list, it won't interrupt itself. However, if the same animation is in the list twice, it will be able to interrupt itself.
"Beat Count" is how many beats the piece will wait to play it's animation. If this is 2, the animation will play every other beat, for example.
Help
This tab contains some basic controls of the editor.