@OvenProofMars - understand your time is limited, but if you know where/how the memory leak is happening, can you post details about what needs to change in the code? I'd gladly take a hack that lets me use the mod until a new release (I miss my run history).
Afaik PDI itself is no longer causing any crashes. The crashes were all related to FS changing some of the engine logic, which could result in the game crashing when calling specific engine functions. I took out all references that could cause it (the information wasn't being used by any reports anyway. There are some mods that require PDI now, and any issues people still have seem to be are related to those mods themselves. If you find any specific functions still causing issues let me know. You can always test yourself by disabling any of the datasources that give errors in the source code.
I'm getting out of memory errors when I enable PDI. No other changes, no mods that interact with PDI.
What action(s) is PDI taking outside of active stat tracking during a round? The crash happens on the Mourningstar, when I'm navigating character builds, so I'm wondering if there's an inadvertent interaction with something else.
Update - Figured out the problem with my setup: too much old mission data.
My PDI install was old enough that simply loading PowerDI was eating all the memory allocated to the Darktide application. I couldn't find a "clear data" option in the addon, so I deleted the app data folder (game creates this automatically)
AppData\Roaming\Fatshark\Darktide Then I copied user_settings.config back over to the newly created folder, so all my settings and keybinds remained in tact.
Power DI loads swiftly, and no crashes.
Question - is there a way to delete old mission data in the app? If not, where exactly does the data live in the appdata folder?
It dumps all its save data into the AppData folder you've already identified. Each mission is a pair of .old and .sav files, so you could delete everything ending in those extensions (at this point, there's nothing else Darktide-related that uses those types of files)
RPCrpc_buff_proc_set_active_time <-- the main culprit from the logs
./../mods/Power_DI/scripts/mods/Power_DI/templates/datasource_templates.lua:309:in function [string "./../mods/Power_DI/scripts/mods/Power_DI/temp..."]:291 ./../mods/Power_DI/scripts/mods/Power_DI/modules/datasource_manager.lua:90: in function hook_chain ./../mods/dmf/scripts/mods/dmf/modules/core/hooks.lua:198:in function [string "./../mods/dmf/scripts/mods/dmf/modules/core/h..."]:196 @scripts/managers/multiplayer/network_event_delegate.lua:207:in function scripts/managers/multiplayer/network_event_delegate.lua:204 =[C]: in function update_receive @scripts/game_states/state_game.lua:124: in function network_receive_function @scripts/game_states/game/gameplay_sub_states/gameplay_state_run.lua:157: in function update @scripts/foundation/utilities/game_state_machine.lua:123: in function update @scripts/game_states/game/state_gameplay.lua:169: in function update @scripts/foundation/utilities/game_state_machine.lua:123: in function update @scripts/game_states/state_game.lua:643: in function update @scripts/foundation/utilities/game_state_machine.lua:123: in function update ./mod_loader:397: in function update ./mod_loader:437:in function <[string "./mod_loader"]:436>
self = not enough memory; channel_id = 52; game_object_id = 104; server_index = not enough memory; activation_frame = not enough memory; class_name = "PlayerUnitBuffExtension"; output_table = not enough memory; buff_lookup_table = not enough memory; unit_spawner_manager = not enough memory; unit = not enough memory; unit_uuid = "u_0x00202d99"; server_index_uuid = "u_0x00202d99_996"; buff_lookup = not enough memory; temp_table = not enough memory [1] func = not enough memory [2] hook_chain = not enough memory [3] event_table = not enough memory; sender = 52; unit_id = 104; object = not enough memory [1] registered_functions = not enough memory [2] get_hook_chain = not enough memory; orig = not enough memory; fn = not enough memory; get_return_values = not enough memory; _hooks = not enough memory; HOOK_TYPE_SAFE = 2 [3] object_table = not enough memory; callback_name = "rpc_buff_proc_set_active_time" [5] self = not enough memory [6] DELETION_STATES = not enough memory; StateGameplayTestify = false [10] Promise = not enough memory; StateGameTestify = false
I can confirm commenting out this item from the datasource lua has fixed the issue
@hapsq you can google "lua comment notation" or whatever and it will tell you how to comment code. I went and found the block in the source file that generates the PlayerUnitBuffExtension data and commented it out. It won't break anything since all this mod is doing is collecting data and displaying it. By not collecting data it either won't be displayed or will display as zero which is fine. I just wanted the crashes to stop and I really only care about damage numbers to check on what im doing in the game.
@tranthanhtown the logging of the buff events have nothing to do with the damage report events, so won't affect anything besides the buff report.
@anyone still experiencing oom crashes, can you try commenting out line 309 of DARKTIDE\mods\Power_DI\scripts\mods\Power_DI\templates\datasource_templates.luaso temp_table.unit_position = get_position(unit) becomes --temp_table.unit_position = get_position(unit)
It seems like under certain circumstances some systems can sort of screw up the processing of events, which can cause the engine to think a game objects data is still available while it has already been deleted. Requesting data for such a gameobject then causes the underlying C functions to crash the game.
Ok I've tried turning off the Auto Save, but still got the Out of Memory crash. I even commented out that 309 line from the datasource_templates.lua file. But still got the Out Of Memory crash.
Yea after the latest patch, can't really use POwer DI anymore. It just makes the game stutters after like 30mins and then crashed. Disable Power DI and the game have not crashed since then. It's not really a "crash", but after joining a Mission either Auric or Havoc, the game would Disconnect. But it was also stuttering too.
Have you tried turning off the auto save feature? Though the engine save functions I'm using are asynchronous they can still cause stuttering on some systems.
No I haven't tried turning Off the Auto Save feature yet. But will do. It's one of the best feature though, cause if I get crash or dc and come back, the Data for that mission still continue.
Let me know if turning it off solves your stuttering issues. There's not much I can do to improve the performance of the auto save feature itself, as it's using the game engine's functions. But I will look into adding an option to only auto save while not actively engaged in combat in the future.
Though PDI is mostly meant as a framework, I did add a couple of datasets and reports as examples. I don't think anyone has made any actual addons for PDI though, even though it has a whole API for it.
1. Is there any way to make a simple combined scoreboard? Damage dealt, kills, revives, damage received, deaths, etc? I've only been able to figure out how to do one category (attack, defense, interactions) at a time, and haven't been able to figure out how to display subtabs without the header (i.e. displaying revives without the "Interactions" header and needing to click it before it's displayed.)
2. Any way to disable the session saving? Or at least make it only save a few recent ones, and delete anything that's older than, say, 5 sessions ago? I really just want to use this as a scoreboard, and I don't need or want to waste processing power on saving every single session, especially since it's been overloading my memory and causing me to crash (despite having 32 gigs and setting all the mods settings to low).
It's currently not possible to create a report with the requested fields from within the UI. You'd have to make a custom dataset via the API.
It's currently only possible to turn of the autosave feature which saves during gameplay. I do plan on adding a rolling save slot feature in the future. As for out of memory crashes, these are never really about actually running out of memory, but just game engine functions that have been exposed to lua crashing the game. If you are experiencing oom crashes due to PDI then send me the crash logs together with the list of mods you use.
Turning off Auto-Save has completely fixed my intermittent screen hitching issues. If I disconnect, I do lose all my stats though (sadge). I still sometimes get the out of memory crash to desktop. I so far have never gotten this crash outside of using PowerDI. I am going to try deleting my old/sav files to see if that helps.
For the Arbites dog stats, It looks like the dog melee is properly getting recognized now. The bleed dot from Razor Jaw Augment doesn't seem to get picked up at all. It's not in condition, nil, or even the wrong category. Just missing from what i can tell. The electric dot from Voltaic Mandibles Augment goes into the melee category instead of condition damage. Not sure if it's something that can be fixed, but figured I'd throw it out there.
~edit: So i removed my "player" filter (derp) and I now see another category for nil that has condition damage in it. I think that is the bleed from Razor Jaw.
Hmm so it seems the bleeding DoT of "Razor-Jaw Augment" is not being credited to any unit by the game itself, so I'm not sure I can do anything about that, but I'll look into it more. As for the DoT of "Voltaic Mandibles Augment", it seems it reuses the same damage profile of the shockmaul "shockmaul_stun_interval_damage", so I can categorize that as condition damage.
You can test it yourself by adding damage_categories["shockmaul_stun_interval_damage"] = "mloc_5_debuff_damage" to line 116 of "Power_DI\scripts\mods\Power_DI\templates\custom_lookup_table_templates\damage_categories.lua"
I think it makes sense to make the electrocute condi damage in general.
I have had to recently disable PDI unfortunately. The screen hitching and out of memory crashes have been getting too frequent. I still haven't figured a way around them if you have any ideas. I run flawlessly without PDI. With it, I hitch (1-2 second full screen freeze) every couple minutes. And, usually once per match, I get a full out of memory CTD. If I can provide any data on this to help it get fixed, I would like to do that, since I like PDI so much more than scoreboard.
First time downloading your mod. I think your latest version (1.1.12) was uploaded to Nexus as a patch. I had to download the previous 1.1.11 and then overwrite the old files with the latest version.
As others have posted it looks like the packaging for 1.12 was accidentally goofed.
The latest version starts at .\Power_DI\scripts\mods\Power_DI instead of the root .\Power_DI folder, so scripts and Power_DI.mod and README.md got left out.
Doesn't seem to work for me at all. I've added the game to managed list in Vortex, got both this mod and Nexus Mod Framework, they are shown as enabled in Vortex. But when I start the game (normally, via Steam), I see no new menus anywhere, it's just the same. No feedback, no errors anywhere, nothing.
293 comments
What action(s) is PDI taking outside of active stat tracking during a round? The crash happens on the Mourningstar, when I'm navigating character builds, so I'm wondering if there's an inadvertent interaction with something else.
My PDI install was old enough that simply loading PowerDI was eating all the memory allocated to the Darktide application. I couldn't find a "clear data" option in the addon, so I deleted the app data folder (game creates this automatically)
AppData\Roaming\Fatshark\Darktide
Then I copied user_settings.config back over to the newly created folder, so all my settings and keybinds remained in tact.
Power DI loads swiftly, and no crashes.
Question - is there a way to delete old mission data in the app? If not, where exactly does the data live in the appdata folder?
RPCrpc_buff_proc_set_active_time <-- the main culprit from the logs
./../mods/Power_DI/scripts/mods/Power_DI/templates/datasource_templates.lua:309:in function [string "./../mods/Power_DI/scripts/mods/Power_DI/temp..."]:291
./../mods/Power_DI/scripts/mods/Power_DI/modules/datasource_manager.lua:90: in function hook_chain
./../mods/dmf/scripts/mods/dmf/modules/core/hooks.lua:198:in function [string "./../mods/dmf/scripts/mods/dmf/modules/core/h..."]:196
@scripts/managers/multiplayer/network_event_delegate.lua:207:in function scripts/managers/multiplayer/network_event_delegate.lua:204
=[C]: in function update_receive
@scripts/game_states/state_game.lua:124: in function network_receive_function
@scripts/game_states/game/gameplay_sub_states/gameplay_state_run.lua:157: in function update
@scripts/foundation/utilities/game_state_machine.lua:123: in function update
@scripts/game_states/game/state_gameplay.lua:169: in function update
@scripts/foundation/utilities/game_state_machine.lua:123: in function update
@scripts/game_states/state_game.lua:643: in function update
@scripts/foundation/utilities/game_state_machine.lua:123: in function update
./mod_loader:397: in function update
./mod_loader:437:in function <[string "./mod_loader"]:436>
self = not enough memory; channel_id = 52; game_object_id = 104; server_index = not enough memory; activation_frame = not enough memory; class_name = "PlayerUnitBuffExtension"; output_table = not enough memory; buff_lookup_table = not enough memory; unit_spawner_manager = not enough memory; unit = not enough memory; unit_uuid = "u_0x00202d99"; server_index_uuid = "u_0x00202d99_996"; buff_lookup = not enough memory; temp_table = not enough memory
[1] func = not enough memory
[2] hook_chain = not enough memory
[3] event_table = not enough memory; sender = 52; unit_id = 104; object = not enough memory
[1] registered_functions = not enough memory
[2] get_hook_chain = not enough memory; orig = not enough memory; fn = not enough memory; get_return_values = not enough memory; _hooks = not enough memory; HOOK_TYPE_SAFE = 2
[3] object_table = not enough memory; callback_name = "rpc_buff_proc_set_active_time"
[5] self = not enough memory
[6] DELETION_STATES = not enough memory; StateGameplayTestify = false
[10] Promise = not enough memory; StateGameTestify = false
I can confirm commenting out this item from the datasource lua has fixed the issue
Will PDI give errors if playing with this change?
I assume this removes/breaks some points in the reports? Only related to player buffs?
I only found the file with the name datasource_templates.lua
@anyone still experiencing oom crashes, can you try commenting out line 309 of
DARKTIDE\mods\Power_DI\scripts\mods\Power_DI\templates\datasource_templates.lua
sotemp_table.unit_position = get_position(unit)
becomes--temp_table.unit_position = get_position(unit)
It seems like under certain circumstances some systems can sort of screw up the processing of events, which can cause the engine to think a game objects data is still available while it has already been deleted. Requesting data for such a gameobject then causes the underlying C functions to crash the game.
Disable Power DI and the game have not crashed since then. It's not really a "crash", but after joining a Mission either Auric or Havoc, the game would Disconnect. But it was also stuttering too.
I'm sorry but is there any add-ons? I can't seem to find any. I'm a casual modder, so i try to avoid making any direct changes myself.
Didn't know how to use it and kinda figured it out now lol...1. Is there any way to make a simple combined scoreboard? Damage dealt, kills, revives, damage received, deaths, etc? I've only been able to figure out how to do one category (attack, defense, interactions) at a time, and haven't been able to figure out how to display subtabs without the header (i.e. displaying revives without the "Interactions" header and needing to click it before it's displayed.)
2. Any way to disable the session saving? Or at least make it only save a few recent ones, and delete anything that's older than, say, 5 sessions ago? I really just want to use this as a scoreboard, and I don't need or want to waste processing power on saving every single session, especially since it's been overloading my memory and causing me to crash (despite having 32 gigs and setting all the mods settings to low).
~edit: So i removed my "player" filter (derp) and I now see another category for nil that has condition damage in it. I think that is the bleed from Razor Jaw.
You can test it yourself by adding
damage_categories["shockmaul_stun_interval_damage"] = "mloc_5_debuff_damage"
to line 116 of "Power_DI\scripts\mods\Power_DI\templates\custom_lookup_table_templates\damage_categories.lua"I have had to recently disable PDI unfortunately. The screen hitching and out of memory crashes have been getting too frequent. I still haven't figured a way around them if you have any ideas. I run flawlessly without PDI. With it, I hitch (1-2 second full screen freeze) every couple minutes. And, usually once per match, I get a full out of memory CTD. If I can provide any data on this to help it get fixed, I would like to do that, since I like PDI so much more than scoreboard.
[Mod] Error opening './../mods/Power_DI/Power_DI.mod':./..mods/Power_DI/Power_DI.mod: No such file or directory
The latest version starts at .\Power_DI\scripts\mods\Power_DI instead of the root .\Power_DI folder, so scripts and Power_DI.mod and README.md got left out.
Thank you for your continued work on the mod!