Перейти к содержимому
Mineforgian

2core

Run two linked Fabric servers as separate JVM processes — one mod managing a primary and secondary server with real-time cross-server features.

Загрузки
45
Подписчики
0
Обновлён
20 мая 2026 г.
Лицензия
MIT

Опубликован 20 мая 2026 г.

2Core

Run a second Fabric server as a separate JVM process — one mod, two roles.


What is this?

2Core lets you run two Minecraft servers on the same machine from a single mod. The primary server launches and manages the secondary server as an external JVM process. Both servers use the same mod JAR — the role (primary or secondary) is determined automatically at startup.

No plugins, no proxies, no extra software required.


Features

  • One mod, two servers — install once, the mod handles both roles automatically
  • Cross-server chat sync — chat messages, join/leave notifications, and death messages are relayed between servers in real time
  • Player list/listother shows online players on the other server (available to all players)
  • Full process management — start, stop, restart the secondary server with simple commands
  • Console relay — optionally mirror the secondary server's console output to the primary
  • Auto-start — optionally start the secondary server automatically when the primary starts
  • Configurable messages — customize join/leave/chat/death message formats independently for each server with color code support (&6, &a, etc.)
  • Safe IPC — servers communicate over a localhost-only TCP socket, no external exposure

Requirements

Minecraft 1.21.11
Fabric Loader ≥ 0.18.6
Fabric API any
Fabric Language Kotlin ≥ 1.13.0

Server-side only. No client installation needed.


Setup

  1. Install the mod on your primary server (along with Fabric API and Fabric Language Kotlin)
  2. Start the primary server — the mod creates a 2core/ folder and a 2core/2core.properties config file
  3. Place your secondary server files inside 2core/ (or configure copy_mode to copy them automatically)
  4. Run /2core start to launch the secondary server

The mod copies itself into 2core/mods/ automatically — no need to install it separately on the secondary.


Commands

Available on both servers (all players)

Command Description
/listother Show online players on the other server

Admin commands — primary server only (/2core ...)

Command Description
/2core start Start the second server
/2core stop Stop the second server
/2core restart Restart the second server
/2core status Show status, config, and IPC connection info
/2core chatlink on|off Enable or disable cross-server sync
/2core console on|off Toggle secondary console relay to primary
/2core cmd <command> Send a command to the secondary server
/2core set <key> <value> Change a config value without editing the file
/2core help Show command list

Configuration

Config file: 2core/2core.properties

Key Default Description
copy_mode none none / launcher / full — how to copy server files to 2core/
launcher_jar fabric-server-launch.jar Fabric launcher jar name
vanilla_jar server.jar Vanilla server jar name
port 25566 Port for the secondary server
max_ram_mb 1024 Max RAM for the secondary JVM (-Xmx)
auto_start false Start secondary automatically when primary starts
auto_console false Enable console relay automatically on startup
chat_link false Sync chat, join, leave, and death events between servers
ipc_port 0 IPC port for inter-server communication (0 = auto)
join_message_for_primary &6%player% joined the second server Shown on primary when a player joins the secondary
join_message_for_secondary &6%player% joined the main server Shown on secondary when a player joins the primary
leave_message_for_primary &6%player% left the second server Shown on primary when a player leaves the secondary
leave_message_for_secondary &6%player% left the main server Shown on secondary when a player leaves the primary
chat_format_for_primary &7[&62nd&7] &f<%player%> %message% Chat format on primary for messages from secondary
chat_format_for_secondary &7[&61st&7] &f<%player%> %message% Chat format on secondary for messages from primary
death_format_for_primary &7[&62nd&7] &c%message% Death message format on primary from secondary
death_format_for_secondary &7[&61st&7] &c%message% Death message format on secondary from primary

Placeholders: %player%, %message%. Color codes: &0&9, &a&f, &l, &o, &r, etc.


How it works

When the primary server starts, it launches the secondary server as a child JVM process with -Dtwocore.role=secondary. Both JVMs run the same mod JAR — the secondary detects its role via the system property and skips all process management logic. Inter-server communication (chat sync, player list queries) happens over a localhost TCP socket managed by the mod.

Ченджлог

1.0.0Релиз1.21.11 · 20 мая 2026 г.

Changelog

1.0.0 — Initial Release

Core

  • Launch and manage a second Fabric server as a child JVM process from a single mod
  • Automatic role detection — both servers use the same JAR (primary / secondary via system property)
  • Graceful shutdown of the secondary when the primary stops or crashes
  • Primary PID monitoring on the secondary side — secondary exits automatically if the primary dies

Process Management

  • /2core start / stop / restart — control the secondary server in-game or from console
  • /2core status — shows running state, uptime, PID, IPC connection, and current config
  • /2core cmd <command> — send a command to the secondary server's stdin
  • /2core console on|off — toggle live relay of secondary console output to primary
  • auto_start — optionally start the secondary automatically on primary startup
  • copy_mode (none / launcher / full) — automatic copying of server files into 2core/
  • Secondary console output always saved to 2core/logs/console.log

Cross-Server Sync

  • /listother — show online players on the other server, available to all players on both sides
  • Chat messages, join/leave notifications, and death messages relayed between servers in real time
  • /2core chatlink on|off — toggle sync without restarting
  • Fully configurable message formats with %player%, %message% placeholders and & color codes

Configuration

  • Config file auto-created at 2core/2core.properties on first start
  • /2core set <key> <value> — change any config value live without editing the file
  • Secondary reads only its relevant config keys — cannot accidentally trigger server launch logic
  • IPC port auto-assigned if not set (ipc_port=0)

Комментарии

Загружаем…