Skip to content

Fatal error when trying to start the mod on steam, and a simple fix for it #87

Description

@Koranis

What happened
When i tried to run the unlock_only_heists unlocker on the new 64bit version, I encountered an errror and made a temporary fix for anybody else with the same issue on steam.

When I deleted all the mods, updated to the 64bit SuperBTL and added the unlocker mod, the game opened with the mod in the list of mods in BLT updater, but no Heists were accually unlocked. When viewing the logs in mods/log folder, I discovered this error, showing that there is problem with the Epic manager:

FATAL ERROR:  (D:\a\PAYDAY2-SuperBLT\PAYDAY2-SuperBLT\src\InitiateState.cpp:296) mods/unlock_only_heists/dlc-unlocker.lua:64: attempt to index global 'WinEpicDLCManager' (a nil value)
stack traceback:
	mods/unlock_only_heists/dlc-unlocker.lua:64: in main chunk
	[C]: in function 'dofile'
	mods/base/base.lua:175: in function 'RunHookFile'
	mods/base/base.lua:163: in function 'RunHookTable'
	mods/base/base.lua:197: in function 'require'
	[string "lib/setups/setup.lua"]:34: in main chunk
	[C]: in function 'require'
	mods/base/base.lua:195: in function 'require'
	[string "lib/setups/menusetup.lua"]:1: in main chunk
	[C]: in function 'require'
	mods/base/base.lua:195: in function 'require'
	[string "lib/entry.lua"]:14: in main chunk
	[C]: in function 'require'
	mods/base/base.lua:195: in function 'require'
	[string "core/lib/coreentry.lua"]:19: in main chunk

I then tried to follow the error in the dlc-unlocker.lua file, and discovered that you can fix the issue by commenting the Epic lines, since they are not relevant to my steam running, and the mod worked correctly without any error messages in log.

Here is a snipped of the code change in dlc-unlocker.lua file for replication (line 63 to 85):

old_steam_check = old_steam_check or WinSteamDLCManager._check_dlc_data
--old_epic_check = old_epic_check or WinEpicDLCManager._check_dlc_data
old_win_check = old_win_check or WINDLCManager._check_dlc_data


function WinSteamDLCManager:_check_dlc_data(dlc_data)
    -- if has_value(heists, dlc_data.app_id) then
    --     return true 
    -- end

    return unlock_dlcs(dlc_data) or old_steam_check(self, dlc_data)

end

--function WinEpicDLCManager:_check_dlc_data(dlc_data)

--    return unlock_dlcs(dlc_data) or old_epic_check(self, dlc_data)
--end

function WINDLCManager:_check_dlc_data(dlc_data)

    return unlock_dlcs(dlc_data) or old_epic_check(self, dlc_data)
end

Desktop (please complete the following information):

  • OS: Windows
  • Version 22H2

Steam or Epic? (please mark Y (yes)):

  • Steam: [Y]
  • Epic [-]

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions