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!
SG: Reborn currently only supports Bungeecord network. Meaning Multi-Arena DOESN'T work. 1 SERVER = 1 GAME. This plugin is pretty complex with map voting systems and arena pre-loadings. Multi-arena requires ton of work and recoding. If it's heavily requested and the plugin generates certain revenue I will add it. But for now the plugin is purely multi-server!
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...
Plugin requires java 17+.
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!
3 SG-Based Game Modes – Manage Survival Games, Clan Wars & Tournaments all in one plugin, with customizable brackets, rewards, and automated match flow.
Team-Based Formats – Play solo, duo, trio, or quatro matches for dynamic team strategies and balanced matchmaking.
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.
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 – Choose from Arena or Standard deathmatches post-refill for diverse end-game challenges.
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 & MMR Rank Systems – Track player progression via XP levels and configurable Apex-style MMR ranks.
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.
Badge Ranking System – Implement a Badlion-style rank system with colored badges, titles & progression paths.
Boosters & Achievements – Offer global & personal XP/coin boosters that stack, plus extendable achievements shown in an interactive book.
Challenges System - Challenge yourself and get rewarded if you finish the challenge (like No Armor challenge). Can be accessed with /challenges
Music System – Play .nbs music files on in-game events (start, refill, final battle, victory).
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.
Coming Soon – Quests, Gulag system (CoD style), custom Scenarios & extra mutators to keep gameplay fresh.
And Much More! – Explore upcoming features, API hooks, custom extensions & community-driven additions.
Features:
Join Full Servers - sg.fulljoin
Only Donators Spec - sg.donatorspec
See Spectator Chat - sg.seespectatorchat
See Hidden LB - sg.seehiddenleaderboard
Leave Tournament Team - sg.leaveteam
6X Vote - sg.sextavotes
5X Vote - sg.pentavotes
4X Vote - sg.quadravotes
3X Vote - sg.triplevotes
2X Vote - sg.doublevotes
[ATTACH type="full" alt="cooltext472807477112376.png"]865555[/ATTACH]
Fan made, made for 1.9.0 (kinda outdated).
Thx to
@5KYF <3
You can request your server to be added here!
----------------------------------------------------------------------------------------------
astralnetwork.com | Astral Network
play.kyodo.network | Kyodo Network [Modified SRC]
seiky.net | Seiky Network
Code (Java):
publicclass SGRebornAPI
{
/** * Gets the name of the current segment */ publicstaticString getSegment
(){ MatchManager manager
= MatchManager.
getInstance(); if(manager
==null|| manager.
getSegment()==null){ return"Segment not available"; } return manager.
getSegment().
getName(); }
/** * Gets the name of the current map */ publicstaticString getMapName
(){ MatchManager manager
= MatchManager.
getInstance(); if(manager
==null|| manager.
getMap()==null){ return"Not chosen yet"; } return manager.
getMap().
getName(); }
/** * Gets the formatted name of the current map */ publicstaticString getMapFormattedName
(){ MatchManager manager
= MatchManager.
getInstance(); if(manager
==null|| manager.
getMap()==null){ return"Not chosen yet"; } return manager.
getMap().
getFormattedName(); }
/** * Gets match duration (seconds) */ publicstaticint getDuration
(){ MatchManager manager
= MatchManager.
getInstance(); if(manager
==null){ return0;// default value if MatchManager is unavailable } return manager.
getSeconds(); }
/** * Gets the number of alive players */ publicstaticint getAlivePlayerCount
(){ MatchManager manager
= MatchManager.
getInstance(); if(manager
==null|| manager.
getAlives()==null){ return0; } return manager.
getAlives().
size(); }
/** * Gets the list of spectators */ publicstatic List
<UUID
> getSpectators
(){ MatchManager manager
= MatchManager.
getInstance(); if(manager
==null){ returnnew ArrayList
<>(); } return manager.
getSpectators(); }
/** * Gets the number of spectators */ publicstaticint getSpectatorCount
(){ MatchManager manager
= MatchManager.
getInstance(); if(manager
==null|| manager.
getSpectators()==null){ return0; } return manager.
getSpectators().
size(); }
/** * Gets the list of players who have played */ publicstatic List
<UUID
> getPlayersPlayed
(){ MatchManager manager
= MatchManager.
getInstance(); if(manager
==null){ returnnew ArrayList
<>(); } return manager.
getPlayersPlayed(); }
/** * Gets the match winner (team) */ publicstatic Team getWinner
(){ MatchManager manager
= MatchManager.
getInstance(); if(manager
==null){ returnnull; } return manager.
getWinner(); }
/** * Gets the current grace period duration */ publicstaticint getGraceDuration
(){ MatchManager manager
= MatchManager.
getInstance(); if(manager
==null){ return-1; } return manager.
getGrace(); }
/** * Gets the current time left in the match */ publicstaticint getTimeLeft
(){ MatchManager manager
= MatchManager.
getInstance(); if(manager
==null){ return-1; } return manager.
getTime(); }
/** * Gets the current chest refill status */ publicstaticint getChestRefillStatus
(){ MatchManager manager
= MatchManager.
getInstance(); if(manager
==null){ return0; } return manager.
getChest(); }
/** * Gets the current health status of the match (player health) */ publicstaticint getHealthStatus
(){ MatchManager manager
= MatchManager.
getInstance(); if(manager
==null){ return20; } return manager.
getHealth(); }
/** * Checks if Flint and Steel (fns) is enabled */ publicstaticboolean isFnsEnabled
(){ MatchManager manager
= MatchManager.
getInstance(); if(manager
==null){ returnfalse; } return manager.
getFns(); }
/** * Checks if the air drop system is active */ publicstaticboolean isAirDropActive
(){ AirDropManager airDropManager
= AirDropManager.
getInstance(); return airDropManager
!=null&& Config.
getBoolean(Config.
AIRDROP_SYSTEM); }
/** * Gets the location of the most recent air drop */ publicstatic Location getRecentAirDropLocation
(){ AirDropManager airDropManager
= AirDropManager.
getInstance(); if(airDropManager
!=null&&!airDropManager.
getAirdrops().
isEmpty()){ // Retrieve the most recent airdrop location return airDropManager.
getAirdrops().
keySet().
stream().
findFirst().
orElse(null); } returnnull; }
/** * Checks if the air drop has fallen at the given location */ publicstaticboolean hasAirDropFallen
(Location location
){ AirDropManager airDropManager
= AirDropManager.
getInstance(); if(airDropManager
!=null){ return airDropManager.
getAirDropFallen().
getOrDefault(location,
false); } returnfalse; }
/** * Gets the progress of the air drop opening at the given location */ publicstaticint getAirDropProgress
(Location location
){ AirDropManager airDropManager
= AirDropManager.
getInstance(); if(airDropManager
!=null){ return airDropManager.
getAirDropProgress().
getOrDefault(location,
0); } return0; }
/** * Gets the remaining time until the next air drop */ publicstaticint getTimeUntilNextAirDrop
(){ AirDropManager airDropManager
= AirDropManager.
getInstance(); if(airDropManager
!=null){ return AirDropManager.
AIR_DROP_INTERVAL;// Time in seconds } return-1;// -1 indicates that the airdrop system is not active }
/** * Gets the remaining time until the next air drop */ publicstaticint getAirDropClickThreshold
(){ AirDropManager airDropManager
= AirDropManager.
getInstance(); if(airDropManager
!=null){ return AirDropManager.
CLICK_THRESHOLD;// Time in seconds } return-1; }
// API for Profiles
publicstatic Profile getProfile
(Player player
){ Profile profile
= ProfileManager.
getProfile(player.
getUniqueId()); if(profile
==null){ Bukkit.
getLogger().
log(Level.
SEVERE,
"SGReborn API - Profile not loaded."); returnnull; } return profile
; }
// INITIALIZE IN YOUR MAIN CLASS public CustomAchievementsExample
(SGReborn sgReborn
){ SGAchievementAPI.
registerAchievement(new CustomAchievementExample
()); }
/** Triggered when the game segment changes to deathmatch */ GameDeathmatchEvent
/** Triggered when a player or team wins the game */ GameWinEvent
/** Triggered when a player eliminates another player */ GameEliminationEvent
/** Triggered when the game starts */ GameStartEvent
/** Triggered when a player levels up */ PlayerLevelUpEvent
/** Triggered when a player completes a challenge */ ChallengeCompletionEvent
/** Triggered when a player starts a challenge */ ChallengeStartEvent
/** Triggered when a player gains experience points */ PlayerGainExpEvent
/** Triggered when a player opens a chest */ ChestLootEvent
/** Triggered when a player completes a quest */ QuestCompletionEvent
/** Triggered when the game's global state changes */ GameStateChangeEvent
More things will be added to the API!
PAPI PLACEHOLDERS:
Game Placeholders
%sgreborn_game_state% - Current game state.
%sgreborn_game_matchid% - Current match ID.
%sgreborn_game_duration_raw% - Raw game duration in seconds.
%sgreborn_game_duration_formatted% - Formatted game duration.
%sgreborn_game_map% - Name of the current map (or "Lobby").
%sgreborn_game_alive_players_int% - Number of alive players.
%sgreborn_game_spectator_players_int% - Number of spectators.
%sgreborn_game_spectator_players_list% - List of spectator names.
Leaderboard Placeholders
%sgreborn_leaderboard_<stat>_<rank>%
Example:
%sgreborn_leaderboard_kills_1% - Top player in kills.
%sgreborn_leaderboard_points_5% - 5th-ranked player in points.
Booster Placeholders
%sgreborn_boosters_total_active% - Total number of active boosters.
%sgreborn_boosters_points_total_boost% - Total points boost multiplier.
%sgreborn_boosters_exp_total_boost% - Total experience boost multiplier.
%sgreborn_boosters_players_list% - List of players with active boosters.
%sgreborn_boosters_expire_time_<index>% - Remaining time for a specific booster.
%sgreborn_boosters_active_summary% - Summary of all active boosters (e.g., type and amount).
Player Placeholders
General
%sgreborn_player_level% - Player's current level.
%sgreborn_player_level_display% - Displayed player level.
%sgreborn_player_level_display_nice% - Player level with formatted color.
Stats
%sgreborn_player_stat_<stat>% - Player’s stat value.
Examples:
%sgreborn_player_stat_sg_wins% - SG wins.
%sgreborn_player_stat_deaths% - Total deaths.
%sgreborn_player_stat_experience% - Experience earned.
%sgreborn_player_tempstat_<tempstat>% - Player’s temporary stat value.
Examples:
%sgreborn_player_tempstat_kills% - Temporary kills stat.
%sgreborn_player_tempstat_chests% - Temporary chests stat.
Settings
%sgreborn_player_setting_<setting>% - Status of a specific player setting (Enabled/Disabled).
Examples:
%sgreborn_player_setting_scoreboard% - Scoreboard visibility setting.
%sgreborn_player_setting_spectator_speed% - Spectator speed setting.
Other Player-Specific Stats
%sgreborn_player_mmr_rank% - Player’s MMR rank.
%sgreborn_player_total_kdr% - Player’s Kill/Death ratio.
%sgreborn_player_current_kit% - Player’s currently selected kit.
%sgreborn_player_real_displayname% - Player’s real display name.
%sgreborn_player_damage_amount% - Total damage dealt by the player.
%sgreborn_player_winrate% - Player’s win rate as a percentage.
%sgreborn_player_chests% - Number of chests opened.
%sgreborn_player_team% - Name of the player’s team.
%sgreborn_player_team_color% - Player’s team color.
%sgreborn_player_team_fakecolor% - Player’s team fake color.
Personal Booster Placeholders
%sgreborn_player_credit_booster_amount% - Player's active credit booster multiplier.
%sgreborn_player_exp_booster_amount% - Player's active experience booster multiplier.
%sgreborn_player_credit_booster_time% - Remaining time for the player's credit booster.
%sgreborn_player_exp_booster_time% - Remaining time for the player's experience booster.
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.