
Helios Core
HeliosCore is the foundation plugin powering the entire Helios ecosystem, providing shared services for storage, permissions, messaging, licensing, player profiles, and the live web dashboard used across all Helios plugins.
Helios Core 1.0.0
release9 мая 2026 г.☀️ HeliosCore
The foundation of the Helios ecosystem.
Service Registry • Unified Storage • Live Web Dashboard • License Validation • Shared API
📖 Table of Contents
- ✨ Why HeliosCore?
- 📋 Requirements
- 📥 Installation
- 🎮 Commands
- 🔐 Permissions
- 🌐 Web Dashboard
- ⚙️ Configuration
- 🔌 Developer API
- 🚀 Quick-Start Examples
- ❓ FAQ
- 💬 Support
✨ Why HeliosCore?
HeliosCore is required by every Helios plugin (HeliosAdmin, HeliosEconomy, HeliosChat, HeliosTab, NinezJobs, NinezSkills, NinezMarket, NinezGUI, NinezLogs, …). Instead of every plugin re-implementing storage, permissions, messaging, and dashboards, HeliosCore provides them once — so your whole suite shares a single source of truth.
| 🧠 Service Registry | 💾 Unified Storage | 🔐 PermissionService |
|---|---|---|
| Clean cross-plugin APIs | Yaml / SQLite / MySQL / MariaDB | Runtime registration with descriptions |
CoreServices.require(...) | Shared by every Helios plugin | LuckPerms / GroupManager friendly |
| 📜 AuditService | 🌐 Web Dashboard | 🪪 Licensing (WIP) |
|---|---|---|
| Append-only audit log | HTTP + SSE host with token auth | One license check gates the suite |
| Used by every plugin | Pluggable contributors | Soft-fails in offline grace mode |
🚧 Licensing is a work in progress. The License Server, key issuance, and runtime validation pipeline are still being finalized. HeliosCore currently runs in permanent offline grace mode — install and use the suite normally; the licensing layer will activate transparently in a future release.
✅ Adventure / MiniMessage native • PlaceholderAPI bridge • Vault adapter • bStats metrics
📋 Requirements
| Requirement | Version |
|---|---|
| Minecraft | 1.21.x • 26.1.x (native & tested) |
| Server | Paper / Purpur (Spigot not officially supported) |
| Java | 21+ |
| Soft-depends | Vault • PlaceholderAPI • LuckPerms (all optional) |
🔌 HeliosCore loads before all Helios plugins automatically (
loadbeforedirective).
📥 Installation
1. Drop HeliosCore-x.y.z.jar → plugins/
2. Start the server (config & data folder auto-generate)
3. Run /hcore setup (creates one-time dashboard owner link — REQUIRED)
4. Open the link printed in console → set username + password in your browser
5. (Optional) Edit plugins/HeliosCore/config.yml for storage, dashboard, license
6. Run /hcore reload
7. Install other Helios plugins — they register into HeliosCore automatically
⚠️
/hcore setupis required. Until you run it and complete owner setup, the dashboard refuses logins.
🎮 Commands
Aliases:
/hcore•/helioscore•/ncore•/ninezcore
| Command | Description | Permission |
|---|---|---|
/hcore | Show plugin status & loaded services | — |
/hcore about | Framework information & version | helioscore.command.about |
/hcore reload | Reload framework configs and database settings | helioscore.command.reload |
/hcore services | List loaded services and their owning plugins | helioscore.command.services |
/hcore database | Inspect / test the configured database backend | helioscore.command.database |
/hcore dashboard | View dashboard status and access URL | helioscore.command.dashboard |
/hcore doctor | Run diagnostic health checks on the entire ecosystem | helioscore.command.doctor |
/hcore update | Check & apply ecosystem plugin updates | helioscore.command.update |
/hcore setup | Generate a one-time setup link for the dashboard owner | helioscore.command.setup |
/hcore register | Generate a one-time registration link for staff users | helioscore.command.register |
🔐 Permissions
HeliosCore uses a clean, hierarchical permission tree that drops straight into LuckPerms, GroupManager, PermissionsEx, or vanilla op.
🌳 Hierarchy
helioscore.admin (default: op) ━ grants EVERYTHING
└── helioscore.command.all ━ all leaf nodes below
├── helioscore.command.about
├── helioscore.command.reload
├── helioscore.command.services
├── helioscore.command.database
├── helioscore.command.dashboard
├── helioscore.command.doctor
├── helioscore.command.update
├── helioscore.command.setup
└── helioscore.command.register
All nodes default to
falsefor non-ops. Granthelioscore.adminfor full access, or assign individual leaf nodes to staff roles.
💡 Suggested LuckPerms Setup
📋 Click to expand example LuckPerms commands
# ────────────── Owner — full control ──────────────
/lp group owner permission set helioscore.admin true
# ────────────── Admin — everything except setup/register ──────────────
/lp group admin permission set helioscore.command.all true
/lp group admin permission set helioscore.command.setup false
/lp group admin permission set helioscore.command.register false
# ────────────── Senior Staff — read-only diagnostics ──────────────
/lp group senior permission set helioscore.command.about true
/lp group senior permission set helioscore.command.services true
/lp group senior permission set helioscore.command.dashboard true
/lp group senior permission set helioscore.command.doctor true
🌐 Web Dashboard
HeliosCore ships with a built-in HTTP + SSE server. Every Helios plugin can mount its own page, actions, and live data feeds via the DashboardContributor API.
📊 Out of the box you get…
- 📈 Live server status — TPS, MSPT, memory, uptime, online players
- 📡 Audit log stream — every staff action across every plugin, in real time
- 🧩 Plugin tiles — one tile per Helios plugin showing its service health
- 💾 Backup controls (via HeliosAdmin) — create, list, delete, restore world backups
- 🔒 Role gating —
OWNER/ADMIN/STAFFactions checked server-side - 🔑 Token authentication — rotate any time with
/hcore dashboard
🚀 First-Run Flow
1. /hcore setup → console prints a one-time link
2. Open link in browser → set username & password for OWNER
3. Log in → Settings → Users to invite staff
(or use /hcore register)
⚙️ Configuration
Key sections in plugins/HeliosCore/config.yml:
# Storage backend — shared by every Helios plugin
storage:
type: sqlite # yaml | sqlite | mysql | mariadb
mysql:
host: localhost
port: 3306
database: helios
username: helios
password: changeme
pool-size: 10
# Web dashboard
dashboard:
enabled: true
host: 0.0.0.0
port: 8765
public-url: "https://panel.example.com"
tls:
enabled: false
cert: ""
key: ""
# Licensing — work in progress
# The license server and key issuance flow are still being built.
# These settings are read but currently no-op; HeliosCore runs in offline grace mode.
license:
key: "PASTE-YOUR-LICENSE-HERE"
server-url: "https://license.helios.dev"
grace-period-hours: 72
# Audit log
audit:
retention-days: 30
console-mirror: false
# Debug logging
debug:
enabled: false
verbose-services: false
🔄 Run
/hcore reloadto apply changes without restarting.
🔌 Developer API
HeliosCore exposes services through a tiny, stable lookup:
import dev.ninez.core.api.CoreServices;
import dev.ninez.core.api.permission.PermissionService;
import dev.ninez.core.api.storage.StorageService;
import dev.ninez.core.api.message.MessageService;
import dev.ninez.core.api.audit.AuditService;
@Override
public void onEnable() {
PermissionService perms = CoreServices.require(this, PermissionService.class);
StorageService storage = CoreServices.require(this, StorageService.class);
MessageService msg = CoreServices.require(this, MessageService.class);
AuditService audit = CoreServices.require(this, AuditService.class);
perms.registerPermissions(MyPermissions.defaults());
audit.log(this, "Enabled MyPlugin");
}
Add HeliosCore as a hard depend in your plugin.yml:
depend:
- HeliosCore
🚀 Quick-Start Examples
# ━━━━━━━━━━━ First boot ━━━━━━━━━━━
/hcore setup # Generate owner setup link (REQUIRED)
/hcore dashboard # Print dashboard URL & status
# ━━━━━━━━━━━ Day-to-day ━━━━━━━━━━━
/hcore # Status overview
/hcore services # Which plugins registered which services
/hcore doctor # Diagnostic health checks
/hcore database # Test storage backend connectivity
/hcore reload # Hot reload config
# ━━━━━━━━━━━ Maintenance ━━━━━━━━━━━
/hcore update # Check for ecosystem updates
/hcore register # Invite a new dashboard staff user
❓ FAQ
Do I have to use HeliosCore?
If you're using any Helios plugin, yes. It's the foundation — they won't enable without it.
What database should I use?
| Use Case | Recommended |
|---|---|
| Single server, small/medium playerbase | sqlite (default, zero-config) |
| Multi-server / network / large playerbase | mysql or mariadb (shared) |
| Tiny test servers | yaml (human-readable, no driver) |
Is the dashboard safe to expose to the internet?
Yes — token authentication, role-gated actions, and TLS support. Put it behind a reverse proxy (nginx / Caddy) for HTTPS in production.
How does licensing work?
🚧 Status: work in progress. The Helios License Server and key issuance flow are still under active development. Today HeliosCore reads the
license:block inconfig.ymlbut always runs in offline grace mode, so the suite is fully usable while the licensing pipeline is finished.
Once shipped: paste your purchase key into config.yml. HeliosCore validates with the Helios License Server periodically. If the license server is unreachable, the plugin keeps working in offline grace mode for the configured period.
Will HeliosCore conflict with Vault / LuckPerms / PlaceholderAPI?
No — those are soft-depends. HeliosCore detects and integrates with them automatically.
Can I write my own dashboard page?
Yes — implement DashboardContributor and register it. Your plugin gets a tile, a page, and SSE/action endpoints. See the developer documentation.
💬 Support
| Channel | Link |
|---|---|
| 💬 Discord | Helios Support Server |
| 🐛 Issue Tracker | Use the Discussion tab on this resource |
| 📚 Documentation | Bundled README.md and developer guide |
☀️ HeliosCore
One foundation. One license. One dashboard. The whole Helios ecosystem.