FlyTime
Flight your players actually have to earn.
Time-based temporary flight — with a safe landing, every time.
Flight your players actually have to earn.
Time-based temporary flight — with a safe landing, every time.
──────────────────────────────
The problem with /fly
You give a player flight permission and it's gone forever. No sink, no scarcity, no reason to come back. Take it away and they're annoyed. Sell it as a permanent rank and you've sold your economy's biggest reward exactly once.
FlyTime turns flight into a currency.
Every player holds a balance of flight time. The moment they type /fly, that balance starts ticking down — second by second, in real time. The moment they land and toggle it off, the clock stops. Not a single second wasted. When the balance finally hits zero, flight cuts out mid-air and the plugin catches them: no fall damage, no death, no angry ticket in your Discord.
Suddenly flight is something to spend, something to save, something to buy — and something worth logging in for.
──────────────────────────────
Why server owners pick FlyTime
⏱ Time only burns while you're airborne
This is the part most flight plugins get wrong. FlyTime never drains a balance for being online, standing in spawn, or sitting in a menu. Players spend what they use — and they trust it, because it's fair.
Nobody dies to your plugin
Running out of flight 200 blocks above bedrock should not be a death sentence. Two safe-landing modes, your choice:
- FALL_IMMUNITY — fall damage is cancelled until their feet touch the ground. No timer racing them down. They land, always.
- SLOW_FALLING — a clean, vanilla-feeling Slow Falling effect for a fixed duration.
⚠ They see it coming
Live remaining time on the Action Bar or a Boss Bar, switching to a warning color as the clock runs low. On top of that, chat warnings with an optional sound at 60s, 30s, 10s and 5s — or any thresholds you define. No surprises, no complaints.
A real money sink, out of the box
/fly buy 30m — charges through Vault at your configured price per minute, prorated to the second. Set a max purchase per command so nobody fat-fingers a fortune. Your economy finally has something people genuinely want to spend on, over and over.
Works with your shop — even for offline players
Admin commands resolve offline players and write straight to storage. That means Tebex, BuycraftX, or any shop plugin can deliver flight time to a buyer who isn't online — the balance is simply waiting for them when they log back in. No queued-command hacks, no lost purchases.
Your arenas stay grounded — down to the region
Blacklist entire worlds by name, or individual WorldGuard regions by id. Flight is refused there, and any player who flies into a restricted area is dropped out of flight the moment they cross the boundary — with the safe landing still applied, so they touch down instead of splattering.
So you can ban flight in the PvP arena and the boss dungeon without banning it in the overworld. Staff with flytime.bypass ignore all of it.
Full PlaceholderAPI support
Put flight time anywhere you already show information — scoreboards, tab list, holograms, GUI menus, chat formats:
- %flytime_remaining% — formatted balance, e.g. 1h 30m
- %flytime_remaining_seconds% — raw seconds, perfect for maths and conditions
- %flytime_used% — total time this player has ever flown
- %flytime_active% — true / false, whether they're airborne right now
SQLite now, MySQL when you grow
SQLite works with zero setup — drop the jar in and go. Flip one config value to MySQL and every server on your network shares one flight balance. Buy time on survival, spend it on skyblock. Balances autosave on a configurable interval and on quit.
Every single line is yours
No hardcoded text anywhere. Every message lives in messages.yml, with full legacy color codes and hex colors supported. Ships bilingual — English and Spanish — switchable with one config line.
──────────────────────────────
Commands
For players
- /fly — toggle your flight on or off
- /fly time — check your remaining balance
- /fly buy <time> — purchase more flight time
For staff
- /flytime give <player> <time> — add time (works offline)
- /flytime take <player> <time> — remove time (works offline)
- /flytime set <player> <time> — set an exact balance (works offline)
- /flytime check <player> — look up anyone's balance
- /flytime reload — reload config and messages, no restart
Alias: /ft — with full tab completion on every subcommand.
Time format: 1d · 2h · 30m · 45s — or combine them: 1h30m
──────────────────────────────
Permissions
- flytime.use — toggle flight, check own time (default: everyone)
- flytime.buy — purchase time with economy (default: everyone)
- flytime.bypass — fly without consuming any time (default: op)
- flytime.admin — manage balances, reload (default: op)
Give flytime.bypass to staff and donors who should keep unlimited flight — everything else keeps working normally around them.
──────────────────────────────
Configuration
Short, commented, and everything you'd expect to tune is tunable:
Code (Text):
storage:
type: sqlite # sqlite (zero setup) | mysql (shared across a network)
autosave-minutes: 5
mysql:
host: localhost
port: 3306
database: flytime
user: root
password: ""
display:
mode: ACTIONBAR # ACTIONBAR | BOSSBAR | NONE
warning-threshold-seconds: 60 # display turns to its warning color below this
warnings:
enabled: true
at-seconds: [60, 30, 10, 5]
sound: true
safe-landing:
enabled: true
mode: FALL_IMMUNITY # FALL_IMMUNITY | SLOW_FALLING
duration-seconds: 10
blacklisted-worlds:
- "pvp_arena"
- "world_nether"
blacklisted-regions: [] # WorldGuard region ids — no flight inside these, in any world
economy:
enabled: true
price-per-minute: 50.0
max-purchase-minutes: 120
language: en # en | es
type: sqlite # sqlite (zero setup) | mysql (shared across a network)
autosave-minutes: 5
mysql:
host: localhost
port: 3306
database: flytime
user: root
password: ""
display:
mode: ACTIONBAR # ACTIONBAR | BOSSBAR | NONE
warning-threshold-seconds: 60 # display turns to its warning color below this
warnings:
enabled: true
at-seconds: [60, 30, 10, 5]
sound: true
safe-landing:
enabled: true
mode: FALL_IMMUNITY # FALL_IMMUNITY | SLOW_FALLING
duration-seconds: 10
blacklisted-worlds:
- "pvp_arena"
- "world_nether"
blacklisted-regions: [] # WorldGuard region ids — no flight inside these, in any world
economy:
enabled: true
price-per-minute: 50.0
max-purchase-minutes: 120
language: en # en | es
──────────────────────────────
Requirements
- Spigot or Paper 1.20+ — built and tested on 1.20.4
- Java 17 or newer
Optional — every one of these is detected automatically, and FlyTime works fine without any of them:
- Vault + any economy plugin (EssentialsX, CMI, …) — needed only for /fly buy
- PlaceholderAPI — needed only for the %flytime_...% placeholders
- WorldGuard — needed only for region-based flight restrictions
Nothing else to install. Database drivers are downloaded automatically by the server.
──────────────────────────────
Installation — under a minute
- Drop FlyTime.jar into your plugins/ folder.
- Start the server. It works immediately, defaults and all.
- Open config.yml and messages.yml, make it yours.
- Run /flytime reload. Done.
FlyTime is a free Minecraft Java mod. Compatible with Minecraft 1.20, 1.20.6, 1.21, 26.1 and newer. Downloaded 10 times (via Spigot). Download it and open it directly in the game.