You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
RTSOpen is a source-available BSL(1.1) project for developing tools and systems for an RTS game base anyone can bootstrap their games on.
The license has custom usage rights that permit *most people to use this in a commercial game project if appropriate credits are given and if the source code is not redistributed outside of compiled form.
*Persons and studios with any access to finances above 100,000 USD per year need to read the additional grants section in the license for further details
Notes
Updated the readme to better reflect the current state of the system, although it is still incomplete, so I will update the readme some more in the coming days (6th May 2026).
Sections
Status
Description
Integral & Floating point number boxes
Sections
Status
Description
Keep network load lighter when there are many recipients and senders
Message datums contain a message tag, to be routed to a list of game messages to display to the target actor
Registers network managers to route RX/TX messages to managed actors
Sections
Status
Description
Configurable rulesets and a ruleset evaluator.
Make custom rulesets or recreate existing well-known rulesets
Configurable Skills & Skilltrees
Configurable level scaling and stat modifier rules
Replicated progression component and progression datums (fastarrays again)
Maps data so we can access it at O(1) when searching for specific default data
Base UMG widgets for developers to bootstrap from or to use as example for progression related widgets
Sections
Sections
Status
Status
Description
Description
TODO: Need to finish up the ruleset code, it was mostly done but was a long time ago since I wrote it so I will need to investigate first
TODO: Need to assess if this needs more substantial additions. Not very likely. I do vaguely remembe
Sections
Status
Description
Configurable tracer for interactions or other purposes
Base interact actor, Interact component, and Interact interface
Base UMG widgets for developers to bootstrap from or to use as example for progression related widgets
TODO: Need to assess if this needs more substantial additions
Sections
Status
Description
Configurable item definitions via datatable
MassFragment base, can interact with inventory components
UObject component base, can interact with inventory fragments
Sections
Sections
Status
Status
Description
N/A
N/A
Description
Replicating items and item counts (fastarrays again) for the inventory component. Inventory Fragment is currently not being replicated iirc
TODO: Need to assess if this needs more substantial additions
Sections
Status
Description
Generates custom octree nodes and assigns them to entities
Custom octree nodes that packs certain entity data
Calculates dynamic hashgrid cells
Recalculates locations to dynamic hashgrid mapping
Scans hashgrid for entities to ping
Pings JobTag to entities to target given actor
Uses hashgrid for actor placement
Tracks buildings and owners
Caches build system recipes
Custom Mass Tasks, Processors, Evaluators, Fragments, Traits
Custom State tree behaviour schema
Sections
Status
Description
Applies different camera presets/setups using 'FPDCameraManagerSettings'
Allows for custom presets/setups (Has a default base RTS preset )
UPDATEME
UPDATEME
Ghost building interface, used by actors that wants to be managed by the builder system
Builder Interface, used by actors that wants to be able to build other actors
Sections
Status
Description
Bootstrapped from Unreal Conversation
Mission editor classes are halfway implemented in another repo, will move here when it is more complete and continue work then
TODO: Need to move this over to PDOpen and to wrap up the mission editor code in PDOpen and port it over here when done.
Sections
Status
Description
Sections
Status
Description
GodHand player pawn (Basic godhand concept. Uses 'IPDRTSBuilderInterface, IRTSOInputInterface, IRTSOConversationInterface')
Player Controller (Uses 'IRTSOInputInterface, IPDRTSBuilderInterface, IRTSOActionLogInterface')
TODO: Need to assess if this needs more substantial additions
Sections
Status
Description
Handling interaction logic for resource buildings or building ghost steps
Resource type interactables, makes use of the inventory system
Handles triggering unreal conversations and mmanages checking and applying mission tags
TODO: Need to assess if this needs more substantial additions
Sections
Status
Description
Custom tasks that hooks into other systems, such as interaction or inventory
Custom fragments that uses data for other systems, such as interaction or inventory
TODO: Need to assess if this needs more substantial additions. Very likely there is need for furhter tasks w.r.t specialized reource gathering or stacked build tasks
Sections
Status
Description
Tag based mission system. Tags serve as missions and as flags for objectives/sideobjectives states.
Custom conversation actor that uses one of the interaction systems intrfaces and has interaction logic that handles checking and granting for mission tags
Slate core widgets with UMG wrappers. Used for a Mission Menu View and Mission/Objective Lists
TODO: integrate with mission/quest plugin in PDOpen when getting back to that
TODO: Need to move this over to PDOpen and to wrap up the mission editor code in PDOpen and port it over here when done.
Sections
Status
Description
Handles login player controller flow and loads in their buildings if they have any
Handles level transitions
Handles Autosaving logic, timers and auto save slots
TODO: Single player and custom server matchmaking is the plan, and official servers I guess could run game with anti-cheat? not sure yet, but a login flow and loading logic is needed for the p2p part, the single player part stores the savefile on
TODO: Very likely I will need to add more login related code and loading more player data than just buildings ()
Sections
Status
Description
Draws selection marquee and gathers results
Minimap logic (Deprecated, moved to compute shaders)
TODO: Need to assess if this needs more substantial additions. Very likely there is need for it later down the line
Sections
Status
Description
See 'User Settings' for more details
Custom Save/load menu, Slate base
N/A
Mission view widgets, Slate base
TODO: Need to assess if this needs more substantial additions. Somewhat likely there is need for it later down the line
Sections
Status
Description
Mix of slate and UMG to generate widget slots for each settings type
Supports POD data settings types, String settings type, Enum/String selector settings types, vector settings types
Settings bindable to actual in-game data, as to make thigns more plug and play an avoid having hardocded edge cases for each binding
TODO: Need to fix a darn bug I notced when overriding the slate widget for certain overriden boolean members (specifically those that via a checkbox and control access to other variables)
Sections
Status
Description
Mix of slate and UMG widgets
Reads the current save data and allows for live modification within the game
TODO: Update UI, looks horrendous. Alos while at it add import and export from custom binary format and also json format (With this many entities I might need to be creative with the Json structure so I can cram alot of data into few fields)
Sections
Status
Description
Injects user defined strings and generates tags at game startup. Meant ot be used to allowing mods that target different systems liek the inventory system, skill system etc
Sections
Status
Description
Build system HUD View buttons (mostly slate)
Conversation system HUD View Elements (mostly slate)
TODO: Need to assess if this needs more substantial additions. Somewhat likely there is need for it later down the line
Sections
Status
Description
Stacks input for IA actions, mainly due to a bug in 'Enhanced Input' causing input data to be reset
Sections
Status
Description
Global Minimap splatter shader (used for splatting mass entities unto a RT texture, need to reuse for other data I want on the minimap RT texture)
TODO: I have more texture shaders and compute shaders I want to write and make use of for other data visualization w.r.t. entities