JSPM

@rlsdk/steam

1.0.1
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 15
  • Score
    100M100P100Q68933F
  • License MIT

TypeScript SDK for RocketLeague (Steam) - Auto-generated type definitions

Package Exports

  • @rlsdk/steam
  • @rlsdk/steam/classes
  • @rlsdk/steam/classes/AkAudio
  • @rlsdk/steam/classes/Core
  • @rlsdk/steam/classes/Engine
  • @rlsdk/steam/classes/GFxUI
  • @rlsdk/steam/classes/IpDrv
  • @rlsdk/steam/classes/OnlineSubsystemEOS
  • @rlsdk/steam/classes/OnlineSubsystemSteamworks
  • @rlsdk/steam/classes/ProjectX
  • @rlsdk/steam/classes/TAGame
  • @rlsdk/steam/classes/WinDrv
  • @rlsdk/steam/classes/XAudio2
  • @rlsdk/steam/classes/index
  • @rlsdk/steam/constants
  • @rlsdk/steam/constants/AkAudio
  • @rlsdk/steam/constants/Core
  • @rlsdk/steam/constants/Engine
  • @rlsdk/steam/constants/GFxUI
  • @rlsdk/steam/constants/IpDrv
  • @rlsdk/steam/constants/OnlineSubsystemEOS
  • @rlsdk/steam/constants/OnlineSubsystemSteamworks
  • @rlsdk/steam/constants/ProjectX
  • @rlsdk/steam/constants/TAGame
  • @rlsdk/steam/constants/WinDrv
  • @rlsdk/steam/constants/XAudio2
  • @rlsdk/steam/constants/index
  • @rlsdk/steam/enums
  • @rlsdk/steam/enums/AkAudio
  • @rlsdk/steam/enums/Core
  • @rlsdk/steam/enums/Engine
  • @rlsdk/steam/enums/GFxUI
  • @rlsdk/steam/enums/IpDrv
  • @rlsdk/steam/enums/OnlineSubsystemEOS
  • @rlsdk/steam/enums/OnlineSubsystemSteamworks
  • @rlsdk/steam/enums/ProjectX
  • @rlsdk/steam/enums/TAGame
  • @rlsdk/steam/enums/WinDrv
  • @rlsdk/steam/enums/XAudio2
  • @rlsdk/steam/enums/index
  • @rlsdk/steam/offsets
  • @rlsdk/steam/offsets/AkAudio
  • @rlsdk/steam/offsets/Core
  • @rlsdk/steam/offsets/Engine
  • @rlsdk/steam/offsets/GFxUI
  • @rlsdk/steam/offsets/IpDrv
  • @rlsdk/steam/offsets/OnlineSubsystemEOS
  • @rlsdk/steam/offsets/OnlineSubsystemSteamworks
  • @rlsdk/steam/offsets/ProjectX
  • @rlsdk/steam/offsets/TAGame
  • @rlsdk/steam/offsets/WinDrv
  • @rlsdk/steam/offsets/XAudio2
  • @rlsdk/steam/offsets/globals
  • @rlsdk/steam/offsets/index
  • @rlsdk/steam/parameters
  • @rlsdk/steam/parameters/AkAudio
  • @rlsdk/steam/parameters/Core
  • @rlsdk/steam/parameters/Engine
  • @rlsdk/steam/parameters/GFxUI
  • @rlsdk/steam/parameters/IpDrv
  • @rlsdk/steam/parameters/OnlineSubsystemEOS
  • @rlsdk/steam/parameters/OnlineSubsystemSteamworks
  • @rlsdk/steam/parameters/ProjectX
  • @rlsdk/steam/parameters/TAGame
  • @rlsdk/steam/parameters/WinDrv
  • @rlsdk/steam/parameters/XAudio2
  • @rlsdk/steam/parameters/index
  • @rlsdk/steam/structs
  • @rlsdk/steam/structs/AkAudio
  • @rlsdk/steam/structs/Core
  • @rlsdk/steam/structs/Engine
  • @rlsdk/steam/structs/GFxUI
  • @rlsdk/steam/structs/IpDrv
  • @rlsdk/steam/structs/OnlineSubsystemEOS
  • @rlsdk/steam/structs/OnlineSubsystemSteamworks
  • @rlsdk/steam/structs/ProjectX
  • @rlsdk/steam/structs/TAGame
  • @rlsdk/steam/structs/WinDrv
  • @rlsdk/steam/structs/XAudio2
  • @rlsdk/steam/structs/index
  • @rlsdk/steam/types
  • @rlsdk/steam/types/GameDefines
  • @rlsdk/steam/types/index

Readme

Rocket League (Steam) TypeScript SDK

Auto-generated TypeScript type definitions for Rocket League's (Steam) Unreal Engine 3 classes, structs, enums, and constants.

Installation

bun add @rlsdk/steam bun-memory

Usage

This SDK provides type definitions and offset constants for use with memory reading libraries like bun-memory.

import Memory from "bun-memory";

import { CarComponent_Boost_TA } from "@rlsdk/steam/offsets/TAGame";
import { GNames, GObjects } from "@rlsdk/steam/offsets";
import { Object_ as UObject, FNameEntry } from "@rlsdk/steam/offsets/Core";

// Connect to Rocket League (Steam)
const rl = new Memory("RocketLeague.exe");
const module = rl.modules["RocketLeague.exe"];

// Read GNames and GObjects arrays
const gNamePtrs = rl.tArrayUPtr(module.base + GNames);
const gObjectPtrs = rl.tArrayUPtr(module.base + GObjects);

// Read boost amount using exported offsets
const boostAmount = rl.f32(
  boostComponentPtr + CarComponent_Boost_TA.CurrentBoostAmount,
);

See the examples/ directory for a complete working example.

Understanding the Type Comments

Each property includes a comment with memory layout information:

export type UCarComponent_Boost_TA = UCarComponent_TA & {
  MaxBoostAmount: number; // 0x032c (0x0004) [float]
  CurrentBoostAmount: number; // 0x0338 (0x0004) [float]
};
  • 0x032c - Offset from the start of the object in memory
  • 0x0004 - Size of the property in bytes
  • [float] - Native C++ type (helps choose the correct memory read method)

Native Type to Memory Method Mapping

Native Type Size Memory Method
int32 4 rl.i32()
uint32 4 rl.u32()
uint8 1 rl.u8()
uint64 8 rl.u64()
float 4 rl.f32()
FString 16 Custom (pointer to wide string)
FName 8 rl.i32() for index
FVector 12 rl.vector3()
TArray<T> 16 Custom (pointer + count + capacity)
SomeClass* 8 rl.uPtr()

Boolean Bitfields

UE3 packs multiple boolean properties into single uint32_t values. When you see multiple bools at the same offset with different bitmasks, they share a bitfield:

export type UGFxData_Nameplate_TA = UGFxDataRow_X & {
  bHideFullNameplate: boolean; // 0x00bc (0x0004) [bool : 0x1]
  bIsTargetLocked: boolean; // 0x00bc (0x0004) [bool : 0x2]
  bInKnockoutGameMode: boolean; // 0x00bc (0x0004) [bool : 0x4]
  bIsDistracted: boolean; // 0x00bc (0x0004) [bool : 0x8]
};

To read a bitfield bool:

const bitfield = rl.u32(objectAddr + 0x00bcn);
const bHideFullNameplate = (bitfield & 0x1) !== 0;
const bIsTargetLocked = (bitfield & 0x2) !== 0;
const bInKnockoutGameMode = (bitfield & 0x4) !== 0;

To write a bitfield bool:

let bitfield = rl.u32(objectAddr + 0x00bcn);
// Set bIsTargetLocked to true
bitfield |= 0x2;
// Set bIsTargetLocked to false
bitfield &= ~0x2;
rl.writeU32(objectAddr + 0x00bcn, bitfield);

When a bool has [bool : 0x1] and is at a unique offset, it's a standalone uint32_t bool (not packed).

SDK Structure

@rlsdk/steam/
├── classes/          # UClass definitions (game objects)
│   ├── Core.ts
│   ├── Engine.ts
│   ├── TAGame.ts     # Rocket League (Steam) specific classes
│   └── ...
├── structs/          # UStruct definitions (data structures)
│   ├── Core.ts
│   ├── Engine.ts
│   └── ...
├── enums/            # UEnum definitions
│   ├── Core.ts
│   ├── Engine.ts
│   └── ...
├── constants/        # UConst definitions
├── parameters/       # Function parameter structs
├── types/            # Core type definitions
└── index.ts          # Main entry point

Key Classes

TAGame Package (Rocket League)

  • UCarComponent_Boost_TA - Boost component with current/max boost
  • UCarComponent_Dodge_TA - Dodge/flip state
  • UCarComponent_Jump_TA - Jump state
  • UBall_TA - Ball object
  • UCar_TA - Car object
  • UPRI_TA - Player replication info
  • UGameEvent_Soccar_TA - Match state

Engine Package (Unreal Engine)

  • UObject - Base class for all objects
  • UActor - Base class for placed objects
  • UPawn - Base class for controllable entities
  • UPlayerController - Player input handling

Finding Objects in Memory

The SDK types describe object layouts, but you need GObjects/GNames to find objects:

  1. GObjects - Global array of all UObject instances
  2. GNames - Global array of FName strings

See the examples/ directory for working code examples.

Version Compatibility

This SDK was generated for a specific version of Rocket League (Steam). Game updates may change:

  • Property offsets
  • Class sizes
  • New/removed properties

Regenerate the SDK after game updates using the generator tool.

License

MIT