SG: Reborn Premium - Ultimate SurvivalGames/BattleRoyale Plugin for Networks icon

SG: Reborn Premium - Ultimate SurvivalGames/BattleRoyale Plugin for Networks -----

The reborn of Survival Games. Ultimate Survival Games plugin, the only one you will ever need.



[​IMG]
SG: Reborn is a plugin that challenges each player to survive as long as he can and be the last man standing! Survival Games is a predecessor of the famous Battle Royale genre! This gamemode includes looting chests and gaining advantages on others! You can also find a teammate to have an easier time winning, but remember there's only one winner. So watch your back!
SG: Reborn completely revamps old SG systems and makes them better! Therefore the name SG: Reborn!

We now offer a Lite version for people who want to try the plugin with limited features:
https://www.spigotmc.org/resources/sg-reborn-lite-mcsg.121667/

[​IMG]
  • SG: Reborn currently only supports networks. Meaning Multi-Arena DOESN'T work. 1 SERVER = 1 GAME. To dumb it down even more: you can't have other minigames on the same server like SG: Reborn. While the game server is running only SGReborn Gamemode can be run. You can't have eg. SkyWars and SGReborn running on the same game server. This design was intentional. It's how big servers run their system to make it optimized.
  • It's is heavily suggested to install Vault, PlaceholderAPI and ProtocolLib on your server as dependencies. Also installing Decent Holograms allows you to have Chest Holograms.
  • You're required to use MongoDB to use stats, leaderboards, achievements, boosters, etc...
  • You're required to use Redis to read some game specific data, make the system more optimized and have functioning Lobby Addon.
  • If you wish to read the game data you need to setup a lobby/hub server and setup SGReborn Lobby addon to read the game data from Game Server through redis or mongo. Alternatively you could use some plugin like PAPI Bridge to forward sgreborn game specific placeholders to hub servers and read them like that. This allows you to create your own GUIs
  • Plugin requires java 17+.
[​IMG]

SG: Reborn is probably the best and most complete public SG plugin ever made for Minecraft Community since it has Survival Games, Clan War, Tournament and Private Games systems built in it. This is the best plugin to create a SG based gamemode for SG & CW players. SG: Reborn will be compatible with all plugins on your server. You may edit the plugin to your liking. Also all future updates are included in the product and issues will be fixed as soon as possible. If you have encountered an issue please don't leave a negative review, but first either join our discord support server or PM me on SpigotMC or just simply leave your issue under resource discussion!




[​IMG]
  • Multiple SG Gamemodes in 1 Plugin
    • Regular Survival Games (sg in config) - Regular Survival Games experience!
    • Survival Games Clan Wars (cw in config) - Clan Wars experience with 2 teams, host and managing/setup system!
    • Survival Games Tournament (tournament in config) - Tournament style Survival Games with two tournament types. SG and CW. Credits, eliminations, let your moderators host the tournaments!
  • Team based matchmaking
    • Solo - FFA type Survival Games
    • Duos - Teams of two!
    • Trios - Teams of three!
    • Quads - Teams of four!
    • 50/50 - 2 giant teams fighting against each other
    • Any team of your choice - Fully configurable team amount and player-per-team!
  • Fully Configurable – Customize menus, join items, in-game messages, scoreboards, maps, kits, chests, grace periods, world settings, and more via simple config files.
  • Common Map Folder Structure – Use a single directory path for all maps across servers to streamline map sharing and backups.
  • MongoDB Database Support – Persist stats, achievements, boosters & leaderboards in MongoDB for reliable cross-server data and instant lookups.
  • Ultra Fast & Async Chunk Loading – Preload every chunk asynchronously before teleporting players to ensure instant spawns and eliminate lag spikes.
  • Classic Clan War System – Declare war, track wins/losses, and reward clans for victories with customizable war rules.
  • Tiered Chests – Offer Tier 1 (regular), Tier 2 (ender/trapped) & custom chest tiers with distinct loot tables for progressive gameplay.
  • Coin Drop System – Randomly spawn gold coins across the map; picking them up awards points in “Hypixel The Pit” style.
  • Shrinking Border – Dynamic world border that shrinks over time to intensify late-game fights, inspired by Mineplex SG.
  • Dynamic Leaderboards – Display up-to-date rankings for both regular matches and tournaments in an intuitive GUI.
  • Advanced Stats System – View kills, deaths, K/D, win-rate, MMR, coins & more in chat or GUI or via an interactive in-game book.
  • MMR System – MMR and configurable Apex-style MMR ranks for competitive progression.
  • Flexible Kits System – Create, sell, or lock kits behind permissions or in-game currency; offer private donor kits & custom purchase GUIs.
  • PlaceholderAPI Support – Integrate placeholders into scoreboards, chat, holograms & GUIs for maximum server personalization.
  • Tournament Management – Host SG or CW tournaments MCMonday-style with auto-bracket generation, scheduling & prize distribution.
  • 30+ Scoreboard Placeholders – Use placeholders for kills, wins, deaths, streaks, MMR, rank, bounty & more to craft custom sidebars.
  • Built-In World Manager – Save, load, unload & teleport between worlds without external plugins; full map command suite included.
  • Donator Perks – Reward MVP donors with vote multipliers (×2/×3/×4/×5), private kits, full-server join slots & custom setup menus.
  • Custom Join Items – Add unique items or icons to your join menu to guide players into matches with flair.
  • Advanced Match Setup – Configure map pool size, skip recently played maps, grace period, flint & steel, hunger/health rules, time of day & chest types per game.
  • Command Toggles – Enable/disable bounty, confirmbounty, stats, vote, sponsor, leaderboard & other commands with a flip in the config.
  • Nametag Control – Toggle team or player nametags server-wide for custom visibility or tournament anonymity.
  • Interactive Vote System – Let players vote for their favorite map pre-game, with vote power bonuses for donors.
  • End-Game Damage Chart – Auto-generate damage breakdowns, MVP & least-damage stats at match end in a clear GUI.
  • Bounty Mechanics – Configure min/max bounty values, starting bounties for new players & confirm/send bounty commands.
  • Deathmatch Variants
    • Common Deathmatch - Deathmatch type that needs to be enabled in config and setup with /dm commondeathmatch. It offers multiple or single deathmatch that can be picked. These deathmatches need to be in the "dm" world that's automatically generated when plugin loads.
    • Specific Deathmatch - Deathmatch type that uses values from specific map unlike common deathmatch. It allows users to setup different deathmatch spawns from regular map spawns on the existing map.
    • Default Deathmatch - Regular MCSG style deathmatch reusing existing map spawns.
  • Refill & Grace Scheduling – Automate chest refills & initial grace periods with fully adjustable timings.
  • Loot & Coin Percentages – Emulate MCSG-style kill coin rewards and customize loot distributions to fit your economy.
  • Chest Holograms – Visualize chest locations with Decent Holograms integration for instant player guidance.
  • Leveling System – Players can level up and gain experience with fully configurable level rewards (levels.yml)
  • Playtime Awards – Grant rewards based on cumulative playtime milestones.
  • Discord Webhooks – Broadcast game start/end events, stats & winners directly to your Discord channels.
  • Custom Chest Items – Add care packages, golden heads, selection chests & any CI-prefixed item to your loot tables.
  • Corpses & Combat Logger – When a player dies he will leave a corpse on the ground that has his skin & and spawn NPC “combat loggers” when players disconnect, which must be killed to prevent loot loss.
  • Boss Spawns – Trigger special boss fights during chest refills for extra excitement and team coordination.
  • Air Drop Events – Deploy interactive air drops with sound, particle effects & GUI interaction.
  • Practice Lobby – Provide a warm-up area with looting, crafting benches & PvP training before matches.
  • Win Celebration – Display custom victory images or animations to winners at the end of each match.
  • Game Boosters – Offer global & personal XP/coin boosters that stack.
  • Achievements System – Fully configurable and extensive achievement system. That allows users to keep progressing in the game. Can be accessed with /achievements command.
  • Challenges System – Challenge yourself and get rewarded if you finish the challenge (like No Armor challenge). Offering players repeating challenges that can be rewarding and promote players to continue playing the game. Can be accessed with /challenges command.
  • Music System – Play music scripts music files on in-game events (start, refill, final battle, victory). Fully configurable.
  • Lunar Client Support – Full integration via Apollo API for team overlays, custom border visuals & more.
  • Glowing Blocks & Entities – Highlight key map features or targets with dynamic glow effects.
  • Ultra-Configurable API – Expose extensive methods & events for developers to modify every aspect of gameplay.
  • Season System – Run competitive seasons with separate leaderboards, detailed stats tracking & end-of-season rewards for top players, all fully configurable.
  • Performance Optimized – Built with async operations, minimal main-thread work & low-memory footprint for large networks.
  • Mach History System - Check your previously played games in a nice GUI. Track how you perform. Also admins can view all players games with /sg matchhistory in a nice GUI.
  • Gulag System (CoD Style) – Allow users to gain another life if they win the gulag match of course. Can be setup with /sg gulag
  • And Much More! – Explore upcoming features, API hooks, custom extensions & community-driven additions.
[​IMG]
Player Commands (A–Z)

/achievements — open achievements GUI
  • Usage: /achievements (alias: /achievement)
  • Permission: none

/bounty — place a bounty on a player
  • Usage: /bounty <player> [amount]
  • Permission: none (economy/config checks apply)

/challenges — open daily/weekly challenges (optionally view others)
  • Usage: /challenges or /challenges <player>
  • Permission: self = none; view others requires sg.command.challenges.others

/confirmbounty — confirm pending bounty
  • Usage: /confirmbounty
  • Permission: none

/dmvote — vote for a Deathmatch arena by number
  • Usage: /dmvote <#> (alias: /deathmatchvote)
  • Permission: none

/fix — self-help “unstuck” tool
  • Usage: /fix (alias: /fixme)
  • Permission: none

/games — open Game Selector GUI (lobby)
  • Usage: /games (label is configurable)
  • Permission: configurable via LOBBY_COMMAND_PERMISSION (leave empty = public)
  • Notes: Command name/aliases are pulled from config; selector can be disabled via config.

/info — plugin/game info
  • Usage: /info
  • Permission: none

/kits — open kit selection/info
  • Usage: /kits
  • Permission: none (individual kit perms, if any, are checked elsewhere)

/leaderboards — open seasonal/lifetime leaderboards
  • Usage: /leaderboards
  • Permission: none (hidden LB visibility is gated; see special perms)

/leave — leave queue/match/team (contextual)
  • Usage: /leave
  • Permission: none; leaving locked tournament teams requires sg.leaveteam

/list — list arenas/queues/players (contextual)
  • Usage: /list
  • Permission: none

/matchhistory — view recent matches
  • Usage: /matchhistory
  • Permission: none

/myboosters — view owned/active boosters
  • Usage: /myboosters
  • Permission: none

/preferences — open personal settings GUI
  • Usage: /preferences
  • Permission: none

/ready — mark ready in pre-match/team flows
  • Usage: /ready
  • Permission: none

/sponsor — sponsor a player mid-game
  • Usage: /sponsor <player>
  • Permission: none (costs/limits via config)

/stats — open stats GUI (supports offline lookup)
  • Usage: /stats (aliases: /stat, /records, /record)
  • Permission: none

/team — casual team management (when teams enabled)
  • Usage: /team [join|leave|name]
  • Permission: none; renaming may require sg.changeteamname depending on context

/tournamentleaderboard — tournament standings
  • Usage: /tournamentleaderboard <solo|team>
    (aliases: /tournamentleaderboards, /tlb, /tlbs, /toptournament, /tournamenttop, /ttop, /topt)
  • Permission: none (hidden LB visibility is gated; see special perms)

/vote — open map vote GUI (supports multipliers)
  • Usage: /vote (alias: /v)
  • Permission: none (multipliers via perms below)

Admin & Staff Commands

/fly — toggle flight (staff utility)
  • Usage: /fly
  • Permission: sg.command.fly

/kill — kill a player (debug/admin)
  • Usage: /kill <player>
  • Permission: sg.command.kill
  • Warning: For testing. Avoid live use unless necessary.

/manageTournament/Clanwar GUI (lobby-only in tournament mode)
  • Usage: /manage
  • Permission: sg.command.manage
  • You can: set Team Size, Teams Amount, Round, Kill Credits, Win Credits, Alive Credits; open team editors; Start/Restart

/map — complete arena editor suite
  • Usage: /map <subcommand> <mapName> [args]
  • Permission: sg.command.map
  • Subcommands:
    create, info, delete, list, pool, save, saveall, saveconfig, load, unload, teleport,
    addspawn, removespawn, adddeathmatchspawn, removedeathmatchspawn,
    setpos1, setpos2, setcenter, setdeathmatchcenter,
    setdefaulttime (default/sunrise/day/sunset/night), setchestrefillall (true/false), setrandomtiering (true/false),
    setformattedname, setauthor, setlink, setmaterial, setdescription, setspecial

/setup — server setup wizard (multi-page GUI)
  • Usage: /setup
  • Permission: sg.command.setup

/sgreborn — plugin meta
  • Usage: /sgreborn <reload|info|support>
  • Permission: OP gate in code (player use requires OP for reload/support)

/playsgwithme — broadcast “Play SG with me” (rate-limited)
  • Usage: /playsgwithme
  • Permission: sgr.playsgwithme

/spawnbots — (test server) spawn fake players in lobby
  • Usage: /spawnbots [maxBots]
  • Permission: none (test-server only; lobby-phase required)

The Admin Hub — /sg (power users)
Command node: sg.command.sg ( subcommands below may require extra perms, context, or enabled systems)

General Syntax
  • /sg <subcommand> <action> [args] (many actions are contextual: Lobby / In-Game / Deathmatch; some require database or feature toggles)

Game Flow & Server Helpers
  • /sg forcestart — start the game immediately (Lobby only)
  • /sg restart — restart the server (broadcast + timed)
  • /sg nextsegment — advance segment (Lobby → Game → Deathmatch)
  • /sg setlobbyspawn — set lobby spawn to your location
  • /sg setmaxplayers <int> — set max players for the running game
  • /sg getitemid — suggest/copy held item ID (debug helper)

Seasons (requires DB + Season system enabled)
  • /sg season info — show current season info
  • /sg season advance — advance to next season
  • /sg season set <seasonId> — set active season
  • /sg season duration <days> — set season length
  • /sg season start — start a new season
  • /sg season list — list seasons
  • Permission: sg.command.season

Stats & Temp Stats
  • /sg getstats <player> <stat>
  • /sg setstats <player> <stat> <amount>
  • /sg removestats <player> <stat> <amount>
  • /sg gettempstats <player> <stat>
  • /sg settempstats <player> <stat> <amount>
  • /sg removetempstats <player> <stat> <amount>
  • /sg savestats [all] — persist to DB (supports all)
  • /sg getsetting <player> <setting> (/sg getsetting all to list)
  • /sg setsetting <player> <setting> <value>
  • /sg togglesetting <player> <setting>

Boosters (requires DB + boosters enabled)
  • /sg booster broadcast — send global booster info to everyone online
  • /sg booster create — create (guided)
  • /sg booster global — manage global boosters
  • /sg booster personal — manage player boosters

Hologram Leaderboards (DecentHolograms)
  • /sg hololeaderboards <stat> — create/update a hologram LB
  • Available stats (from code): SG_WINS, MMR, EXPERIENCE

Gulag System
  • /sg gulag pos1, pos2, wait — define region & waiting area
  • Applies then across matches once configured

Common Deathmatch (shared DM world) — Arena Builder
  • /sg commondeathmatch create <arenaName>
  • /sg commondeathmatch setauthor <arenaName> <text>
  • /sg commondeathmatch setlink <arenaName> <url>
  • /sg commondeathmatch setradius <arenaName> <value>
  • /sg commondeathmatch setcenter <arenaName> (use your loc)
  • /sg commondeathmatch addspawn <arenaName>
  • /sg commondeathmatch removespawn <arenaName>
  • /sg commondeathmatch delete <arenaName>
  • /sg commondeathmatch list
  • /sg commondeathmatch dmworld — teleport to configured DM world spawn

Disguise Helpers (if disguise module enabled)
  • /sg disguise check <player> — verify a player’s disguise (perm: sg.disguise.check)
  • /sg disguise addskin <name>, removeskin <name>
  • /sg disguise addname <name>, removename <name>
  • /sg disguise listskins, listnames

Lobby Practice Utilities
  • /sg practice firstlocation — set first corner
  • /sg practice secondlocation — set second corner
  • /sg practice create, delete

Boss & Misc
  • /sg spawnboss — spawn event boss (where supported)
  • /sg team kick <player> — admin kick from team (contextual)
  • /sg matchhistory <player> — force-open match history for target (perm: sg.command.matchhistory)

Special Feature Permissions
  • Join Full Servers: sg.fulljoin — bypass full lobby/match limits
  • Donator-Only Spectate: sg.donatorspec — required if donator-only spectate is enabled
  • See Spectator Chat: sg.seespectatorchat — view spec chat while alive (moderation)
  • See Hidden Leaderboard: sg.seehiddenleaderboard — access protected tournament LBs
  • Leave Locked Tournament Team: sg.leaveteam
  • Vote Multipliers: sg.doublevotes (×2), sg.triplevotes (×3), sg.quadravotes (×4), sg.pentavotes (×5), sg.sextavotes (×6)
  • Blocked Commands Bypass: sg.blockedcommands.bypass — allows commands that are otherwise blocked in-match

Staff Permission Matrix (Quick)
  • sg.command.sg — Admin hub (/sg)
  • sg.command.manage — Tournament/Clanwar GUI
  • sg.command.map — Arena editor suite
  • sg.command.setup — Setup wizard GUI
  • sg.command.kill — Debug kill
  • sg.command.fly — Flight toggle
  • sg.command.season — Season management
  • sg.command.matchhistory — Force-open others’ match history
  • sg.command.challenges.others — View others’ challenges
  • sg.disguise.check — Disguise verification

[​IMG]


Fan made, made for 1.9.0 (kinda outdated).
Thx to @5KYF <3


[​IMG]
You can request your server to be added here!
----------------------------------------------------------------------------------------------
astralnetwork.com | Astral Network
play.kyodo.network | Kyodo Network [Modified SRC]
seiky.net | Seiky Network

[​IMG]

[​IMG]
Developer API Documentation
Hook your own plugins into SG Reborn matches, stats, seasons, boosters, maps, placeholders and UI.
Getting Started
  • Accessing the API — the public static helpers live in dev.bytecore.sgreborn.api.SGRebornAPI.
    java
    // Static helpers (no service manager needed)
    String stateName = SGRebornAPI.getSegment();
    String mapName = SGRebornAPI.getMapName();
    int aliveCount = SGRebornAPI.getAlivePlayerCount();
  • Optional helper APIs:
    dev.bytecore.sgreborn.api.SGAchievementAPI
    dev.bytecore.sgreborn.api.SGChallengesAPI
    dev.bytecore.sgreborn.api.achievements.AbstractAchievementAPI
    dev.bytecore.sgreborn.api.challenges.AbstractChallenge

SGRebornAPI — Static Helper Methods
(Package: dev.bytecore.sgreborn.api)

  • Game / Segment
    • String getSegment() — Current segment name (e.g. Lobby, Grace, In-Game, Deathmatch)
    • int getDuration() — Elapsed seconds since match start
    • String getFormattedDuration() — Formatted elapsed time (e.g. 07:31)
    • int getGraceDuration() — Configured grace period length (sec)
    • int getTimeLeft() — Contextual time left for current segment (sec)
  • Map / Deathmatch
    • String getMapName() — Selected map name (or “Not chosen yet”)
    • String getMapFormattedName() — Display/formatted map name
    • java.util.List<org.bukkit.Location> getDeathmatchSpawns() — DM spawn locations (specific DM)
    • java.util.List<String> getCommonDeathmatchSpawns() — Common DM labeled spawns
    • String getCommonDeathmatchCenter() — Center (“x, y, z”) for common DM
    • int getCommonDeathmatchRadius() — Radius for common DM
  • Players & Teams
    • java.util.List<java.util.UUID> getAlivePlayers()
    • int getAlivePlayerCount()
    • java.util.List<java.util.UUID> getSpectators()
    • int getSpectatorCount()
    • java.util.List<java.util.UUID> getPlayersPlayed() — All who participated this match
    • dev.bytecore.sgreborn.teams.Team getWinner() — Winning team (null if not decided)
    • java.util.UUID getMVP(), double getMVPDamage() — MVP candidate + total damage
    • java.util.UUID getWorstPlayer(), double getWorstPlayerDamage() — “worst” metric
    • int getTeamCount()
    • java.util.List<dev.bytecore.sgreborn.teams.Team> getTeams()
  • Air Drops
    • boolean isAirDropActive()
    • org.bukkit.Location getRecentAirDropLocation()
    • boolean hasAirDropFallen(org.bukkit.Location loc)
    • int getAirDropProgress(org.bukkit.Location loc) — 0..100 progress
    • int getTimeUntilNextAirDrop() — seconds
    • int getAirDropClickThreshold()
  • Rules / Toggles
    • int getChestRefillStatus() — 0..100 or status enum mapped to int
    • int getHealthStatus() — 0..100 (health HUD helper)
    • boolean isFnsEnabled() — Flint&Steel toggle
    • boolean isHungerEnabled()
  • Profiles
    • dev.bytecore.sgreborn.profile.Profile getProfile(org.bukkit.entity.Player player)

Achievements API
(Packages: dev.bytecore.sgreborn.api, dev.bytecore.sgreborn.api.achievements)

  • Register + Complete
    java
    // 1) Define your achievement (extend AbstractAchievementAPI)
    public final class Kill100Achievement extends AbstractAchievementAPI {
    public Kill100Achievement() {
    super(
    "Mass Slayer", "kill_100",
    java.util.Arrays.asList("&7Get &e100 &7kills in total."),
    "Reach 100 total kills", 250 /exp/, 150 /points/
    );
    }
    [USER=32110]@Override[/USER] public void registerEvents(org.bukkit.plugin.Plugin plugin) {
    org.bukkit.Bukkit.getPluginManager().registerEvents(this, plugin);
    }
    @org.bukkit.event.EventHandler
    public void onKill(org.bukkit.event.entity.PlayerDeathEvent e) {
    // check killer’s stat and call complete when ready
    if (/ stat >= 100 /) SGAchievementAPI.completeAchievement(e.getEntity().getKiller(), this);
    }
    }
    // 2) Register somewhere during onEnable():
    SGAchievementAPI.registerAchievement(new Kill100Achievement());
  • LookupAchievement SGAchievementAPI.getAchievementByID(String id)

Challenges API
(Packages: dev.bytecore.sgreborn.api, dev.bytecore.sgreborn.api.challenges)

  • Define a challenge
    java
    public final class Open50Chests extends AbstractChallenge {
    public Open50Chests() {
    super(
    "Loot Goblin",
    java.util.Arrays.asList("&7Open &e50 &7chests."),
    dev.bytecore.sgreborn.challenges.ChallengeType.DAILY,
    50, // target
    150, 100, 0,// exp, points, tokens
    243600L // time limit (sec)
    );
    }
    [USER=32110]@Override[/USER] public void listen(org.bukkit.event.Event event) {
    // increment based on your event logic
    }
    }
    // Register:
    SGChallengesAPI.registerChallenge(new Open50Chests());
  • Control & Data
    • void SGChallengesAPI.startChallenge(org.bukkit.entity.Player)
    • void SGChallengesAPI.finishChallenge(org.bukkit.entity.Player)
    • void SGChallengesAPI.failChallenge(org.bukkit.entity.Player)
    • dev.bytecore.sgreborn.challenges.ChallengeData SGChallengesAPI.getChallengeData(java.util.UUID)

Public Events (listen with @EventHandler)
(Package: dev.bytecore.sgreborn.api.events)

  • AchievementCompletionEvent — when a player completes an achievement.
    • Fields: Player player, Achievement achievement, boolean cancelled
    • Cancelable to delay downstream reward logic.
  • AirDropOpenEvent — fired when a player opens an air drop crate.
    • Fields: Player player, Location location (cloned), UUID dropId
  • ArmorEquipEvent — universal armor equip/unequip detector (drag, shift, hotbar, dispenser, break, death…).
    • Fields: Player player, CustomEventManager.ArmorType type, EquipMethod equipType, ItemStack oldArmor, ItemStack newArmor
    • Cancelable (prevent the equip).
  • BossDeathEvent — custom event boss died.
    • Fields: Entity boss, Player killer, java.util.Map<Player,Double> damageMap, java.util.List<Player> participants
  • BountyPlaceEvent — player places a bounty on a target.
    • Fields: Player player, Player target, int amount, int total, boolean cancelled
    • Cancelable (deny placement).
  • BountyClaimEvent — (stubbed) emitted when a bounty is claimed (class exists for forward compatibility).

  • ChallengeStartEvent / ChallengeIncrementEvent / ChallengeCheckCompletionEvent / ChallengeCompletionEvent / ChallengeFailEvent / ChallengeResetEvent
    • Common fields: Player player, Challenge challenge
    • Extras: int progress (Increment), boolean completed (CheckCompletion)
    • Only Completion is cancelable if you need to gate the reward flow.
  • ChestLootEvent — a player loots a chest tier.
    • Fields: Player player, org.bukkit.block.Block chestBlock, ChestManager.ChestTier chestTier, boolean cancelled
    • Cancelable to block tier loot.
  • GameStartEvent — match transitions to In-Game.
    • Fields: Player player (context source), boolean cancelled
    • Cancelable if you must delay the start.
  • GameEndEvent — match ends (winners decided).
    • Fields: java.util.List<Player> players (context — winners/participants depending on mode), boolean cancelled
  • GameDeathmatchEvent — deathmatch phase started.
    • Fields: Player player (context), boolean cancelled
  • GameStateChangeEvent — segment changes (Lobby/Starting/Pregame/Grace/In-Game/PreDM/DM/End).
    • Fields: Segment oldState, Segment newState, boolean cancelled
    • Cancelable for advanced control.
  • GameEliminationEvent — a victim is eliminated.
    • Fields: Player killer, Player victim, boolean cancelled
  • GameWinEvent — a player (or team representative) wins.
    • Fields: Player winner, boolean cancelled
  • KitUnlockEvent — player unlocks a kit.
    • Fields: Player player, ItemManager.KitsItem kit, Source source (COINS, PERMISSION, GRANT, OTHER), int pricePaid
  • PlayerGainExpEvent — EXP added to player (points system).
    • Fields: Player player, Type type (gain reason), int amount
    • Cancelable (stop the gain).
  • PlayerGlobalBoostEvent — marker for global boost changes (class present; used internally for future extensions).

  • PlayerJumpEvent — normalized “jump” event (based on statistic increment).
    • Fields: Player player, PlayerStatisticIncrementEvent cause
    • Cancelable (prevents the base statistic increment).
  • PlayerLevelUpEvent — SG level changed.
    • Fields: Player player, int newLevel, int currentXP, int xpToNextLevel, int xpGained
  • PlayerSettingChangeEvent — user setting toggled via standard UI.
    • Fields: Player player, Settings setting, boolean newValue
  • SettingChangeEvent — low-level setting change (includes cause).
    • Fields: Player player, Profile profile, Settings setting, boolean oldValue, boolean newValue, Cause cause (COMMAND, MENU, API, LOAD, OTHER)
    • Async-allowed (handlers should resync if needed).
  • PlayerVoteEvent — player voted or changed vote (map/DM).
    • Fields: Player player, Vote vote (vote topic), VoteArg newChoice, [USER=241773]@Nullable[/USER] VoteArg oldChoice, int weight
    • Cancelable (block vote).
  • PlaytimeEvent — time-based progression tick (class present; used internally for playtime tracking).


[*] SeasonAdvanceEvent — season id changes.
  • Fields: int oldSeasonId, int newSeasonId
[*] SponsorPlayerEvent — a sponsor action gives an item to target.
  • Fields: Player sponsor, Player target, ItemStack item, int points
[/LIST]
Example: Listening to Events
Code (Java):
public final class MyAddon extends JavaPlugin implements Listener {
[USER = 32110 ]@Override [ /USER ] public void onEnable ( ) {
Bukkit. getPluginManager ( ). registerEvents ( this, this ) ;
}

@EventHandler
public void onState (GameStateChangeEvent e ) {
getLogger ( ). info ( "SG state: " + e. getOldState ( ) + " -> " + e. getNewState ( ) ) ;
}

@EventHandler (ignoreCancelled = true )
public void onVote (PlayerVoteEvent e ) {
if (e. getNewChoice ( ). name ( ). contains ( "FORBIDDEN" ) ) e. setCancelled ( true ) ;
}

@EventHandler
public void onTierLoot (ChestLootEvent e ) {
if (e. getChestTier ( ). name ( ). equalsIgnoreCase ( "TIER_3" ) ) {
e. setCancelled ( true ) ; // block OP tier in your hub
}
}
}


Placeholders Documentation
Hook your own plugins into SG Reborn matches, stats, seasons, boosters, maps, placeholders and UI.

PAPI PLACEHOLDERS (PlaceholderAPI)

  • %sgreborn_game_state% — Current game state ( LOBBY, STARTING, PREGAME, GRACE, IN_GAME, PREDEATHMATCH, DEATHMATCH, ENDING)​
  • %sgreborn_game_matchid% — Current match ID​
  • %sgreborn_game_map% — Current map (or “Lobby”)​
  • %sgreborn_game_duration_raw% — Elapsed seconds since match start​
  • %sgreborn_game_duration_formatted% — Elapsed time (e.g. 07:31)​
  • %sgreborn_game_alive_players_int% — Alive players count​
  • %sgreborn_game_spectator_players_int% — Spectators count​
  • %sgreborn_game_spectator_players_list% — Comma-separated spectator names​

Season / View Context
  • %sgreborn_view_mode%season or alltime
  • %sgreborn_season% — Selected season id in view​
  • %sgreborn_season_enabled%true/false
  • %sgreborn_season_current% — Active season id​
  • %sgreborn_season_is_current%true/false

Player — Identity & Kit
  • %sgreborn_player% — Player name​
  • %sgreborn_player_displayname% — Display name (respects disguise)​
  • %sgreborn_player_uuid% — UUID​
  • %sgreborn_player_current_kit% — Selected kit​

Player — Level
  • %sgreborn_player_level% — Numeric level​
  • %sgreborn_player_level_display% — Displayed (e.g. [Lv. 17])​
  • %sgreborn_player_level_display_nice% — Nicely colored display​

Player — Persistent Stats
  • %sgreborn_player_stat_<stat>%
  • Available <stat> keys: sg_wins, kills, deaths, games_played, chests, damage, experience, points, mmr, kdr, winrate

Player — Temporary (match) Stats
  • %sgreborn_player_tempstat_<tempstat>%
  • Common <tempstat> keys: kills, chests, damage

Player — Settings
  • %sgreborn_player_setting_<setting>%Enabled/Disabled
  • Examples: scoreboard, spectator_speed, killfeed, blood, tips, sounds, chatfilter, disguise

Player — Other
  • %sgreborn_player_mmr_rank% — MMR rank label/position​
  • %sgreborn_player_total_kdr% — Overall K/D​
  • %sgreborn_player_real_displayname% — Undisguised display name​
  • %sgreborn_player_damage_amount% — Total damage (overall)​
  • %sgreborn_player_winrate% — e.g. 23.8%​
  • %sgreborn_player_chests% — Total chests opened​
  • %sgreborn_player_team%, %sgreborn_player_team_color%, %sgreborn_player_team_fakecolor%

Leaderboards
  • %sgreborn_leaderboard_<stat>_<rank>% — Player name at rank​
  • Examples: %sgreborn_leaderboard_kills_1%, %sgreborn_leaderboard_points_5%
  • <stat> keys: kills, deaths, sg_wins, games_played, kdr, winrate, chests, damage, points, experience, mmr
  • <rank>: 1..10 (or your configured size)​

Boosters — Global
  • %sgreborn_boosters_total_active%
  • %sgreborn_boosters_points_total_boost%
  • %sgreborn_boosters_exp_total_boost%
  • %sgreborn_boosters_players_list%
  • %sgreborn_boosters_expire_time_<index>% — Remaining time for slot <index> (1..n)​
  • %sgreborn_boosters_active_summary%

Boosters — Personal
  • %sgreborn_player_credit_booster_amount%, %sgreborn_player_credit_booster_time%
  • %sgreborn_player_exp_booster_amount%, %sgreborn_player_exp_booster_time%

BUILT-IN PLACEHOLDERS (no PAPI needed)

These also use %...% and work in messages.yml, scoreboards, holograms, titles/actionbars, bossbars, and menus.

  • %game-id% — Current match ID​
  • %state% — Current state label from your config (segment-aware)​
  • %map% — Current map formatted name (or “Lobby”)​
  • %alives% — Alive players count​
  • %spectators% — Spectators count​
  • %spectators_list% — Comma-separated spectator names​
  • %duration% — Elapsed time formatted​
  • %seconds% — Elapsed seconds​
  • %online% — Online players (Bukkit)​
  • %total_players% — Total players in the running match​
  • %playing% — Players currently playing (non-spec)​

Voting (repeater directives)
  • %maps% — Expands into multiple lines using Scoreboard.MAPS_LINE for each available map vote value​
  • %sorted-maps% — Same as above but sorted by votes (desc). Within the expanded line you can use:​
  • %number% — 1-based index in the sorted list​
  • %map% — Map name (already provided above)​
  • Example line template: “&7%number%. &e%map% &7- &f%votes%”​

Player (from SGBoard)
  • %kills% — Player total kills (overall)​
  • %game_kills% — Player kills in current game (TempStats)​
  • %total-kills% — Alias used in one of the board contexts for overall kills​
  • %wins%, %deaths%, %points%, %mmr%
  • %player-team% — Color + team name, or “N/A”​
  • %mvp% — MVP player (contextual at end screen)​
  • %worst% — “Worst” player metric (contextual end screen)​

Winners / End Screen
  • %winner% — Winner (team or player name depending on mode)​

Server / Cosmetics
  • %server-id%, %server-region%, %website%
  • %date%, %time%, %datetime%
  • %long-line% — Pulls your long line from Scoreboard config​
  • %arrow% — The section symbol (§) used in a few templates​

Stats & Ratios (from StatsPlaceholders)
  • %player%, %playerName%, %uuid%
  • %kills%, %assists%, %deaths%, %sg_wins%, %sg_played%
  • %damage_given%, %damage_taken%, %hits_given%, %hits_taken%
  • %kdr% — If deaths==0: “∞” (unless kills==0 → “0.00”), else kills/deaths (1 decimal)​
  • %kda% — (kills+assists)/max(1,deaths), pre-handled when deaths==0​
  • %winrate% — wins/played × 100 (two decimals)​
  • %avg_kills_per_game%
  • %avg_assists_per_game%
  • %avg_dmg_given_per_game%
  • %avg_dmg_taken_per_game%
  • %hit_trade_ratio% — hits_given/hits_taken (two decimals; guards division by zero)​

Season Context (from StatsPlaceholders)
  • %view_mode%season or alltime
  • %season% — Selected season id​
  • %season_enabled%true/false
  • %season_current% — Current active season id​
  • %season_is_current%true/false
  • %season_is_archived%true/false (if season is archived in your system)​
Configuration files:
[​IMG]
  • Redistribution of this plugin to other individuals, networks, or websites is strictly prohibited.
  • This plugin is licensed for use exclusively on your server or network.
  • Please refrain from leaving unconstructive reviews, such as complaints about missing features or updates not meeting your requests. The plugin's features are clearly listed on the main page, so you are fully informed before purchasing.
  • Refunds are not available.
  • While I strive to provide updates, they will be released as my schedule permits. Please understand that I have other commitments outside of this project.
Resource Information
Author:
----------
Total Downloads: 31
First Release: Sep 28, 2022
Last Update: Oct 24, 2025
Category: ---------------
All-Time Rating:
11 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings