Changelog
All notable changes to the Monster Capture Engine are documented here.
Each entry below belongs to one of these four threads.
v1.1.0 (2026-07-13)
This release adds player-built spaces (Secret Bases and player-owned Gyms), an ephemeral Battle Tower, live co-presence in bases, and a major step-up for the Essentials Importer — proven with a real full-project v21.1 import. It also lands a wave of pre-release hardening and performance work.
Gameplay
- Battle Tower — A new pause-menu entry launches an ephemeral Battle Tower run (
EphemeralTowerLauncher): a self-contained challenge ladder that spins up temporary opponents and pays winnings straight into the player's wallet. Battle flow was hardened for anonymous/trainer-less opponents so tower fights resolve cleanly. - Secret Base ("My Base") — Players can place, enter, and decorate their own instanced interior. The interior is built from a scene template populated at runtime, and a decoration layer (
DecorCatalogwith add / remove / move operations) persists inside the save file. - Player Gyms ("My Gym") — Players build a fully custom gym: the leader's team, a decorated room, custom dialog, and their own badge. Other players can challenge it.
- Pause menu — Three new entries wire the above into the in-game menu: Battle Tower, My Base, and My Gym.
Online (Nakama)
- Secret Base multiplayer — Server RPCs
secret_base_save/secret_base_get/secret_base_list/secret_base_inviteback a persistent base collection with optimistic-concurrency writes and fail-closed server validation. Visitors see a snapshot even when the owner is offline. Verified against an adversarial pentest — forged writes are rejected. - Live co-presence in bases —
BaseSyncServiceuses a relayed match (base:<ownerId>) to sync visitor position and decoration changes (OP_DECOR_CHANGED) in real time. Verified end-to-end with a live two-client test against Nakama. - Player Gym challenge — Server-side gym snapshots via
gym_save/gym_get/gym_list, fail-closed, so challengers fight the owner's real configured team. - Server-authoritative teleport validation —
mce_validate_teleportnow validates the destination scene against the scene graph and applies a rate limit server-side, paired with a client-side anti-teleport movement guard.
Importer (Pokemon Essentials v20 / v21 / v21.1)
- Full-project v21.1 import proven — A real headless full-run against a complete Essentials v21.1 project converted 898 of 898 species with zero errors (335 form overrides, 422 evolutions linked), created 150 new moves while reusing 590 existing ones, 72 abilities, 315 items created / 378 matched, and 20 trainers with populated rosters.
- Battle sprite Materials —
SpriteLinkernow generates battle Materials for imported monsters. Before this fix, imported monsters were invisible in battle. Sprites match by internal name, with per-form art and gender variants. - Wider move-effect coverage — FunctionCode-to-effect mapping was extended in three passes; unmapped codes degrade gracefully with an honest warning instead of failing silently.
- Concrete item generation —
ItemConverternow produces real MCE Item ScriptableObjects rather than name-matched stubs. - Headless import harness —
EssentialsHeadlessImport.Run()drives the full pipeline from the CLI / batchmode. - DB rebuild integrity fixes — Corrected asset discovery that could wipe Moves during a rebuild, plus a stale post-rebrand path; added form overrides and 15 new evolution methods for v21.1.
Setup & Packaging
- DOTween gate — Engine assemblies are now gated behind the
DOTWEENdefine, so a fresh import without DOTween no longer fails with ~200 compile errors. - Lite vs Basic export — The two tiers are now exported distinctly; the mandatory OpenMon splash ships only in Lite.
Quality & Performance
- Pre-release hardening (Waves 1–4) — Fixed an AudioListener leak, duplicated BGM, an uncapped
AudioSourcePool, a teleport latch,InputManagerstate scrubbing, andMenuSelectorguards. - Hot-path de-LINQ — Removed per-frame LINQ allocations in the character controller.
- Polish — Cleaner
MonsterEntryinspector; fixed aMajorVersiontypo behind a serialized shim so existing saves keep loading. - Tests — Added move-effect verification on real imported monsters and a live two-client PlayMode test against Nakama.
Also in this release — documented on 2026-07-02, shipped after v1.0.0:
This release documents online and tooling features that shipped after v1.0.0 but were not yet listed in the changelog. All items are present in the codebase; this entry brings the changelog in line with the server modules under Assets/OpenMon/Online/Server~/nakama/ and the editor tooling.
Online — Economy
- Global Trade Station (GTS) — Asynchronous "wanted-for-offered" trading board (
economy/gts.ts). Players post an offered monster and the species they want in return; the server matches and settles trades. - Global Trade Link (GTL) — Auction-house-style listing/bidding system with a dedicated matching engine (
economy/gtl.ts+economy/gtl-engine.ts). - Dev-gated economy — Currency/item grant RPCs are gated behind
MCE_DEV_MODE(economy/shop.ts+data/shop.ts). In production simulation (thenakama-prodsimcompose node) the grant RPCs reject withdev_mode_disabled, verified by dedicated E2E tests.
Online — Battle
- Server-authoritative capture — Capture is now resolved on the server via an RPC contract rather than client-reported outcomes, closing the anti-cheat gap for wild captures.
- Server-authoritative PvP — Match orchestration and turn resolution run server-side (
battle/pvp-engine.ts), with matchmaking and full E2E coverage. - Battle Tower / Raids — Multi-battle progression and co-op raid encounters (
battle/raid-engine.ts).
Online — World & Social
- Secret Base / Housing — Player-owned instanced spaces with persistent CRUD (
world/housing.ts). - Presence & AOI — Real-time presence and area-of-interest filtering for world sync (
world/presence.ts). - Direct trading — Player-to-player direct trade flow (
social/trade.ts).
Online — Security
- Anti-cheat battle ACL — Access-control enforcement on battle RPCs so only authorized participants can drive a match, backed by speed/inventory validation.
Editor Tools
- Import HD Original Dex (151) — the Cartridge section of the Hub (Studio edition) runs the
HDDexImporterto bring in the 151 original HD creatures (fronts, backs, transparents, and pixel followers).
Notes
- The full online RPC contract is documented in
Assets/OpenMon/Online/Server~/nakama/CONTRACT.md. - All editor menu items now live under the
Tools > MCE > …menu (previouslyMCE > …).
v1.0.0 (2026-03-29)
The initial public release of MCE as a plug-and-play Unity package.
New Features
- Map Editor (Scene View) -- RPG Maker XP-inspired tile painting overlay built into Unity's Scene View. Auto-activates on map scenes. Supports autotiles (with animated previews), regular tiles, layer tabs, Pencil/Eraser tools, grid overlay, and keyboard shortcuts.
- One-Click Setup Button -- The Hub Welcome tab now shows a GREEN/RED Setup button that auto-configures the project in a single click, including TMP Essentials auto-import.
- Command Palette -- Press
Ctrl+Shift+Mto open the MCE Command Palette for quick access to all tools and features. - Tri-Inspector (Physical) -- Tri-Inspector is now included as a physical package (no UPM dependency). Eliminates version conflicts and works out of the box in exported
.unitypackagefiles. - PackageExportValidator -- Extreme validation for
.unitypackageexports. Verifies all required assets, assembly definitions, dependencies, and folder structures before export. - defineConstraints on assemblies -- All editor assembly definitions now use
defineConstraintsto prevent editor code from compiling in player builds. Eliminates build errors from editor-only references.
Architecture
- 4-Tier SKU system -- Lite, Basic, Pro, and Source tiers with proper assembly separation and
defineConstraints. - Assembly definition cleanup -- All
.asmdeffiles have correct references, no circular dependencies, and proper platform constraints. - Zenject GUID rebind -- Resolved 200+ missing script errors from Zenject namespace migration. All scene and prefab references restored.
Testing
- 2,169+ tests passing across all test assemblies (EditMode NUnit + Jest Unit + Jest E2E).
- Test gate procedure documented and enforced for pre-push validation.
Importer
- Essentials Importer -- Pokemon Essentials v20/v21/v21.1 import pipeline for maps, tilesets, events, autotiles, characters, and follower sprites.
- AutotileBaker -- Converts RPG Maker autotile format to Unity Rule Tiles.
- TileDataPopulator -- Populates tile collision and encounter data from Essentials map files.
Online (Optional)
- Nakama MMORPG layer -- 18 services: Auth, WorldSync, Battle, Social, Economy, LiveOps, AntiCheat, Persistence, and more.
- PvP matchmaking, trading, guilds, housing -- Full online feature set for multiplayer monster capture games.
Editor Tools
- OpenMon Hub -- Central dashboard with Welcome, Tools, Database Browser, and Settings tabs.
- Type Chart Editor -- Visual editor for type effectiveness tables.
- Database Browser -- Browse and search all monster, move, item, and ability databases.
- SpriteSheet Slicer -- Automated slicing of character and follower spritesheets.
Bug Fixes
- Fixed follower movement jitter on diagonal grid transitions.
- Fixed Zenject binding errors when importing package into a fresh project.
- Fixed
PackageDependencyInstallerpatchingmanifest.jsonas text to avoid PackageManager lock issues. - Fixed export tiers missing Zenject, Resources, and
csc.rspfiles.