Skip to content

Instantly share code, notes, and snippets.

@Priler
Created May 7, 2025 12:55
Show Gist options
  • Save Priler/e11a977d08494868b4b6600e50112fa5 to your computer and use it in GitHub Desktop.
Save Priler/e11a977d08494868b4b6600e50112fa5 to your computer and use it in GitHub Desktop.
local normalSpeed = 1.0
local slowMoSpeed = 0.1
local settings = nil
local originalHealthRegenBase = 0.0
local originalHealthRegenOutsideCombatMult = 0.0
local originalFatigueRegenBase = 0.0
local originalFatigueRegenOutsideCombatMult = 0.0
local originalNewFormulaMagickaReturnLinearMult = 0.0
local originalMagickaRegenOutsideCombatMult = 0.0
local function log(message)
print("[SlowMotionShortcutWheel] " .. message .. "\n")
end
local function PreLoadBaseValues()
settings = StaticFindObject("/Script/UE5AltarPairing.Default__VOblivionInitialSettings")
if not settings or not settings:IsValid() then
log("Failed to find VOblivionInitialSettings")
return
end
originalHealthRegenBase = settings:GetPropertyValue("HealthRegenBase")
log("HealthRegenBase: " .. tostring(originalHealthRegenBase))
originalHealthRegenOutsideCombatMult = settings:GetPropertyValue("HealthRegenOutsideCombatMult")
log("HealthRegenOutsideCombatMult: " .. tostring(originalHealthRegenOutsideCombatMult))
originalFatigueRegenBase = settings:GetPropertyValue("FatigueRegenBase")
log("FatigueRegenBase: " .. tostring(originalFatigueRegenBase))
originalFatigueRegenOutsideCombatMult = settings:GetPropertyValue("FatigueRegenOutsideCombatMult")
log("FatigueRegenOutsideCombatMult: " .. tostring(originalFatigueRegenOutsideCombatMult))
originalNewFormulaMagickaReturnLinearMult = settings:GetPropertyValue("NewFormulaMagickaReturnLinearMult")
log("NewFormulaMagickaReturnLinearMult: " .. tostring(originalNewFormulaMagickaReturnLinearMult))
originalMagickaRegenOutsideCombatMult = settings:GetPropertyValue("MagickaRegenOutsideCombatMult")
log("MagickaRegenOutsideCombatMult: " .. tostring(originalMagickaRegenOutsideCombatMult))
end
local function SetGameSpeed(PlayerController, speed)
if settings == nil then
PreLoadBaseValues()
-- local PlayerController = Context:get()
if PlayerController:IsValid() then
SetGameSpeed(PlayerController, normalSpeed)
end
end
ExecuteInGameThread(function()
if PlayerController:IsValid() then
local CheatManager = PlayerController.CheatManager
if CheatManager:IsValid() then
CheatManager:Slomo(speed)
settings:SetPropertyValue("HealthRegenBase", originalHealthRegenBase * speed)
settings:SetPropertyValue("HealthRegenOutsideCombatMult", originalHealthRegenOutsideCombatMult * speed)
settings:SetPropertyValue("FatigueRegenBase", originalFatigueRegenBase * speed)
settings:SetPropertyValue("FatigueRegenOutsideCombatMult", originalFatigueRegenOutsideCombatMult * speed)
settings:SetPropertyValue("NewFormulaMagickaReturnLinearMult", originalNewFormulaMagickaReturnLinearMult * speed)
settings:SetPropertyValue("MagickaRegenOutsideCombatMult", originalMagickaRegenOutsideCombatMult * speed)
else
log("Failed to get cheat manager")
end
else
log("Failed to get player controller")
end
end)
end
RegisterHook("/Script/Engine.PlayerController:ClientRestart", function(Context)
PreLoadBaseValues()
end)
RegisterHook("/Script/Altar.VEnhancedAltarPlayerController:QuickMenuInput_Pressed", function(Context)
local PlayerController = Context:get()
SetGameSpeed(PlayerController, slowMoSpeed)
end)
RegisterHook("/Script/Altar.VEnhancedAltarPlayerController:QuickMenuInput_Released", function(Context)
local PlayerController = Context:get()
SetGameSpeed(PlayerController, normalSpeed)
end)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment