
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 —
/listothershows 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
- Install the mod on your primary server (along with Fabric API and Fabric Language Kotlin)
- Start the primary server — the mod creates a
2core/folder and a2core/2core.propertiesconfig file - Place your secondary server files inside
2core/(or configurecopy_modeto copy them automatically) - Run
/2core startto 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/secondaryvia 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 primaryauto_start— optionally start the secondary automatically on primary startupcopy_mode(none/launcher/full) — automatic copying of server files into2core/- 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.propertieson 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)
Комментарии
Загружаем…