OrionSDK
Lightweight C++ SDK for Orion integration.
Setup
#include "OrionSDK.hpp"Link: OrionSDK.libInitialize
OrionSDK sdk;
sdk.Initialize();Basic Usage
#include <iostream>
#include "OrionSDK.hpp" // Path To Yours
int main() {
OrionSDK SDK;
// Initialize SDK
SDK.Initialize(L"sdk.orionsolutions.shop", L"/api");
std::cout << "[*] Loading offsets...\n";
// Load All Offsets Once (REQUIRED)
if (!SDK.LoadOffsets("apex")) {
std::cout << "[-] Failed to load offsets!\n";
std::cin.get();
return 0;
}
std::cout << "[+] Offsets loaded!\n\n";
// Global Offset
std::cout << "[*] Getting LocalPlayer...\n";
if (SDK.GetOffset("apex", "Miscs", "LocalPlayer")) {
uintptr_t offset = SDK.GetLastOffset();
std::cout << "[+] LocalPlayer: 0x"
<< std::uppercase << std::hex << offset
<< std::dec << "\n\n";
}
else {
std::cout << "[-] Failed to get LocalPlayer\n\n";
}
// Nested Offset (RecvTable / dataMap)
std::cout << "[*] Getting m_latestPrimaryWeapons...\n";
if (SDK.GetOffset("apex", "RecvTable", "DT_BaseCombatCharacter.m_latestPrimaryWeapons")) {
uintptr_t offset = SDK.GetLastOffset();
std::cout << "[+] m_latestPrimaryWeapons: 0x"
<< std::uppercase << std::hex << offset
<< std::dec << "\n\n";
}
else {
std::cout << "[-] Failed to get nested offset\n\n";
}
std::cout << "Press Enter to exit...";
std::cin.get();
return 0;
}
OrionSDK.hpp
#pragma once
#include <string>
#include <unordered_map>
#include <cstdint>
#include <nlohmann/json.hpp>
class OrionSDK {
public:
OrionSDK();
~OrionSDK();
void Initialize(const std::wstring& host, const std::wstring& apiPath = L"/api");
// Load all offsets for a game (caches them)
bool LoadOffsets(const char* game);
// Get offset (uses cache if available)
bool GetOffset(const char* game, const char* section, const char* key);
uintptr_t GetLastOffset() const { return lastOffset; }
// Debug
std::string GetOffsetJson(const char* game, const char* section, const char* key);
private:
uintptr_t lastOffset;
std::wstring m_host;
std::wstring m_apiPath;
// Cache: section -> key -> offset
std::unordered_map<std::string,
std::unordered_map<std::string, uintptr_t>> m_cache;
// Helpers
static std::string UrlEncode(const std::string& value);
static std::string ExtractValue(const std::string& json, const std::string& key);
bool ParseAllOffsets(const std::string& json);
void FlattenJson(const std::string& section, const nlohmann::json& obj, const std::string& prefix);
std::string HttpGet(const char* path);
};