Skip to content

Commit e71d5e5

Browse files
authored
Add custom game configs for StarRupture (#1150)
* Add custom game configs for StarRupture Fixes #1149 * Use release settings.ini as base for StarRupture custom config * Update Changelog.md
1 parent b4e69e2 commit e71d5e5

File tree

3 files changed

+212
-0
lines changed

3 files changed

+212
-0
lines changed

assets/Changelog.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,8 @@ Added custom game configurations for Project Silverfish ([UE4SS #1066](https://g
5959

6060
Added custom game configurations for Whiskerwood ([UE4SS #1079](https://github.com/UE4SS-RE/RE-UE4SS/pull/1079))
6161

62+
Added custom game configurations for StarRupture ([UE4SS #1150](https://github.com/UE4SS-RE/RE-UE4SS/pull/1150))
63+
6264
The GUI can now be rendered in the game thread if `RenderMode` in UE4SS-settings.ini is set to
6365
`EngineTick` or `GameViewportClientTick` ([UE4SS #768](https://github.com/UE4SS-RE/RE-UE4SS/pull/768), [UE4SS #794](https://github.com/UE4SS-RE/RE-UE4SS/pull/794)).
6466

Lines changed: 203 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,203 @@
1+
[Overrides]
2+
; Path to the 'Mods' folder
3+
; Default: <dll_directory>/Mods
4+
ModsFolderPath =
5+
6+
; Additional mods directories to load mods from.
7+
; Use + prefix to add a directory, - prefix to remove.
8+
; Can be relative to working directory or absolute paths.
9+
; Note: If multiple directories contain mods with the same name, the last one found will be loaded.
10+
; Example:
11+
; +ModsFolderPaths = ../SharedMods
12+
; +ModsFolderPaths = C:/MyMods
13+
; -ModsFolderPaths = ../SharedMods
14+
; Default: None
15+
16+
; Path to a specific mods.txt file to use as the controlling mod list.
17+
; If set, ONLY this mods.txt will be parsed instead of mods.txt from all mod directories.
18+
; Can be relative to working directory or an absolute path.
19+
; Example: ControllingModsTxt = ../MyMods/mods.txt
20+
; Default: Empty (parse mods.txt from all mod directories)
21+
ControllingModsTxt =
22+
23+
[General]
24+
; Whether to reload all mods when the key defined by HotReloadKey is hit.
25+
; Default: 1
26+
EnableHotReloadSystem = 0
27+
28+
; The key that will trigger a reload of all mods.
29+
; The CTRL key is always required.
30+
; Valid values (case-insensitive): Anything from Mods/Keybinds/Scripts/main.lua
31+
; Default: R
32+
HotReloadKey = R
33+
34+
; Whether the cache system for AOBs will be used.
35+
; Default: 1
36+
UseCache = 1
37+
38+
; Whether caches will be invalidated if ue4ss.dll has changed
39+
; Default: 1
40+
InvalidateCacheIfDLLDiffers = 1
41+
42+
; The number of seconds the scanner will scan for before giving up
43+
; Default: 30
44+
SecondsToScanBeforeGivingUp = 30
45+
46+
; Whether to create UObject listeners in GUObjectArray to create a fast cache for use instead of iterating GUObjectArray.
47+
; Setting this to false can help if you're experiencing a crash on startup.
48+
; Default: true
49+
bUseUObjectArrayCache = false
50+
51+
; Whether to perform a single AOB scan as soon as possible after the game starts.
52+
; Default: 0
53+
DoEarlyScan = 0
54+
55+
; When the search query in the Live View tab is a hex number, try to find the UObject that contains that memory address.
56+
; Default: false
57+
bEnableSeachByMemoryAddress = false
58+
59+
; The default execution method for ExecuteInGameThread Lua function.
60+
; Valid values (case-insensitive): EngineTick, ProcessEvent
61+
; EngineTick: Execute once per engine tick (once per frame, more predictable timing)
62+
; ProcessEvent: Execute on next ProcessEvent call (more frequent, lower latency)
63+
; Default: EngineTick
64+
DefaultExecuteInGameThreadMethod = EngineTick
65+
66+
[EngineVersionOverride]
67+
MajorVersion = 5
68+
MinorVersion = 6
69+
; True if the game is built as Debug, Development, or Test.
70+
; Default: false
71+
DebugBuild =
72+
73+
[ObjectDumper]
74+
; Whether to force all assets to be loaded before dumping objects
75+
; WARNING: Can require multiple gigabytes of extra memory
76+
; WARNING: Is not stable & will crash the game if you load past the main menu after dumping
77+
; Default: 0
78+
LoadAllAssetsBeforeDumpingObjects = 0
79+
80+
; Whether to display the offset from the main executable for functions instead of the function pointer
81+
; Default: 0
82+
UseModuleOffsets = 0
83+
84+
[CXXHeaderGenerator]
85+
; Whether to property offsets and sizes
86+
; Default: 1
87+
DumpOffsetsAndSizes = 1
88+
89+
; Whether memory layouts of classes and structs should be accurate
90+
; This must be set to 1, if you want to use the generated headers in an actual C++ project
91+
; When set to 0, padding member variables will not be generated
92+
; NOTE: A VALUE OF 1 HAS NO PURPOSE YET! MEMORY LAYOUT IS NOT ACCURATE EITHER WAY!
93+
; Default: 0
94+
KeepMemoryLayout = 0
95+
96+
; Whether to force all assets to be loaded before generating headers
97+
; WARNING: Can require multiple gigabytes of extra memory
98+
; WARNING: Is not stable & will crash the game if you load past the main menu after dumping
99+
; Default: 0
100+
LoadAllAssetsBeforeGeneratingCXXHeaders = 0
101+
102+
[UHTHeaderGenerator]
103+
; Whether to skip generating packages that belong to the engine
104+
; Some games make alterations to the engine and for those games you might want to set this to 0
105+
; Default: 0
106+
IgnoreAllCoreEngineModules = 0
107+
108+
; Whether to skip generating the "Engine" and "CoreUObject" packages
109+
; Default: 0
110+
IgnoreEngineAndCoreUObject = 0
111+
112+
; Whether to force all UFUNCTION macros to have "BlueprintCallable"
113+
; Note: This will cause some errors in the generated headers that you will need to manually fix
114+
; Default: 1
115+
MakeAllFunctionsBlueprintCallable = 1
116+
117+
; Whether to force all UPROPERTY macros to have "BlueprintReadWrite"
118+
; Also forces all UPROPERTY macros to have "meta=(AllowPrivateAccess=true)"
119+
; Default: 1
120+
MakeAllPropertyBlueprintsReadWrite = 1
121+
122+
; Whether to force UENUM macros on enums to have 'BlueprintType' if the underlying type was implicit or uint8
123+
; Note: This also forces the underlying type to be uint8 where the type would otherwise be implicit
124+
; Default: 1
125+
MakeEnumClassesBlueprintType = 1
126+
127+
; Whether to force "Config = Engine" on all UCLASS macros that use either one of:
128+
; "DefaultConfig", "GlobalUserConfig" or "ProjectUserConfig"
129+
; Default: 1
130+
MakeAllConfigsEngineConfig = 1
131+
132+
[Debug]
133+
; Whether to enable the external UE4SS debug console.
134+
ConsoleEnabled = 0
135+
GuiConsoleEnabled = 0
136+
GuiConsoleVisible = 0
137+
138+
; Multiplier for Font Size within the Debug Gui
139+
; Default: 1
140+
GuiConsoleFontScaling = 1
141+
142+
; The API that will be used to render the GUI debug window.
143+
; Valid values (case-insensitive): dx11, d3d11, opengl
144+
; Default: opengl
145+
GraphicsAPI = opengl
146+
147+
; The method with which the GUI will be rendered.
148+
; Valid values (case-insensitive):
149+
; ExternalThread: A separate thread will be used.
150+
; EngineTick: The UEngine::Tick function will be used.
151+
; GameViewportClientTick: The UGameViewportClient::Tick function will be used.
152+
; Default: ExternalThread
153+
RenderMode = ExternalThread
154+
155+
[Threads]
156+
; The number of threads that the sig scanner will use (not real cpu threads, can be over your physical & hyperthreading max)
157+
; If the game is modular then multi-threading will always be off regardless of the settings in this file
158+
; Min: 1
159+
; Max: 4294967295
160+
; Default: 8
161+
SigScannerNumThreads = 8
162+
163+
; The minimum size that a module has to be in order for multi-threading to be enabled
164+
; This should be large enough so that the cost of creating threads won't out-weigh the speed gained from scanning in multiple threads
165+
; Min: 0
166+
; Max: 4294967295
167+
; Default: 16777216
168+
SigScannerMultithreadingModuleSizeThreshold = 16777216
169+
170+
[Memory]
171+
; The maximum memory usage (in percentage, see Task Manager %) allowed before asset loading (when LoadAllAssetsBefore* is 1) cannot happen.
172+
; Once this percentage is reached, the asset loader will stop loading and whatever operation was in progress (object dump, or cxx generator) will continue.
173+
; Default: 85
174+
MaxMemoryUsageDuringAssetLoading = 80
175+
176+
[Hooks]
177+
HookProcessInternal = 1
178+
HookProcessLocalScriptFunction = 1
179+
HookInitGameState = 1
180+
HookLoadMap = 1
181+
HookCallFunctionByNameWithArguments = 1
182+
HookBeginPlay = 1
183+
HookEndPlay = 1
184+
HookLocalPlayerExec = 1
185+
HookAActorTick = 1
186+
HookEngineTick = 1
187+
; Method for resolving GameEngine::Tick address
188+
; Valid values (case-insensitive): Scan, VTable
189+
; Scan: Use PatternSleuth AOB scan (fallback to VTable if scan fails)
190+
; VTable: Use vtable lookup (fallback to Scan if vtable lookup fails)
191+
; Default: Scan
192+
EngineTickResolveMethod = Scan
193+
HookGameViewportClientTick = 1
194+
HookUObjectProcessEvent = 1
195+
HookProcessConsoleExec = 1
196+
HookUStructLink = 1
197+
FExecVTableOffsetInLocalPlayer = 0x28
198+
199+
[CrashDump]
200+
EnableDumping = 1
201+
FullMemoryDump = 0
202+
203+
[ExperimentalFeatures]
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
function Register()
2+
return "48 89 5C 24 10 48 89 74 24 18 48 89 7C 24 20 55 41 54 41 55 41 56 41 57 48 8D AC 24 10 FE FF FF 48 81 EC F0 02 00 00 48 8B ?? ?? ?? ?? ?? 48 33 C4 48 89 85 E0 01 00 00 48 8B 71 28"
3+
end
4+
5+
function OnMatchFound(MatchAddress)
6+
return MatchAddress
7+
end

0 commit comments

Comments
 (0)