Complete Gaming Guide

Goldberg Emulator, ZeroTier VLAN & Nucleus Coop

Master online and local multiplayer gaming with comprehensive tutorials and troubleshooting

Quick Start

🌐

Online Play

Goldberg + ZeroTier for internet play with CGNAT

🎮

Split-Screen

Nucleus Coop for local multiplayer on one PC

🔧

Troubleshooting

Fix common issues and problems

Section 1: Goldberg Emulator + ZeroTier VLAN

Play games over the internet even with CGNAT connections by using Goldberg Steam emulator combined with ZeroTier's virtual LAN technology.

1.1 Understanding CGNAT (Why Port Forwarding Fails)

What is CGNAT?

CGNAT = Carrier-Grade Network Address Translation

Your ISP shares one public IP address among MANY customers. Think of it like an apartment building with one street address but many units.

Your Situation with CGNAT:

  • Your router shows WAN IP: 10.194.x.x or 192.168.x.x
  • Your actual public IP: 204.237.x.x
  • These are DIFFERENT = You have CGNAT
  • Result: Port forwarding CANNOT work

Why This Breaks Gaming:

Traditional multiplayer hosting requires:

  1. You open ports on your router (port forwarding)
  2. Friends connect to your public IP
  3. Router forwards traffic to your PC

With CGNAT:

  1. You CAN open ports on your router ✓
  2. Friends connect to public IP ✓
  3. ISP's CGNAT blocks the traffic ✗ FAILS

The ISP has ANOTHER router/NAT before yours that you can't control!

The Solution: ZeroTier + Goldberg

Both bypass the need for port forwarding by using OUTBOUND connections only.

1.2 How Goldberg Emulator Works

What Goldberg Does:

  • Replaces Steam's API files (steam_api.dll)
  • Emulates Steam's multiplayer features
  • Enables LAN play without Steam running
  • Allows multiple instances per game

Key Concepts:

LISTEN PORT (Local Port):

  • Goldberg listens on a UDP/TCP port on YOUR computer
  • Default varies, configured in listen_port.txt
  • This is LOCAL to your PC, NOT your router
  • All players must use the SAME port number
  • Example: Everyone uses port 47584

Important: This is NOT the same as "opening ports" on your router! This port is on your computer's network adapter (local), not facing the internet. CGNAT doesn't affect local ports!

BROADCAST DISCOVERY:

  • Goldberg sends "broadcast packets" to find other players
  • Normal: Broadcasts to 255.255.255.255 (local network only)
  • With custom_broadcasts.txt: Sends to specific IPs you list
  • This is how players discover each other

CUSTOM_BROADCASTS.TXT (Critical for VLAN):

Location: %appdata%\Goldberg SteamEmu Saves\settings\custom_broadcasts.txt

Purpose: Tell Goldberg exactly where your friends are

172.28.145.82
172.28.145.93
172.28.145.104

This makes Goldberg send discovery packets to these IPs instead of just broadcasting locally. ESSENTIAL for ZeroTier/VLAN play!

1.3 ZeroTier Setup Guide

How ZeroTier Solves CGNAT:

  • Creates a virtual network adapter on your PC
  • Gives you a virtual IP (like 172.28.x.x)
  • All players on same ZeroTier network can see each other
  • Works by making OUTBOUND connections (bypasses CGNAT!)

The Magic: Your PC → (outbound) → ZeroTier servers → Friend's PC ← (outbound)

Both connections are OUTBOUND from each person's perspective! No inbound connections needed = CGNAT doesn't block it!

Step-by-Step Setup:

1

Create ZeroTier Account

  1. Go to https://my.zerotier.com/
  2. Click "Sign Up"
  3. Use Google/GitHub or email
  4. Verify email if needed
  5. Log in
2

Create Network

  1. Click "Create A Network"
  2. Note the 16-digit Network ID (example: a0cbf4b62af04ee1)
  3. Click on network to configure
  4. Give it a name (optional): "Gaming Network"
  5. Keep "Access Control" as "Private"
  6. Remember this Network ID - you'll share with friends
3

Install ZeroTier

  1. Download from https://www.zerotier.com/download/
  2. Run installer
  3. Allow Windows Firewall (check both Private and Public)
  4. ZeroTier runs in system tray (bottom-right)
4

Join Your Network

  1. Right-click ZeroTier icon in system tray
  2. Select "Join Network..."
  3. Enter your Network ID: a0cbf4b62af04ee1
  4. Click "Join"
5

Authorize Yourself

  1. Go back to ZeroTier Central (my.zerotier.com)
  2. Refresh your network page
  3. Scroll to "Members" section
  4. Find your PC (shows hostname)
  5. Check the "Auth?" checkbox
  6. Note your assigned IP (example: 172.28.147.83) - WRITE THIS DOWN!
6

Verify Connection & Test Ping

  1. Press Win+R, type: cmd, press Enter
  2. Type: ipconfig
  3. Look for "Ethernet adapter ZeroTier One"
  4. Note the IPv4 Address (should match what ZeroTier Central shows)
Testing Connectivity (Ping):

After your friends join and are authorized, test the connection:

ping 172.28.147.105

You should see replies like:

Reply from 172.28.147.105: bytes=32 time=45ms TTL=64
Reply from 172.28.147.105: bytes=32 time=43ms TTL=64

If "Request timed out":

  • Wait 2 minutes and try again (network needs time)
  • Check Windows Firewall settings
  • Verify friend is authorized in ZeroTier Central
  • Make sure both PCs are connected to ZeroTier
7

Invite Friends

  1. Share Network ID with friends
  2. Friends repeat Steps 3-6
  3. You authorize each friend in ZeroTier Central (Step 5)
  4. Collect everyone's ZeroTier IPs:
    • You: 172.28.147.83
    • Friend A: 172.28.147.105
    • Friend B: 172.28.147.222

1.4 Goldberg Emulator Setup

1

Download Goldberg

  1. Go to https://mr_goldberg.gitlab.io/goldberg_emulator/
  2. Click "Latest Build"
  3. Save the zip file
  4. Extract to Desktop
2

Find Game's Steam API

  1. Open Steam
  2. Right-click game → Properties → Local Files → Browse
  3. Search for: steam_api.dll or steam_api64.dll
  4. Usually in game root or "bin" folder
  5. BACKUP the original (copy and rename to steam_api.dll.backup)
3

Get Steam App ID

  1. Go to https://steamdb.info/
  2. Search your game
  3. Note the App ID number (example: Valheim = 892970)
4

Install Goldberg

  1. Copy appropriate DLL from Goldberg folder:
    • 32-bit game: steam_api.dll
    • 64-bit game: steam_api64.dll
  2. Paste into game folder (replace original)
  3. Create new text file: steam_appid.txt
  4. Put ONLY the App ID inside: 892970
  5. Save in same folder as the DLL
5

Test

  1. Close Steam completely
  2. Run game from .exe (not Steam)
  3. Game should launch!

1.5 Configure for VLAN Play

1

Configure Your Identity

  1. Press Win+R, type: %appdata%, press Enter
  2. Navigate to: Goldberg SteamEmu Saves\settings\
  3. Edit account_name.txt: Put your name (Player1)
  4. Edit user_steam_id.txt: Keep the default number
  5. Don't change listen_port.txt (or ensure all players match!)
2

Create custom_broadcasts.txt (CRITICAL!)

  1. In same settings folder
  2. Create new text file: custom_broadcasts.txt
  3. Add your FRIENDS' ZeroTier IPs (NOT your own):
172.28.147.105
172.28.147.222
  1. Save and close
  2. One IP per line, no extra spaces!
3

Friends Do The Same

Each friend needs to:

  1. Install Goldberg (previous section)
  2. Configure identity with UNIQUE Steam ID:
    • Friend A: user_steam_id.txt = increase last digit by 1
    • Friend B: user_steam_id.txt = increase last digit by 2
  3. Create their own custom_broadcasts.txt with OTHER players' IPs
4

Launch and Connect

  1. Everyone launches game from .exe
  2. Go to multiplayer menu
  3. Host creates a game/server
  4. Others should see it in LAN/server browser
  5. Join and play!

If you don't see servers:

  • Wait 30-60 seconds
  • Try using lobby_connect.exe (see next section)
  • Verify custom_broadcasts.txt is correct
  • Check Windows Firewall allows game

1.6 LOBBY_CONNECT Tool (For Special Games)

What is LOBBY_CONNECT?

A special tool included with Goldberg that helps you discover and join game lobbies when the game has no LAN browser menu.

When You Need It:

  • Game only has "Invite Steam Friends" option
  • No LAN server browser in multiplayer menu
  • Can't manually enter IP addresses
  • Game uses Steam's lobby system exclusively

How It Works:

  1. Host creates a lobby in-game
  2. Host's Goldberg broadcasts lobby info via custom_broadcasts
  3. You run lobby_connect.exe (before launching game)
  4. lobby_connect discovers host's lobby on the network
  5. Shows you list of available lobbies
  6. You select the lobby
  7. lobby_connect launches your game with "+connect_lobby" command
  8. Game automatically joins the lobby!

Step-by-Step Usage:

HOST (Player creating lobby):

  1. Launch game with Goldberg
  2. Go to multiplayer menu
  3. Create/Host a game
  4. Make sure it's PUBLIC (not invite-only)
  5. Wait in lobby
  6. Tell friends you're ready

JOINER (Player connecting):

  1. Make sure game is CLOSED
  2. Navigate to: [Goldberg folder]\lobby_connect\
  3. Double-click lobby_connect.exe
  4. Wait 2-3 seconds while it discovers lobbies
  5. You'll see a menu with available lobbies
  6. Type the number of the lobby to join
  7. Press Enter
  8. Browse to your game's .exe file when prompted
  9. Click Open
  10. Game launches and AUTO-CONNECTS to lobby!

Troubleshooting LOBBY_CONNECT:

"People on the network: 0"

  • Host hasn't created lobby yet (wait for host)
  • custom_broadcasts.txt not configured (add host's IP)
  • Can't ping host (fix ZeroTier connection first)

Shows people but no "command line"

  • Host hasn't created lobby yet (host needs to actually host)
  • Lobby is invite-only (host: make it public)
  • Run lobby_connect AFTER host creates lobby

"Failed to initialize Steam API"

  • Need steam_appid.txt in lobby_connect folder
  • Copy your game's steam_appid.txt to the lobby_connect folder

Game launches but doesn't connect

  • Wrong .exe selected (try different exe in game folder)
  • Game doesn't support +connect_lobby command
  • Host's lobby closed before you joined

Section 2: Nucleus Coop (Local Split-Screen)

Enable split-screen co-op on PC games that don't natively support it, allowing multiple players on one PC with separate controllers.

2.1 What is Nucleus Coop

Nucleus Coop is FREE software that enables split-screen co-op on PC games that don't natively support it.

What It Does:

  • Runs multiple instances of the same game
  • Each instance gets its own controller
  • Windows are arranged in split-screen layout
  • Games connect via LAN/localhost

What It Doesn't Do:

  • Can't add multiplayer to single-player-only games
  • Doesn't work on Xbox Game Pass games (DRM)
  • Can't bypass strong anti-cheat

Performance Expectations:

With a modern gaming PC (Ryzen 9, 32GB RAM, RTX 3080 or similar):

  • 2 players: High settings, 60+ FPS each
  • 3 players: Medium settings, 60 FPS each
  • 4 players: Low-Medium settings, 50-60 FPS each

2.2 Installation Guide

Requirements:

  • .NET Framework 4.7.2+ (Windows 10/11 has this)
  • Visual C++ 2015-2019 Redistributable (x86 AND x64)
1

Download Prerequisites

Get Visual C++ Redistributables:

Install BOTH, restart if prompted

2

Download Nucleus Coop

  1. Go to: Nucleus Coop Releases
  2. Download: NucleusCoopApp.zip (latest release)
  3. Extract to: C:\NucleusCoop (NOT Program Files!)
3

Antivirus Exception

  1. Open Windows Security
  2. Virus & threat protection → Manage settings
  3. Exclusions → Add folder
  4. Add: C:\NucleusCoop
4

First Launch

  1. Right-click NucleusCoop.exe → Properties
  2. Compatibility → Run as administrator
  3. Launch NucleusCoop.exe

2.3 Setting Up Your First Game

1

Check Compatibility

Go to https://hub.splitscreen.me/

Search for your game - must have a "handler"

2

Add Game

  1. In Nucleus, click "Add New Games" (+ icon)
  2. Search for your game
  3. Click game cover → Read handler notes!
  4. Click "Download Handler"
  5. Browse to game .exe when prompted
  6. Add game
3

Configure Controllers

  1. Connect all controllers (before launching Nucleus)
  2. Test in joy.cpl (Win+R → joy.cpl)
  3. Controllers appear at top of Nucleus window
4

Set Layout

  1. Select split-screen layout (2-player, 3-player, 4-player)
  2. Drag controller icons to screen sections
  3. Each section = one player
5

Launch!

  1. Click Play arrow
  2. Wait (first time takes 1-2 minutes)
  3. Games launch and arrange in split-screen
  4. Navigate menus to connect instances
  5. Play!

To End Session: Press Ctrl+Q in Nucleus OR exit games normally

2.4 Controller Configuration

Testing Controllers:

  1. Press Win+R, type: joy.cpl, press Enter
  2. Test each controller's buttons and sticks
  3. Ensure all controllers are detected before launching Nucleus

Supported Controller Types:

  • Xbox Controllers: Works natively (best compatibility)
  • PlayStation Controllers: Use DS4Windows or Steam Input
  • Generic Controllers: May require additional configuration

Tip: XInput controllers (Xbox-style) work best with Nucleus Coop. If using other controllers, consider using software to emulate XInput.

2.5 Performance Optimization

Recommended Settings for 4 Instances:

  • Resolution: 1920×1080 per instance (or 1280×720 for better FPS)
  • Graphics: Low to Medium
  • Shadows: OFF (biggest performance boost!)
  • Effects: Low
  • Anti-Aliasing: OFF
  • V-Sync: OFF
  • Frame Limit: 60 FPS

Before Playing:

Expected Performance (Modern Gaming PC):

  • RAM Usage: 20-28GB (32GB system)
  • VRAM Usage: 6-8GB (10GB+ GPU)
  • CPU Usage: Well distributed across cores
  • Result: Smooth 60 FPS per instance at low settings!

Section 3: Troubleshooting

3.1 Goldberg Connection Issues

Connection Troubleshooting Flowchart:

Can you ping friend's ZeroTier IP?

NO

→ Fix ZeroTier connection first (Section 1.3)

YES

→ Continue below

Does game launch without Steam?

NO

→ Fix Goldberg installation (Section 1.4)

YES

→ Continue below

Is custom_broadcasts.txt correct?

UNSURE

→ Check file exists, has correct IPs (Section 1.5)

YES

→ Continue below

Do all players have unique Steam IDs?

NO

→ Each must be different (Section 1.5)

YES

→ Continue below

Same listen_port.txt for everyone?

NO

→ Must match across all players

YES

→ Try lobby_connect.exe (Section 1.6)

3.2 Nucleus Coop Issues

Nucleus Troubleshooting Flowchart:

Is .NET Framework installed?

NO

→ Install .NET 4.7.2+

YES

→ Continue below

Visual C++ Redistributable installed?

NO

→ Install x86 AND x64 versions (Section 2.2)

YES

→ Continue below

Running as administrator?

NO

→ Right-click → Run as admin

YES

→ Continue below

Antivirus blocking?

YES

→ Add C:\NucleusCoop to exclusions

NO

→ Continue below

Extracted to correct location?

NO

→ Move to C:\NucleusCoop (not Program Files)

YES

→ Should work now! Check Discord for help

Common Issues:

Mouse stuck/locked after closing games

  • Press END key to unlock mouse
  • Or press Ctrl+Q in Nucleus to properly end session

Game instances don't connect to each other

  • Check Windows Firewall allows the game
  • Read the handler notes for specific instructions
  • Some games require manual connection via in-game menus

Low FPS / Performance issues

  • Lower graphics settings to Low/Medium
  • Turn OFF shadows completely
  • Reduce resolution per instance
  • Close background applications

Resources & Links

Quick Reference Glossary

CGNAT
Carrier-Grade NAT. ISP shares one public IP among many customers. Prevents port forwarding.
Goldberg
Steam API emulator. Enables LAN play without Steam.
ZeroTier
VPN that creates virtual LANs over internet.
lobby_connect
Tool to discover and join Steam lobbies via Goldberg.
Handler
JavaScript file telling Nucleus how to run a specific game.
VLAN
Virtual LAN. Makes computers on different networks appear local.
AppID
Steam's unique number for each game.

Quick Commands Reference

ipconfig

Check ZeroTier adapter

ping [IP]

Test connectivity

Ctrl + Q

End Nucleus session

END

Fix mouse after Nucleus

joy.cpl

Test controllers

%appdata%

Access Goldberg settings