Astral Realms Documentation Help

Commands

AstralSkill registers three debug and admin commands under the base command /skill. All subcommands are gated by the single permission node skills.command — there are no per-subcommand permissions.

/skill cast

Cast a loaded skill from the player's current eye location in the direction they are looking. Player-only command.

Argument

Type

Description

<skill>

Skill ID

The skill to cast. Must be a loaded skill id; unknown ids error with Skill '<id>' not found. Tab-completion via @skillBlueprints lists all available skill ids.

Invocation:

/skill cast <skill>

When invoked, the skill is resolved from the skill blueprints, and then cast asynchronously from the player's eye location (Player#getEyeLocation()) along their current look direction. The skill is executed via the normal skill service runtime, respecting all timing, effects, targeting, and chaining rules as if triggered by any other system.

/skill metrics

Print performance metrics for the skill update-loop shards. Non-player commands allowed (any CommandSender).

/skill metrics

Displays a summary of the multi-threaded shard architecture's performance counters, reported per shard:

  • Total ticks — how many times the shard's update loop has executed

  • Over-budget ticks — count of ticks exceeding the hard 1ms per-tick budget

  • Peak duration — the longest single tick latency observed on that shard

  • Started / finished — total skill instances activated and deactivated on each shard

Each metric is accumulated across the entire uptime of the server (since plugin enable). These counters give you a complete picture of whether the skill runtime is meeting its performance targets.

See Async execution: sharded update engine and Configuration for tuning details.

/skill reload

Reload all skill YAML files from the skills/ folder. Non-player commands allowed.

/skill reload

Triggers loadConfiguration(), which scans the entire skills/ folder recursively and deserializes all .yml files into WrappedSkill instances. Each skill is initialized into its concrete type (projectile, laser, impact, etc.) and registered by id. The command replies with the total count of successfully loaded skills.

Note: The reload operation does not restart the shard threads — the number of update shards remains fixed (configured in config.yml at plugin enable). Only the skill instances and their parameters are reloaded; the thread pool itself persists unchanged. To change the shard count, restart the server.

Skill Blueprints Completion

The @skillBlueprints completion handler provides tab-completion for the <skill> argument in /skill cast. It returns the set of all loaded skill ids from the skill service (all skills registered in the skills/ folder).

If a player enters an id that is not in the completion set, the command still executes the context resolver, which throws:

Skill '<id>' not found.

This error is the authoritative check — only skills that are currently loaded can be cast.

Permission summary

Node

Grants

Notes

skills.command

All /skill subcommands (cast, metrics, reload).

This is a class-level permission; there are no per-subcommand permission nodes.

Last modified: 25 July 2026