@@ -69,6 +69,8 @@ Practically, for making simple Unreal Engine autosplitters, the following is cru
69
69
70
70
## Setup
71
71
72
+ First, you'll need Cheat Engine. Then you'll need a dumper.
73
+
72
74
There are a lot of different dumpers that will let you see the structure of the code for
73
75
Unreal Engine games. The one I have found to be the most consistent is [ UE4SS] ( https://github.com/UE4SS-RE/RE-UE4SS ) .
74
76
Follow the installation instructions to install it on your game.
@@ -98,6 +100,11 @@ to see if your game is supported there. If it isn't, then you can find their doc
98
100
on how to support it [ here] ( https://docs.ue4ss.com/dev/guides/fixing-compatibility-problems.html ) .
99
101
It is quite complex, but I won't go into supporting it right now.
100
102
103
+ ### Other Unreal Engine tools you may find useful
104
+
105
+ - [ Universal Unreal Engine 4 Unlocker] ( https://framedsc.com/GeneralGuides/universal_ue4_consoleunlocker.htm ) , to unlock the UE console in-game
106
+ - other stuff?
107
+
101
108
## Finding base addresses
102
109
103
110
You should first figure out what version of Unreal Engine the game is running. Right click
@@ -142,15 +149,22 @@ guide is for the practical use - finding these addresses for the purpose of
142
149
autosplitters.
143
150
144
151
I currently don't have a great way of finding these, it's a little
145
- jank. I would recommend finding a signature, like this one, to
146
- find it (keeping in mind sigs aren't guaranteed):
152
+ jank. I would using a signature (like the one in [ the below section] ( #signatures ) ) to find it if it works.
153
+
154
+ ### SyncLoadCounter
155
+
156
+ I haven't got much personal experience with this, but for some modern UE4 games, this address contains an int with the number of
157
+ things currently being loaded. It might be useful for your game, to detect if a load is happening.
147
158
148
- 4.27: ` 89 5C 24 ?? 89 44 24 ?? 74 ?? 48 8D 15 ` (offset 0x13)
159
+ ### Signatures
149
160
150
- I would recommend looking at other autosplitters that use signatures
151
- to find some good ones .
161
+ Here's a quick reference of some commonly used signatures. This is * not * a guide on how to use signatures, that is out of scope.
162
+ All of these work at about 4.27ish most of the time. It's never guaranteed that one works, but it's always worth trying .
152
163
153
- TODO - fill out more information here (sorry!)
164
+ GWorld: ` 0F 2E ?? 74 ?? 48 8B 1D ?? ?? ?? ?? 48 85 DB 74" ` (offset 0x8)
165
+ NamePoolData: ` 89 5C 24 ?? 89 44 24 ?? 74 ?? 48 8D 15 ` (offset 0xD)
166
+ GEngine: ` 48 39 35 ?? ?? ?? ?? 0F 85 ?? ?? ?? ?? 48 8B 0D ` (offset 0x3)
167
+ SyncLoadCounter: ` 89 43 60 8B 05 ` (offset 0x5)
154
168
155
169
## Dumping Headers (SDK)
156
170
@@ -483,7 +497,7 @@ class APlayerController : public AController
483
497
484
498
On `PlayerController`, a few things I want to make note:
485
499
- `MyHUD` contains information about widgets that are on the screen that make up the HUD. The game will probably extend this.
486
- - `PlayerCameraManager` - you may find things useful about this, but I personally haven't tried to look into it.
500
+ - `PlayerCameraManager`'s Name might be able to tell you if you're currently in a cutscene, or even a checkpoint, area, etc. Depends on the game!
487
501
488
502
You probably want the **position**, **rotation**, and **velocity** of the player though. That
489
503
information is in the superclasses of `APlayerController`:
0 commit comments