Import Pokemon Essentials Projects
Have a Pokemon Essentials project you have been working on for months or years? OpenMon's Essentials Importer converts your PE v20, v21, and v21.1 project data into OpenMon format -- preserving your work while giving you access to Unity's full platform support and commercial licensing.
Available in Basic tier and above.
What Gets Imported
The Essentials Importer handles these data types:
| PE Data | OpenMon Equivalent | Status |
|---|---|---|
| PBS/pokemon.txt | MonsterSpecies ScriptableObjects | Fully supported |
| PBS/moves.txt | MoveData ScriptableObjects | Fully supported |
| PBS/types.txt | TypeChart configuration | Fully supported |
| PBS/abilities.txt | AbilityData ScriptableObjects | Fully supported |
| PBS/items.txt | ItemData ScriptableObjects | Fully supported |
| PBS/trainers.txt | TrainerData ScriptableObjects | Fully supported |
| PBS/encounters.txt | EncounterTable ScriptableObjects | Fully supported |
| PBS/tm.txt | TM/HM compatibility data | Fully supported |
| Map files (.rxdata) | Unity Scenes with GridController | Supported (v20/v21) |
| Tileset images | Unity Sprite Atlases | Supported |
| Event scripts | CommandGraph nodes | Partial (common events) |
| Audio files | AudioClips with AudioManager config | Direct copy |
What Requires Manual Work
Some PE features do not have direct automated conversion:
- Complex Ruby scripts -- Custom PE scripts beyond standard events need manual porting to C# or CommandGraph.
- Plugin-specific data -- Third-party PE plugins store data in non-standard formats.
- Custom UI layouts -- PE's window system is fundamentally different from Unity UI.
- Animated battle sprites -- PE uses a different animation format; sprites import as static frames that you can reassemble.
Prerequisites
Before importing, ensure you have:
- OpenMon installed (Basic tier or above) -- see Installation Guide
- Your PE project folder accessible on disk
- PE version identified -- the importer needs to know if it is v20, v21, or v21.1 (PBS format differs between versions)
Step-by-Step Import
Step 1: Open the Importer
In Unity, go to MCE > Tools > Essentials Importer.
The importer window shows:
- Source Path -- your PE project's root folder (the one containing PBS/, Data/, Graphics/)
- PE Version -- select v20, v21, or v21.1
- Import Options -- checkboxes for each data type
Step 2: Select Your PE Project
Click Browse and navigate to your Pokemon Essentials project folder. The importer validates the folder structure and shows what it found:
PBS/pokemon.txt -- 649 species detected
PBS/moves.txt -- 559 moves detected
PBS/types.txt -- 18 types detected
PBS/abilities.txt -- 191 abilities detected
Maps/ -- 42 maps detected
Step 3: Choose What to Import
For a first import, we recommend importing in stages:
- First pass: Types, Abilities, Moves, Species (data only, no maps)
- Second pass: Items, Trainers, Encounters
- Third pass: Maps and Tilesets
- Fourth pass: Events (review and adjust as needed)
This staged approach lets you verify each data layer before building on it.
Step 4: Run the Import
Click Import Selected. The importer:
- Parses your PBS text files according to the selected PE version format
- Creates ScriptableObject assets in
Assets/ImportedGames/YourProject/ - Generates a detailed import log showing successes, warnings, and items needing attention
Step 5: Review the Import Log
The log categorizes results:
- Imported -- data converted successfully
- Warning -- data converted but with assumptions (e.g., an ability with no OpenMon equivalent mapped to a placeholder)
- Skipped -- data that could not be automatically converted
Step 6: Rename for Commercial Use
This step is critical for commercial releases.
Your PE project likely uses Pokemon-specific names for monsters, characters, and items. These must be replaced with original names before you can sell your game. OpenMon includes a Bulk Rename Tool to help:
- Go to MCE > Tools > Bulk Rename
- Load your imported species database
- Map each imported name to your original name
- The tool updates all references (encounter tables, trainer rosters, evolution chains) automatically
Move names and ability names are generally safe to keep as-is (they describe mechanics, not IP), but monster names, character names, and item names with Pokemon-specific branding must change.
Post-Import Checklist
After importing, work through this checklist:
- Verify species data in the Monster Database Editor
- Spot-check type effectiveness in the Type Chart Editor
- Test a few battles with imported monsters and moves
- Walk through imported maps and verify tile collisions
- Test NPC events and dialog flow
- Replace all Pokemon-specific names with originals
- Add your own sprites for renamed monsters (use Art Studio for generation)
- Configure encounter tables for your game's progression
- Set up save system with your game's save format
Common Import Issues
"Species X has an unknown ability"
PE allows custom abilities via plugins. If the importer does not recognize an ability, it maps to a placeholder. Create a custom AbilityData asset in OpenMon to match the behavior.
"Map tile Y has no matching collision type"
PE uses some tile properties that do not map directly to OpenMon's GridController. The importer creates the tile but flags it for manual collision assignment.
"Evolution method Z not supported"
OpenMon supports 30+ evolution types, but PE plugins may add custom ones. These are logged as warnings for manual implementation.
Why Migrate?
The effort of importing and renaming is a one-time cost. What you gain:
| Before (PE) | After (OpenMon) |
|---|---|
| Windows only | 7+ platforms |
| Fan game only | Commercial release |
| No multiplayer | 20 online services available |
| Ruby scripting | C# with full IDE support |
| No automated tests | NUnit test framework |
| Manual deployment | Unity build pipeline |
| 320x240 resolution | Any resolution |
Your years of creative work -- the world you built, the monsters you designed, the story you wrote -- deserves to reach the widest possible audience on the best possible technology.
Get Help
- Discord: Join the OpenMon community -- the #essentials-import channel has dedicated support
- Documentation: Browse the full guide library for OpenMon-specific workflows
- Issues: Report import bugs on GitHub