Language: English | Español
Modular framework for Minecraft Bedrock Edition (Behavior Packs)
- What is PMMPCore?
- Status
- Quickstart
- Included plugins
- Documentation
- Repository structure (high level)
- Contributing
- FAQ
- See also
PMMPCore is a modular framework for Bedrock Script API projects, inspired by PocketMine-style plugin ecosystems.
It provides:
- A predictable plugin lifecycle (
onLoad,onEnable,onStartup,onWorldReady,onDisable) - A shared persistence layer built on world Dynamic Properties (
DatabaseManager,PMMPDataProvider, optionalRelationalEngine) - A unified services layer (events, commands, scheduler, permissions, migrations)
- Diagnostics to keep the platform observable as it grows
PMMPCore is implemented as a Behavior Pack (not a dedicated server mod). It runs inside the limitations of the Bedrock Script API.
- Project state: functional prototype with an expanding public API
- Target: a stable core usable by third-party plugins inside this repository-based ecosystem
- Minecraft Bedrock (Preview) with Script API enabled (the repo is already placed under a
development_behavior_packs/path).
- Copy (or keep) this folder as a Behavior Pack under:
com.mojang/development_behavior_packs/PMMPCore-Framework
- In Minecraft, enable the pack in your world.
- Start the world, then open chat and run:
/info
Run:
/diag
/selftest
/diag: shows services, event topics, scheduler tasks, and last tick/flush metrics/selftest: smoke tests KV + relational layer and prints a summary
PMMPCore includes a native SQL debug shell with global on/off state.
/sqltoggle on
/sqlseed
/sql SELECT * FROM items
/sql upsert items 99 {"name":"AdminBlade","power":250}
/sql delete items 99
/sqltoggle off
Notes:
/sql selectonly acceptsSELECTqueries from the SQL subset implemented byRelationalEngine./sql upsertexpects JSON inline (<table> <id> <json-object>).- SQL shell commands require SQL permissions (
pmmpcore.sql.read/write/admin) and respect the global toggle.
PMMPCore is a framework plus a curated set of core plugins living under scripts/plugins/.
Current included plugins:
- MultiWorld: dimension-backed custom worlds with commands and persistence
- PurePerms: permissions and groups, with a stable core-facing permission contract
- PlaceholderAPI: dynamic
%placeholder%parser with built-in expansions and plugin runtime registry - EconomyAPI: full economy suite (wallet, debt, bank, ranking, commands, and runtime API for plugins)
- PureChat: group-based chat formats, player prefix/suffix, and nametag templates
- EssentialsTP: teleportation system with homes, warps and back functionality
- FormAPI: Bedrock forms system with interactive menu support
- ScoreHud: custom score and statistics display
- ExamplePlugin: reference plugin showing MultiWorld hooks and patterns
See each plugin’s documentation under docs/plugins/.
Start here:
- Docs index:
docs/README.md
Core references:
- Public API (core services, lifecycle, stability levels):
docs/API_PUBLIC_GUIDE.md - Database layer (KV, WAL, DataProvider, RelationalEngine + SQL subset):
docs/DATABASE_GUIDE.md - Project architecture and runtime pipeline:
docs/PROJECT_DOCUMENTATION.md
Plugin authors:
- Plugin development guide:
docs/PLUGIN_DEVELOPMENT_GUIDE.md - Plugin migration guide (legacy → API v1 patterns):
docs/PLUGIN_MIGRATION_GUIDE.md
scripts/
main.js # boot pipeline (worldLoad-safe init + diagnostics)
PMMPCore.js # core facade + service registry
DatabaseManager.js # persistence: cache + dirty buffer + flush + WAL hook
api/ # public export surface for third-party plugins
core/ # events, scheduler, permissions, observability, etc.
db/ # relational engine, codecs, migrations, WAL
plugins/
MultiWorld/
PurePerms/
PlaceholderAPI/
EconomyAPI/
EssentialsTP/
FormAPI/
ScoreHud/
ExamplePlugin/
docs/
README.md # documentation index
DATABASE_GUIDE.md
API_PUBLIC_GUIDE.md
PROJECT_DOCUMENTATION.md
plugins/ # plugin manuals (usage + configuration)
- Keep compatibility with the Bedrock Script API version used by this repo.
- Prefer backwards-compatible changes for
stableAPIs. - Document changes in
docs/(and add an.es.mdcounterpart when applicable). - Avoid direct
world.getDynamicProperty/world.setDynamicPropertyusage for PMMPCore data; usePMMPCore.db.
Q: Can I use PMMPCore on a dedicated server?
A: PMMPCore is designed as a Behavior Pack and works on Minecraft Bedrock Edition worlds (including realms and dedicated servers that support Behavior Packs).
Q: Do I need special permissions to use commands?
A: Yes, some commands require specific permissions. Use PurePerms to configure appropriate permissions for each group.
Q: What if my data disappears after restart?
A: Make sure to call PMMPCore.db.flush() after critical operations or use commands like /moneysave to force persistence.
Q: Can I disable individual plugins?
A: Yes, you can comment out the corresponding import line in scripts/plugins.js to disable specific plugins.
Q: How do I report bugs or request features?
A: Use the GitHub repository's issue system, providing details about the problem and steps to reproduce.
Q: Is it safe to use PMMPCore in production?
A: PMMPCore is in prototype status with public API in progress. It's functional but may have breaking changes in future versions.
- Full documentation - Detailed guides and references
- Public API guide - API reference for developers
- Database guide - Persistence and storage
- Plugin development guide - How to create plugins
