SGReborn 2.5.0 — Major Update: Lobby/Game Split, New GUIs, Redis/Mongo Sync, Achievements & Optimizations
Hey folks! Dropping a
huge update here with a clean split between Lobby and Game servers, slick new GUIs, better cross-server sync, and a ton of player-friendly tweaks. Your feedback drove a lot of this—thanks for that!
Code (Text):
# Quick Overview
- Optional Lobby Addon with a shiny Game Selector GUI
- Server roles: LOBBY (read-only profiles) or GAME (full profile updates)
- Stats & Leaderboards now in shared GUI modules (works in both lobby and game)
- Cross-server sync: Redis (Jedis 6.1.0) or Mongo—your pick
- New /sg commands: stats, leaderboards, games
- Tons of new achievements (can toggle on/off)
- Big performance pass + profiling hooks
- Loads of bug fixes & code cleanup
Server Roles: Lobby vs. Game
Split server roles to keep lobbies fast and games in charge of data:
Code (Text):
# LOBBY Servers
- Profiles are read-only (view stats, leaderboards, achievements safely)
- No profile writes while chilling in the lobby
- Shows the Game Selector GUI + /sg command
# GAME Servers
- Profiles update live (stats, MMR, kits, achievements, etc.)
- All gameplay systems work as usual
Why? Cleaner separation means fewer race conditions and safer DB writes.
New Game Selector GUI (Super Configurable)
Fancy new GUI for picking games, with all the bells and whistles:
Code (Text):
- Sort by: player count, game state, map, duration, or name
- Filters: hide offline or full/in-progress servers
- Smooth pagination + non-blocking refresh
- Fully tweakable titles, rows, and offsets
Cross-Server Sync: Redis or Mongo
Pick your backend for seamless server communication:
Code (Text):
# Redis (Recommended)
- Upgraded to Jedis 6.1.0 (pipelines + pub/sub via JedisPool)
- Configurable key prefix, channel, TTL, and publish interval
- Rock-solid reconnect handling
# Mongo
- New MongoServerCommunicator matches the Redis interface
- Optional fallback if Redis isn’t available
New /sg Command
Simple, player-friendly command for lobby use:
Code (Text):
/sg stats [player] # Opens Stats GUI (supports offline lookups like /stats)
/sg leaderboards # Opens Leaderboards GUI
/sg games # Opens Game Selector GUI
Note: Permissions match your existing setup. Don’t want these commands? Skip registering them and use your own menus/NPCs to open the GUIs.
New Achievements (Toggleable)
Bunch of new achievements—enable whichever you like in the config:
Code (Text):
- PackLeaderAchievement
- HiddenStashAchievement
- BlazeOfGloryAchievement
- UnderdogsTriumphAchievement
- RelicHunterAchievement
- RodMasterAchievement
- FlintAndSteelFiendAchievement
- ComboKingAchievement
- UnstoppableForceAchievement
- SupplyDroppaAchievement
- ConsecutiveKillaAchievement
- FlawlessVictoryAchievement
- CornucopiaConquerorAchievement
- DemocracyAchievement
- NoProblemAchievement
- ImpossibruAchievement
- ImmortalAchievement
- InvincibleAchievement
- PartyAnimalAchievement
- TitaniumAchievement
- JackOfAllTradesAchievement (needs kits enabled)
- NewBusinessmanTradesAchievement (needs kits enabled)
- SailAwayAchievement
- NotSkyWarsAchievement
- RabbitsFootAchievement
- ItAllBeginsHereAchievement
- MyPreciousAchievement
- RevengeAchievement
- OohMagicAchievement
- PeetaMellarkAchievement
- CookingExpertAchievement
- NoRegretsAchievement
- LeapOfFaithAchievement
- AnglersBountyAchievement
- FlowerChildAchievement
Fixes & Optimizations
Squashed bugs and boosted performance:
Code (Text):
- Fixed NPEs in DisguiseProvider init + graceful fallback if lib is missing
- Cleaner shutdown: handles cross-server tasks, world saves, glow handlers
- Better async scheduling, less main-thread UI work
- Leaderboard caching & sorting optimized (less churn, better memory use)
- Safer offline player lookups in /sg stats <name>
- General code cleanup + profiling hooks for easier debugging
Thanks for sticking with SGReborn!