MCPInstall

subnautica-ii-coop-multiplayer-mod

BepInEx-based multiplayer mod for Subnautica 2 enabling synchronized cooperative gameplay with shared inventory, base building, and AI integration

Installs
236
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/reason-machines/devtools-skills --skill subnautica-ii-coop-multiplayer-mod
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads subnautica-ii-coop-multiplayer-mod automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

Subnautica II Deep Synergy Multiplayer Mod

Skill by ara.so — Devtools Skills collection.

Overview

The Deep Synergy Multiplayer Mod transforms Subnautica 2 into a cooperative survival experience using BepInEx's IL2CPP modding framework. It implements deterministic session synchronization, peer-to-peer networking via WebRTC, and optional AI integration for narrative generation.

Key Capabilities:

  • Synchronized multiplayer sessions (2-8 players)
  • Shared inventory and base building with conflict resolution
  • Adaptive difficulty scaling based on player count
  • Cross-platform support (Windows, Linux, macOS)
  • BepInEx plugin architecture (no game file modification)
  • Optional OpenAI/Claude API integration for dynamic narration

Installation

Prerequisites

  1. Subnautica 2 installed via Steam/GOG
  2. BepInEx 6.0.x for Unity IL2CPP games

Step-by-Step Installation

# 1. Navigate to Subnautica 2 installation directory
cd "C:\Program Files (x86)\Steam\steamapps\common\Subnautica2"

# 2. Install BepInEx (if not already installed)
# Download BepInEx_UnityIL2CPP_x64 from https://github.com/BepInEx/BepInEx/releases
# Extract to game root directory

# 3. Download Deep Synergy mod from release page
# Extract DeepSynergy.dll to BepInEx/plugins/

# 4. Verify installation structure
BepInEx/
├── plugins/
│   └── DeepSynergy.dll
├── config/
│   └── synergy_profile.json (created on first run)
└── core/
    └── (BepInEx core files)

Configuration

Basic Session Profile

Create BepInEx/config/synergy_profile.json:

{
  "session_name": "MyCoopSession",
  "max_players": 4,
  "difficulty_scale": "adaptive",
  "resource_multiplier": 1.0,
  "oxygen_consumption": 1.0,
  "creature_spawn_divider": 1,
  "enable_pvp": false,
  "friendly_fire": false,
  "shared_blueprints": true,
  "ping_locations_shared": true,
  "time_of_day_sync": "host",
  "voice_chat_integration": "none",
  "api_integration": {
    "openai": {
      "enabled": false,
      "role": "narrator"
    },
    "claude": {
      "enabled": false,
      "role": "lore_engine"
    }
  }
}

Configuration Fields

FieldTypeDescriptionValid Values
session_namestringDisplay name for sessionAny string
max_playersintPlayer limit2-8
difficulty_scalestringHow difficulty adjustsadaptive, static, manual
resource_multiplierfloatResource spawn multiplier0.5-3.0
oxygen_consumptionfloatOxygen drain rate modifier0.5-2.0
creature_spawn_dividerintReduces creature spawns1-4
shared_blueprintsboolShare discovered blueprintstrue/false
time_of_day_syncstringTime sync strategyhost, all, independent

AI Integration Configuration

To enable AI narration (optional):

{
  "api_integration": {
    "openai": {
      "enabled": true,
      "role": "narrator",
      "api_key_env": "OPENAI_API_KEY",
      "model": "gpt-4",
      "temperature": 0.7,
      "max_tokens": 150
    },
    "claude": {
      "enabled": true,
      "role": "lore_engine",
      "api_key_env": "ANTHROPIC_API_KEY",
      "model": "claude-3-sonnet-20240229",
      "max_tokens": 200
    }
  }
}

Set environment variables before launching:

# Windows
set OPENAI_API_KEY=your_key_here
set ANTHROPIC_API_KEY=your_key_here

# Linux/macOS
export OPENAI_API_KEY=your_key_here
export ANTHROPIC_API_KEY=your_key_here

Console Commands

Access via BepInEx terminal (F12 in-game by default):

Session Management

# Host a new session
/start_server

# Join existing session with code
/join_session 9B2A-4C7D-E8F1

# Leave current session
/disconnect

# Show session info
/synergy_status

Gameplay Modifiers

# Adjust difficulty scaling (1.0 = normal, 1.5 = 50% harder)
/synergy_scale 1.5

# Override world seed for all clients
/seed_override 8251

# Force inventory synchronization
/sync_inventory

# Teleport to another player
/tp_to_player PlayerName

AI Narration

# Trigger AI-generated narrative about current context
/api_narrate "exploring the kelp forest"

# Generate marine biology log for last scanned creature
/api_lore generate_species_log

# Get contextual survival hint
/api_hint

Key Patterns

Starting a Co-op Session

Host workflow:

# 1. Launch game with mod installed
# 2. Open console (F12)
/start_server

# Output: "Server created: session code = 9B2A-4C7D-E8F1"
# 3. Share code with friends
# 4. Wait for players to connect
/synergy_status

Client workflow:

# 1. Launch game with mod installed
# 2. Open console (F12)
/join_session 9B2A-4C7D-E8F1

# Output: "Connected to host. Syncing world state..."
# 3. Wait for synchronization to complete

Shared Inventory Management

The mod uses Merkle trees for inventory verification:

// Inventory sync status output from /synergy_status
{
  "connected_peers": 3,
  "latency_avg_ms": 45,
  "inventory_hash": "0xFA342B1E",
  "sync_progress": "100%",
  "conflicts_resolved": 2
}

Conflict resolution: If two players pick up the same item simultaneously, the mod uses timestamps to determine ownership. The "losing" player's action is rolled back.

Dynamic Difficulty Scaling

Example scaling for a 4-player session with "difficulty_scale": "adaptive":

{
  "base_creature_spawn_rate": 1.0,
  "adjusted_spawn_rate": 0.75,
  "resource_nodes": 1.3,
  "oxygen_efficiency": 1.1,
  "damage_multiplier": 1.2
}

Formula: adjusted_value = base_value * (1 + (player_count - 1) * scaling_factor)

BepInEx Plugin Integration

For developers extending the mod:

using BepInEx;
using BepInEx.IL2CPP;
using DeepSynergy.Core;

namespace MyCustomExtension
{
    [BepInPlugin(GUID, Name, Version)]
    [BepInDependency("com.deepsynergy.mod", BepInDependency.DependencyFlags.HardDependency)]
    public class CustomExtension : BasePlugin
    {
        public const string GUID = "com.myname.customextension";
        public const string Name = "Custom Extension";
        public const string Version = "1.0.0";

        public override void Load()
        {
            // Hook into Deep Synergy events
            SessionManager.OnPlayerJoined += HandlePlayerJoined;
            InventorySync.OnItemPickup += HandleItemPickup;
        }

        private void HandlePlayerJoined(PlayerData player)
        {
            Log.LogInfo($"Player {player.Name} joined. ID: {player.Id}");
        }

        private void HandleItemPickup(ItemPickupEvent evt)
        {
            Log.LogInfo($"Item {evt.ItemId} picked up by {evt.PlayerId}");
        }
    }
}

Troubleshooting

Connection Issues

Problem: "Failed to establish peer connection"

# Check firewall settings (allow UDP ports 7777-7787)
# Windows Firewall example:
netsh advfirewall firewall add rule name="Subnautica2 Coop" dir=in action=allow protocol=UDP localport=7777-7787

# Verify NAT type
/synergy_status
# Look for "NAT Type: Symmetric" (problematic) vs "Moderate/Open" (good)

# Force relay mode if direct connection fails
# In synergy_profile.json:
{
  "network": {
    "force_relay": true,
    "relay_server": "turn:relay.example.com:3478"
  }
}

Problem: "Inventory desync detected"

# Force full resynchronization
/sync_inventory --full

# Check for conflicting mods
# Disable all other BepInEx plugins temporarily

# Verify mod version matches across all clients
/synergy_status
# All players must show same "Mod Version: x.x.x"

Performance Issues

Problem: Low FPS in multiplayer vs single-player

# Reduce creature AI sync frequency in synergy_profile.json:
{
  "performance": {
    "creature_ai_sync_rate_ms": 500,  // Default: 250
    "position_sync_rate_ms": 100,      // Default: 50
    "inventory_sync_rate_ms": 1000     // Default: 500
  }
}

# Disable AI integration if enabled
{
  "api_integration": {
    "openai": {"enabled": false},
    "claude": {"enabled": false}
  }
}

Session Code Not Working

Problem: "Invalid session code"

# Ensure exact format: XXXX-XXXX-XXXX (4 hex chars per segment)
# Codes are case-insensitive

# Check if host session is still active
# Host should see:
/synergy_status
# Output: "Session State: Active, Accepting Connections: Yes"

# Regenerate session code if corrupted
# Host runs:
/restart_server

Mod Not Loading

Problem: Mod doesn't appear in BepInEx console

# 1. Verify BepInEx installation
# Check for BepInEx/LogOutput.log

# 2. Enable verbose logging
# Edit BepInEx/config/BepInEx.cfg:
[Logging.Console]
Enabled = true
LogLevels = All

# 3. Check for IL2CPP compatibility
# Ensure you downloaded BepInEx IL2CPP version, not Mono

# 4. Verify file structure
BepInEx/plugins/DeepSynergy.dll  # Must be directly in plugins/

Advanced Usage

Custom Event Hooks

Monitor mod events via BepInEx logging:

using DeepSynergy.Events;

EventBus.Subscribe<BasePartPlacedEvent>(evt => 
{
    Log.LogInfo($"Base part placed: {evt.PartType} at {evt.Position}");
    // Custom logic here
});

EventBus.Subscribe<CreatureSpawnEvent>(evt => 
{
    if (evt.CreatureType == "Leviathan")
    {
        Log.LogWarning("Leviathan spawned nearby!");
    }
});

Dedicated Server Mode

For 24/7 hosting (experimental):

{
  "server_mode": {
    "enabled": true,
    "headless": true,
    "auto_save_interval_minutes": 15,
    "max_idle_time_minutes": 30,
    "restart_on_empty": true
  }
}

Run with:

# Linux
./Subnautica2.x86_64 -batchmode -nographics

# Windows
Subnautica2.exe -batchmode -nographics

Localization

Override UI language:

{
  "locale": "ja_JP",  // Japanese
  "locale_fallback": "en_US"
}

Supported locales: en_US, zh_CN, ja_JP, de_DE, fr_FR, pt_BR, ru_RU, es_ES, ko_KR

API Reference

Environment Variables

  • OPENAI_API_KEY - OpenAI API key for narration features
  • ANTHROPIC_API_KEY - Anthropic API key for lore generation
  • SYNERGY_DEBUG - Set to 1 for verbose debug logging
  • SYNERGY_RELAY_SERVER - Override default TURN server URL

Configuration File Locations

  • Windows: %USERPROFILE%\AppData\Roaming\Subnautica2\BepInEx\config\
  • Linux: ~/.config/unity3d/UnknownWorlds/Subnautica2/BepInEx/config/
  • macOS: ~/Library/Application Support/UnknownWorlds/Subnautica2/BepInEx/config/

FAQ

What does the subnautica-ii-coop-multiplayer-mod skill do?

BepInEx-based multiplayer mod for Subnautica 2 enabling synchronized cooperative gameplay with shared inventory, base building, and AI integration

How do I install subnautica-ii-coop-multiplayer-mod?

Run npx skills add https://github.com/reason-machines/devtools-skills --skill subnautica-ii-coop-multiplayer-mod in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/subnautica-ii-coop-multiplayer-mod/ (personal) or .claude/skills/subnautica-ii-coop-multiplayer-mod/ (project).

Which AI agents can use subnautica-ii-coop-multiplayer-mod?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is subnautica-ii-coop-multiplayer-mod safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains subnautica-ii-coop-multiplayer-mod?

It is published by reason-machines in reason-machines/devtools-skills. It has 236 recorded installs.

More from reason-machines/devtools-skills

View all →

cc-switch-cli

reason-machines/devtools-skills

Cross-platform CLI tool for managing Claude Code, Codex, Gemini, OpenCode & OpenClaw providers, MCP servers, prompts, skills, and proxies.

AI & Agents316 installs

wx-cli-wechat-local-data

reason-machines/devtools-skills

Open the skill to read its SKILL.md instructions.

284 installs

chrome-devtools-mcp-automation

reason-machines/devtools-skills

Use Chrome DevTools MCP to control Chrome, debug web apps, analyze performance, and automate browser tasks via MCP tools

AI & Agents265 installs

officecli-office-automation

reason-machines/devtools-skills

Use OfficeCLI to create, read, and edit Word, Excel, and PowerPoint files from the command line with AI-friendly commands.

cli-anything-agent-native-software

reason-machines/devtools-skills

Generate and use command-line interfaces that make any software controllable by AI agents with structured JSON output

AI & Agents258 installs

autocli-web-scraping

reason-machines/devtools-skills

Open the skill to read its SKILL.md instructions.

Popular other skills

View category →

hyperframes-cli

heygen-com/hyperframes

The HyperFrames CLI by job - scaffold, check, look at frames, edit the timeline, preview, render locally or in the cloud, publish, project history - plus reading its JSON and recovering from build or render failures.

1.3M installs

triage

mattpocock/skills

Move issues and external PRs through a state machine of triage roles, categorise, verify, grill if needed, and write agent-ready briefs.

1M installs

ask-matt

mattpocock/skills

Ask which skill or flow fits your situation. A router over the skills in this repo.

778.4K installs

to-questionnaire

mattpocock/skills

Turn a decision you can't fully answer into a questionnaire for someone else to fill in.

508.9K installs

wait-what

mattpocock/skills

Stop. That last message did not land: re-pitch it.

459.7K installs

loop-me

mattpocock/skills

Grill me about specs for the workflows I want to build, within this workspace.

447.9K installs