Installation
1. Pre-flight
Dependency | Required | Why |
|---|---|---|
AstralCore | Yes | Configuration loading, command framework, menu system. |
packetevents | Yes | Input detection ( |
AstralStats | Yes | Skill cooldowns scale by the player's |
AstralSync | Yes | Player class data stored as |
AstralSkill | No | The skill engine that abilities cast into. Soft dependency. |
AstralHud | No | Soft dependency. |
Paper api-version | Yes | Requires |
2. Drop the JAR
Place AstralClasses-<version>.jar in your server's plugins/ directory alongside AstralCore, packetevents, AstralStats, and AstralSync.
3. First start
On first start the plugin copies its bundled default config.yml and double-jump.yml, and creates empty classes/ and menus/ directories (these two are loaded with AstralCore's recursive folder loader, which does not seed default files — you populate them yourself, see steps 5–6 below):
4. Configure per-group enablement
Abilities and double-jump are per-group optional. Edit config.yml:
Per-group behavior:
Not in
skill-enable-groups: No input packet listeners register;SkillServiceis skipped entirely — abilities, cooldowns, and double jump are all unavailable, regardless ofdouble-jump-enable-groups.In
skill-enable-groupsbut not indouble-jump-enable-groups: Abilities work normally; double jump specifically does not activate (see Double Jump for this dependency).Set
default-class: Must match an existing classid— used viaClassSnapshotAdapter.create()to auto-grant new players that class atstarting-level.
Additional options
5. Add classes
Create YAML files in
plugins/AstralClasses/classes/— one file per class, keyed by theidfield.Reload at runtime with
/class reload(permission:class.command.reload).
Example (trimmed from the shipped mage.yml):
See Classes for the full schema.
6. Customize menus
The class selection menu is plugins/AstralClasses/menus/main.yml — a standard AstralCore menu. Edit freely. Requires the %classes_*% placeholder family for class rendering; see Placeholders.
Permissions
Node | Usage |
|---|---|
| Open the class menu. |
| Reload configuration with |
| Toggle auto-attack mode. |
| Reset a player's class data with |
| Apply an ad-hoc stat modifier with |