# r5reloaded/r5sdk architecture

> Architecture diagram of the GitHub repository r5reloaded/r5sdk, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-30). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/r5reloaded/r5sdk
- Repository: https://github.com/r5reloaded/r5sdk

## Overview

R5SDK is a development package for Apex Legends: the documented user workflow is to run its launcher and launch the game, with command-line options controlling SDK behavior. Its source tree also exposes client and server game-engine code, shared game systems, rendering and platform services, and development tools. The README documents Pylon server visibility and manual server connections. Several subsystems are evident from the tree but were not sampled, so their internal connections are omitted rather than inferred.

Main entry points: [`src/launcher/launcher.cpp`](https://github.com/r5reloaded/r5sdk/blob/p4sync/src/launcher/launcher.cpp) (SDK Launcher), [`src/networksystem/listmanager.cpp`](https://github.com/r5reloaded/r5sdk/blob/p4sync/src/networksystem/listmanager.cpp) (Network Systems), [`src/game/server/baseentity.cpp`](https://github.com/r5reloaded/r5sdk/blob/p4sync/src/game/server/baseentity.cpp) (Server Gameplay), [`src/core/dllmain.cpp`](https://github.com/r5reloaded/r5sdk/blob/p4sync/src/core/dllmain.cpp) (SDK Initialization)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_launch["Launch and SDK"]
  node_launcher["SDK Launcher<br/>[launcher.cpp]"]
  node_sdkinit["SDK Initialization<br/>[dllmain.cpp]"]
end

subgraph group_engine["Engine Runtime"]
  node_client["Client Engine"]
  node_server["Server Engine<br/>[server.cpp]"]
  node_enginecore["Engine Core<br/>[host.cpp]"]
end

subgraph group_game["Game Systems"]
  node_clientgame["Client Gameplay<br/>[c_baseentity.cpp]"]
  node_servergame["Server Gameplay<br/>[baseentity.cpp]"]
  node_ai["AI Navigation"]
  node_sharedgame["Shared Gameplay<br/>[util_shared.cpp]"]
end

subgraph group_services["Engine Services"]
  node_render["Rendering"]
  node_filesystem["Filesystem<br/>[filesystem.cpp]"]
  node_math["Math Foundations<br/>[mathlib.h]"]
  node_engineinterfaces["Engine Interfaces<br/>[globalvars_base.h]"]
  node_variables["Cvars and Commands<br/>[cvar.h]"]
end

subgraph group_tools["Tools and Networking"]
  node_naveditor["Navigation Editor<br/>[main.cpp]"]
  node_network["Network Systems<br/>[listmanager.cpp]"]
  node_playlists["Playlists<br/>[playlists.cpp]"]
  node_plugins["Plugin System<br/>[pluginsystem.cpp]"]
  node_gameui["Game UI<br/>[imgui_system.cpp]"]
end

node_developer(("Developer"))
node_master(("Pylon Master Server"))

node_developer -->|"runs"| node_launcher
node_launcher -.->|"launches SDK"| node_sdkinit
node_launcher -.->|"launches game"| node_client
node_network -->|"requests server list"| node_master
node_master -->|"returns server list"| node_network
node_developer -->|"publishes server"| node_master
node_developer -->|"connects manually"| node_server
node_servergame -.->|"uses navigation"| node_ai

click node_launcher "https://github.com/r5reloaded/r5sdk/blob/p4sync/src/launcher/launcher.cpp"
click node_sdkinit "https://github.com/r5reloaded/r5sdk/blob/p4sync/src/core/dllmain.cpp"
click node_client "https://github.com/r5reloaded/r5sdk/blob/p4sync/src/engine/client/cdll_engine_int.cpp"
click node_server "https://github.com/r5reloaded/r5sdk/blob/p4sync/src/engine/server/server.cpp"
click node_enginecore "https://github.com/r5reloaded/r5sdk/blob/p4sync/src/engine/host.cpp"
click node_clientgame "https://github.com/r5reloaded/r5sdk/blob/p4sync/src/game/client/c_baseentity.cpp"
click node_servergame "https://github.com/r5reloaded/r5sdk/blob/p4sync/src/game/server/baseentity.cpp"
click node_ai "https://github.com/r5reloaded/r5sdk/blob/p4sync/src/game/server/ai_networkmanager.cpp"
click node_sharedgame "https://github.com/r5reloaded/r5sdk/blob/p4sync/src/game/shared/util_shared.cpp"
click node_render "https://github.com/r5reloaded/r5sdk/blob/p4sync/src/materialsystem/cmaterialsystem.cpp"
click node_filesystem "https://github.com/r5reloaded/r5sdk/blob/p4sync/src/filesystem/filesystem.cpp"
click node_math "https://github.com/r5reloaded/r5sdk/blob/p4sync/src/mathlib/mathlib.h"
click node_engineinterfaces "https://github.com/r5reloaded/r5sdk/blob/p4sync/src/public/globalvars_base.h"
click node_variables "https://github.com/r5reloaded/r5sdk/blob/p4sync/src/public/tier1/cvar.h"
click node_naveditor "https://github.com/r5reloaded/r5sdk/blob/p4sync/src/naveditor/main.cpp"
click node_network "https://github.com/r5reloaded/r5sdk/blob/p4sync/src/networksystem/listmanager.cpp"
click node_playlists "https://github.com/r5reloaded/r5sdk/blob/p4sync/src/rtech/playlists/playlists.cpp"
click node_plugins "https://github.com/r5reloaded/r5sdk/blob/p4sync/src/pluginsystem/pluginsystem.cpp"
click node_gameui "https://github.com/r5reloaded/r5sdk/blob/p4sync/src/gameui/imgui_system.cpp"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_launcher,node_sdkinit toneBlue
class node_client,node_server,node_enginecore toneAmber
class node_clientgame,node_servergame,node_ai,node_sharedgame,node_master toneMint
class node_render,node_filesystem,node_math,node_engineinterfaces,node_variables toneRose
class node_naveditor,node_network,node_playlists,node_plugins,node_gameui,node_developer toneIndigo
```

## Components

### Launch and SDK

- [SDK Launcher](https://github.com/r5reloaded/r5sdk/blob/p4sync/src/launcher/launcher.cpp): `src/launcher/launcher.cpp`
- [SDK Initialization](https://github.com/r5reloaded/r5sdk/blob/p4sync/src/core/dllmain.cpp): `src/core/dllmain.cpp`

### Engine Runtime

- [Client Engine](https://github.com/r5reloaded/r5sdk/blob/p4sync/src/engine/client/cdll_engine_int.cpp): `src/engine/client/cdll_engine_int.cpp`
- [Server Engine](https://github.com/r5reloaded/r5sdk/blob/p4sync/src/engine/server/server.cpp): `src/engine/server/server.cpp`
- [Engine Core](https://github.com/r5reloaded/r5sdk/blob/p4sync/src/engine/host.cpp): `src/engine/host.cpp`

### Game Systems

- [Client Gameplay](https://github.com/r5reloaded/r5sdk/blob/p4sync/src/game/client/c_baseentity.cpp): `src/game/client/c_baseentity.cpp`
- [Server Gameplay](https://github.com/r5reloaded/r5sdk/blob/p4sync/src/game/server/baseentity.cpp): `src/game/server/baseentity.cpp`
- [AI Navigation](https://github.com/r5reloaded/r5sdk/blob/p4sync/src/game/server/ai_networkmanager.cpp): `src/game/server/ai_networkmanager.cpp`
- [Shared Gameplay](https://github.com/r5reloaded/r5sdk/blob/p4sync/src/game/shared/util_shared.cpp): `src/game/shared/util_shared.cpp`

### Engine Services

- [Rendering](https://github.com/r5reloaded/r5sdk/blob/p4sync/src/materialsystem/cmaterialsystem.cpp): `src/materialsystem/cmaterialsystem.cpp`
- [Filesystem](https://github.com/r5reloaded/r5sdk/blob/p4sync/src/filesystem/filesystem.cpp): `src/filesystem/filesystem.cpp`
- [Math Foundations](https://github.com/r5reloaded/r5sdk/blob/p4sync/src/mathlib/mathlib.h): `src/mathlib/mathlib.h`
- [Engine Interfaces](https://github.com/r5reloaded/r5sdk/blob/p4sync/src/public/globalvars_base.h): `src/public/globalvars_base.h`
- [Cvars and Commands](https://github.com/r5reloaded/r5sdk/blob/p4sync/src/public/tier1/cvar.h): `src/public/tier1/cvar.h`

### Tools and Networking

- [Navigation Editor](https://github.com/r5reloaded/r5sdk/blob/p4sync/src/naveditor/main.cpp): `src/naveditor/main.cpp`
- [Network Systems](https://github.com/r5reloaded/r5sdk/blob/p4sync/src/networksystem/listmanager.cpp): `src/networksystem/listmanager.cpp`
- [Playlists](https://github.com/r5reloaded/r5sdk/blob/p4sync/src/rtech/playlists/playlists.cpp): `src/rtech/playlists/playlists.cpp`
- [Plugin System](https://github.com/r5reloaded/r5sdk/blob/p4sync/src/pluginsystem/pluginsystem.cpp): `src/pluginsystem/pluginsystem.cpp`
- [Game UI](https://github.com/r5reloaded/r5sdk/blob/p4sync/src/gameui/imgui_system.cpp): `src/gameui/imgui_system.cpp`

### Other components

- **Developer**
- **Pylon Master Server**

## Connections

- Developer → SDK Launcher: runs
- SDK Launcher → SDK Initialization: launches SDK
- SDK Launcher → Client Engine: launches game
- Network Systems → Pylon Master Server: requests server list (evidence: `src/networksystem/listmanager.cpp`)
- Pylon Master Server → Network Systems: returns server list (evidence: `src/networksystem/listmanager.cpp`)
- Developer → Pylon Master Server: publishes server
- Developer → Server Engine: connects manually
- Server Gameplay → AI Navigation: uses navigation
