No Package Export (Yet)
Currently, nonkit operates as a live development environment:- VS Code compiles and sends scripts to the game
- The game plugin receives and executes them in real-time
- Content exists only while VS Code is connected
- You cannot distribute your content to other players
- Content requires both VS Code with nonkit-vsc AND the game with nonkit-plugin
- There’s no way to “export” a finished mod
A packager to compile nonkit projects into distributable BepInEx plugins is planned for a future release.
Platform Requirements
Windows Only
nonkit uses Windows named pipes for communication between VS Code and the game. This means:- Windows is required - Linux and macOS are not supported
- WSL (Windows Subsystem for Linux) may work but is untested
- The game and VS Code must run on the same machine
Simultaneous Execution
Both components must run at the same time. VS Code (with nonkit-vsc) sends scripts to the running game (with nonkit-plugin) over a named pipe. This means you cannot:- Pre-compile scripts for later use
- Run content without VS Code connected
- Queue scripts while the game is closed
Game Dependency
BepInEx Required
nonkit-plugin is a BepInEx plugin. You must:- Install BepInEx 6 in your NONMP game folder (NONMP is an IL2CPP game)
- Place nonkit-plugin.dll in the plugins folder
- Ensure BepInEx loads successfully on game start
Gameplay State Required
The plugin only accepts commands during active gameplay:- Must load a save file or start new game
- Main menus and loading screens don’t process dialogue
- Some commands require specific game states (e.g.,
start_battleneeds a valid battle context)
API Volatility
This means:- Commands may change signature or behavior
- Functions may return different values
- New features may be added, old ones removed
- Internal IDs (items, locations, characters) may shift
What to Expect
| Stability | Examples |
|---|---|
| Likely stable | Basic dialogue, char_creat, back_creat |
| May change | Specific item IDs, character expression names |
| Uncertain | Advanced battle commands, internal game values |
Content Limitations
No New Assets
You cannot add:- New character sprites or expressions
- New background images
- New music or sound effects
- New items or item icons
Icon Workaround
The game loads map event icons based on the event’s ID. Since custom events must use non-existing IDs to avoid overriding existing quests, and nonkit cannot yet inject custom resources, the game would fail to find an icon for your event. TheNonkit.IconSourceId parameter works around this by specifying an existing event ID to borrow the icon from:
10084 instead of looking for an icon matching your custom event’s ID.
Limited Table Support
Config tables are injected by matching the filename to the game’s internal table name. Any table that follows the game’s Luban data format can potentially be injected, but commonly used tables include:- TbMapEvent (map events)
- TbCondition (unlock conditions)
- TbLocalizationAutoGenerated (localization strings for config data)
Tables must have records with either an
ID (numeric) or Key (string) field for identification.Script Merging
Scripts are merged in memory and can override game content. Game files are never modified, but changes made through nonkit (such as giving yourself items) will persist if you save your game. Additional considerations:- Node names must be unique across all scripts (yours and the game’s)
- Conflicting node names will cause unpredictable behavior
- Use prefixes like
MyMod_to avoid collisions
Performance Considerations
- Large scripts may take longer to compile and transfer
- Many simultaneous events could impact game performance
- The named pipe has a message size limit (varies by system)
Summary
| Capability | Status |
|---|---|
| Live script development | Yes |
| Hot reload dialogue | Yes |
| Custom map events | Yes |
| Standalone mod export | No |
| Cross-platform | No (Windows only) |
| New assets | No |
| Offline mode | No |
Working Within Limits
Despite these constraints, nonkit enables:Rapid Prototyping
Test dialogue and quest ideas instantly without restarting the game.
Content Exploration
Learn how the game’s dialogue system works by experimenting.
Personal Projects
Create custom content for your own playthroughs.
Future Modding
Prepare content that can be packaged when export tools are available.
