🇬🇧DevLog # 12
Hello everyone! In this post, we’re announcing the start of development for a new online client. If you like the idea, we’d love to see your activity in the chat, lively discussions, and feedback. We
Preface
If you like this concept, we would really love to see your activity in the chat, lively discussions, and feedback. We really want to see that all this effort is worth it. Hello everyone! In this post, we’re announcing the start of development for a new online mod.
In recent months, we have started developing our own online mod. This is not an update to OnlineCity or anything else, but an entirely custom project built on a new architecture.
Why are we doing this? Currently, we are experiencing difficulties scaling OnlineCity (hereinafter referred to as OC). Many features, such as world synchronization, require huge efforts to rewrite half of the old code, while simpler implementations rely on unstable workarounds and aren't universal. Other mods, such as RimWorld Together or Zetrith's Multiplayer, cannot be modified due to copyright issues or simply aren't suitable for implementing global online play. Therefore, we decided to start building our own online mod that satisfies the needs of both players and developers.
Let's look at what has already been implemented, what will be done in the near future, and what our plans are.
Technical Part: Integration and Server
Unlike the old OnlineCity (OC), the new modification is fully integrated into the game. We no longer need to create an IPC (Inter-Process Communication) connection between the client and the server, as is currently implemented for the "Marketplace."
Why is server-side integration into the game necessary? It's simple: if the server runs outside the game engine, we cannot use native Unity data types. This creates numerous problems and makes it impossible to adequately implement many mechanics, such as full world synchronization, the exchange, PvP, and others.
In our new solution, we are free of this drawback: the server can fully utilize all Unity types.
Client Side
"Internet" Tab
This section is designed for the global server list. In the future, we may implement a web service that allows any player to create their own server, specify its name, description, and other parameters, after which it will automatically appear in the global list for all players. However, this is not a priority at the moment.

"Favorites" Tab
Here you can manually add any server using an IP + Port combination and connect to it. The added server card displays key information:
Name
Description
Online players
Ping
If the server is unavailable, the card will be marked with red text indicating no connection.

Server Side
All server settings are now fully accessible within the in-game mod settings menu. An important technical note: since the server utilizes the Unity engine, the game must remain open for it to function. We understand this places additional load on the system, but this implementation is unavoidable if we want to achieve deep synchronization and stable performance.
Below are the server parameters that have already been implemented and are available for editing:




Video Demonstrating Online Functionality
Full World Synchronization
At the moment, full world map synchronization has already been implemented. Roads, rivers, settlements—absolutely everything is synchronized between players. In addition, we have added support for WorldEdit: you can create your own world preset and upload it to the server. The server administrator can build roads, destroy settlements, and change tiles and terrain in real-time—and all these changes are instantly reflected for all players.
How Does This Change Gameplay?
Remember our "Ice Age" event? Previously, it was local: each player received their own client-side version of the event, and it played out differently for everyone. Now, all of this has been moved to the server. Whether it’s an ice age, global warming, or a flood, biomes and tiles will change simultaneously for all players over the course of several real-time days.
Server Storyteller
We aim to fully transfer world events (those that occur on the planet, such as the "Sun Blocker," etc.) to the control of the Server Storyteller.
How Does It Work? Currently, all events are processed on the client, and your local Randy decides when and what to send you. In our new architecture, there will be a Server Randy. He will collect data on each player (wealth, survival time, etc.) and generate events based on that data which are visible to ALL players on the map.
Implementation Examples:
Competitive Quests: A stash containing 5 Archotech legs appears on the map. It appears for everyone on the server, but only the person who gets there first can claim the reward.
Shared Threats: If a Sun Blocker appears, it activates for all players within its range and affects everyone simultaneously. If just one player destroys it, the effect will vanish for everyone else.
Yes, partially, such a system might seem unfair or even inconvenient for players. But we’re here for a real online experience, right? We believe that the more competitive moments and live interactions we have, the more interesting the game will become.
Plans and Ideas: What's Next?
Our top priority is to fully complete world synchronization, transfer events to the Server Storyteller, and fix all bugs. As soon as the foundation is ready, we will gradually start integrating all the content necessary for a full online experience:
Chat;
Player profiles;
Trade;
Exchange;
Clan system;
Gold raids with looting mechanics;
And, possibly, full PvP (but we'll talk about that a bit later).
Below are references showing how we envision the new interface:


Note: The references do not reflect the final UI version.
A Few Words About PvP
It’s too early to make bold claims here. If we do decide to implement PvP, it will definitely be our last priority. This is a colossal task that would require restructuring many systems, potentially even rewriting code from other mods to ensure correct functionality. However, our architecture partially operates on the same principle as Zetrith's Multiplayer, which makes implementing a coherent PvP system possible.
Our Vision: For every battle or location visit, a separate server instance of RimWorld will be launched. It will handle 2, 3, or even 10 players—as long as the server hardware can handle the load.
Here lies both the main feature and the main challenge:
Pro: Server-side processing radically simplifies synchronization. If a bush grows, it grows for everyone. If a pawn dies, it dies for everyone.
Con: This approach places a massive load on server resources.
Last updated