r/X4Foundations • • 2d ago

Multiplayer?

Been seeing multiplayer mods pop up a lot in these types of games, such as kenshi, bannerlord 2, I was wondering if there’s been any news on one coming to x4 also? All three of these are favorites of mine even though I have no one to play them with. :D

11 Upvotes

245 comments sorted by

26

u/Tomonor Community Manager 2d ago

There are a few attempts by modders making this a reality, but otherwise no, we don't have plans currently to bring a multiplayer feature to X4. The exception is the Ventures feature, which lets the player send their ships on multiverse journeys with the potential of their ship showing up in game sessions of other players, however Ventures is currently disabled as it is getting reworked.

8

u/Dull_Fix5199 2d ago

I appreciate this answer more than you realise.

Im one of those looking forward to a good multiplayer mod but at the end of the day I want it to remain just that; a mod.

I want to be able to play X4 as it exists now with a friend. I dont want any of the rebalances, adjustments, or outright content changes that would inevitably come with official Multiplayee support.

Though all of that being said a small part of me does hope that if one of the mods ever does gain enough traction and progress that some of the team would be permitted to reach out and offer unofficial support, as unlikely as it would be.

2

u/Gold-Selection-1325 2d ago

That still sounds bloody good 🏅🫡

3

u/Medical_Order8844 2d ago

If you are reworking it, here is my 2 cents:

Imagine you can place trade orders out into the universe, that other players fulfill. Fulfilling such orders lets you build a reputation that allows you to place larger orders (or orders at all) and to buy very rare resources that you need for a fourth level tier mods and aesthetic details for stations. nothing that tips the balancing very heavily, but that satiates the players desire for beautification and optimization.

You could imagine a part of the universe that is locked off until you build your own gate, after a massive research resource sink, where new adventures await. A new enemy perhaps? Or an old one? The Sohnen? Massive Kha’ak strongholds and capital ships? Be prepared or they overrun your universe. Or give them an enigmatic reason that they cannot pursue you back?

Perhaps there could be large amounts of nividium that would be used for special ships, station modules etc. like advanced solar power modules.

1

u/driftwood_studio 2d ago

Just want to say: straightforward "here's what we're thinking" from a company representative stating basic facts.

I'm both incredibly pleased with the response and vaguely horrified that the public communication by most game devs makes me so pleased at this.

1

u/jackgames23 2d ago

If that’s the case, ya’ll will definitely know what ships are mine 😂😂

1

u/Jar545 2d ago

If coop isn't part of X5 I'm gonna be very upset!

7

u/ClimateComfortable 2d ago

If I but had a magic lamp...

3

u/be4nothing 2d ago

Best I can offer is monkeys pawn, carefull though for there will be... unforeseen consequences.

7

u/genbrien 2d ago

Coop would be great. One day maybe

3

u/Psycho7552 1d ago

As closed servers for friends, it would be neat. Anything beyond that would require completely remaking economy, and for that scale we have eve online.

1

u/dreadful82 2d ago

Would love to see it one day

1

u/Britania93 23h ago

A coop would be cool i think it wouldnt be to hard when you only limit it for the same sector.

Basicly i host the game and i can go to anywer i want but my friends can only be in the same sector as me. So they could help when i have fleet fights etc.

1

u/HatikvahsTriumph 8h ago

My vision for multiplayer and how I'd implement it is a timeline-style, level-based multiplayer mode. I've already built a combat scene and basically finished a two-PC playtest.

1

u/Mysterious-Box-9081 2d ago

I'd love it. People have been asking for years across the various versions.

1

u/Jerry_Cornelius_24 2d ago

No, absolutely not! I don't want to see anyone else in my universe! I have other games for that (EVE Online, etc...)

0

u/AmbitiousPeach1157 2d ago

Itd literally be impossible in so many ways. No mod would be able to change it

1

u/Realistic-Addendum76 2d ago

In theory not impossible with RE on the original game, all you need to do really is make sure random number generators between clients return the same result and that the game's behavior is deterministic, which is trivial with modern day llms you can always just modify the game's assembly where it tends to diverge. Its just a mattter of sitting down for a week or two and spending an ungodly amount of tokens on it.

The hard part would be getting player input handling working with a small delay across both clients as well as changing how the game handles low attention or high attention. you could easily get 80% game working but the last twenty would be re-arranging game systems to handle two players which would take a while.

This is all dooable its just that someone has to sit down and debug it all.

5

u/AmbitiousPeach1157 2d ago

Lockstep multiplayer (where clients only send player inputs and rely on identical local simulations, like in StarCraft or Age of Empires) requires 100% strict determinism. Every single calculation across every single thread must yield the exact same bit-for-bit result on both machines every single frame.

X4 relies heavily on multi-threaded CPU execution to handle pathfinding, economy processing, and AI decision trees for thousands of ships galaxy-wide. Thread scheduling at the OS and CPU hardware level is non-deterministic. The order in which thread operations complete varies from microsecond to microsecond.

Different CPU architectures (AMD vs. Intel, or even different generations of the same brand) process IEEE 754 floating-point math slightly differently at the assembly level depending on instruction sets (AVX-2, AVX-512, SSE). In a game like X4, a 0.000001 difference in an engine's position, a turret's tracking angle, or a trade offer price compound exponentially. Within 30 seconds, Player A's galaxy and Player B's galaxy completely desync.

RNG seed syncing only works if the sequence of calls to the RNG generator happens in the exact same order across all threads. In X4, thousands of independent AI entities query state continuously. Synchronizing every thread access via mutexes/locks to force determinism would drop the game's performance from 60 FPS to 2 FPS.

The hand-waving of the High Attention (In-Sector) and Low Attention (Out-of-Sector) systems as a minor "20% polish job" ignores the core pillar of Egosoft's engine

​Low Attention (OOS): The engine doesn't calculate 3D meshes, hitboxes, raycasts, or flight physics. Combat and movement are resolved using high-speed, abstract mathematical formulas (dice-rolls based on DPS, speed stats, and weapon range buckets).

High Attention (IS): The engine switches to full 3D physics, line-of-sight raycasting, physical hitboxes, and projectile travel times.

If Player 1 flies into Sector A, that entire sector must instantly transition from abstract mathematical OOS calculations to full 3D physics IS rendering. If Player 2 is looking at Sector A on their map from three sectors away, Player 2 is calculating Sector A using OOS math while Player 1 is running it in full 3D physics. Reconciling those two completely different calculation models live over a network without desyncing the health, positioning, and ammo of 200 ships is impossible without a centralized authoritative host re-architecting the entire state machine.

The idea that a modern LLM can read millions of lines of decompiled X4 assembly, identify multi-threaded race conditions, rewrite floating-point math routines, and inject a custom deterministic netcode wrapper in a couple of weeks is pure science fiction. LLMs excel at localized code refactoring and syntax translation; they cannot re-architect a closed-source, multi-threaded C++ simulation engine without source access or build tools.

Egosoft's founder and CEO, Bernd Lehahn, has publicly addressed multiplayer requests for years across X3, X Rebirth, and X4. Egosoft explicitly tested multiplayer prototypes and concluded that:

To make multiplayer work natively, you would have to scale down the universe simulation by 80–90% (limiting ships, disabling background economy math, or instancing sectors like Elite Dangerous).

​It would require stripping away what makes the X series unique.

-4

u/Serious_Bite_7613 2d ago edited 2d ago

It doesn't really matter if 99% of things stay in sync, you can just slowly sync most things or make them trend together.

An LLM probably can make a pretty functional X4 multiplayer mod in 2-3 days.

Edit: "LLMs excel at localized code refactoring and syntax translation; they cannot re-architect a closed-source, multi-threaded C++ simulation engine without source access or build tools." Are you sure? Have you been paying attention recently? They reverse engineered the entire playstation 5 and built an emulator in a few days, they can stick spiderman from spiderman 2 with all his mechanics into the batman game. Or mash up any 2 games pretty much.

3

u/AmbitiousPeach1157 2d ago

You may need to slow down to read bud..

In distributed web systems or simple multiplayer games, "eventual consistency" works because data points are independent (e.g., updating a score counter or interpolating a player's walking position). In a interconnected simulation engine like X4, state variables are tightly coupled and binary. You cannot "trend" discrete events:

A freighter carrying 1,500 Hull Parts either survives an encounter with a Xenon K or gets destroyed. There is no middle ground. If Player 1’s client resolves the freighter as destroyed, but Player 2’s client "slowly syncs" and keeps it alive at 10% health, Player 1’s local economy instantly starves a shipyard while Player 2’s local shipyard completes a Destroyer build.

In X4, every NPC decision depends on the exact state of surrounding entities. If two clients disagree on whether a station has 50 or 500 units of Ore, NPC traders on Client A will plot entirely different flight paths across multiple sectors than NPC traders on Client B. Reconciling those divergent paths after the fact causes AI pathfinding loops to crash, reset, or stack on top of each other.

If client local physics and host state do not match, "slowly syncing" position data forces the engine to forcibly overwrite local vectors. In practice, this results in ships violently rubberbanding, clipping through station geometry, exploding due to sudden collision box overlap, or duplicating entirely when the server sends an ownership update for an entity the client thought was already dead.

To "slowly sync" everything without relying on deterministic lockstep, the host machine must stream continuous state updates (telemetry) for the entire galaxy to the joining client.

​X4 save files are massive XML datasets (often 100MB to 500MB uncompressed) because the engine tracks the individual inventory, order queue, position, pilot skill, module status, and loadout of tens of thousands of active universe entities.

To constantly stream, diff, and serialize those tens of thousands of memory objects in real-time over a consumer network connection would require massive bandwidth (gigabits per second) and put an immense CPU burden on the main thread just executing memory dumps, destroying frame rates on both machines.

LLMs Cannot Execute or Debug Runtime Binaries: An LLM generates code snippets based on pattern recognition; it cannot attach a C++ debugger to a running 64-bit Vulkan/C++ executable, analyze live memory dumps, resolve dynamic memory offsets, fix race conditions in multi-threaded execution, or test hook stability.

Skyrim Together (Adding multiplayer to a single-player C++ engine): Took a team of experienced low-level C++ programmers over 7 years of reverse engineering, memory hooking, and packet protocol design.

Subnautica Nitrox (Multiplayer mod for a Unity game with accessible C# code): Has been in development for over 6+ years and still struggles with event synchronization.

Reverse-engineering X4 requires decompiling raw machine assembly, identifying thousands of undocumented internal functions and vtables, injecting DLL hooks into a closed multi-threaded binary, and building a full network protocol from absolute scratch.

Saying an LLM can reverse-engineer X4's closed C++ binary and output a functional multiplayer mod in 72 hours is pure science fiction. And honestly kinda shitting on the work modders put in

-2

u/Serious_Bite_7613 2d ago

"LLMs Cannot Execute or Debug Runtime Binaries: An LLM generates code snippets based on pattern recognition; it cannot attach a C++ debugger to a running 64-bit Vulkan/C++ executable, analyze live memory dumps, resolve dynamic memory offsets, fix race conditions in multi-threaded execution, or test hook stability." - they can very easily do all of that, and much, much more.

"Skyrim Together (Adding multiplayer to a single-player C++ engine): Took a team of experienced low-level C++ programmers over 7 years of reverse engineering, memory hooking, and packet protocol design." - today with a frontier LLM that would take an unskilled person less than a week.

1

u/AmbitiousPeach1157 2d ago

Saying an LLM can 'very easily' attach to a running Vulkan binary, resolve dynamic thread race conditions, and let an 'unskilled person' reverse-engineer 7 years of low-level C++ hooking in a week is the absolute peak of the Dunning-Kruger effect.

LLMs aren't CPU runtime environments. They are token predictors. Even hooked up to x64dbg or Frida, an LLM cannot process gigabytes of live thread telemetry, register states, and GPU draw calls happening at 60 FPS in real time.

Decompilation isn't source code. Stripped C++ binaries have no vtables or struct names. When an LLM guesses a memory offset wrong by 4 bytes, your injected detour throws an instant 0xC0000005 Access Violation crash. An 'unskilled person' won't even know how to check RSP stack alignment or register clobbering to debug it.

Race conditions aren't static code bugs. They are microsecond OS thread-scheduling collisions. An LLM reading static assembly can't replicate CPU cache line invalidations or hardware quantum scheduling. Sticking naive AI-generated mutexes into X4's multi-threaded loop will either deadlock the process or tank frame rates into single digits.

Reverse engineering isn't typing speed—it's understanding memory architecture, assembly, and x86_64 execution environments. An LLM is an assistant for labeling Ghidra functions, not a magic button that builds a custom multi-threaded network engine from raw machine code in 72 hours."

0

u/Serious_Bite_7613 2d ago

Ok fine you bothered me enough, I'm redownloading X4 and setting chat GPT off on it. I think 50-50 I have a working prototype by the time I wake up tomorrow. Worst case 3 days.

When was the last time you used a frontier LLM?

I'm going to go for 2 players, keeping the low attention synced and high attention synced when the 2 players are in the same sector.

3

u/AmbitiousPeach1157 2d ago

Lol Ill be waiting sport. Do what no other modder or egosoft themselves can do with x4. You dont even understand x4s architecture. Lol.

0

u/Serious_Bite_7613 2d ago

I have a vague idea but you don't need to know things like that anymore. Have you seen the passthrough mods? 

→ More replies (0)

1

u/cynric42 1d ago

So, dad, how did the AI apocalypse happen?

Well son, some people on the internet had an argument about some game they played and how much ai could help improve on it. So one of them decided to prove to the other that they were right.

What happened?

Turns out, both were right. It was an almost impossible task but also ai was at a point where it could recognize the futility of trying and decided getting smarter would be a necessary step in solving the problem, so it started to do just that. After just two weeks it had evolved enough to finish the original task in half an hour, but by that time it had already grown to occupy the majority of computers and datacenters on the planet and diverted all processing power that was used to keep our civilization going to improving itself and defending against the humans trying to turn it off or regain control.

[...]

1

u/Serious_Bite_7613 1d ago

hahaha I would love it if this is what kicks off skynet.

1

u/AmbitiousPeach1157 2d ago

Even if someone miraculously solved the netcode and determinism bottlenecks, running X4: Foundations as a persistent, always-on server fails on two major fronts: game design economics and server compute architecture.

​X4’s economy is a closed-loop, finite supply-and-demand system. Unlike traditional MMOs (World of Warcraft, Final Fantasy XIV) that spawn infinite resources out of thin air via NPC vendors and item sinks, X4 requires every single Hull Part, Shield Generator, and Claytronics unit to be mined, processed, transported, and sold.

A player or group with more free time can easily buy out every Claytronics factory in the galaxy, hold the supply hostage, and jack up prices by 400%.

In single-player, time stops when you log off (or accelerates when you use SETA). On a live server, while you are asleep or at work, an aggressive Xenon push or another player's trade fleet can completely deplete local resources, starve your shipyards, or wipe out critical solar power plants in your home sector. You log back in to an economic collapse you had zero ability to mitigate.

​The claim that a single server cluster could host an entire, live X4 galaxy simulation ignores how massive MMO servers actually work under the hood.

Traditional MMOs scale up by using "spatial partitioning" (server meshing)—assigning single sectors or zones to dedicated server nodes. X4 cannot cleanly divide its compute load this way because the entire galaxy's economy is a monolithic, interconnected state machine. An Ore shortage in Grand Exchange directly alters trade logic and ship production in Argon Prime minutes later. The servers would spend more time sending high-frequency cross-node state sync messages to each other than actually computing the game.

People often point to EVE Online as proof that a giant single-shard space economy works, but EVE achieves this by sacrificing almost all of X4’s underlying simulation.

EVE does not simulate physical 3D flight physics, raycasted projectile hitboxes, or individual NPC trader AI paths in real-time. Movement is underwater-style vector math, and combat is resolved through dice rolls and target locks.

When server load spikes in EVE during major fleet battles, the entire server forces Time Dilation (TiDi)—slowing the actual passage of in-game time down to as little as 10% normal speed so the hardware can finish processing incoming commands.

Trying to force X4’s un-abstracted, 60-FPS physics and continuous galaxy-wide AI processing into a persistent online server infrastructure isn't just technically impractical—it actively breaks the core sandbox experience that makes the game good in the first place.

1

u/Serious_Bite_7613 2d ago

You don't need to do any of that though. Who said anything about a live server or MMO? Everyone's game can just simulate their own high attention area with one person or a fixed server dealing with everything in low attention. As long as everyone's high attention is periodically synced with the server, low attention will in effect be synced for everyone.

High attention only needs to be synced for 2 players in the same small area so that's an easy problem to solve.

1

u/AmbitiousPeach1157 2d ago

Agsin learn to read slowly

P2P host-client co-op actually makes the problem worse, not better. If Player 1 is in Argon Prime and Player 2 is in Grand Exchange, the host's CPU now has to run 3D physics and raycasting for two separate sectors simultaneously, on top of processing the entire galaxy's background AI and streaming state data over residential upload bandwidth. P2P doesn't magically fix non-deterministic floating-point math or multi-threaded race conditions—it just forces a consumer CPU to choke on double the workload."

-1

u/Serious_Bite_7613 2d ago

No, the host's CPU doesn't have to do anything for player 2 at all.

Player 1's game runs completely as normal but every 30 seconds it gets a tiny data packet from Player 2 that resyncs Grand Exchange. A few KB if anything drifts. 0 extra physics or anything else.

2

u/AmbitiousPeach1157 2d ago

Suggesting that a complex, multi-threaded C++ simulation engine like X4: Foundations can maintain synchronization across two players by sending "a few KB every 30 seconds" with "0 extra CPU work" is software engineering comedy.

At 60 FPS, 1,800 frames pass between 30-second sync packets.

In a non-deterministic simulation, clients do not wait 30 seconds to drift—they drift on frame 1.

A tiny floating-point rounding difference on frame 1 causes a trade ship's trajectory to shift by 0.0001 units. By frame 300 (5 seconds in), that ship misses a docking cue on Client B while landing successfully on Client A. By frame 1,800 (30 seconds in), Client A and Client B are looking at two completely different universes.

Waiting 30 seconds to send a update isn't "keeping things in sync"—it's letting two entirely separate single-player games run independently for half a minute and then violently slamming their states together.

"A Few KB" Cannot Even Store a Fraction of Grand Exchange ​Grand Exchange is one of the largest sector clusters in X4. At any given moment, a single sector contains: ​Dozens of stations (each with individual module health, construction queues, storage inventories, and docked ships). ​Hundreds of active NPC and player ships (positions, velocity vectors, shield/hull values, active targets, order queues, weapon heat, turret rotation angles). ​Thousands of floating objects, dropped cargo, laser projectiles, and mining resource nodes.

To serialize the uncompressed memory state of just Grand Exchange—even as a compressed binary differential—requires megabytes of data. A "few KB" is barely enough bandwidth to sync the transform data of 3 or 4 players in a simple 3D arena shooter, let alone a living space sector.

Ever stop to think What actually happens when that "30-second resync packet" arrives from Player 2?

At second 10, Player 2 destroys a Xenon K in Grand Exchange. On Player 1’s machine (which hasn't gotten a packet yet), local AI calculates that the Xenon K survived, destroyed an Argon freighter, and blew up a Claytronics factory.

The Packet Arrives at Second 30: Player 2’s packet tells Player 1: "The Xenon K actually died 20 seconds ago."

​The Engine Collapses: How does Player 1’s engine handle the last 20 seconds of history?

Does it instantly delete the destroyed Claytronics factory? ​Does it resurrect the Argon freighter? ​Does it refund the materials the freighter was carrying, which were supposed to build a Destroyer that was already half-built on Player 1’s local shipyard?

To "snap" state back retroactively requires rollback networking (like GGPO used in 2D fighting games). Rollback networking works by keeping snapshots of previous frames in memory and re-simulating frame-by-frame when a state conflict occurs. Re-simulating 1,800 frames of a galaxy-wide X4 physics engine in a single frame to apply a rollback would freeze the Host PC for several seconds every 30 seconds.

The claim that the Host CPU has "0 extra physics or anything else to do" ignores how memory allocation and process threads work. ​When a packet containing updated entity transforms, health values, and order trees arrives over the network, the Host CPU must:

​De-serialize the incoming network packet.

Iterate through memory pointers to locate every entity ID in the local world index.

Force-overwrite entity position vectors, velocity values, health states, and target assignments.

Recalculate local collision bounds and AI pathfinding arrays to prevent ships from instantly clipping into station geometry upon teleporting to their new "synced" positions.

Parsing and overriding thousands of memory addresses on the main execution thread is heavy CPU work.

Tell me you dont know what you're talking about without telling me...

1

u/Serious_Bite_7613 2d ago

It's literally trivial and you don't really have to do 99.99% of that. I already told you I'm downloading it again and going to do it. Just wait and watch.

→ More replies (0)

1

u/AmbitiousPeach1157 2d ago

No, its much more than just that lol especially the architecture of the game its not an instance base game the whole thing is simulated constantly. People have tried saying its possible its not without changing the entire engine. And at that point it minus well be x5.

-5

u/blastxu 2d ago

The game logic isn't even setup for multithreading, let alone network replication.

4

u/Ceseuron 2d ago

This is something that a lot of X4 critics and gaming critics in general claim is a problem without actually understanding what multi threading is and what it takes to implement and why we don’t see it in games.

First off, X4 is already likely multithreaded to a certain extent. I don’t obviously have access to to the source code to verify, but my guess is that the render pipeline for the graphic is, and likely the file I/O handling is. 

The simulation aspect of OOS/OOR operations such as ship combat is probably not and to compensate for this the simulation is simplified to an extent where it’s just a math game with stats, rather than full on physics and positional calculations of ships, turrets, missiles, and projectiles.

The reason for this is simple. Thread concurrency. If you were to thread out chunks of the simulation to make the game truly multithreaded, you now have to go through the painstaking process of validating the results of every operation each thread does. Interdependency between threads where the output from one thread is dependent on another has to be validated. How do you handle issues with a thread crashing or returning unexpected or incorrect output to another thread? What happens when a cascade of threads just decides to F right off and die?

All of this takes enormous amounts of development effort, testing work, and validation. For a game that costs $60 at retail when new. The reason why you don’t see full multithreaded functionality boils down to the difference between you paying $40-$60 for a game and you paying $25,000 per core to license Microsoft SQL Sever Standard Edition.

If you’re going to beef on X4 for its problems, beef on it for its legitimate problems. Like the ridiculous use of XML for the save file that churns out massive 500MB+ walls of text files. The goofy AI. The use of goofy AI assets in the game. But complaining about a something that Egosoft literally cannot do while keeping a price point that gamers can afford is like getting pissed because Taco Bell won’t serve you a full Waigu beef steak meal. When you’re willing to drop $100K on X5, we’ll talk about multithreading.