Other

项目介绍

Psychronic-Games/RPGReactor 是一个托管在 GitHub 上的开源项目,主要使用 JavaScript 编写,采用 Other 许可证,目前获得 50 个 Star、13 次 Fork。

仓库全名
Psychronic-Games/RPGReactor
开源许可证
Other
Star 数
50
Fork 数
13
未关闭 Issue
1

README 摘要

RPG Reactor RPG Reactor is an open-source, cross-platform RPG game editor and runtime for RPG Maker MV/MZ-compatible projects. RPG Reactor provides its own modern runtime, PixiJS 8 for 2D and Three.js for HD-2D/3D maps, while preserving compatibility with RPG Maker project data and targeting backwards compatibility with both RPG Maker MZ and MV plugins, including mixing plugins from both engines within a single…

完整内容见 GitHub 原始 README 或本页 。

常见问题

RPGReactor 用什么语言开发?

主要使用 JavaScript 编写,采用 Other 许可证,目前有 50 个 Star。

RPGReactor 可以免费商用吗?

仓库标注的许可证为 Other,商用前请先阅读仓库 LICENSE 文件确认授权范围。

如何获取 RPGReactor 的源码?

可以直接克隆仓库:git clone https://github.com/Psychronic-Games/RPGReactor.git,默认分支为 main;安装与运行步骤见仓库 README。

RPGReactor 最近还在维护吗?

仓库最近一次更新为 1 周前,当前有 1 个未关闭 Issue;Star 数为 50,可作为社区活跃度的参考。

关于

Open-source, cross-platform RPG editor and modern PIXI 8 runtime for RPG Maker MV/MZ-compatible projects: map/event/database editing, MZ+MV plugin compatibility layers, in-editor asset Forges (animations, Effekseer effects, characters), and one-click cross-platform deployment.

描述取自 GitHub 官方 API,中文内容由 GitRead 中文社区 编辑团队整理。

简要分析

热度分
77
价值分
33
活跃状态
活跃

README

RPG Reactor

RPG Reactor

RPG Reactor is an open-source, cross-platform RPG game editor and runtime for RPG Maker MV/MZ-compatible projects. RPG Reactor provides its own modern runtime, PixiJS 8 for 2D and Three.js for HD-2D/3D maps, while preserving compatibility with RPG Maker project data and targeting backwards compatibility with both RPG Maker MZ and MV plugins, including mixing plugins from both engines within a single project through complementary MZ and MV compatibility layers.

Use RPG Reactor to create, edit, playtest, and package 2D RPGs with familiar RPG Maker-style maps, events, database records, plugins, and deployment workflows, without depending on the original RPG Maker runtime or editor.

The latest tagged source release is 0.99.4. Read the release notes for the changes and known issues. Pre-built downloads are published separately at https://psychronic.itch.io/rpg-reactor.

Players meeting in North Haven
Player characters, names and chat share the same online world.
Character creation inside a game
Players choose their appearance with the Forge-powered character creator.
An editable holographic table
Screen design, animated readouts and holographic displays remain editable in the Prop Builder.
A minivan with an accessible cabin
Sliding doors reveal the seven-seat cabin in the Prop Builder.
Deploying an online game
Online Server writes the game and its PHP server to a web folder.
Avatar voice settings
Set the speaking key, hearing range and who may use voice in Database → Online.

What’s new in 0.99.4

  • Online worlds: deploy a game and PHP server together, with player characters, accounts, chat, shared world state and an owner page.
  • In-game character creation: let players choose an actor or edit their appearance with the Forge-powered creator, in single-player and online games.
  • Avatar voice: optional nearby voice and animated mouths, with project-specific controls. Hosts that support the Node engine can use pushed updates and movement checks.
  • Characters in motion: exercise and resting poses, independent bust/butt/fat bounce, smoother live sliders, editable skin finishes and revised body/face controls.
  • Props and clothing: improved fabric, seams, wearable symbols and fitted construction; medical and Wasteland props; a minivan with an accessible seven-seat cabin.
  • Correct sprite presentation: complete multi-frame walks, correctly cropped event previews and stationary events that stay attached to map tiles while the camera moves.

Known CI failures remain; online features have been tested on one server, and real microphones, separate networks and production load still need review. See the 0.99.4 notes, online guide and open items.

Repository Layout

RPGReactor/
├── editor/   # RPG Reactor editor app source
├── runtime/  # Game runtime corescript copied into new projects
├── template/Demo/ # Bundled Reactor One starter project
├── docs/     # Maintainer workflows and project notes
├── RPGReactor.sh / .bat / .command
├── CHANGELOG.md  # Index; one file per release in changelog/
├── LICENSE
└── README.md

Documentation

  • Editor README: detailed feature list, source launch steps, project structure, shortcuts, and technical notes.
  • Latest release notes: features, screenshots and known issues for 0.99.4.
  • Previous release notes: features and fixes in 0.99.3.
  • Changelog: upcoming development and previous releases.
  • Current status: the verified state of the tree, runtime defaults, test results, and open work.
  • Online worlds: using Online Server today, measured capacity and the plan.
  • Open items: the working list for the release in progress.
  • Authoring a world: where every part of a 3D map lives, which tool edits it by hand, what a generator writes, and what checks it.
  • Vehicle authoring guide: vehicle types, event setup, classes and equipment, map travel and sound.
  • Battle authoring guide: Battle Rooms, formations, action steps, and supported plugin behavior.
  • Battle modes: Tactical, Action and First Person battles on the map, Battle Setup, units, goals and the Tactical HUD.
  • Rigging a 3D model: templates, hand markers, and what the runtime reads.
  • 3D Character Builder: shaping a character and saving it as a rigged model or sprite sheet.
  • 3D Prop Builder: props, weapons, wearables, furniture and vehicles saved as models.
  • Media surface guide: image/video placement, transforms, proportions, and legacy command support.
  • Custom user interfaces design: the User Interfaces database section, its runtime, how it stays invisible to RPG Maker, twelve opt-in stock-scene replacements, the Battle HUD, and what stays stock.
  • 3D worlds design: the tileset-class and facing model behind HD-2D maps, with its phasing table marked to what shipped.
  • 3D objects on the map: how painted object groupings and tileset 3D classes build the HD-2D world.
  • Importing older RPG Maker projects: File › Import Project… makes a new Reactor project from a 2000, 2003, XP, VX or VX Ace game; what converts and what the format cannot hold.
  • Handoff notes: dated engineering notes for the current and last cycle; older cycles are archived.
  • Documentation index: every guide, the release history, and the archive of dated audits and reports.
  • Release checklist: exact maintainer commands for source publication, signed release candidates, GitHub attachments, and optional itch.io publication.

Feature Overview

  • Full RPG Maker-style editor: map editing with four tile layers, autotiles, shadow pen, and region painting; a visual event editor with 100+ commands, multi-page events, every MZ Conditional Branch form in RPG Maker’s own four-tab layout (plus a Reactor tab for keyboard, mouse, wheel and pointer conditions), collapsible block structures with persisted fold state, Show Text edited as a whole run of message boxes with RPG Maker’s text-code menu and a windowskin-accurate preview, and optional advanced expressions, loops, input conditions, event calls, and picture controls beyond the stock MV/MZ editors; a database where any entry can list what references it, descriptions and battle messages carry the text codes their windows honour, enemies have their own Max TP and can require states the user or target lacks, Add State can set its own duration, and Grow reaches Max TP or a random range; complete database editors with dense Types and Terms workspaces; a multi-channel audio player; and multi-instance editing with a cross-window typed clipboard. Drawing, layer, Undo/Redo, Audio, Database, Plugin, Resource Manager, and Forge actions share a high-contrast blue/cyan/gold SVG toolbar language; the Fill action is a pouring paint bucket and the Shadow Pen visibly lays a dark stroke.
  • Project-wide Resource Manager: browse locale-sorted nested MZ/Reactor image, audio, effect, movie, font, icon, and 3D assets; preview media and orbit/zoom models through Reactor3D; batch-import safely on desktop; multi-select nested exports with Ctrl/Cmd or Shift; export decrypted bytes from encrypted projects; and delete only after path, project-lock, and symlink checks. The 3D category does not delete or merge existing models, but desktop users can import one validated GLB/OBJ/FBX/STL/USDZ/3MF/DXF into a new user-named 3d/<folder>/ containing source/ and an empty textures/; .blend must first be exported. Publication is staged, destination-reserved, ownership-checked, and rolled back on failure. Web mutation is intentionally disabled.
  • Native Media Surfaces: place images and videos through the map toolbar or Show, Transform, and Stop Media Surface event commands. Attach them to the screen, map, player, events, or model parts; edit position, elevation, rotation, scale, corners, opacity, scanlines, and playback settings. Visual arrows, rings, sliders, and source-proportion controls support placement in 2D and 3D. Existing Video Surface commands remain supported. See the media surface guide for rendering and preview behavior.
  • Modern PixiJS 8.22.0 + Three.js runtime: the game runtime (runtime/) is a fully migrated PIXI v8 corescript. Tilemaps, UltraMode7, Effekseer particle effects, video, and shaders all run on current PixiJS instead of the legacy renderer RPG Maker ships, and 3D maps, models, rooms, cameras and in-scene effects are drawn by Three.js (r187) sharing the same canvas.
  • Authorable HD-2D maps and a 3D world builder: maps can opt into a perspective 3D presentation while retaining RPG Maker’s grid, passability, events, and data format. Map Properties carries the 3D switch, a room (parallax floor, walls, ceiling, sky) and the camera. A Build bar over the 3D view lays walls, floors, doors, windows, stairs, roofs, shapes and saved buildings with a snapping ghost, terrain brushes shape rolling ground, water is poured into hollows, and the party walks inside: roofs cut away, walls between the camera and the party go see-through, and stairs lead to a second floor. Buildings are plans in 3d/Structures, readable JSON that an editor page, a validator and a shell command all understand.
  • Battles on the map: beside the Classic battle screen, a game, map or troop can fight in Tactical (turn-based on the grid, with range, flanking, cover, height, line of sight, overwatch and a forecast), Action (real time, in third person or from above) or First Person, on 2D and 3D maps. Events become units through Battle Setup, map events keep running during the fight, Action Sequences play on the map, a cinematic camera films Tactical battles, and each mode has its own HUD as an ordinary User Interfaces record. See the battle modes guide.
  • Vehicles: Database vehicles with a sprite or 3D model, starting positions, engine sound, an optional class for stats, skills and equipment, and a rider’s seat marked on the model. The party rides its own vehicles behind the leader, vehicles travel between maps and are saved where they are parked, and in Tactical and Classic battles a mounted unit fights with the vehicle’s range, weapon and skills while the vehicle takes its own damage.
  • Online worlds (early): choose Online in Database › Online, then tick Online Server when deploying, and the game and a small PHP server go into a web folder, with no database or router setup. Players build their own 3D character in the game, which everyone else on the map then sees walking around, on the web or a desktop build. Accounts, chat, voice, sleeping and waking, and a shared world are included. See New in development.
  • Seamless neighboring maps: each side of a map can name the map that lies past it. Neighbors stand on the horizon two maps out and are entered with no fade or loading, on foot or riding, on 3D and 2D maps; only the maps around the party are in memory.
  • Model optimization: GLB import can cap textures at 2K, pack skin weights, reduce geometry, and reorder triangles for the GPU vertex cache. The 3D database also offers Optimize for existing models and reports geometry, materials, textures, and rig costs. Both presets can change geometry; aggressive reduction targets fewer triangles. Separate distance-level file generation is disabled in both presets, while the runtime still supports existing authored LOD files. The 3D world is drawn at three quarters of game resolution and enlarged with a sharpening filter, without MSAA; lighting and light haze are worked out at a quarter size and filtered up by surface, and dense models are drawn at simplified distance levels in shadows, and in the view on weak GPUs. Adaptive resolution is opt-in.
  • Quests and BGM sequences: author quests in the database, import VisuStella/Yanfly/GS definitions, and manage objectives through events. Quest progress saves with the game, rewards can give gold, items, EXP or a common event, and the tracked quest shows on the map. Music sequences, kept in a database library or on a map and playable in battle, repeat ordered track, silence, and palette entries; palette layers choose tracks from random pools with timing and fade controls. Native track loop points are ignored inside a sequence.
  • Custom user interfaces: a User Interfaces database section lays out menus, dialogs, panels, and HUDs with Box, Image, Text, Button, Gauge, Text Input, and typed List nodes. The canvas-first editor uses explicit Back -> Front Layers with subtree reorder/reparent, a compact searchable Use As control, responsive Inspector placement, and an optional Game Reference tray whose imports are always explicit. Named List contexts and actor bindings drive actor identity, profile, resources, EXP, parameters, equipment, states, inventory, Options, and save data. Twelve stock screens (Title, Main Menu, Status, Game End, Options, Save, Load, Items, Skills, Equipment, Shop, Name Input) and a Battle HUD have generated baselines and a Stock Layout starting point, and each is replaced only when a project opts in; invalid records fall back to stock. Lists chain through contexts (a category list filters the items, a slot list the equipment candidates), a Text Input field takes typed passwords or commands for in-game terminals, and a Battle HUD dresses every battle the way MOG’s battle HUD does: a party panel with face reactions, ATB and a turn marker, the stock battle windows placed and following the active actor, and a target cursor. A standalone RPG Maker MZ plugin is not shipped and is explicitly deferred; custom interfaces currently run through RPG Reactor. See the design for behavior and boundaries.
  • MZ + MV plugin compatibility: complementary MZ and MV compatibility layers let existing RPG Maker plugins run unmodified on the new runtime, including mixing plugins from both engines in a single project. Stock MV/YEP LZString saves, MOG interfaces, video parallaxes, and custom local/browser save keys are supported. Validated against a large commercial MV game running a 168-plugin stack (Yanfly, Victor Engine, MOG, SRD, and the LeTBS tactical battle system), and against a commercial MZ project running 143 active plugins including 41 VisuStella ones, an event-driven title scene, and third-party tilemap and billboard plugins that add layers of their own.
  • Resilient resource loading: the runtime watchdogs every database, image, and audio load from its own frame tick. Silently-dying requests (slow disks, cloud-synced folders) retry automatically, and genuinely missing files degrade gracefully with a clear console error instead of hanging the game on a black screen. Converted image consumers can load PNG/APNG, JPG/JPEG, WebP, safe SVG, or GIF; explicit modern extensions are preserved, extensionless RPG Maker names still resolve as PNG, legacy <name>.<ext>.png fallbacks remain readable, encrypted MIME types stay correct, and animated GIF textures refresh while visible. Format-sensitive tilesets, plugin-parameter image fields, database actor/list thumbnails, Reactor UI character/face/party-face/System/Title/Icon sources, balloon sheets, and other fixed system sheets such as IconSet retain their PNG-oriented contracts.
  • The Forge, in-editor asset generators:
    • Animation Generator: 76 procedural 2D animations across eight categories, including Portal, with layered composition, per-layer keyframe timelines, a 3D shape pipeline, custom textures, and export to bake-ready sprite sheets or animated GIFs.
    • Effekseer Animation Generator: create native Effekseer particle effects (.efkefc) from 106 recipes across nine categories without the external Effekseer editor: 21 sci-fi interface instruments with user-typed text, physical battle hits, 15 energy recipes, elements, a custom-effect Composer, and more; wireframe or solid-textured rendering with custom texture upload; layers, keyframes with texture cross-fades, live in-editor preview through the game’s own Effekseer runtime, and one-click export. The tracked suite validates generated format/model round trips, every recipe at default/extreme/swept values, composition, and real-WASM playback.
    • Character Generator: bundled Psychronic and Looseleaf styles plus procedural Outfit Forge and Hair Forge tools that generate RPG Maker-style walking-sheet parts, with live 4-direction walk previews, multiple hair styles, palette systems, and save-to-library output. Psychronic remains the default style.
    • 3D Character Builder: shape humans, humanoid species and creatures with sliders and pickers, dress them from a catalog of 152 garments, 74 outfit presets and 84 accessories, and save them as rigged GLB models with 51 poses and motions, expressions and speech. Characters also export as 2D sprite sheets, battlers and face portraits. Default human faces and body appearance are still under review. See the guide.
    • Character Creation: let players choose an actor or build their own 3D character inside the game, single player or online, with the same tools and catalog. See the guide.
    • 3D Prop Builder: build flags, props made from pictures, weapons, wearables, containers, furniture and vehicles, and save them as 3D models. See the guide.
    • Sound Effect Generator: procedural sfxr-style sound design on Web Audio, baked to WAV, OGG or MP3 in the project’s audio/se/. 29 archetypes across RPG SFX and tuned instruments, six waveforms including a physically modelled Karplus-Strong pluck, 27 parameters, live waveform/envelope/pitch visualizers, and a 16-step sequencer for jingles and stingers.
  • Build & deploy: one-click isolated playtests; cross-platform game packaging for Windows, macOS, Linux, and Web, where a Web build can pack its files into a few zip archives read on demand, for hosts that limit file count and size; optional Linux AppImages for games and the editor; configurable NW.js releases and runtime locales; optional staged PNG/audio optimization; a Don’t bundle unused files option that leaves out the files a game never uses, plugins and playtests included; and an editor distribution builder with SHA-256 checksums. Eligible full desktop packages default to an exact-NW.js-version H.264/AAC codec overlay verified by a trusted archive hash plus extracted-binary validation; users can disable it, and Web/Minimal packages never include it. Every overlay carries machine-readable provenance, recorded archive/binary hashes, the complete LGPL text, corresponding-source/build references, and a patent notice.
  • Source-audited 18-language localization across editor-generated interface text, with locale-key and placeholder validation, Arabic right-to-left direction, and project-authored game content deliberately left untouched; plus a theme system with multiple color palettes in light and dark modes.

Development Launchers

The root launcher scripts are for opening RPG Reactor from a source checkout while developing or testing the app. They are not the final packaged game/editor executables; they start the editor through a local NW.js runtime that you download separately.

File Platform Purpose
RPGReactor.sh Linux Opens the editor with nwjs-linux/nw
RPGReactor.bat Windows Opens the editor with nwjs-win/nw.exe
RPGReactor.command macOS Opens the editor with nwjs-mac/nwjs.app

Each script looks for the matching nwjs-* folder at the repository root or inside editor/, then launches the app from editor/.

Run From Source

RPG Reactor runs as an NW.js desktop app. Source development and release tooling require Node.js 22 or newer. Source checkouts include the bundled Reactor One Demo, but do not include NW.js platform binaries, node_modules/, build output, saves, or other local project templates.

  1. Clone the repository:
git clone https://github.com/Psychronic-Games/RPGReactor.git
cd RPGReactor
  1. Install the editor dependencies:
cd editor
npm ci
cd ..
  1. Download NW.js for your platform from https://dl.nwjs.io/. Use the normal or SDK build for your OS and CPU architecture.

  2. Extract NW.js and rename/place the extracted folder at the repository root:

RPGReactor/
├── editor/
├── runtime/
├── nwjs-linux/   # Linux: contains the nw executable
├── nwjs-win/     # Windows: contains nw.exe
└── nwjs-mac/     # macOS: contains nwjs.app

You can also place the same nwjs-* folder inside editor/; the launchers check both locations.

  1. Launch RPG Reactor:
# Linux
chmod +x RPGReactor.sh
./RPGReactor.sh

# Windows
RPGReactor.bat

# macOS
chmod +x RPGReactor.command
./RPGReactor.command

For direct NW.js launch during development:

cd editor
../nwjs-linux/nw .

Tests

cd editor
npm run test:changed   # what your edits reach; skips everything already proven on exactly this code
npm run test:whole     # the same, plus tests whose inputs a fingerprint can't see (folders, project data)
npm run test:all       # every test, about 7 minutes on ten workers
npm test               # every test, as CI runs it

Every run keeps each pass as it happens, so an interrupted test:changed or test:whole resumes where it stopped. The same tests run on a working machine and on CI. Tests use small default pictures (tests/helpers/small-pictures.cjs); a test that judges pixels asks for its size explicitly. Sweeps use tests/helpers/coverage.cjs: every value, paired rather than multiplied; RR_TEST_EXHAUSTIVE=1 walks every combination.

GitHub Actions runs syntax checks, the full Node suite, dependency audit, patch hygiene, and clean-checkout checks. The suite covers editor data round trips, runtime compatibility, rendering contracts, save safety, localization, generators, deployment, and release infrastructure. On 2026-10-29, before the 0.99.3 cut, local validation completed with 8905 passing tests, 33 skipped and no failures. A separate CI GUI job runs the Web persistence smoke and five NW.js smokes (save, interaction order, keyboard, menus, event double-click); the other smokes in editor/tests/smoke are local gates. See current status for verification limits and the release checklist for the release steps.

Trusted Projects

Treat an RPG project like source code. Project plugins and project-local Character Generator JavaScript execute inside the Node-enabled desktop editor/runtime and can access the local machine. Only open or run projects and plugins from sources you trust; inspect downloaded project code before using it. The browser editor has a narrower host, but projects may still execute game/plugin JavaScript during playtest and interface capture.

Bundled Demo Limitations

Reactor One is a starter and compatibility showcase, not a content-complete game. It is a 3D project: its party and the enemies it fights are 3D models, so it ships no 2D battler sheets. Some unused leftover records (actors 6–8, enemies 3–5) have no art. Every sound the Demo names exists on disk. The maintained inventory is in docs/demo-missing-se.md.

Runtime

The runtime/ folder contains the player-facing corescript (reactor_*.js) and runtime libraries. The editor copies this folder into newly created game projects under js/.

License

RPG Reactor-owned code is licensed under the MIT License in LICENSE. Bundled third-party components remain under their respective licenses; see THIRD_PARTY_NOTICES.md. No single license is asserted for third-party files or user/project content.

Cutting a Source Release

cut-release.cjs is the canonical source-release path. Run it from a clean main worktree after all 0.99.4 changes have been committed:

node editor/build-scripts/cut-release.cjs 0.99.4 --dry-run
node editor/build-scripts/cut-release.cjs 0.99.4

The command runs the complete editor test suite, finalizes both changelog headings with the release date, updates editor/package.json, the root README release link and its recognized validation-count sentence, creates a release commit when those surfaces changed, creates an annotated v0.99.4 tag, and pushes the branch and tag. The tag push starts publish-release.yml, which creates or updates the GitHub source release using that version’s root changelog section. --no-push stops after creating the tag. Other version prose, validation dates, the editor README, and the status summary need a separate review; the script does not refresh them.

The push uses the repository’s configured GitHub authentication. Setting GITHUB_TOKEN or GH_TOKEN also lets the script create the release directly; without one, the tag-triggered workflow remains the publication mechanism. To retry source publication for an existing tag, dispatch Publish Release in GitHub Actions with the version. Do not move or force-push a published tag.

Signed binaries are a separate, gated process. release-candidate.yml builds and signs the four platform candidates, then release.yml verifies and attaches those exact bytes to the existing source release and can publish the same bytes to itch.io. Follow the release checklist for that process.

评论

暂无评论