RandoJsonDataVisualEditor is a JSON editor designed for randomizers and other logic modifications, primarily for Super Metroid: X-Fusion. (Might support more in the future!?).
This tool allows us to visually place and manipulate nodes on the map, making editing room connections, items, and other gameplay logic straightforward.
This project is heavily inspired by sm-json-data.
- Left-click + drag: Place a node/region
- 1 / 2 / 3 / 4: Switch between modes:
- 1 → Draw Nodes
- 2 → Select Nodes
- 3 → Move Nodes
- 4 → Resize Nodes
- Double Left-click (In Select/Move mode): Rename junction nodes
- Delete key: Delete a node from the logic editor
- Scroll (by itself): Scroll vertically on the map
- Shift and Scroll: Scroll horizontally
- CTRL and Scroll: Zoom in/out
- CTRL and + / -: Zoom in/out
- Left-click (On Cardinal Buttons): Navigate between doors
- Right-click (On Cardinal Buttons): Edit door connection properties
- Left-click (On Sector Buttons): Navigate between sectors
- Clone the mxf-json-data repository. I highly recommend using Github Desktop if you've never used git before.
- Download the RandoJsonDataEditor
- Run the editor and click "Set Working Directory" at the top-left.
- Refer to the documentation for formatting expectations when contributing.
- When your edits are done, create a pull request for your changes back to the main repository.
- Clone this repository:
git clone https://github.com/mysterypaintwo/RandoJsonDataEditor.git
cd RandoJsonDataEditor- Install dependencies:
npm install- Run the app:
npm start# Install dependencies
npm install
npm startTo build a portable Windows version of RandoJsonDataVisualEditor:
# If on Windows, ensure that Windows Developer Mode is enabled
# Install dependencies
npm install
# Build the project (Unfortunately, this only works on each separate OS.)
npm run build-win
npm run build-linux
npm run build-mac- The output will be placed in the
/dist/folder. - The executable is fully portable and does not require installation.
- All resources are packaged using asar for compact distribution.
RandoJsonDataVisualEditor includes VS Code debug configurations for both main and renderer processes.
Use the Electron: Main configuration to launch and debug the Electron main process.
Use the Electron: Renderer configuration to attach to the Electron renderer (Chromium) process.
Notes:
- Ensure the renderer is listening on
port 9223for debugging if attaching manually. - Use breakpoints in
renderer.jsorpreload.jsto inspect UI logic.
- Electron ^39.2.7
- Electron Builder ^24.13.3
No additional dependencies are required.
- Metaquarius – For developing the awesome game and providing images of every room.
- InsaneFirebat – For creating the practice ROM, sharing internal game data, and performing useful reverse-engineering research.
- Super Metroid Map Randomizer Team - For creating the foundation that inspired this project
This project is licensed under the GNU GPLv3. See the LICENSE file for details.