PMMP Studio
The ultimate VS Code extension for PocketMine-MP 5 plugin development.
Full IntelliSense, real-time diagnostics, plugin scaffolding, and a built-in API reference — everything you need to build PMMP plugins without leaving your editor.
Features
Plugin Scaffolding
Generate a complete plugin structure in seconds with PMMP: New Plugin:
plugin.yml with all required fields
Main.php extending PluginBase
composer.json with PMMP 5 dependency
- Proper PSR-4 namespace structure
Full API Autocompletion
PMMP Studio ships with 1,498 PHP stubs extracted directly from PocketMine-MP 5.43.2. Type use pocketmine\ and navigate the entire API by namespace:
use pocketmine\ → block, command, entity, event, inventory, item...
use pocketmine\event\ → player, entity, block, world, server...
use pocketmine\event\player\ → PlayerJoinEvent, PlayerQuitEvent, PlayerMoveEvent...
Real-Time Diagnostics
Catch PMMP-specific mistakes as you type — no need to run the server:
| Error |
Severity |
Event handler with private/protected visibility |
Error |
->getLevel() (removed in PMMP 5) |
Warning + auto-fix |
getLevelByName() (renamed to getWorldManager()->getWorldByName()) |
Warning + auto-fix |
Handler return type is not void |
Error |
Missing declare(strict_types=1) |
Warning + auto-fix |
plugin.yml missing required fields |
Error |
plugin.yml using API 4.x |
Warning |
Auto-Import
Use any PMMP class without hunting for its namespace. A lightbulb appears → click → the use statement is inserted automatically.
// Type PlayerJoinEvent → lightbulb → click →
use pocketmine\event\player\PlayerJoinEvent; // ← added automatically
Rich Hover Documentation
Hover over any symbol to see its full signature, parameters, return type, and a link to its definition:
function HealManager::heal(Player $player, int $amount): void
Parameters:
• $player — Player
• $amount — int (default: 20)
Returns: void
Defined in HealManager.php:34
Signature Help
See parameter hints inline as you type function calls — just like Java:
$player->sendTitle( ← shows: string $title, string $subtitle, int $fadeIn, int $stay, int $fadeOut
Supported methods: sendTitle, sendMessage, sendPopup, sendTip, scheduleRepeatingTask, scheduleDelayedTask, teleport, broadcastMessage, registerEvents, and more.
Tick → Seconds Inlay Hints
Never calculate ticks manually again:
$this->getScheduler()->scheduleRepeatingTask($task, 200); // ← ≈ 10s
$this->getScheduler()->scheduleDelayedTask($task, 600); // ← ≈ 30s
PHPDoc Generator
Type /** above any function → press Enter → get a complete PHPDoc block with @param and @return auto-filled. Or right-click any undocumented method → Add PHPDoc.
plugin.yml IntelliSense
Full autocomplete inside plugin.yml:
api: → all available 5.x versions
default: → op, everyone, not op
depend: / softdepend: → known plugin names
- All root keys with descriptions
Config.yml Awareness
getConfig()->get(" shows keys from your config.yml as suggestions — with current values shown in the description.
Cross-File Symbol Awareness
Define an enum in utils/Rank.php → access Rank::ADMIN elsewhere → hover shows all cases, their values, and a link back to the definition.
API Reference Panel
PMMP: Open Reference Panel opens a searchable sidebar with:
- All player, entity, block, and world events
- GameModes, VanillaEffects, VanillaItems, VanillaBlocks
- Event priority levels
- Tick → time reference table
Click any item to insert it directly into your code.
Requirements
Commands
| Command |
Description |
PMMP: New Plugin |
Scaffold a complete plugin project |
PMMP: Add Event Handler |
Browse and insert an event handler |
PMMP: Add Command |
Generate a Command class |
PMMP: Open Reference Panel |
Open the API reference sidebar |
Snippets
| Prefix |
Description |
pmmp-main |
Plugin Main class |
pmmp-listener |
Event Listener class |
pmmp-task |
Scheduled Task class |
pmmp-command |
Command class |
register-listener |
Register listener in onEnable |
schedule-task |
Repeating task |
schedule-delayed |
Delayed task |
add-effect |
Add potion effect with enum picker |
set-gamemode |
Set player gamemode |
foreach-players |
Loop over online players |
send-title |
Send title to player |
plugin-yml |
Full plugin.yml template |
PMMP 5 API Coverage
The bundled stubs cover the full PocketMine-MP 5.43.2 API including:
block · command · console · crafting · data · entity · event · form · inventory · item · lang · network · permission · player · plugin · promise · resourcepacks · scheduler · stats · utils · world
License
MIT © GiovanySosa