Welcome to the Hangar Open Beta. Please report any issue you encounter on GitHub!
Avatar for SunflowerAges

Virtual Elytra time trials with private rings, route guidance, ghosts, Boost Portals, stats, and in-world course editing

Report Ely-sky?

Ely-sky

The world is the course.
Build polished Elytra time trials through the terrain and builds your server already has — without permanently filling the world with checkpoint structures.

Version: 1.0.0
Platform: Paper 26.2
Java: 25
Optional integrations: PlaceholderAPI, MiniPlaceholders, Vault, LuckPerms


About Ely-sky

Ely-sky is a Paper plugin for creating virtual Elytra time trials around an existing Minecraft world.

Traditional Elytra courses often need large physical rings, arrows, barriers, or a dedicated minigame area. Ely-sky takes a different approach: course rings, route guidance, Boost Portals, and race ghosts are shown privately to the player flying the course. To everyone else, the world stays the way it was built.

That means a course can dive through a ravine, follow a mountain pass, weave between builds, circle spawn, or turn almost any interesting part of a world into a flight challenge without permanently changing the scenery.

Players choose a course, fly it, improve their time, and optionally race recorded ghosts or compete on shared leaderboards. Multiple players can use the same course at the same time, but every run is its own independent time trial — Ely-sky does not require race lobbies, queues, teams, or synchronized starts.

What Ely-sky includes

  • Private BlockDisplay checkpoint rings and particle route guidance.
  • An in-world course editor with direct placement controls.
  • Multiple configurable ring sizes.
  • Boost Portals with adjustable size and strength.
  • Precise checkpoint crossing, with race timing beginning at Ring 1.
  • Missed-ring detection and quick course restarts.
  • Personal bests, server bests, attempts, finishes, DNFs, averages, and time-racing statistics.
  • Up to two comparison ghosts per racer.
  • Personal Best, Server Best, Rival, and leaderboard-player ghost options where competition settings allow them.
  • Casual and Competitive presentation modes.
  • Revision-scoped records so changed course geometry does not mix old and new competitive times.
  • Optional temporary loan Elytra and fireworks with crash-safe restoration.
  • Configurable fall and Elytra-collision protection during active runs.
  • Admin test runs that do not write attempts, records, rewards, or leaderboard results.
  • Course validation, record moderation, diagnostics, and repair tools.
  • Optional PlaceholderAPI, MiniPlaceholders, Vault, and LuckPerms support.
  • A public Bukkit service API and race lifecycle events for other plugins.

Creating a Course

Ely-sky is designed so most of the actual route can be built while flying through the world.

1. Create the course

/elyskyadmin create Canyon Run

New courses begin closed and the editor immediately enters Start placement mode.

Stand where racers should be prepared, face the direction they should launch, and left-click to save the Start.

2. Fly the route and place rings

Once Start is set, fly the route you want players to follow.

Left-click places the next timed checkpoint ring at your current position and facing direction.

While editing:

Editor control Action
Left-click Place or confirm the current course element
Right-click Undo the previous edit or cancel the current placement
Sneak + scroll Change the ring or portal size
Ctrl/Sprint + left-click Place a Boost Portal
Ctrl/Sprint + Sneak + scroll Adjust Boost Portal strength

Boost Portals are route elements rather than timed checkpoints, so placing one does not change ring numbering.

If the generated route guidance needs another pass, it can be refreshed with:

/elyskyadmin trail refresh [ring]

3. Place the Finish

When the timed route is complete, enter Finish placement mode:

/elyskyadmin finish

Move to the center of the finish, face through it, and left-click to place it.

A complete course requires a Start, at least one timed ring, and a Finish.

4. Add the course details

While the course is open in the editor, its public information can be changed without editing files directly:

/elyskyadmin rename <new name>
/elyskyadmin set description <text>
/elyskyadmin set icon <material>
/elyskyadmin set difficulty <none|easy|normal|hard|expert>
/elyskyadmin set permission <permission-node>
/elyskyadmin set competition <inherit|casual|competitive>

Use none as the permission value when the course should not require an additional access permission.

5. Finish editing

/elyskyadmin done

The course remains closed until it is deliberately opened to players.

6. Validate and test it

Before publishing, Ely-sky can check the course structure and run it through the normal race engine without touching real records:

/elyskyadmin validate Canyon Run
/elyskyadmin test Canyon Run

Test runs do not change attempts, personal bests, leaderboards, or rewards.

7. Open the course

When everything feels right:

/elyskyadmin open Canyon Run

The course is now available to players who have access to it.

Course revisions: After a course has been published, competitive geometry changes advance its revision. Existing times stay archived with the revision they were earned on instead of being compared against a changed route.


Using Ely-sky

For players, the normal entry point is simply:

/elysky

Alias:

/esky

The menu provides access to available courses, personal statistics, course details, leaderboards where enabled, ghost selection, and player settings.

Flying a course

Choose an available course and start the run. Ely-sky prepares the player at the course Start and displays a countdown.

The timer does not begin during the countdown. Timing begins when the player crosses Ring 1, so the launch itself does not become part of the recorded time.

From there:

  1. Fly through each timed ring in order.
  2. Follow the private particle guidance if it is enabled.
  3. Fly through any Boost Portals placed along the route.
  4. Reach the Finish after completing the timed rings.

If a checkpoint is positively missed, Ely-sky gives the racer a short recovery window before the run is restarted. Players can also restart instantly at any time with:

Shift + Left-click

or:

/elysky restart

To end the current run:

/elysky leave

Personal stats

Ely-sky keeps per-course statistics including:

  • Best time
  • Latest finish
  • Average finish time
  • Attempts
  • Finishes
  • DNFs
  • Completion rate
  • Total time racing
  • Competitive rank when that information is enabled

Ghost racing

Ghosts are private recorded replays shown only to the racer. A player can race with up to two ghosts at once.

Depending on the course's competition mode, ghost choices can include:

  • Personal Best — race your own fastest run.
  • Server Best — chase the fastest eligible time on the course.
  • Rival — compare against the configured competitive rival selection.
  • Leaderboard Player — choose a retained replay directly from the leaderboard.

Players can configure their primary and secondary ghost preferences from the Ely-sky menu.

Casual and Competitive courses

Every course can inherit the server default or explicitly use Casual or Competitive presentation.

Casual keeps the focus on personal improvement. Personal Best and Server Best can remain visible while public ranks, player names, Rival selection, and named leaderboard pressure stay hidden.

Competitive can expose shared ranks, player identities, leaderboard ghosts, Rival selection, rank movement, and record-holder information.

Both modes use the same race engine and timing system. The difference is what competition information is eligible and visible to players.


Commands

Player Commands

Command Description Permission
/elysky Opens the main Ely-sky menu. elysky.use
/elysky start <course-key> Starts an open course the player can access. Useful for NPCs, menus, and command-driven setups. elysky.use
/elysky restart Restarts the player's current course. elysky.use
/elysky leave Ends the player's current course. elysky.use

Alias: /esky

Course Authoring Commands

Command Description Permission
/elyskyadmin create <name> Creates a new closed course and begins at Start placement. elysky.admin.author
/elyskyadmin edit <name> Opens an existing course in the editor. elysky.admin.author
/elyskyadmin start Enters Start placement mode for the course being edited. elysky.admin.author
/elyskyadmin finish Enters Finish placement mode. elysky.admin.author
/elyskyadmin move <ring> Moves an existing timed ring. elysky.admin.author
/elyskyadmin move boost <number> Moves an existing Boost Portal. elysky.admin.author
/elyskyadmin insert <ring> Inserts a new timed ring before the selected ring. elysky.admin.author
/elyskyadmin remove <ring> Removes a timed ring. elysky.admin.author
/elyskyadmin remove boost <number> Removes a Boost Portal. elysky.admin.author
/elyskyadmin trail refresh [ring] Regenerates saved route guidance for the whole course or a selected ring segment. elysky.admin.author
/elyskyadmin rename <new name> Renames the course currently being edited. elysky.admin.author
/elyskyadmin set <description|icon|difficulty|permission|competition> <value> Changes metadata for the course currently being edited. elysky.admin.author
/elyskyadmin done Ends the current editor session. elysky.admin.author

Course Management Commands

Command Description Permission
/elyskyadmin list Lists authored courses and their current state. elysky.admin.inspect
/elyskyadmin open <name-or-key> Opens a valid course to players. elysky.admin.control
/elyskyadmin close <name-or-key> Closes a course while keeping its geometry and records intact. elysky.admin.control
/elyskyadmin test <name-or-key> Runs the course through the normal race engine without changing records or rewards. elysky.admin.inspect
/elyskyadmin validate [name-or-key] Validates course structure and guidance. The name may be omitted while editing. elysky.admin.inspect
/elyskyadmin delete <name-or-key> Archives and removes a course after confirmation. elysky.admin.delete

Record and Maintenance Commands

Command Description Permission
/elyskyadmin records inspect <course-key> <player> Shows a player's current-revision record and statistics. elysky.admin.records
/elyskyadmin records remove <course-key> <player> Removes a player's current record after confirmation and rebuilds the leaderboard. elysky.admin.records
/elyskyadmin records reset <course-key> Clears current-revision player records after confirmation. elysky.admin.records
/elyskyadmin records rebuild <course-key> Rebuilds the current leaderboard from stored ranked personal-best data. elysky.admin.records
/elyskyadmin diagnostics Creates a privacy-conscious Ely-sky support report. elysky.admin.diagnostics
/elyskyadmin reload Validates and reloads Ely-sky configuration. elysky.admin.reload
/elyskyadmin repair-index Rebuilds the derived player index. elysky.admin.repair-index
/elyskyadmin repair-leaderboard <course-key|all> Rebuilds one or all current course leaderboards. elysky.admin.repair-index

Admin alias: /esa


Permissions

Permission Description Default
elysky.use Allows normal use of Ely-sky courses and player commands. Everyone
elysky.competition.rank Allows eligible runs to enter shared competitive rankings when the course permits competition. Everyone
elysky.admin Grants all Ely-sky administration capabilities. OP
elysky.admin.command Allows access to the admin command root when another granted capability permits the requested action. This node alone does not grant an admin action. False
elysky.admin.author Allows course creation, metadata changes, and geometry editing. OP
elysky.admin.control Allows courses to be opened and closed to players. OP
elysky.admin.inspect Allows course listing, test runs, and validation. OP
elysky.admin.delete Allows confirmed course archival and removal. OP
elysky.admin.records Allows record inspection, removal, reset, and leaderboard rebuilding. OP
elysky.admin.diagnostics Allows Ely-sky diagnostic reports to be created. OP
elysky.admin.reload Allows Ely-sky configuration to be reloaded. OP
elysky.admin.repair-index Allows player-index and leaderboard repair operations. OP

Thank You

Thank you for checking out Ely-sky.

I built it because I wanted Elytra courses that could feel like they belonged inside a Minecraft world instead of being permanently built on top of it. The terrain, landmarks, caves, mountains, and builds are already interesting — Ely-sky is just there to give players a new reason to fly through them.

If you use it on your own server, I hope you have as much fun making routes as I had building the system behind them.

Happy flying.

Information

CategoryGameplay
Published onAugust 5, 2026
LicenseAll Rights Reserved
Downloads0
Stars0
Watchers0

Pinned Versions

Members