rocketleaguesdk 2.0.0 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ObjectDump.txt +2245 -20064
- package/examples/basic.ts +34 -16
- package/offsets/AkAudio.ts +347 -12
- package/offsets/Core.ts +54 -48
- package/offsets/Engine.ts +277 -167
- package/offsets/GFxUI.ts +68 -8
- package/offsets/IpDrv.ts +238 -24
- package/offsets/OnlineSubsystemEOS.ts +175 -12
- package/offsets/ProjectX.ts +1822 -335
- package/offsets/TAGame.ts +3706 -880
- package/offsets/WinDrv.ts +61 -1
- package/offsets/XAudio2.ts +54 -1
- package/package.json +1 -1
package/examples/basic.ts
CHANGED
|
@@ -7,24 +7,24 @@
|
|
|
7
7
|
* Run with: bun run examples/basic.ts
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
-
import Memory from
|
|
10
|
+
import Memory from "bun-memory";
|
|
11
11
|
|
|
12
|
-
import { GNames, GObjects } from
|
|
13
|
-
import {
|
|
12
|
+
import { GNames, GObjects } from "rocketleaguesdk/types/offsets";
|
|
13
|
+
import { Object_ as UObject, FNameEntry } from "rocketleaguesdk/offsets/Core";
|
|
14
14
|
import {
|
|
15
15
|
GFxNameplatesManager_TA,
|
|
16
16
|
GFxData_Nameplate_TA,
|
|
17
17
|
NameplateComponentCar_TA,
|
|
18
18
|
Vehicle_TA,
|
|
19
19
|
CarComponent_Boost_TA,
|
|
20
|
-
} from
|
|
20
|
+
} from "rocketleaguesdk/offsets/TAGame";
|
|
21
21
|
|
|
22
22
|
// Attach to the Rocket League process and get the main module
|
|
23
|
-
const rl = new Memory(
|
|
24
|
-
const module = rl.modules[
|
|
23
|
+
const rl = new Memory("RocketLeague.exe");
|
|
24
|
+
const module = rl.modules["RocketLeague.exe"];
|
|
25
25
|
|
|
26
26
|
if (module === undefined) {
|
|
27
|
-
throw new Error(
|
|
27
|
+
throw new Error("module must not be undefined.");
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
// Lookup tables for caching resolved names and object pointers
|
|
@@ -85,7 +85,9 @@ function tick() {
|
|
|
85
85
|
ticks++;
|
|
86
86
|
|
|
87
87
|
try {
|
|
88
|
-
const gfxNameplatesManager_TAPtrs = fNameToGObjectPtrs.get(
|
|
88
|
+
const gfxNameplatesManager_TAPtrs = fNameToGObjectPtrs.get(
|
|
89
|
+
"GFxNameplatesManager_TA"
|
|
90
|
+
);
|
|
89
91
|
|
|
90
92
|
if (!gfxNameplatesManager_TAPtrs?.length) {
|
|
91
93
|
return;
|
|
@@ -93,35 +95,51 @@ function tick() {
|
|
|
93
95
|
|
|
94
96
|
for (const gfxNameplatesManager_TAPtr of gfxNameplatesManager_TAPtrs) {
|
|
95
97
|
const uGFxData_Nameplate_TAPtrs = rl.tArrayUPtr(
|
|
96
|
-
gfxNameplatesManager_TAPtr +
|
|
98
|
+
gfxNameplatesManager_TAPtr +
|
|
99
|
+
BigInt(GFxNameplatesManager_TA.NameplateRows)
|
|
97
100
|
);
|
|
98
101
|
|
|
99
102
|
for (const uGFxData_Nameplate_TAPtr of uGFxData_Nameplate_TAPtrs) {
|
|
100
103
|
const uNameplateComponentCar_TA = rl.uPtr(
|
|
101
|
-
uGFxData_Nameplate_TAPtr +
|
|
104
|
+
uGFxData_Nameplate_TAPtr +
|
|
105
|
+
BigInt(GFxData_Nameplate_TA.NameplateComponent)
|
|
102
106
|
);
|
|
103
107
|
|
|
104
108
|
if (uNameplateComponentCar_TA === 0n) {
|
|
105
109
|
continue;
|
|
106
110
|
}
|
|
107
111
|
|
|
108
|
-
const uCarPtr = rl.uPtr(
|
|
112
|
+
const uCarPtr = rl.uPtr(
|
|
113
|
+
uNameplateComponentCar_TA + BigInt(NameplateComponentCar_TA.Car)
|
|
114
|
+
);
|
|
109
115
|
|
|
110
116
|
if (uCarPtr === 0n) {
|
|
111
117
|
continue;
|
|
112
118
|
}
|
|
113
119
|
|
|
114
|
-
const uCarComponent_Boost_TAPtr = rl.uPtr(
|
|
120
|
+
const uCarComponent_Boost_TAPtr = rl.uPtr(
|
|
121
|
+
uCarPtr + BigInt(Vehicle_TA.BoostComponent)
|
|
122
|
+
);
|
|
115
123
|
|
|
116
124
|
if (uCarComponent_Boost_TAPtr === 0n) {
|
|
117
125
|
continue;
|
|
118
126
|
}
|
|
119
127
|
|
|
120
|
-
const currentBoostAmount = rl.f32(
|
|
128
|
+
const currentBoostAmount = rl.f32(
|
|
129
|
+
uCarComponent_Boost_TAPtr +
|
|
130
|
+
BigInt(CarComponent_Boost_TA.CurrentBoostAmount)
|
|
131
|
+
);
|
|
121
132
|
|
|
122
133
|
// Write the boost amount to the nameplate and enable boost rendering
|
|
123
|
-
void rl.f32(
|
|
124
|
-
|
|
134
|
+
void rl.f32(
|
|
135
|
+
uGFxData_Nameplate_TAPtr + BigInt(GFxData_Nameplate_TA.BoostAmount),
|
|
136
|
+
currentBoostAmount
|
|
137
|
+
);
|
|
138
|
+
void rl.u32(
|
|
139
|
+
uGFxData_Nameplate_TAPtr +
|
|
140
|
+
BigInt(GFxData_Nameplate_TA.bRenderBoostAmount),
|
|
141
|
+
0x20
|
|
142
|
+
);
|
|
125
143
|
}
|
|
126
144
|
}
|
|
127
145
|
} catch (error) {
|
|
@@ -138,6 +156,6 @@ setImmediate(tick);
|
|
|
138
156
|
// Log tick rate every second for performance monitoring
|
|
139
157
|
setInterval(() => {
|
|
140
158
|
console.clear();
|
|
141
|
-
console.log(
|
|
159
|
+
console.log("[RL] Ticks: %d", ticks);
|
|
142
160
|
ticks = 0;
|
|
143
161
|
}, 1_000);
|
package/offsets/AkAudio.ts
CHANGED
|
@@ -6,8 +6,21 @@
|
|
|
6
6
|
* Import these to read/write memory at the correct locations.
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
/**
|
|
10
|
+
* Engine.ActorFactory Offsets
|
|
11
|
+
* Size: 0x009C
|
|
12
|
+
* Extends: Object
|
|
13
|
+
*/
|
|
14
|
+
export const ActorFactory = {
|
|
15
|
+
GameplayActorClass: 0x0060, // 0x0060 (0x0008) [UClass*]
|
|
16
|
+
MenuName: 0x0068, // 0x0068 (0x0010) [FString]
|
|
17
|
+
MenuPriority: 0x0078, // 0x0078 (0x0004) [int32]
|
|
18
|
+
AlternateMenuPriority: 0x007C, // 0x007C (0x0004) [int32]
|
|
19
|
+
NewActorClassName: 0x0080, // 0x0080 (0x0010) [FString]
|
|
20
|
+
NewActorClass: 0x0090, // 0x0090 (0x0008) [UClass*]
|
|
21
|
+
bPlaceable: 0x0098, // 0x0098 (0x0004) [bool : 0x1]
|
|
22
|
+
bShowInEditorQuickMenu: 0x0098, // 0x0098 (0x0004) [bool : 0x2]
|
|
23
|
+
} as const;
|
|
11
24
|
|
|
12
25
|
/**
|
|
13
26
|
* AkAudio.ActorFactoryAkAmbientSound Offsets
|
|
@@ -19,6 +32,15 @@ export const ActorFactoryAkAmbientSound = {
|
|
|
19
32
|
...ActorFactory,
|
|
20
33
|
} as const;
|
|
21
34
|
|
|
35
|
+
/**
|
|
36
|
+
* Engine.Keypoint Offsets
|
|
37
|
+
* Size: 0x0270
|
|
38
|
+
* Extends: Actor
|
|
39
|
+
*/
|
|
40
|
+
export const Keypoint = {
|
|
41
|
+
SpriteComp: 0x0268, // 0x0268 (0x0008) [unknown]
|
|
42
|
+
} as const;
|
|
43
|
+
|
|
22
44
|
/**
|
|
23
45
|
* AkAudio.AkAmbientSound Offsets
|
|
24
46
|
* Size: 0x0280
|
|
@@ -42,6 +64,15 @@ export const AkAmbientSoundActor = {
|
|
|
42
64
|
...Keypoint,
|
|
43
65
|
} as const;
|
|
44
66
|
|
|
67
|
+
/**
|
|
68
|
+
* Core.Subsystem Offsets
|
|
69
|
+
* Size: 0x0068
|
|
70
|
+
* Extends: Object
|
|
71
|
+
*/
|
|
72
|
+
export const Subsystem = {
|
|
73
|
+
VfTable_FExec: 0x0060, // 0x0060 (0x0008) [FPointer]
|
|
74
|
+
} as const;
|
|
75
|
+
|
|
45
76
|
/**
|
|
46
77
|
* AkAudio.AkAudioDevice Offsets
|
|
47
78
|
* Size: 0x01B0
|
|
@@ -57,6 +88,172 @@ export const AkAudioDevice = {
|
|
|
57
88
|
...Subsystem,
|
|
58
89
|
} as const;
|
|
59
90
|
|
|
91
|
+
/**
|
|
92
|
+
* Engine.Actor Offsets
|
|
93
|
+
* Size: 0x0268
|
|
94
|
+
* Extends: Object
|
|
95
|
+
*/
|
|
96
|
+
export const Actor = {
|
|
97
|
+
ActorDependantPSCs: 0x0060, // 0x0060 (0x0010) [TArray<unknown>]
|
|
98
|
+
Components: 0x0070, // 0x0070 (0x0010) [TArray<unknown>]
|
|
99
|
+
AllComponents: 0x0080, // 0x0080 (0x0010) [TArray<unknown>]
|
|
100
|
+
Location: 0x0090, // 0x0090 (0x000C) [FVector]
|
|
101
|
+
Rotation: 0x009C, // 0x009C (0x000C) [FRotator]
|
|
102
|
+
DrawScale: 0x00A8, // 0x00A8 (0x0004) [float]
|
|
103
|
+
DrawScale3D: 0x00AC, // 0x00AC (0x000C) [FVector]
|
|
104
|
+
PrePivot: 0x00B8, // 0x00B8 (0x000C) [FVector]
|
|
105
|
+
EditorIconColor: 0x00C4, // 0x00C4 (0x0004) [FColor]
|
|
106
|
+
DetachFence: 0x00C8, // 0x00C8 (0x0004) [FRenderCommandFence]
|
|
107
|
+
CustomTimeDilation: 0x00CC, // 0x00CC (0x0004) [float]
|
|
108
|
+
Physics: 0x00D0, // 0x00D0 (0x0001) [EPhysics]
|
|
109
|
+
RemoteRole: 0x00D1, // 0x00D1 (0x0001) [ENetRole]
|
|
110
|
+
Role: 0x00D2, // 0x00D2 (0x0001) [ENetRole]
|
|
111
|
+
CollisionType: 0x00D3, // 0x00D3 (0x0001) [ECollisionType]
|
|
112
|
+
ReplicatedCollisionType: 0x00D4, // 0x00D4 (0x0001) [ECollisionType]
|
|
113
|
+
TickGroup: 0x00D5, // 0x00D5 (0x0001) [ETickingGroup]
|
|
114
|
+
Owner: 0x00D8, // 0x00D8 (0x0008) [UActor*]
|
|
115
|
+
Base: 0x00E0, // 0x00E0 (0x0008) [UActor*]
|
|
116
|
+
Timers: 0x00E8, // 0x00E8 (0x0010) [TArray<FTimerData>]
|
|
117
|
+
bStatic: 0x00F8, // 0x00F8 (0x0004) [bool : 0x1]
|
|
118
|
+
bHidden: 0x00F8, // 0x00F8 (0x0004) [bool : 0x2]
|
|
119
|
+
bHiddenSelf: 0x00F8, // 0x00F8 (0x0004) [bool : 0x4]
|
|
120
|
+
bNoDelete: 0x00F8, // 0x00F8 (0x0004) [bool : 0x8]
|
|
121
|
+
bDeleteMe: 0x00F8, // 0x00F8 (0x0004) [bool : 0x10]
|
|
122
|
+
bTicked: 0x00F8, // 0x00F8 (0x0004) [bool : 0x20]
|
|
123
|
+
bOnlyOwnerSee: 0x00F8, // 0x00F8 (0x0004) [bool : 0x40]
|
|
124
|
+
bTickIsDisabled: 0x00F8, // 0x00F8 (0x0004) [bool : 0x80]
|
|
125
|
+
bWorldGeometry: 0x00F8, // 0x00F8 (0x0004) [bool : 0x100]
|
|
126
|
+
bIgnoreRigidBodyPawns: 0x00F8, // 0x00F8 (0x0004) [bool : 0x200]
|
|
127
|
+
bOrientOnSlope: 0x00F8, // 0x00F8 (0x0004) [bool : 0x400]
|
|
128
|
+
bIgnoreEncroachers: 0x00F8, // 0x00F8 (0x0004) [bool : 0x800]
|
|
129
|
+
bPushedByEncroachers: 0x00F8, // 0x00F8 (0x0004) [bool : 0x1000]
|
|
130
|
+
bDestroyedByInterpActor: 0x00F8, // 0x00F8 (0x0004) [bool : 0x2000]
|
|
131
|
+
bRouteBeginPlayEvenIfStatic: 0x00F8, // 0x00F8 (0x0004) [bool : 0x4000]
|
|
132
|
+
bIsMoving: 0x00F8, // 0x00F8 (0x0004) [bool : 0x8000]
|
|
133
|
+
bAlwaysEncroachCheck: 0x00F8, // 0x00F8 (0x0004) [bool : 0x10000]
|
|
134
|
+
bHasAlternateTargetLocation: 0x00F8, // 0x00F8 (0x0004) [bool : 0x20000]
|
|
135
|
+
bCanStepUpOn: 0x00F8, // 0x00F8 (0x0004) [bool : 0x40000]
|
|
136
|
+
bNetTemporary: 0x00F8, // 0x00F8 (0x0004) [bool : 0x80000]
|
|
137
|
+
bOnlyRelevantToOwner: 0x00F8, // 0x00F8 (0x0004) [bool : 0x100000]
|
|
138
|
+
bNetDirty: 0x00F8, // 0x00F8 (0x0004) [bool : 0x200000]
|
|
139
|
+
bAlwaysRelevant: 0x00F8, // 0x00F8 (0x0004) [bool : 0x400000]
|
|
140
|
+
bReplicateInstigator: 0x00F8, // 0x00F8 (0x0004) [bool : 0x800000]
|
|
141
|
+
bReplicateMovement: 0x00F8, // 0x00F8 (0x0004) [bool : 0x1000000]
|
|
142
|
+
bSkipActorPropertyReplication: 0x00F8, // 0x00F8 (0x0004) [bool : 0x2000000]
|
|
143
|
+
bUpdateSimulatedPosition: 0x00F8, // 0x00F8 (0x0004) [bool : 0x4000000]
|
|
144
|
+
bTearOff: 0x00F8, // 0x00F8 (0x0004) [bool : 0x8000000]
|
|
145
|
+
bOnlyDirtyReplication: 0x00F8, // 0x00F8 (0x0004) [bool : 0x10000000]
|
|
146
|
+
bAllowFluidSurfaceInteraction: 0x00F8, // 0x00F8 (0x0004) [bool : 0x20000000]
|
|
147
|
+
bDemoRecording: 0x00F8, // 0x00F8 (0x0004) [bool : 0x40000000]
|
|
148
|
+
bDemoOwner: 0x00F8, // 0x00F8 (0x0004) [bool : 0x-80000000]
|
|
149
|
+
bForceDemoRelevant: 0x00FC, // 0x00FC (0x0004) [bool : 0x1]
|
|
150
|
+
bNetInitialRotation: 0x00FC, // 0x00FC (0x0004) [bool : 0x2]
|
|
151
|
+
bReplicateRigidBodyLocation: 0x00FC, // 0x00FC (0x0004) [bool : 0x4]
|
|
152
|
+
bKillDuringLevelTransition: 0x00FC, // 0x00FC (0x0004) [bool : 0x8]
|
|
153
|
+
bExchangedRoles: 0x00FC, // 0x00FC (0x0004) [bool : 0x10]
|
|
154
|
+
bConsiderAllStaticMeshComponentsForStreaming: 0x00FC, // 0x00FC (0x0004) [bool : 0x20]
|
|
155
|
+
bDebug: 0x00FC, // 0x00FC (0x0004) [bool : 0x40]
|
|
156
|
+
bPostRenderIfNotVisible: 0x00FC, // 0x00FC (0x0004) [bool : 0x80]
|
|
157
|
+
bForceNetUpdate: 0x00FC, // 0x00FC (0x0004) [bool : 0x100]
|
|
158
|
+
bForcePacketUpdate: 0x00FC, // 0x00FC (0x0004) [bool : 0x200]
|
|
159
|
+
bPendingNetUpdate: 0x00FC, // 0x00FC (0x0004) [bool : 0x400]
|
|
160
|
+
bHardAttach: 0x00FC, // 0x00FC (0x0004) [bool : 0x800]
|
|
161
|
+
bIgnoreBaseRotation: 0x00FC, // 0x00FC (0x0004) [bool : 0x1000]
|
|
162
|
+
bShadowParented: 0x00FC, // 0x00FC (0x0004) [bool : 0x2000]
|
|
163
|
+
bSkipAttachedMoves: 0x00FC, // 0x00FC (0x0004) [bool : 0x4000]
|
|
164
|
+
bCanBeAdheredTo: 0x00FC, // 0x00FC (0x0004) [bool : 0x8000]
|
|
165
|
+
bCanBeFrictionedTo: 0x00FC, // 0x00FC (0x0004) [bool : 0x10000]
|
|
166
|
+
bGameRelevant: 0x00FC, // 0x00FC (0x0004) [bool : 0x20000]
|
|
167
|
+
bMovable: 0x00FC, // 0x00FC (0x0004) [bool : 0x40000]
|
|
168
|
+
bShouldBaseAtStartup: 0x00FC, // 0x00FC (0x0004) [bool : 0x80000]
|
|
169
|
+
bPendingDelete: 0x00FC, // 0x00FC (0x0004) [bool : 0x100000]
|
|
170
|
+
bCanTeleport: 0x00FC, // 0x00FC (0x0004) [bool : 0x200000]
|
|
171
|
+
bAlwaysTick: 0x00FC, // 0x00FC (0x0004) [bool : 0x400000]
|
|
172
|
+
bBlocksNavigation: 0x00FC, // 0x00FC (0x0004) [bool : 0x800000]
|
|
173
|
+
BlockRigidBody: 0x00FC, // 0x00FC (0x0004) [bool : 0x1000000]
|
|
174
|
+
bCollideWhenPlacing: 0x00FC, // 0x00FC (0x0004) [bool : 0x2000000]
|
|
175
|
+
bCollideActors: 0x00FC, // 0x00FC (0x0004) [bool : 0x4000000]
|
|
176
|
+
bCollideWorld: 0x00FC, // 0x00FC (0x0004) [bool : 0x8000000]
|
|
177
|
+
bCollideComplex: 0x00FC, // 0x00FC (0x0004) [bool : 0x10000000]
|
|
178
|
+
bBlockActors: 0x00FC, // 0x00FC (0x0004) [bool : 0x20000000]
|
|
179
|
+
bBlocksTeleport: 0x00FC, // 0x00FC (0x0004) [bool : 0x40000000]
|
|
180
|
+
bMoveIgnoresDestruction: 0x00FC, // 0x00FC (0x0004) [bool : 0x-80000000]
|
|
181
|
+
bProjectileMoveSingleBlocking: 0x0100, // 0x0100 (0x0004) [bool : 0x1]
|
|
182
|
+
bNoEncroachCheck: 0x0100, // 0x0100 (0x0004) [bool : 0x2]
|
|
183
|
+
bCollideAsEncroacher: 0x0100, // 0x0100 (0x0004) [bool : 0x4]
|
|
184
|
+
bPhysRigidBodyOutOfWorldCheck: 0x0100, // 0x0100 (0x0004) [bool : 0x8]
|
|
185
|
+
bComponentOutsideWorld: 0x0100, // 0x0100 (0x0004) [bool : 0x10]
|
|
186
|
+
bForceOctreeSNFilter: 0x0100, // 0x0100 (0x0004) [bool : 0x20]
|
|
187
|
+
bForceOctreeMNFilter: 0x0100, // 0x0100 (0x0004) [bool : 0x40]
|
|
188
|
+
bRigidBodyWasAwake: 0x0100, // 0x0100 (0x0004) [bool : 0x80]
|
|
189
|
+
bCallRigidBodyWakeEvents: 0x0100, // 0x0100 (0x0004) [bool : 0x100]
|
|
190
|
+
bBounce: 0x0100, // 0x0100 (0x0004) [bool : 0x200]
|
|
191
|
+
bJustTeleported: 0x0100, // 0x0100 (0x0004) [bool : 0x400]
|
|
192
|
+
bEnableMobileTouch: 0x0100, // 0x0100 (0x0004) [bool : 0x800]
|
|
193
|
+
bNetInitial: 0x0100, // 0x0100 (0x0004) [bool : 0x1000]
|
|
194
|
+
bNetOwner: 0x0100, // 0x0100 (0x0004) [bool : 0x2000]
|
|
195
|
+
bHiddenEd: 0x0100, // 0x0100 (0x0004) [bool : 0x4000]
|
|
196
|
+
bEditable: 0x0100, // 0x0100 (0x0004) [bool : 0x8000]
|
|
197
|
+
bHiddenEdGroup: 0x0100, // 0x0100 (0x0004) [bool : 0x10000]
|
|
198
|
+
bHiddenEdLayer: 0x0100, // 0x0100 (0x0004) [bool : 0x20000]
|
|
199
|
+
bHiddenEdCustom: 0x0100, // 0x0100 (0x0004) [bool : 0x40000]
|
|
200
|
+
bHiddenEdTemporary: 0x0100, // 0x0100 (0x0004) [bool : 0x80000]
|
|
201
|
+
bHiddenEdLevel: 0x0100, // 0x0100 (0x0004) [bool : 0x100000]
|
|
202
|
+
bHiddenEdScene: 0x0100, // 0x0100 (0x0004) [bool : 0x200000]
|
|
203
|
+
bHiddenEdNoPhysics: 0x0100, // 0x0100 (0x0004) [bool : 0x400000]
|
|
204
|
+
bEdShouldSnap: 0x0100, // 0x0100 (0x0004) [bool : 0x800000]
|
|
205
|
+
bTempEditor: 0x0100, // 0x0100 (0x0004) [bool : 0x1000000]
|
|
206
|
+
bPathColliding: 0x0100, // 0x0100 (0x0004) [bool : 0x2000000]
|
|
207
|
+
bPathTemp: 0x0100, // 0x0100 (0x0004) [bool : 0x4000000]
|
|
208
|
+
bScriptInitialized: 0x0100, // 0x0100 (0x0004) [bool : 0x8000000]
|
|
209
|
+
bLockLocation: 0x0100, // 0x0100 (0x0004) [bool : 0x10000000]
|
|
210
|
+
bForceAllowKismetModification: 0x0100, // 0x0100 (0x0004) [bool : 0x20000000]
|
|
211
|
+
bDedicatedServerRelevant: 0x0100, // 0x0100 (0x0004) [bool : 0x40000000]
|
|
212
|
+
bLockedFromEditorDeletion: 0x0100, // 0x0100 (0x0004) [bool : 0x-80000000]
|
|
213
|
+
bComponentsDirty: 0x0104, // 0x0104 (0x0004) [bool : 0x1]
|
|
214
|
+
bUpdateComponentsIfEmpty: 0x0104, // 0x0104 (0x0004) [bool : 0x2]
|
|
215
|
+
bDebugEffectIsRelevant: 0x0104, // 0x0104 (0x0004) [bool : 0x4]
|
|
216
|
+
SkelMeshCompTickTag: 0x0108, // 0x0108 (0x0004) [int32]
|
|
217
|
+
NetTag: 0x010C, // 0x010C (0x0004) [int32]
|
|
218
|
+
NetUpdateTime: 0x0110, // 0x0110 (0x0004) [float]
|
|
219
|
+
NetUpdateFrequency: 0x0114, // 0x0114 (0x0004) [float]
|
|
220
|
+
NetPriority: 0x0118, // 0x0118 (0x0004) [float]
|
|
221
|
+
LastNetUpdateTime: 0x011C, // 0x011C (0x0004) [float]
|
|
222
|
+
LastForcePacketUpdateTime: 0x0120, // 0x0120 (0x0004) [float]
|
|
223
|
+
TimeSinceLastTick: 0x0124, // 0x0124 (0x0004) [float]
|
|
224
|
+
Instigator: 0x0128, // 0x0128 (0x0008) [UPawn*]
|
|
225
|
+
WorldInfo: 0x0130, // 0x0130 (0x0008) [UWorldInfo*]
|
|
226
|
+
LifeSpan: 0x0138, // 0x0138 (0x0004) [float]
|
|
227
|
+
CreationTime: 0x013C, // 0x013C (0x0004) [float]
|
|
228
|
+
LastRenderTime: 0x0140, // 0x0140 (0x0004) [float]
|
|
229
|
+
Tag: 0x0144, // 0x0144 (0x0008) [FName]
|
|
230
|
+
InitialState: 0x014C, // 0x014C (0x0008) [FName]
|
|
231
|
+
Layer: 0x0154, // 0x0154 (0x0008) [FName]
|
|
232
|
+
Group: 0x015C, // 0x015C (0x0008) [FName]
|
|
233
|
+
HiddenEditorViews: 0x0168, // 0x0168 (0x0008) [uint64]
|
|
234
|
+
Touching: 0x0170, // 0x0170 (0x0010) [TArray<UActor*>]
|
|
235
|
+
Children: 0x0180, // 0x0180 (0x0010) [TArray<UActor*>]
|
|
236
|
+
LatentFloat: 0x0190, // 0x0190 (0x0004) [float]
|
|
237
|
+
LatentSeqNode: 0x0198, // 0x0198 (0x0008) [UAnimNodeSequence*]
|
|
238
|
+
PhysicsVolume: 0x01A0, // 0x01A0 (0x0008) [UPhysicsVolume*]
|
|
239
|
+
Velocity: 0x01A8, // 0x01A8 (0x000C) [FVector]
|
|
240
|
+
Acceleration: 0x01B4, // 0x01B4 (0x000C) [FVector]
|
|
241
|
+
AngularVelocity: 0x01C0, // 0x01C0 (0x000C) [FVector]
|
|
242
|
+
BaseSkelComponent: 0x01D0, // 0x01D0 (0x0008) [unknown]
|
|
243
|
+
BaseBoneName: 0x01D8, // 0x01D8 (0x0008) [FName]
|
|
244
|
+
Attached: 0x01E0, // 0x01E0 (0x0010) [TArray<UActor*>]
|
|
245
|
+
RelativeLocation: 0x01F0, // 0x01F0 (0x000C) [FVector]
|
|
246
|
+
RelativeRotation: 0x01FC, // 0x01FC (0x000C) [FRotator]
|
|
247
|
+
CollisionComponent: 0x0208, // 0x0208 (0x0008) [unknown]
|
|
248
|
+
OverlapTag: 0x0210, // 0x0210 (0x0004) [int32]
|
|
249
|
+
RotationRate: 0x0214, // 0x0214 (0x000C) [FRotator]
|
|
250
|
+
PendingTouch: 0x0220, // 0x0220 (0x0008) [UActor*]
|
|
251
|
+
SupportedEvents: 0x0228, // 0x0228 (0x0010) [TArray<UClass*>]
|
|
252
|
+
GeneratedEvents: 0x0238, // 0x0238 (0x0010) [TArray<USequenceEvent*>]
|
|
253
|
+
LatentActions: 0x0248, // 0x0248 (0x0010) [TArray<USeqAct_Latent*>]
|
|
254
|
+
IgnoredTouchClasses: 0x0258, // 0x0258 (0x0010) [TArray<UClass*>]
|
|
255
|
+
} as const;
|
|
256
|
+
|
|
60
257
|
/**
|
|
61
258
|
* AkAudio.AkBusActor Offsets
|
|
62
259
|
* Size: 0x0279
|
|
@@ -69,6 +266,23 @@ export const AkBusActor = {
|
|
|
69
266
|
...Actor,
|
|
70
267
|
} as const;
|
|
71
268
|
|
|
269
|
+
/**
|
|
270
|
+
* Engine.ActorComponent Offsets
|
|
271
|
+
* Size: 0x009D
|
|
272
|
+
* Extends: Component
|
|
273
|
+
*/
|
|
274
|
+
export const ActorComponent = {
|
|
275
|
+
LocalViewers: 0x0070, // 0x0070 (0x0010) [TArray<UPlayerController*>]
|
|
276
|
+
BulletSceneGroup: 0x0080, // 0x0080 (0x0001) [uint8]
|
|
277
|
+
Scene: 0x0088, // 0x0088 (0x0008) [FPointer]
|
|
278
|
+
Owner: 0x0090, // 0x0090 (0x0008) [UActor*]
|
|
279
|
+
bAttached: 0x0098, // 0x0098 (0x0004) [bool : 0x1]
|
|
280
|
+
bTickInEditor: 0x0098, // 0x0098 (0x0004) [bool : 0x2]
|
|
281
|
+
bNeedsReattach: 0x0098, // 0x0098 (0x0004) [bool : 0x4]
|
|
282
|
+
bNeedsUpdateTransform: 0x0098, // 0x0098 (0x0004) [bool : 0x8]
|
|
283
|
+
TickGroup: 0x009C, // 0x009C (0x0001) [ETickingGroup]
|
|
284
|
+
} as const;
|
|
285
|
+
|
|
72
286
|
/**
|
|
73
287
|
* AkAudio.AkComponent Offsets
|
|
74
288
|
* Size: 0x00B4
|
|
@@ -81,6 +295,26 @@ export const AkComponent = {
|
|
|
81
295
|
...ActorComponent,
|
|
82
296
|
} as const;
|
|
83
297
|
|
|
298
|
+
/**
|
|
299
|
+
* Core.Object Offsets
|
|
300
|
+
* Size: 0x0060
|
|
301
|
+
*/
|
|
302
|
+
export const Object_ = {
|
|
303
|
+
VfTableObject: 0x0000, // 0x0000 (0x0008) [FPointer]
|
|
304
|
+
HashNext: 0x0008, // 0x0008 (0x0008) [FPointer]
|
|
305
|
+
ObjectFlags: 0x0010, // 0x0010 (0x0008) [uint64]
|
|
306
|
+
HashOuterNext: 0x0018, // 0x0018 (0x0008) [FPointer]
|
|
307
|
+
StateFrame: 0x0020, // 0x0020 (0x0008) [FPointer]
|
|
308
|
+
Linker: 0x0028, // 0x0028 (0x0008) [UObject*]
|
|
309
|
+
LinkerIndex: 0x0030, // 0x0030 (0x0008) [FPointer]
|
|
310
|
+
ObjectInternalInteger: 0x0038, // 0x0038 (0x0004) [int32]
|
|
311
|
+
NetIndex: 0x003C, // 0x003C (0x0004) [int32]
|
|
312
|
+
Outer: 0x0040, // 0x0040 (0x0008) [UObject*]
|
|
313
|
+
Name: 0x0048, // 0x0048 (0x0008) [FName]
|
|
314
|
+
Class: 0x0050, // 0x0050 (0x0008) [UClass*]
|
|
315
|
+
ObjectArchetype: 0x0058, // 0x0058 (0x0008) [UObject*]
|
|
316
|
+
} as const;
|
|
317
|
+
|
|
84
318
|
/**
|
|
85
319
|
* AkAudio.AkDevice Offsets
|
|
86
320
|
* Size: 0x00B8
|
|
@@ -96,7 +330,7 @@ export const AkDevice = {
|
|
|
96
330
|
MasterAudioBusName: 0x0090, // 0x0090 (0x0008) [FName]
|
|
97
331
|
GameplayAudioBusName: 0x0098, // 0x0098 (0x0008) [FName]
|
|
98
332
|
__EventInitialized__Delegate: 0x00A0, // 0x00A0 (0x0018) [FScriptDelegate]
|
|
99
|
-
...
|
|
333
|
+
...Object_,
|
|
100
334
|
} as const;
|
|
101
335
|
|
|
102
336
|
/**
|
|
@@ -106,7 +340,19 @@ export const AkDevice = {
|
|
|
106
340
|
*/
|
|
107
341
|
export const AkDialogueEvent = {
|
|
108
342
|
Arguments: 0x0060, // 0x0060 (0x0010) [TArray<UAkSwitch*>]
|
|
109
|
-
...
|
|
343
|
+
...Object_,
|
|
344
|
+
} as const;
|
|
345
|
+
|
|
346
|
+
/**
|
|
347
|
+
* Engine.Volume Offsets
|
|
348
|
+
* Size: 0x02A4
|
|
349
|
+
* Extends: Brush
|
|
350
|
+
*/
|
|
351
|
+
export const Volume = {
|
|
352
|
+
AssociatedActor: 0x0298, // 0x0298 (0x0008) [UActor*]
|
|
353
|
+
bForcePawnWalk: 0x02A0, // 0x02A0 (0x0004) [bool : 0x1]
|
|
354
|
+
bProcessAllActors: 0x02A0, // 0x02A0 (0x0004) [bool : 0x2]
|
|
355
|
+
bPawnsOnly: 0x02A0, // 0x02A0 (0x0004) [bool : 0x4]
|
|
110
356
|
} as const;
|
|
111
357
|
|
|
112
358
|
/**
|
|
@@ -130,7 +376,7 @@ export const AkEnvironments = {
|
|
|
130
376
|
ActorEnvironments: 0x0078, // 0x0078 (0x0010) [TArray<FAkActorEnvironment>]
|
|
131
377
|
bLevelDirty: 0x0088, // 0x0088 (0x0004) [bool : 0x1]
|
|
132
378
|
bActorEnvironmentDirty: 0x0088, // 0x0088 (0x0004) [bool : 0x2]
|
|
133
|
-
...
|
|
379
|
+
...Object_,
|
|
134
380
|
} as const;
|
|
135
381
|
|
|
136
382
|
/**
|
|
@@ -150,7 +396,7 @@ export const AkMusicAnalysis = {
|
|
|
150
396
|
__EventNewMusicTrack__Delegate: 0x00C8, // 0x00C8 (0x0018) [FScriptDelegate]
|
|
151
397
|
__EventMusicBeat__Delegate: 0x00E0, // 0x00E0 (0x0018) [FScriptDelegate]
|
|
152
398
|
__EventMusicBar__Delegate: 0x00F8, // 0x00F8 (0x0018) [FScriptDelegate]
|
|
153
|
-
...
|
|
399
|
+
...Object_,
|
|
154
400
|
} as const;
|
|
155
401
|
|
|
156
402
|
/**
|
|
@@ -161,7 +407,7 @@ export const AkMusicAnalysis = {
|
|
|
161
407
|
export const AkMusicDevice = {
|
|
162
408
|
__EventTrackStart__Delegate: 0x0060, // 0x0060 (0x0018) [FScriptDelegate]
|
|
163
409
|
__EventTrackEnd__Delegate: 0x0078, // 0x0078 (0x0018) [FScriptDelegate]
|
|
164
|
-
...
|
|
410
|
+
...Object_,
|
|
165
411
|
} as const;
|
|
166
412
|
|
|
167
413
|
/**
|
|
@@ -239,7 +485,7 @@ export const AkRevPhysicsSimulation = {
|
|
|
239
485
|
EngineResistance: 0x0090, // 0x0090 (0x0004) [float]
|
|
240
486
|
NetForce: 0x0094, // 0x0094 (0x0004) [float]
|
|
241
487
|
__EventGearChange__Delegate: 0x0098, // 0x0098 (0x0018) [FScriptDelegate]
|
|
242
|
-
...
|
|
488
|
+
...Object_,
|
|
243
489
|
} as const;
|
|
244
490
|
|
|
245
491
|
/**
|
|
@@ -251,7 +497,7 @@ export const AkSoundBanksInfo = {
|
|
|
251
497
|
StreamedFileNames: 0x0060, // 0x0060 (0x0010) [TArray<FString>]
|
|
252
498
|
SoundBanks: 0x0070, // 0x0070 (0x0010) [TArray<FSoundBankInfo>]
|
|
253
499
|
EventToBankMap: 0x0080, // 0x0080 (0x0008) [unknown]
|
|
254
|
-
...
|
|
500
|
+
...Object_,
|
|
255
501
|
} as const;
|
|
256
502
|
|
|
257
503
|
/**
|
|
@@ -263,7 +509,7 @@ export const AkSoundCue = {
|
|
|
263
509
|
RequiredBank: 0x0060, // 0x0060 (0x0008) [UAkBank*]
|
|
264
510
|
StartEvent: 0x0068, // 0x0068 (0x0010) [FString]
|
|
265
511
|
StopEvent: 0x0078, // 0x0078 (0x0010) [FString]
|
|
266
|
-
...
|
|
512
|
+
...Object_,
|
|
267
513
|
} as const;
|
|
268
514
|
|
|
269
515
|
/**
|
|
@@ -297,7 +543,33 @@ export const AkSoundSource = {
|
|
|
297
543
|
* Extends: Object
|
|
298
544
|
*/
|
|
299
545
|
export const AkSwitch = {
|
|
300
|
-
...
|
|
546
|
+
...Object_,
|
|
547
|
+
} as const;
|
|
548
|
+
|
|
549
|
+
/**
|
|
550
|
+
* Engine.InterpTrack Offsets
|
|
551
|
+
* Size: 0x00C4
|
|
552
|
+
* Extends: Object
|
|
553
|
+
*/
|
|
554
|
+
export const InterpTrack = {
|
|
555
|
+
VfTable_FInterpEdInputInterface: 0x0060, // 0x0060 (0x0008) [FPointer]
|
|
556
|
+
CurveEdVTable: 0x0068, // 0x0068 (0x0008) [FPointer]
|
|
557
|
+
SubTracks: 0x0070, // 0x0070 (0x0010) [TArray<UInterpTrack*>]
|
|
558
|
+
SubTrackGroups: 0x0080, // 0x0080 (0x0010) [TArray<FSubTrackGroup>]
|
|
559
|
+
SupportedSubTracks: 0x0090, // 0x0090 (0x0010) [TArray<FSupportedSubTrackInfo>]
|
|
560
|
+
TrackInstClass: 0x00A0, // 0x00A0 (0x0008) [UClass*]
|
|
561
|
+
ActiveCondition: 0x00A8, // 0x00A8 (0x0001) [ETrackActiveCondition]
|
|
562
|
+
TrackTitle: 0x00B0, // 0x00B0 (0x0010) [FString]
|
|
563
|
+
bOnePerGroup: 0x00C0, // 0x00C0 (0x0004) [bool : 0x1]
|
|
564
|
+
bDirGroupOnly: 0x00C0, // 0x00C0 (0x0004) [bool : 0x2]
|
|
565
|
+
bDisableTrack: 0x00C0, // 0x00C0 (0x0004) [bool : 0x4]
|
|
566
|
+
bIsAnimControlTrack: 0x00C0, // 0x00C0 (0x0004) [bool : 0x8]
|
|
567
|
+
bSubTrackOnly: 0x00C0, // 0x00C0 (0x0004) [bool : 0x10]
|
|
568
|
+
bVisible: 0x00C0, // 0x00C0 (0x0004) [bool : 0x20]
|
|
569
|
+
bIsSelected: 0x00C0, // 0x00C0 (0x0004) [bool : 0x40]
|
|
570
|
+
bIsRecording: 0x00C0, // 0x00C0 (0x0004) [bool : 0x80]
|
|
571
|
+
bIsCollapsed: 0x00C0, // 0x00C0 (0x0004) [bool : 0x100]
|
|
572
|
+
...Object_,
|
|
301
573
|
} as const;
|
|
302
574
|
|
|
303
575
|
/**
|
|
@@ -311,6 +583,17 @@ export const InterpTrackAkEvent = {
|
|
|
311
583
|
...InterpTrack,
|
|
312
584
|
} as const;
|
|
313
585
|
|
|
586
|
+
/**
|
|
587
|
+
* Engine.InterpTrackFloatBase Offsets
|
|
588
|
+
* Size: 0x00E4
|
|
589
|
+
* Extends: InterpTrack
|
|
590
|
+
*/
|
|
591
|
+
export const InterpTrackFloatBase = {
|
|
592
|
+
FloatTrack: 0x00C8, // 0x00C8 (0x0018) [FInterpCurveFloat]
|
|
593
|
+
CurveTension: 0x00E0, // 0x00E0 (0x0004) [float]
|
|
594
|
+
...InterpTrack,
|
|
595
|
+
} as const;
|
|
596
|
+
|
|
314
597
|
/**
|
|
315
598
|
* AkAudio.InterpTrackAkRTPC Offsets
|
|
316
599
|
* Size: 0x00F8
|
|
@@ -321,6 +604,15 @@ export const InterpTrackAkRTPC = {
|
|
|
321
604
|
...InterpTrackFloatBase,
|
|
322
605
|
} as const;
|
|
323
606
|
|
|
607
|
+
/**
|
|
608
|
+
* Engine.InterpTrackInst Offsets
|
|
609
|
+
* Size: 0x0060
|
|
610
|
+
* Extends: Object
|
|
611
|
+
*/
|
|
612
|
+
export const InterpTrackInst = {
|
|
613
|
+
...Object_,
|
|
614
|
+
} as const;
|
|
615
|
+
|
|
324
616
|
/**
|
|
325
617
|
* AkAudio.InterpTrackInstAkEvent Offsets
|
|
326
618
|
* Size: 0x0064
|
|
@@ -340,6 +632,17 @@ export const InterpTrackInstAkRTPC = {
|
|
|
340
632
|
...InterpTrackInst,
|
|
341
633
|
} as const;
|
|
342
634
|
|
|
635
|
+
/**
|
|
636
|
+
* Engine.SequenceAction Offsets
|
|
637
|
+
* Size: 0x0160
|
|
638
|
+
* Extends: SequenceOp
|
|
639
|
+
*/
|
|
640
|
+
export const SequenceAction = {
|
|
641
|
+
HandlerName: 0x0140, // 0x0140 (0x0008) [FName]
|
|
642
|
+
bCallHandler: 0x0148, // 0x0148 (0x0004) [bool : 0x1]
|
|
643
|
+
Targets: 0x0150, // 0x0150 (0x0010) [TArray<UObject*>]
|
|
644
|
+
} as const;
|
|
645
|
+
|
|
343
646
|
/**
|
|
344
647
|
* AkAudio.SeqAct_AkClearBanks Offsets
|
|
345
648
|
* Size: 0x0160
|
|
@@ -360,6 +663,18 @@ export const SeqAct_AkEnvironment = {
|
|
|
360
663
|
...SequenceAction,
|
|
361
664
|
} as const;
|
|
362
665
|
|
|
666
|
+
/**
|
|
667
|
+
* Engine.SeqAct_Latent Offsets
|
|
668
|
+
* Size: 0x0178
|
|
669
|
+
* Extends: SequenceAction
|
|
670
|
+
*/
|
|
671
|
+
export const SeqAct_Latent = {
|
|
672
|
+
LatentActors: 0x0160, // 0x0160 (0x0010) [TArray<UActor*>]
|
|
673
|
+
bAborted: 0x0170, // 0x0170 (0x0004) [bool : 0x1]
|
|
674
|
+
LatentActivationTime: 0x0174, // 0x0174 (0x0004) [float]
|
|
675
|
+
...SequenceAction,
|
|
676
|
+
} as const;
|
|
677
|
+
|
|
363
678
|
/**
|
|
364
679
|
* AkAudio.SeqAct_AkLoadBank Offsets
|
|
365
680
|
* Size: 0x018C
|
|
@@ -481,6 +796,27 @@ export const SeqAct_AkStopAll = {
|
|
|
481
796
|
...SequenceAction,
|
|
482
797
|
} as const;
|
|
483
798
|
|
|
799
|
+
/**
|
|
800
|
+
* Engine.SequenceEvent Offsets
|
|
801
|
+
* Size: 0x017C
|
|
802
|
+
* Extends: SequenceOp
|
|
803
|
+
*/
|
|
804
|
+
export const SequenceEvent = {
|
|
805
|
+
DuplicateEvts: 0x0140, // 0x0140 (0x0010) [TArray<USequenceEvent*>]
|
|
806
|
+
Originator: 0x0150, // 0x0150 (0x0008) [UActor*]
|
|
807
|
+
Instigator: 0x0158, // 0x0158 (0x0008) [UActor*]
|
|
808
|
+
ActivationTime: 0x0160, // 0x0160 (0x0004) [float]
|
|
809
|
+
TriggerCount: 0x0164, // 0x0164 (0x0004) [int32]
|
|
810
|
+
MaxTriggerCount: 0x0168, // 0x0168 (0x0004) [int32]
|
|
811
|
+
ReTriggerDelay: 0x016C, // 0x016C (0x0004) [float]
|
|
812
|
+
bEnabled: 0x0170, // 0x0170 (0x0004) [bool : 0x1]
|
|
813
|
+
bPlayerOnly: 0x0170, // 0x0170 (0x0004) [bool : 0x2]
|
|
814
|
+
bRegistered: 0x0170, // 0x0170 (0x0004) [bool : 0x4]
|
|
815
|
+
bClientSideOnly: 0x0170, // 0x0170 (0x0004) [bool : 0x8]
|
|
816
|
+
Priority: 0x0174, // 0x0174 (0x0001) [uint8]
|
|
817
|
+
MaxWidth: 0x0178, // 0x0178 (0x0004) [int32]
|
|
818
|
+
} as const;
|
|
819
|
+
|
|
484
820
|
/**
|
|
485
821
|
* AkAudio.SeqEvent_AkMusicCue Offsets
|
|
486
822
|
* Size: 0x0190
|
|
@@ -491,7 +827,6 @@ export const SeqEvent_AkMusicCue = {
|
|
|
491
827
|
...SequenceEvent,
|
|
492
828
|
} as const;
|
|
493
829
|
|
|
494
|
-
|
|
495
830
|
/**
|
|
496
831
|
* ScriptStruct AkAudio.AkSoundSource.ActiveSound Offsets
|
|
497
832
|
* Size: 0x0010
|