Bug Fixes
- Level Editor - Changes not saving (H2): Fixed a critical bug where level configurations saved in the editor were not persisting when using an H2 database. The root cause was that the ORM did not recognize
levelNumberas a unique field, causing every save to insert a new duplicate row instead of updating the existing one. On reload, the cache would pick up the old entry, making it appear as if nothing was saved.- H2 Database URL: Removed
AUTO_SERVER=TRUEfrom the default JDBC URL inconfig.yml. If youhave manually addedAUTO_SERVER=TRUEto your config, please remove it.
Map Cycle System
Maps now rotate automatically based on a configurable cycle - no manual restarts needed.
Config Update Required
This update adds new entries toconfig.yml. Delete or rename your existing file and let it regenerate on the next server start — existing map and player data are not affected.
What's new
- Map pool defined in config: order, display name, world folder and per-map settings
- End-of-round vote: players pick the next map via a chest GUI with live vote counts
- Majority wins; tie goes to the map that was queued next in the cycle
- Countdown and result broadcast handled automatically
Configuration
config.yml- define the pool, rotation order and fallback- Vote duration and GUI title are configurable per map or globally
- Maps can be marked as
enabled: falseto skip them without removing the entry
New Features
Improvements
- In-Game Leaderboard (
/gungame top) A new leaderboard GUI shows the Top 28 players sorted by kills. Three tabs let you switch between All Time, This Week and Today. Player heads are displayed for each entry, and your own rank is always visible at the bottom - even if you're not in the Top 28- Personal Stats (
/gungame stats [player]) Opens a stats overview for yourself or another player. Displays current level, total kills, daily kills and daily coins earned. Works for both online and offline players.- Set Level Command (
/gungame setlevel <player> <level>) Admins can now set a player's level directly without triggering a full reset. Works for online and offline players. Online players receive an instant kit, scoreboard and BossBar update.
Bug Fixes
- Leaderboard Cache The leaderboard data is cached with tab-specific TTLs (All Time: 5 min, This Week: 2 min, Today: 1 min) and refreshed in the background automatically. This means the GUI always opens instantly without any database wait time, and the database is not queried on every opening.
- Daily Coin Reset Toggle The daily coin reset can now be disabled via
gungame.reset-daily-coin-capin the config. The toggle is also accessible directly in the Config Editor GUI without editing the file manually. The in-memory flag updates correctly on/gungame reload.- Database Schema Migration Schema migration now runs automatically on startup before levels are loaded (async), ensuring the database is always up to date.
- Improved Startup Logging Log messages are now more consistent and informative. Economy load confirmation is only shown when Vault actually provides an economy provider.
Permissions
- AFK detection now correctly cleans up victim entries from other players' kill histories on disconnect
- MidnightResetTask no longer runs when the daily coin reset is disabled
- Level reset timer is properly disabled when
level-reset-daysis set to -1/gungame reloadnow correctly updates all in-memory flags including the daily reset toggle and invalidates the leaderboard cache
Permission Default Description tsgungame.top everyone View the leaderboard tsgungame.stats everyone View personal stats tsgungame.setlevel op Set a players' level directly
