I plan on adding documentation later when I get home. This is currently for the game settings that come from construction set but are handled by unreal engine. Lmk what other unreal settings I should include below!
Hey, please update your main.lua so it can use [/Script/Engine.PhysicsSettings] that usually run in the Engine.ini. Here is what works for me.
local gameSettingsMap = require "Construction64_To_Unreal_GameSettings" local unrealGameSettings = StaticFindObject("/Script/UE5AltarPairing.Default__VOblivionInitialSettings") local physicsSettings = StaticFindObject("/Script/Engine.Default__PhysicsSettings") local loadedGameSettings = {} local luaIniParser = require "LIP"
local function loadInis() for ini in io.popen([[dir "OBSE\Plugins\GameSettings" /b]]):lines() do if ini:sub(-4):lower() == ".ini" then print("[BB's Game Settings Loader] Loading OBSE\\Plugins\\GameSettings\\" .. ini .. "... \n") local loadedIni = luaIniParser.load("OBSE\\Plugins\\GameSettings\\"..ini) if loadedIni.GameSettings ~= nil then for setting, value in pairs(loadedIni.GameSettings) do if gameSettingsMap[setting] ~= nil then print("[BB's Game Settings Loader] " .. setting .. " -> " .. gameSettingsMap[setting] .. ": " .. tostring(value) .. "\n") loadedGameSettings[gameSettingsMap[setting]] = value end end end end end for ini in io.popen([[dir "GameSettings" /b]]):lines() do if ini:sub(-4):lower() == ".ini" then print("[BB's Game Settings Loader] Loading GameSettings\\" .. ini .. "... \n") local loadedIni = luaIniParser.load("GameSettings\\"..ini) if loadedIni.GameSettings ~= nil then for setting, value in pairs(loadedIni.GameSettings) do if gameSettingsMap[setting] ~= nil then print("[BB's Game Settings Loader] " .. setting .. " -> " .. gameSettingsMap[setting] .. ": " .. tostring(value) .. "\n") loadedGameSettings[gameSettingsMap[setting]] = value else print("[BB's Game Settings Loader] " .. setting .. ": " .. tostring(value) .. "\n") loadedGameSettings[setting] = value end end end end end end
local function applyInis() for setting, value in pairs(loadedGameSettings) do if unrealGameSettings and unrealGameSettings:IsValid() and unrealGameSettings[setting] and not string.find(tostring(unrealGameSettings[setting]), "UObject") then unrealGameSettings[setting] = value elseif physicsSettings and physicsSettings:IsValid() and physicsSettings[setting] and not string.find(tostring(physicsSettings[setting]), "UObject") then physicsSettings[setting] = value end end end
if unrealGameSettings and unrealGameSettings:IsValid() then print("[BB's Game Settings Loader] --[[ Got Oblivion's Unreal game settings! ]]--\n") loadInis() print("[BB's Game Settings Loader] --[[ Applying loaded settings, pray to Todd! ]]--\n") applyInis() loadedGameSettings = nil end You can use this or do your own implementation.
For people who want to do it themselves, just open the main.lua from this mod with notepad. Delete all text, copy and paste from this post and save.
Will examine later see if I can make any improvements, my focus kinda got lost onto the TesSyncMapInjector. I plan to make this able to apply internal game settings on save load too
[BUGFIX] Fix issue with getting tabbed out on load (probably the mouse / main menu lag too) Note: I tried to post this under bugs but nexus wouldn't cooperate (kept getting error 500 so comments it is...)
Using MO2 I was noticing a console window flash open for a split second that was causing the issues mentioned, the problem stems from using io.popen(...), I have made a couple changes to main.lua that fixes this
I would have never of guessed popen would cause the issue, I will rewrite a new update to address this. Thank you.
Edit: made a simple function to replace io.popen and can confirm this should fix the weird behavior as this fixed the nvidia intro overlay thingy from glitching out like it has been for me >-> local function getFilesInDirectory(path) local files = {} local folders = path:gmatch("([^\\]+)") local currentPath = IterateGameDirectories().Game.Binaries if currentPath.Win64 ~= nil then currentPath = currentPath.Win64 else currentPath = currentPath.WinGDK end for fold in folders do if currentPath[fold] ~= nil then currentPath = currentPath[fold] else return pairs(files) end end for _,fileobject in pairs(currentPath.__files) do table.insert(files,fileobject.__name) end return pairs(files) end
new update looks good, i did see you have a small mistake on line 44 when checking for the Gamepass exe you have accidentally reused the Win64 dir in the for loopfor _,file in pairs(BinariesFolder.Win64.__files) do should be for _,file in pairs(BinariesFolder.WinGDK.__files) do
Is this compatible with Bow Headshot UE4SS? I seemingly used both until now but today I started getting crashes after updating to UE4SS 3.1.0a. After removing that mod, I did not experience any further crashes. It started with a crash during vendor screen then I couldn't even launch the game.
EDIT: I changed setInternalGameSettings to false and now I don't get a crash on startup. However, I do also have Game Settings for OBSE in order to use Skill Leveling XP Curvature Increased. Will that mod continue to work if I changed that value to false?
First, thank you for this mod and the time you put into it!
Now to the bad... I spent the last 12 hours going through a process of elimination, trying to figure out why I couldn't load a game save (CTD). It was all because of the recent updated version of this mod!
The problem specifically was with the Realistic Arrow Speed mod. That mod requires this UE4SS Game Setting Loader mod, but does NOT work with the most recent version. I had to reinstall the older version of the game settings loader mod, and now I can load a saved game without CTD!
Is there a reason why updating this mod killed support of realistic arrow speed mod? Do we have to worry about other mods that require UE4SS Game Setting Loader crashing the game because they no longer work with the updated version of this mod?
So I ended up getting it to work. Realistic Arrow Speed mod on newest update. It was quite the struggle but I installed BPModLoaderMod OBRE and also in mods.txt file I added this mod into it.
I realized some mods load their own Mods.txt file and realized it was Ultra+. So I decided to try to add this mod to the list and have it before Ultra+ and right after BPModloaderMod. And it worked. Trial and error basically.
As you've said that this mod conflicts with Game Settings Loader if setInternalGameSettings is true.How does this get set to true and is there type of mods that need to be avoided if they require Game Settings Loader?
IDK what the f*#@ is wrong or why but I've now had to wipe the game completely twice thanks to your mod. Thankfully the only thing I use it depends on is Realistic Arrow Speed, but my f*#@ing god man, is this infuriating....
Everything, and I mean EVERYTHING, works fine and dandy until the SECOND I add your mod to the games directory. Then it literally refuses to boot. Can't even get in to load a save. It was at least working but would crash every hour or so on version 0.0.6 but everything after is just *borked*. Even uninstalling doesn't allow me toget back in, I have to wipe and start from scratch which as I said I am now in the process of doing the second time. Seems like I have a choice of either forgoing this entirely (not my first choice as the Arrow mod is rather necessary in my eyes), or reverting to .0.6, but tbh at this point I'm not even really comfy downgrading for fear of having to do all this a THIRD time in as many days.
Sorry that you continue having trouble with this mod. I see that you are using the steam version may I inquire if you are using any pak mods in the logic mods folder?
Also if you can give a crash log so I can get a hint of whats happening.
Does this mod also cause a crash when used by it self and have you tried prior versions of ue4ss for oblivion remastered?
Gonna be honest man, getting you a crash log would require me to break the game to the point i need to wipe it a third time in as many days given that even uninstalling doesnt resolve not being able to boot the game, and i am just NOT willing to go through all that again so soon. I just wanna play the game at this point. I'd feel worse about not being able to give you logs, but there's pleeeeeeenty of other people having virtually the same issue it seems. Maybe in a few days or a week when I've had some time to just enjoy the game again if it looks like people are still having issues.
I have not yet tested GSL in isolation or an earlier UE4SS. Like I said, goal at this point is to just get back to where I was before issues and then leave it lie for a bit to enjoy the game.
I'm using pak mods, yes, but I'm not aware of what the "logic mods" folder is. I don't THINK there's anything in that location, because aside from the Arrow Speed mod that's dependent on this (which Idon't believe goes in that folder), everything I have is a simple texture or mesh edit, a base level dependency like OBSE, or a very simple UI alteration like item sorting or better looking overworld map. The most 'complicated' things you could say I use are RaceMenu type dependency mods which I only need to give Martin a better face. What's the filepath for that folder so I can double check?
Also sorry if I came off as attacking you, I wasn't. Just very tired, bad week, and OBR mod SNAFUs are just the cherry on top.
Edit: If you scroll down a bit you'll see another OP comment from me from earlier in the week that has a crash log. Granted, that was only when I couldn't load a save and could still get in to the game, so it might not be 'the most current' crash log, but at least it's something as a starting point?
The causing the crashes is realistic Arrow mod which alters the altair.ini and the changes you made make it no longer compatible. it crashes the moment it loads Realistic arrow mod. I will be rolling back to 0.1 from may 12th. That one works fine for this mod.
Edit: I ended up installing BPModLoaderMod OBRE to replace UE4SS default one and now game boots up and realistic arrow speed mod works.
Edit2: it started crashing again on bootup. Didn't work.
Seems that this tool and dependent mods are sometimes not required if you are willing to use a text editor and add/change the file Altar.ini in the saved games folder yourself. Example D:\Saved Games\Oblivion Remastered\Saved\Config\Windows\Altar.ini This is the method supported by the game itself.
Config values can be copied from DefaultAltar.ini and then changed
The problem is if you download a mod that alters that ini (which apparently there are a lot of) you have to re-edit the ini to have the values you want for the things you want every time. At least according to the author of the newer Arrow Speed mod that has UE4SSGSL as a dependency.
I am curious. What does the setInternalGameSettings function do anyway? I'm trying to track down a crash in the transition to other cells, but before that I'm interested in what I turn off when I set the function to false. Does this disable mods that change intern settings such as timescale, arrow speed, etc.?
Edit 2: gfdi nexus f*#@ you and your refusal to load my edit requiring me to use your broken copy paste function. im too tired and irritated i cant be arsed to edit this to not have weird spaces, nor can i be arsed to try and troubleshoot all this bullshit (im getting crashes from other mods now too with no idea why and no fixes working). im just gonna do a full goddamn wipe. *sigh* i f*#@ing hate modding but its just necessary with bethesda games cuz *gasp* they actually make really shitty games, mechanically. FML
Edit: ignore me, I lied. Turning it from true to false dropped my fps from 120 to f*#@ing *30*. IDK WTF that edit does but fuuuuuuuuuck that. I deleted the other game settings loader mod cuz i realized i DONT actually have anything that needs it, and I'm still getting crashes. I'm actually pretty upset now because I can't play the f*#@ing game and have no idea what the issue is or why it even started.
It doesnt really turn anything off from what I understand, it's more dictating where and how mods 'talk' to each other. If you're using the other Game Settings Loader without altering this mod's config.lua, you'll get a conflict and UE4SS crash. I was having the exact same issue (sans installing the arrow speed mod, my issue started when I downloaded the other GSL as a dependency for a third unrelated mod) and spent a couple hours troubleshooting this before I noticed the author's note on the description page about the conflict. Soon as I edited the .lua the game worked fine again.
151 comments
Here is what works for me.
local gameSettingsMap = require "Construction64_To_Unreal_GameSettings"
local unrealGameSettings = StaticFindObject("/Script/UE5AltarPairing.Default__VOblivionInitialSettings")
local physicsSettings = StaticFindObject("/Script/Engine.Default__PhysicsSettings")
local loadedGameSettings = {}
local luaIniParser = require "LIP"
local function loadInis()
for ini in io.popen([[dir "OBSE\Plugins\GameSettings" /b]]):lines() do
if ini:sub(-4):lower() == ".ini" then
print("[BB's Game Settings Loader] Loading OBSE\\Plugins\\GameSettings\\" .. ini .. "... \n")
local loadedIni = luaIniParser.load("OBSE\\Plugins\\GameSettings\\"..ini)
if loadedIni.GameSettings ~= nil then
for setting, value in pairs(loadedIni.GameSettings) do
if gameSettingsMap[setting] ~= nil then
print("[BB's Game Settings Loader] " .. setting .. " -> " .. gameSettingsMap[setting] .. ": " .. tostring(value) .. "\n")
loadedGameSettings[gameSettingsMap[setting]] = value
end
end
end
end
end
for ini in io.popen([[dir "GameSettings" /b]]):lines() do
if ini:sub(-4):lower() == ".ini" then
print("[BB's Game Settings Loader] Loading GameSettings\\" .. ini .. "... \n")
local loadedIni = luaIniParser.load("GameSettings\\"..ini)
if loadedIni.GameSettings ~= nil then
for setting, value in pairs(loadedIni.GameSettings) do
if gameSettingsMap[setting] ~= nil then
print("[BB's Game Settings Loader] " .. setting .. " -> " .. gameSettingsMap[setting] .. ": " .. tostring(value) .. "\n")
loadedGameSettings[gameSettingsMap[setting]] = value
else
print("[BB's Game Settings Loader] " .. setting .. ": " .. tostring(value) .. "\n")
loadedGameSettings[setting] = value
end
end
end
end
end
end
local function applyInis()
for setting, value in pairs(loadedGameSettings) do
if unrealGameSettings and unrealGameSettings:IsValid() and unrealGameSettings[setting] and not string.find(tostring(unrealGameSettings[setting]), "UObject") then
unrealGameSettings[setting] = value
elseif physicsSettings and physicsSettings:IsValid() and physicsSettings[setting] and not string.find(tostring(physicsSettings[setting]), "UObject") then
physicsSettings[setting] = value
end
end
end
if unrealGameSettings and unrealGameSettings:IsValid() then
print("[BB's Game Settings Loader] --[[ Got Oblivion's Unreal game settings! ]]--\n")
loadInis()
print("[BB's Game Settings Loader] --[[ Applying loaded settings, pray to Todd! ]]--\n")
applyInis()
loadedGameSettings = nil
end
You can use this or do your own implementation.
For people who want to do it themselves, just open the main.lua from this mod with notepad. Delete all text, copy and paste from this post and save.
Now settings like "DefaultGravityZ" will work.
So people are aware. You now need to separate [GameSettings] and [PhysicsSettings] in your .ini files.
example:
[GameSettings]
ArrowInitialSpeedMultiplier=7500.000000
[PhysicsSettings]
DefaultGravityZ=-2250
Note: I tried to post this under bugs but nexus wouldn't cooperate (kept getting error 500 so comments it is...)
Using MO2 I was noticing a console window flash open for a split second that was causing the issues mentioned, the problem stems from
using io.popen(...), I have made a couple changes to main.lua that fixes this
here is the full main.lua with the changes added
https://gist.github.com/cmd430/25bc3551c3d11ad18cfb3d936ad6546b
and here are the two sections with the changes, it should work in both the steam and gamepass versions without issues (thanks to a couple nil checks for if dirs exist 👍)
https://gist.github.com/cmd430/25bc3551c3d11ad18cfb3d936ad6546b#file-main-lua-L33-L40
https://gist.github.com/cmd430/25bc3551c3d11ad18cfb3d936ad6546b#file-main-lua-L59-L68
Edit: made a simple function to replace io.popen and can confirm this should fix the weird behavior as this fixed the nvidia intro overlay thingy from glitching out like it has been for me >->
local function getFilesInDirectory(path)
local files = {}
local folders = path:gmatch("([^\\]+)")
local currentPath = IterateGameDirectories().Game.Binaries
if currentPath.Win64 ~= nil then
currentPath = currentPath.Win64
else
currentPath = currentPath.WinGDK
end
for fold in folders do
if currentPath[fold] ~= nil then
currentPath = currentPath[fold]
else
return pairs(files)
end
end
for _,fileobject in pairs(currentPath.__files) do
table.insert(files,fileobject.__name)
end
return pairs(files)
end
for _,file in pairs(BinariesFolder.Win64.__files) do
should befor _,file in pairs(BinariesFolder.WinGDK.__files) do
I'm finding that gamesettings for UE4SS aren't able to be changed via console. Is this supposed to be the case?
For example, typing getgamesetting ArrowInventoryChancePercentOnTargetHit into console (to view the current setting) says the setting isn't found..?
However when the setting loads from the .ini it works, so is it the case that these settings can only be set on load of the game?
Thanks!
EDIT: I changed setInternalGameSettings to false and now I don't get a crash on startup. However, I do also have Game Settings for OBSE in order to use Skill Leveling XP Curvature Increased. Will that mod continue to work if I changed that value to false?
Now to the bad... I spent the last 12 hours going through a process of elimination, trying to figure out why I couldn't load a game save (CTD). It was all because of the recent updated version of this mod!
The problem specifically was with the Realistic Arrow Speed mod. That mod requires this UE4SS Game Setting Loader mod, but does NOT work with the most recent version. I had to reinstall the older version of the game settings loader mod, and now I can load a saved game without CTD!
Is there a reason why updating this mod killed support of realistic arrow speed mod? Do we have to worry about other mods that require UE4SS Game Setting Loader crashing the game because they no longer work with the updated version of this mod?
BPML_GenericFunctions : 1
BPModLoaderMod : 1
GameSettingsLoader : 1
AutoLocalMap : 1
UltraPlusExtensions : 1
Somehow the game is now booting up again and save file too.
Your s#*!'s broken.
IDK what the f*#@ is wrong or why but I've now had to wipe the game completely twice thanks to your mod. Thankfully the only thing I use it depends on is Realistic Arrow Speed, but my f*#@ing god man, is this infuriating....
Everything, and I mean EVERYTHING, works fine and dandy until the SECOND I add your mod to the games directory. Then it literally refuses to boot. Can't even get in to load a save. It was at least working but would crash every hour or so on version 0.0.6 but everything after is just *borked*. Even uninstalling doesn't allow me toget back in, I have to wipe and start from scratch which as I said I am now in the process of doing the second time. Seems like I have a choice of either forgoing this entirely (not my first choice as the Arrow mod is rather necessary in my eyes), or reverting to .0.6, but tbh at this point I'm not even really comfy downgrading for fear of having to do all this a THIRD time in as many days.
Please for the love of god figure this out.
Also if you can give a crash log so I can get a hint of whats happening.
Does this mod also cause a crash when used by it self and have you tried prior versions of ue4ss for oblivion remastered?
I have not yet tested GSL in isolation or an earlier UE4SS. Like I said, goal at this point is to just get back to where I was before issues and then leave it lie for a bit to enjoy the game.
I'm using pak mods, yes, but I'm not aware of what the "logic mods" folder is. I don't THINK there's anything in that location, because aside from the Arrow Speed mod that's dependent on this (which Idon't believe goes in that folder), everything I have is a simple texture or mesh edit, a base level dependency like OBSE, or a very simple UI alteration like item sorting or better looking overworld map. The most 'complicated' things you could say I use are RaceMenu type dependency mods which I only need to give Martin a better face. What's the filepath for that folder so I can double check?
Also sorry if I came off as attacking you, I wasn't. Just very tired, bad week, and OBR mod SNAFUs are just the cherry on top.
Edit: If you scroll down a bit you'll see another OP comment from me from earlier in the week that has a crash log. Granted, that was only when I couldn't load a save and could still get in to the game, so it might not be 'the most current' crash log, but at least it's something as a starting point?
Edit:
I ended up installing BPModLoaderMod OBRE to replace UE4SS default one and now game boots up and realistic arrow speed mod works.
Edit2:
it started crashing again on bootup. Didn't work.
This is the method supported by the game itself.
Config values can be copied from DefaultAltar.ini and then changed
Example
ArrowLifeDuration=1800.0
"The fist path will only load game settings that are in the original Oblivion and also in the Unreal VOblivionInitialSettings"
Does this mean it can change ANY original Oblivion game setting? Or only if that game setting is ALSO present in VOblivionInitialSettings?
LoginId:119af3ba49944f9d7bdf5f97cfc3482f
EpicAccountId:
Unhandled Exception: EXCEPTION_ACCESS_VIOLATION reading address 0x000002ff00f570d6
UE4SS
UE4SS
UE4SS
UE4SS
UE4SS
OblivionRemastered_Win64_Shipping
OblivionRemastered_Win64_Shipping
UE4SS
OblivionRemastered_Win64_Shipping
OblivionRemastered_Win64_Shipping
OblivionRemastered_Win64_Shipping
OblivionRemastered_Win64_Shipping
OblivionRemastered_Win64_Shipping
OblivionRemastered_Win64_Shipping
OblivionRemastered_Win64_Shipping
OblivionRemastered_Win64_Shipping
OblivionRemastered_Win64_Shipping
OblivionRemastered_Win64_Shipping
OblivionRemastered_Win64_Shipping
kernel32
ntdll
When installing "realistic arrow speed" mod my game crashes on start up as well. I have UE4SS and OBSE64 installed but I don't have GSL installed.
Does this disable mods that change intern settings such as timescale, arrow speed, etc.?
FML
Edit: ignore me, I lied. Turning it from true to false dropped my fps from 120 to f*#@ing *30*. IDK WTF that edit does but fuuuuuuuuuck that. I
deleted the other game settings loader mod cuz i realized i DONT
actually have anything that needs it, and I'm still getting crashes. I'm
actually pretty upset now because I can't play the f*#@ing game and
have no idea what the issue is or why it even started.
It doesnt really turn anything off from what I understand, it's more dictating
where and how mods 'talk' to each other. If you're using the other Game Settings Loader without altering this mod's config.lua, you'll get a conflict and UE4SS
crash. I was having the exact same issue (sans installing the arrow
speed mod, my issue started when I downloaded the other GSL as a
dependency for a third unrelated mod) and spent a couple hours
troubleshooting this before I noticed the author's note on the
description page about the conflict. Soon as I edited the .lua the game
worked fine again.