About Deep Sea Plus
DeepSeaPlus is a comprehensive enhancement plugin for Rust's Deep Sea system, giving server administrators full control over scheduling, loot, portal access, events, building, player tracking, and more. It transforms the vanilla Deep Sea experience into a highly configurable, event-driven endgame zone with leaderboards, boss encounters, treasure hunts, Discord integration, and granular admin tools.
Main Features
-
Spoiler
- Schedule Control: Choose between Vanilla (custom timings), AlwaysOpen (Deep Sea never closes), or Disabled (Deep Sea never opens) modes. Override wipe duration, cooldown, radiation phase, and end phase durations. Force-enable or force-disable the Deep Sea entirely via config.
- Portal & Travel Rules: Add entry cooldowns after leaving the Deep Sea, charge an entry fee via Economics or ServerRewards, bypass cooldowns and food tolls for VIP players, control which vehicles are allowed through portals (whitelist or allow-all), allow on-foot entry, block NPC passengers, and permit entry during the radiation warning phase. An info panel automatically appears when players approach a portal, showing Deep Sea status, time remaining, player count, and entry fee.
- Loot Overrides: Multiply existing container stack sizes, inject configurable bonus items with per-item chance and skin ID, override hackable crate hack time, and add bonus items specifically to hackable crates on ghost ships. Dynamic Loot Scaling automatically increases loot quantity and bonus chances based on how many players are inside the Deep Sea.
- Deep Sea Events: Treasure Hunt spawns hidden stashes with configurable loot on islands (with optional map markers). Boss Spawn deploys a Bradley APC with boosted health that patrols island shorelines using hand-mapped waypoints for all four island types (Horseshoe, Blob, Round, Line) with full stuck-detection, detour, backtrack, and arc-pathing logic. Supply Drops periodically airdrop crates over random Deep Sea islands. Ghost ship crate hacking is announced to all Deep Sea players.
- Building Controls: Allow or deny building in the Deep Sea, limit the number of foundations each player can place, show remaining foundation count on placement, and grant bypass permissions to specific players.
- Player Tracking & Leaderboards: Automatically tracks every player's entry/exit, time spent, NPC kills, containers looted, and deaths across all Deep Sea sessions with persistent lifetime stats. Players receive a welcome message on entry and a full session summary on exit. Leaderboards support sorting by kills, looted, time, visits, deaths, or a composite score.
- Death Rules: Track deaths inside the Deep Sea, display death messages, snapshot player inventory on entry, and optionally restore the full inventory (including attachments and sub-contents) on respawn after a Deep Sea death.
- Respawn System: Periodically respawn island NPCs and loot via spawn group triggers, and respawn hackable crates on ghost ships — all with configurable intervals and minimum distance checks from active players.
- Notification System: Announce Deep Sea open/close events server-wide via chat messages, toast notifications, and NCP (My Notification Plugin) integration. Configurable countdown milestones warn Deep Sea players as the wipe approaches.
- Deep Sea ConVar Overrides: Override all vanilla Deep Sea ConVars including island count, ghost ship count, floating city count, RHIB count, hackable crate count, spawn radii, edge margins, minimum distances, and fog of war.
- Discord Webhook: Send embedded Discord messages when the Deep Sea opens, closes, or when a player achieves notable stats (configurable thresholds).
- Admin Tooling: Full status dashboard, teleport to/from islands by index, kick players from the Deep Sea, force-open and force-close commands, Bradley patrol path debug visualization, and an in-game waypoint mapping system for recording custom Bradley patrol routes.
Permissions
- deepseaplus.admin: Full administrative access, status, kick, force open/close, reset stats, Bradley debug, waypoint mapping.
- deepseaplus.tp: Allows teleporting to and from the Deep Sea via /deepsea tp.
- deepseaplus.vip: Bypasses portal cooldown and food toll (configurable per feature).
- deepseaplus.notify: Grants access to notification features.
- deepseaplus.stats: Allows viewing personal Deep Sea statistics and leaderboards.
- deepseaplus.build.bypass: Bypasses all building restrictions and foundation limits in the Deep Sea.
Chat Commands
- /deepsea: Shows a context-aware help menu listing all available commands based on the player's permissions.
- /deepsea status: Displays a full Deep Sea status panel — state, schedule mode, time to wipe or next opening, player count, island/ghost ship/floating city/RHIB counts, and event entity count. (Requires deepseaplus.admin)
- /deepsea tp [island#]: Teleports to the nearest Deep Sea island, or to a specific island by index. If already in the Deep Sea, teleports back to the mainland shore. (Requires deepseaplus.tp or deepseaplus.admin)
- /deepsea kick <player>: Ejects a player from the Deep Sea and teleports them to the nearest shore. (Requires deepseaplus.admin)
- /deepsea stats [player]: Displays lifetime Deep Sea statistics — visits, time spent, NPC kills, containers looted, and deaths. Admins can view other players' stats. (Requires deepseaplus.stats or deepseaplus.admin)
- /deepsea top [kills|looted|time|visits|deaths|score]: Shows the top 10 leaderboard sorted by the chosen metric. Defaults to kills. (Requires deepseaplus.stats or deepseaplus.admin)
- /deepsea resetstats <player|all>: Resets Deep Sea stats for a specific player or all players. (Requires deepseaplus.admin)
- /deepsea forceopen: Force-opens the Deep Sea immediately. (Requires deepseaplus.admin)
- /deepsea forceclose: Force-closes the Deep Sea immediately, killing all vanilla entities and bypassing the radiation/end phase. (Requires deepseaplus.admin)
Console Commands
- deepsea.forceopen: Force-opens the Deep Sea.
- deepsea.forceclose: Force-closes the Deep Sea immediately.
- deepsea.spawnboss: Manually spawns a Bradley APC boss in the Deep Sea.
- deepsea.showpath: Toggles Bradley patrol path debug visualization (draws waypoints, arcs, detour points, and state info). Run again to toggle off.
- deepsea.mapstart: Begins recording a new Bradley patrol route. Walk to each point and use deepsea.mappoint.
- deepsea.mappoint: Records your current position as a local-space waypoint relative to the nearest island.
- deepsea.mapdone: Finishes mapping and outputs a ready-to-paste code snippet for IslandPatrolRoutes.
- deepsea.mapundo: Removes the last recorded waypoint.
Config
{ "General Controls": { "Control schedule (enables schedule modes)": false, "Control content (enables spawn count overrides)": false, "Control travel rules (enables granular portal access)": false, "Control building (enables building controls)": false, "Control loot (enables loot overrides)": true, "Control events (enables deep sea events)": true, "Control notifications (enables announcements)": true, "Force apply on reload (close and reopen Deep Sea)": false, "Enforce interval seconds (0 = once on startup, >0 = repeating)": 0.0 }, "Schedule": { "Mode (Vanilla, AlwaysOpen, Disabled)": "Vanilla", "Open time seconds (Vanilla mode, overrides wipeDuration)": 10800, "Cooldown seconds (Vanilla mode, overrides wipeCooldown)": 5400, "Final phase seconds (Vanilla mode, overrides wipeEndPhaseDuration)": 1800, "Radiation warning phase seconds (Vanilla mode)": 300, "AlwaysOpen - Keep time left around (seconds)": 9000.0, "AlwaysOpen - Refill when below (seconds)": 3600.0, "Disabled - Push next opening to (seconds)": 999999.0, "Deep Sea enabled override (DontTouch, ForceEnabled, ForceDisabled)": "DontTouch" }, "Notifications": { "Announce when Deep Sea opens": true, "Announce when Deep Sea closes": true, "Countdown intervals (seconds remaining)": [ 1800, 900, 300, 60 ], "Use toast messages": true, "Use chat messages": true, "Countdown check interval (seconds)": 10.0, "Use NCP notifications (requires NCP plugin)": false }, "Loot Overrides": { "Enable loot overrides": true, "Stack size multiplier": 1.5, "Bonus items": [ { "Item shortname": "rifle.ak", "Amount": 1, "Chance (0.0 - 1.0)": 0.1, "Skin ID": 0 }, { "Item shortname": "ammo.rifle", "Amount": 128, "Chance (0.0 - 1.0)": 0.5, "Skin ID": 0 } ], "Override hackable crate loot on ghost ships": false, "Override hackable crate hack time in Deep Sea (seconds, 0 to use vanilla)": 450.0, "Hackable crate bonus items": [], "Dynamic Loot Scaling": { "Enable dynamic scaling": false, "Base player threshold": 3, "Max bonus multiplier": 2.0, "Bonus per extra player": 0.1 } }, "Portal Settings": { "Enable portal features": true, "Cooldown after leaving Deep Sea (seconds)": 300.0, "Entry fee amount (0 to disable)": 500.0, "Entry fee plugin (Economics or ServerRewards)": "Economics", "VIP bypasses cooldown": true, "VIP bypasses food toll": true, "Allow any vehicle (bypass whitelist)": false, "Allowed vehicle prefabs (overrides vanilla whitelist)": [], "Require boat type only": true, "Allow players without vehicle (on foot)": false, "Allow noclip/admin players to bypass checks": true, "Allow NPC passengers": false, "Allow NPC player teleport": false, "Allow entry during radiation warning phase": false, "Ignore extra vehicle onboard check": false, "Log entry/exit decisions": false, "Show info panel on portal approach": true, "Portal approach trigger radius (portals are ~300 wide)": 150.0, "Portal info cooldown per player (seconds)": 30.0 }, "Deep Sea Overrides": { "Enable ConVar overrides": false, "Wipe duration (seconds)": 10800, "Wipe cooldown (seconds)": 5400, "Radiation phase duration (seconds)": 300, "End phase duration (seconds)": 1800, "Island Spawns": { "Count": 6, "Radius": 100.0, "Edge margin": 200.0, "Minimum distance": 400.0 }, "Ghost Ship Spawns": { "Count": 4, "Radius": 200.0, "Edge margin": 450.0, "Minimum distance": 400.0 }, "Floating City Spawns": { "Count": 1, "Radius": 300.0, "Edge margin": 1500.0, "Minimum distance": 1500.0 }, "RHIB Spawns": { "Count": 4, "Radius": 10.0, "Edge margin": 1150.0, "Minimum distance": 300.0 }, "Hackable crate count": 1, "Force entrance portal direction (0=Map-based, 1=N, 2=E, 3=S, 4=W)": 0, "Remove fog of war": false }, "Respawn System": { "Enable respawn system": false, "Check interval (minutes)": 15.0, "Minimum distance from players to respawn": 50.0, "Respawn hackable crates via ghost ships": true, "Maximum hackable crates active at once": 1, "Trigger island spawn groups (NPCs/loot)": true }, "Building Controls": { "Allow building in Deep Sea": false, "Limit foundations per player": false, "Max foundations per player": 10, "Show remaining foundations on place": true, "Show message when denied": true }, "Events": { "Treasure Hunt": { "Enable treasure hunt": true, "Number of stashes to spawn": 3, "Treasure items": [ { "Item shortname": "supply.signal", "Amount": 2, "Chance (0.0 - 1.0)": 1.0, "Skin ID": 0 }, { "Item shortname": "targeting.computer", "Amount": 1, "Chance (0.0 - 1.0)": 0.5, "Skin ID": 0 }, { "Item shortname": "techparts", "Amount": 3, "Chance (0.0 - 1.0)": 1.0, "Skin ID": 0 } ], "Show treasure markers on map": true, "Map marker radius": 0.08 }, "Boss Spawn": { "Enable boss spawn": false, "Minutes before wipe to spawn boss": 30, "Boss health multiplier": 2.0, "Patrol radius around island": 75.0, "Show boss marker on map": true, "Boss map marker radius": 0.15 }, "Supply Drops": { "Enable supply drops": true, "Interval between drops (minutes)": 45, "Show supply drop markers on map": true }, "Announce ghost ship crate hacking": true }, "Death Rules": { "Enable death tracking": true, "Show death summary message": true, "Snapshot inventory on entry": false, "Restore inventory on respawn after Deep Sea death": false }, "Discord Webhook": { "Enable Discord webhook": false, "Webhook URL": "", "Announce Deep Sea open": true, "Announce Deep Sea close": true, "Announce notable player achievements": true, "Embed color (decimal)": 3447003 }, "Config Version (DO NOT MODIFY)": { "Major": 1, "Minor": 0, "Patch": 0 } }
Developer API
Other plugins can call the following methods:
bool IsPlayerInDeepSea(ulong userId) — Returns true if the player is currently inside the Deep Sea. bool IsDeepSeaOpen() — Returns true if the Deep Sea is currently open. int GetDeepSeaPlayerCountApi() — Returns the number of players currently in the Deep Sea. string[] GetDeepSeaPlayerIds() — Returns an array of Steam ID strings for all players in the Deep Sea. Dictionary<string, object> GetPlayerDeepSeaStats(ulong userId) — Returns lifetime stats (DisplayName, TotalVisits, TotalTimeSpent, TotalNpcKills, TotalContainersLooted, TotalDeaths) or null if no stats exist.
The plugin also fires the following hooks for other plugins to subscribe to:
void OnDeepSeaPlayerEnter(ulong userId) — Called when a player enters the Deep Sea zone. void OnDeepSeaPlayerExit(ulong userId) — Called when a player leaves the Deep Sea zone.
