🪂 Balanced Gliders
A lightweight balance + mini-competition patch for IBelieveICanFly by Yggdrah.
Balanced Gliders introduces a dynamic, server-authoritative glider lifecycle that prevents glide spam while keeping gliding fluid, intuitive, and vanilla-friendly — plus a server-saved distance leaderboard to turn every mountain into a friendly challenge.
✨ Features
- Dynamic, server-enforced glider cooldown
- Prevents re-gliding while cooldown is active
- Cooldown duration scales with time spent gliding
- Real-time cooldown countdown shown as a StatusEffect
- Server-authoritative (stored per-player)
- Works in single-player and multiplayer
- No changes to glider physics, controls, or handling
- Distance pop-up on glide end:
Distance traveled: XXXm
New Highscore! You traveled: XXXm
- Server leaderboard (persistent)
- Press L to toggle an on-screen “Top Distance” list
- Console command:
bg_top to request/print the leaderboard
🏆 Leaderboard (0.6.0)
Balanced Gliders now tracks each player’s glide stats server-side and persists them across restarts.
Tracked stats
- Best distance (primary leaderboard sort)
- Latest distance (shown for context)
- (Internally also tracks airtime + drop for future expansion)
How to use
- Press L to toggle the leaderboard overlay (client-side)
- Type
bg_top in console to request/print the leaderboard
Admin notes
- Stored on the server in
BepInEx/config/BalancedGliders_Leaderboard.txt
- Server decides what’s valid; clients cannot spoof records
⚙️ Configuration
Balanced Gliders provides configurable options for:
- Cooldown timing
- Dynamic cooldown behavior
- UI / StatusEffect visibility
- Debug logging
- Optional server-authoritative configuration syncing
- Leaderboard visibility / hotkey / display size
- Record announcements
Notes
- UI-related changes may require a relog
- Configuration changes require a game restart
(server restart for dedicated servers)
🛡️ Server Admin Notes
- Cooldowns are enforced server-side and stored per player
- With server-authoritative config enabled, the server controls effective values while connected
- Leaderboard records are updated server-side and persisted to disk
📜 Changelog
v0.6.0
- Added server-persistent glide distance leaderboard
- Added L hotkey to toggle leaderboard overlay
- Added bg_top console command to request/print leaderboard
- Added distance results pop-up on glide end
- Added server config options for leaderboard + record announcements
- Added
Leaderboard.AnnounceOnlyDistance option
v0.5.5
- Fixed dedicated-server cooldown enforcement after reconnects
v0.5.2
- Hotfix issues affecting dedicated servers
v0.5.0
- Reworked glider lifecycle enforcement for improved stability and consistency
- Removed runtime reflection scanning in favor of compile-time patching
- Improved compatibility and safety for multiplayer and dedicated servers
- Fixed StatusEffect icon handling to use proper vanilla UI visuals
- Ensured cooldown logic is fully server-authoritative
- Internal cleanup and long-term maintainability improvements
v0.3.0
- Fixed StatusEffect lifecycle and cleanup
- Removed READY phase for cleaner, vanilla-style cooldown behavior
- Internal cleanup and reduced overhead
v0.2.1
- Amended config defaults and naming
- HUD / UI cleanup and stabilization
v0.2.0
- Fixed ServerSync initialization and enforcement
- Updated cooldown tracking to use stable Valheim assemblies
- Internal cleanup and stability improvements
v0.1.3
- Added server-enforced glider cooldown
- Added real-time cooldown StatusEffect
- Reduced reliance on reflection
- Added ServerSync support for server-controlled configuration
📦 Requirements
🙏 Credits
- Yggdrah — IBelieveICanFly
- Blaxxun — ServerSync
- Margmas — A ton of guidance
If you need to contact me, please follow the Discord link on the Thunderstore page and report any issues or bugs there.