- This repository houses the source code for the development package targeting the game Apex Legends.
R5sdk uses the CMake project generation and build tools. For more information, visit CMake.
In order to compile the SDK, you will need to install Visual Studio 2017, 2019 or 2022 with:
- Desktop Development with C++ Package.
- Windows SDK 10.0.10240.0 or higher.
- C++ MFC build tools for x86 and x64.
- [Optional] C++ Clang/LLVM compiler.
Steps:
- Download or clone the project to anywhere on your disk.
- Run
CreateSolution.batin the root folder, this will generate the files inbuild_intermediate. - Move all the game files in the
gamefolder so that the pathgame/r5apex(_ds).exeis valid.
- Run
- Open
r5sdk.slnin Visual Studio and compile the solution.- All binaries and symbols are compiled to the
gamefolder. - Run
launcher.exe, toggle and set the desired options and hit theLaunch Gamebutton.
- All binaries and symbols are compiled to the
The SDK includes optional Steam integration for features like authentication, user profiles, and overlay support. This is completely optional - the SDK works without Steam.
Due to licensing restrictions, the Steamworks SDK is not included in this repository. If you want Steam features:
-
Download the Steamworks SDK:
- Visit Steamworks SDK (requires Steam partner account)
- Download the latest Steamworks SDK
-
Install the SDK:
- Extract the SDK to
src/thirdparty/steamworks/sdk/ - The folder structure should look like:
src/thirdparty/steamworks/sdk/ ├── public/steam/ ├── redistributable_bin/ └── Readme.txt
- Extract the SDK to
-
Enable Steam features:
- Add
#define USE_STEAMWORKSto your project or compiler flags - The build system will automatically link against Steam libraries when available
- Add
When Steamworks is enabled, the SDK provides:
- Steam Authentication: Session tickets for server authentication
- User Profiles: Access to Steam username and user ID
- Steam Overlay: Integration with Steam's in-game overlay
- Safe Integration: Automatic fallbacks when Steam is unavailable
steam_overlay_info- Display Steam overlay status and settingssteam_overlay_pos <0-3>- Set overlay notification positionsteam_safe_callbacks <0/1>- Enable/disable safe callback processing
The SDK compiles and runs perfectly without Steamworks. All Steam-related code is conditionally compiled and safely disabled when the SDK is not available.
The tools and libraries offered by the SDK could be debugged right after they are compiled.
Steps:
- Set the target project as Startup Project.
- Select
Project -> Set as Startup Project.
- Select
- Configure the project's debugging settings.
- Debug settings are found in
Project -> Properties -> Configuration Properties -> Debugging. - Additional command line arguments could be set in the
Command Argumentsfield.
- Debug settings are found in
- The
-wconsoleparameter toggles the external console window to which output of the game is getting logged to. - The
-ansicolorparameter enables colored console output to enhance readability (NOTE: unsupported for some OS versions!). - The
-nosmapparameter instructs the SDK to always compute the RVA's of each function signature on launch (!! slow !!). - The
-noworkerdllparameter prevents the GameSDK DLL from initializing (workaround as the DLL is imported by the game executable).
Launch parameters can be added to the startup_*.cfg files,
which are located in <gamedir>\platform\cfg\startup_*.cfg.
This is not a cheat or hack; attempting to use the SDK on the live version of the game could result in a permanent account ban. The supported game versions are:
- S3
R5pc_r5launch_N1094_CL456479_2019_10_30_05_20_PM.
When you host game servers on the Server Browser (Pylon) you will stream your IP address to the database, which will be stored there until you stop hosting the server; this is needed so other people can connect to your server.
There is a checkbox in the Server Browser called Server Visibility that defaults to Offline.
Offline: No data is broadcasted to the master server; you are playing offline.Hidden: Your server will be broadcasted to the master server, but could only be joined using a private token.Online: Your server will be broadcasted to the master server, and could be joined from the public list.
Alternatively, you can host game servers without the use of our master server. You can grant people access to your game server
by sharing the IP address and port manually. The client can connect using the connect command. The usage of the connect
command is as follows: IPv4 connect 127.0.0.1:37015, IPv6 connect [::1]:37015. NOTE: the IP address and port were examples.