-
-
Notifications
You must be signed in to change notification settings - Fork 2
Home
Here is the updated roadmap. I have moved several items to Completed based on the current state of the codebase (e.g., dependency resolution, update checking, Ollama integration, and secure remote tunneling).
I have also added a completely new section at the bottom for Architecture & Tech Debt and New Product Suggestions based on the recent senior-level audit of the codebase to ensure long-term stability and security.
This roadmap tracks completed, in-progress, planned, and experimental work for PocketMC.
PocketMC’s goal is simple:
Make local Minecraft server hosting on Windows feel safe, understandable, and friend-ready without forcing users through terminals, random tutorials, manual port chaos, or Java version misery.
- ✅ Completed
- 🟡 Partial / in progress
- ⏳ Planned
- 🧪 Research / needs validation
- ❌ Removed / not planned
- Replace Inno Setup with Velopack for app packaging and auto-update support
- Full UI/UX refactor
- Fix navigation flow issues
- Improve layout consistency
- Add Playit / agent connection page during first-time setup after root directory selection
- App-local runtime architecture
- Tray integration
- Windows toast notifications
- Theme settings
- Mica UI settings for supported Windows versions
- Background service / tray hybrid mode
- Windows startup integration
- Run servers without keeping the full app window open
-
Java server support
-
Vanilla
-
Paper
-
Fabric
-
Forge
-
NeoForge
-
Bedrock Dedicated Server hosting support
-
PocketMine-MP support
-
Auto Java version detection
-
Java compatibility validation
-
Managed Java runtimes
-
Java 8
-
Java 11
-
Java 17
-
Java 21
-
Java 25
-
Managed PHP runtime for PocketMine-MP
-
Start / stop / restart / kill server controls
-
Crash detection
-
Auto-restart with backoff
-
Graceful shutdown using RCON when available
-
Console fallback shutdown
-
Port preflight checks and recovery messaging
- Replace manual Playit integration with automated agent-based setup flow
- Automatic Playit agent provisioning
- Agent claim / setup flow
- Existing tunnel discovery
- Automatic tunnel creation when possible
- Public tunnel address display
- Handling for:
- Invalid tokens
- Offline agents
- Claim-required state
- Tunnel limits
- Integrate Geyser
- Integrate Floodgate
- One-click enable toggle
- Patch Geyser Bedrock listener port before launch
- Manual backups
- Scheduled backups
- One-click restore
- Backup retention pruning
- Locked-file-tolerant backup creation
- Safe ZIP extraction during restore
- External backup-folder replication
- Native Google Drive backup integration
- Native Dropbox backup integration
- Native OneDrive backup integration
- OAuth account connection flow & token handling
- Resilient upload policies and progress tracking
- Backup metadata / history viewer
- Backup health warnings
- Modrinth browser support
- CurseForge browser support with user-provided API key
- Poggit / PocketMine plugin integration
- Bedrock
.mcpack,.mcaddon, and.ziplocal add-on installation - Bedrock behavior/resource pack registration in world JSON files
- Marketplace dependency resolution where upstream metadata supports it
- Modpack parser and import improvements
- Safer uninstall flow for mods/plugins/add-ons (Moved from In Progress)
- Version compatibility warnings before install (Moved from In Progress)
- Installed content update checker (Moved from In Progress)
- Import existing server folders (Vanilla, Paper, Fabric, Forge, NeoForge, Bedrock, PocketMine)
- Detect server type automatically
- Graceful version update flow for existing server instances
- Pre-update backup requirement
- Compatibility check before updating
- Rollback to previous server version / snapshot
- Update Java runtime if the new Minecraft version needs it
- Warn about plugins/mods that may break after update
- Online player list & UUID mapping
- Operators management
- Whitelist management
- Ban list and IP ban list management
- Kick / Ban player actions
- Geyser/Floodgate-aware identity display
- Friendly grouped editor for
server.properties - Gameplay, World, Network, Performance, and Security sections
- Validate ports, booleans, numbers, and unsupported values
- Explain each setting in beginner-friendly language
- Detect Simple Voice Chat mod/plugin
- Detect or pre-generate voice chat config
- Detect configured UDP port
- Create Playit Simple Voice Chat tunnel where supported
- Patch config safely when needed
- Sanitized console output
- Console log buffering & session log file generation
- Player count parsing & online player name tracking
- Dependency health dashboard (Playit, Adoptium, Modrinth)
- Diagnostic reporting / support data bundle generation
- Local network / Bedrock loopback helper using
CheckNetIsolation.exe - Local web dashboard (Instance overview, console viewer, controls)
- Mobile responsive UI for the web dashboard
- Local remote-control API & WebSocket streams
- Secure remote access via Cloudflare Quick Tunnels or Playit HTTPS tunnels (New)
- Discord DM notifications for Remote Dashboard URL status (New)
- AI-based server analytics
- Session / event summarization
- Player activity insights from logs
- Smart recommendations from logs
- Multiple AI providers (Google Gemini, OpenAI, Anthropic Claude, Mistral AI, Groq)
- Ollama / compatible local endpoint support (New)
- CPU / RAM monitoring foundation
- RAM usage graph
- CPU usage graph
- TPS monitoring
- Player activity timeline
- Crash frequency chart
- Disk usage tracking
- Backup size history
- Per-instance performance summary
- Auto-suggest fixes for some startup and port issues
- Port Probe & local port open checks
- Playit tunnel target port mismatch checks
- Detect common config mistakes
- Detect missing or broken server files
- Detect plugin/mod loader mismatch
- Detect missing mod/plugin dependencies
- Repair common errors automatically
- Generate a clear fix report before applying changes
- Local Bedrock add-on installation
- Bedrock add-on marketplace browsing through CurseForge where supported
- Pre-install backup prompt for risky changes
- Modpack update synchronization (safely updating without wiping user data) (New)
- One-click start from dashboard
- One-click backup from dashboard
- One-click open console
- One-click copy public address
- Quick action menu on instance cards
- Keyboard shortcuts for common actions
- Pin favorite actions per instance
- Change runtime provisioning priority from Java 8 → 25 to Java 25 → 8 when preferred
- Download only the required Java version by default
- Optional “install all runtimes” button
- Runtime repair button
- Runtime uninstall button
- Better progress UI for large runtime downloads
- Per-instance runtime health indicator
- Better user-facing error messages
- Structured error codes
- “Copy error report” button
- Better crash alerts
- Better tunnel failure alerts
- Better marketplace/API failure alerts
- Clear next-step suggestions for every major failure
- “Open related settings” action from error dialogs
Goal: make sharing a server with friends stupidly simple, because apparently “what IP do I use?” remains one of civilization’s unsolved problems.
- Single “Share Server” button
- Copy Java Edition join address
- Copy Bedrock Edition join address
- Show LAN address
- Show public Playit address
- QR code for mobile sharing
- Copy invite message
- Detect whether Java, Bedrock, cross-play, and voice chat are correctly exposed
- Warn when the server is only available locally
- Run quick connectivity checks before showing the invite as ready
- Custom server JAR support
- Custom startup command support
- Custom server type profile
- Manual runtime selection
- Quick server creation flow
- Pre-configured templates (Vanilla survival, Paper performance, Modded Fabric, Cross-play, etc.)
- Beginner-friendly descriptions
- Recommended RAM and port defaults
- Optional Playit setup during onboarding
- Optional backup schedule during onboarding
- Dedicated backup and restore dashboard
- Manual restore points (Pre-update, pre-plugin install)
- Backup verification & size trends
- Clear warning when a world has not been backed up recently
- One-click rollback after failed update or risky change
Goal: Decouple domain logic from infrastructure to ensure the app remains maintainable, secure, and open-source friendly as features expand.
- Decouple Event Orchestration: Implement an Event Bus / MediatR pattern so UI actions and infrastructure (like Discord DMs and Tunnels) don't bloat classes like
RemoteControlCoordinator. - Refactor AI API Client: Resolve OCP (Open-Closed Principle) violations in
AiApiClientby extracting provider logic into anIAiProviderstrategy pattern. - Refactor Tunnel Service: Break down
TunnelService.csinto a strict state machine to handle Playit resolution rather than complex procedural nesting. - Process Memory Auditing: Fix potential memory leaks in
ServerProcessManagerwhere historical/crashed processes linger indefinitely without explicit cleanup. - Security Review: Remove pseudo-entropy from DPAPI encryption (
DataProtector.cs) and migrate raw Discord Key handling to a secure backend relay/OAuth to prevent token exposure.
- Live interactive RAM/CPU charts on the web interface.
- Mobile-friendly add-on / plugin installation from the browser.
- Multi-user remote access with role-based permissions (Admin vs. Moderator).
- Discord bot setup wizard
- Minecraft ↔ Discord chat relay
- Console logs sync
- Admin alerts (Crash, RAM, CPU, Backup, Players)
- Slash commands (
/status,/start,/stop,/players)
- Auto JVM flag tuning
- RAM recommendation based on server type and player count
- CPU-aware configuration
- Paper/Purpur config recommendations
- View distance / simulation distance suggestions
- Plugin/mod performance warnings
- Explain every applied optimization before changing files
- Test plugin/mod changes before applying to the real server
- Launch temporary validation instance
- Detect startup crash & missing dependencies
- Apply changes only after validation
- Merge “AI Based Server Analytics” and “Advanced AI Insights” into one AI analytics section
- Merge generic “better alerts” into Error Handling and Alerts
- Treat native cloud backups separately from external sync-folder backup replication (Completed)
- Keep Playit.gg as the built-in public access path instead of adding random tunnel providers too early
- Avoid full cloud hosting unless PocketMC becomes a different product
- Avoid account systems until remote/cloud features require them
- Avoid Docker-first architecture because PocketMC is intentionally Windows-native and local-first