Saints Row IV Disable Weapon Select Pause

I just looked, the game is paused from code whenever the weapon radial is displayed (in Single Player) in hud_open_inventory(). I remember there being a lot of debate about this change, but I wasn't aware there was not an option to change this on PC anywhere. This would be simple enough to make an option in a future PC patch.

I'd recommend creating a thread for SRIV PC "fixes"/improvements (if there isn't one already). I imagine there are some other grievances that will be uncovered by "power users" such as the modding community.
 
Honestly, the pause is not my main issue. My main issue is having a radial menu at all. I have everything under hotkey. I don't need a menu for it. It would be nice to be able to disable the radial menu completely from view when selecting a weapon through hotkey or mouse scrolling.
 
Last edited:
Well, it appears possible to kill the radial entirely by modding some of the interface Lua scripts. Modding this may cause some issues with selecting weapons while in a vehicle, but otherwise looks(*) like it should mostly work. (*This is pretty hacktacular, so I can't guarantee it will work or won't introduce some bugs, but worth a shot)

First off, anytime the radial is opened, code just so happens to make sure this Lua function is defined before actually attempting to open the radial -> hud_inventory_show(). So, if you mod hud.lua and rename that function, the radial will no longer open and the game will not pause, effectively killing the radial menu completely. All your weapon scrolling and hotkeys will stop functioning as well, since the weapon selection happens from the radial script.... But wait, there's more!!

Next, we're going to intercept some Lua functions that get called on PC when a weapon hotkey or cycle input is detected. Mainly, hud_inventory_set_selected_weapon() & hud_inventory_set_selected_grenade(). The grenade is actually for super powers (since they replaced grenade selection), it just never got renamed (sigh). If you look at those two functions in hud.lua, they currently just update which weapon is selected. We want to make this actually select the weapon instead, so we're going to copy some script out of hud_inventory_hide(). The main thing we're interested in is this routine that does the actual selection...

Code:
        if aborted == false then
            Hud_weapon_radial:game_equip_selected_slots()
        end

Now we've changed the flow from:
(Press hotkey) -> (Open radial and pause game) -> (Set selected weapon on radial) -> (Set timer to close radial) -> (Close radial when timer expires and unpause) -> (Actually select weapon)

To:
(Press hotkey) -> (Actually select weapon)

Bonus!
Now for a bonus, you could re-enable the radial via some other mechanism by calling the renamed hud_inventory_show() function in a new UI Lua thread. You'd have to find a good place to add a hook somewhere in the UI Lua scripts. You could potentially register for an unused input event (are there any unused inputs?) in hud_init(), or something similar. I'll leave it up to the community to track down a good place to put this hook.

Potential problems-
1) The game will not pause (that happens in code)
2) If you do the bonus, code will have no idea the radial menu is open, which can result in some bugs/glitches. One thing I noticed is the input processing for weapon selecting in vehicles checks to see if the radial is open, so this may interfere with that code.
3) Who knows what other minor bugs this may introduce, or if this will even actually work correctly. Only one way to find out, though. :p
 
Back
Top