Posts by DanW

    DanW added a new version:

    Quote
    • Airdrop loot is now able to be despawned starting destroy_loot_during_raid.min_loot_age seconds after the crate lands
    • Full backpacks/rigs are less likely to be despawned via new config parameters for child-item count and total weight limits
    • Slightly devalued weapons so they despawn later
    • When debug=true, a CSV file will be generated containing all loot generated during the raid and its spawn/despawn times. The CSV will be generated when leaving the raid.


    You can use your config.json file from the 1.1.9 release or later, but it's not recommended. If you do, the mod is more likely to despawn full backpacks/rigs.

    DanW added a new version:

    Quote
    • Further improved performance of loot-despawning system
    • Fixed possible race condition when despawning loot while leaving a raid
    • Removed deprecated client-side code
    • Fixed incorrect client-side namespaces


    config.json files from the 1.1.9 or later releases are compatible with this release.

    DanW added a new version:

    Quote
    • Updated for SPT-AKI 3.5.7
    • Improved performance of loot-despawning system
    • Fixed frequent NRE's in the bepinex console when ending raids
    • Added crash logs for unhandled exceptions (WIP)


    config.json files from the 1.1.9 or later releases are compatible with this release.


    This release is NOT compatible with SPT-AKI 3.5.6 or below.

    Sorry for the late reply!

    I'd be happy to help test - feel free to send a pre-release to me any time.

    Unfortunately, I had to give up on the approach I was working on, but I did implement some changes that should improve performance a little. Would you mind testing it when you get a chance? Here is a link to a pre-release version: https://github.com/dwesterwick…LateToTheParty-1.1.12.zip. Only the bepinex DLL has changed from 1.1.11.


    Regardless of how different performance is for you compared to 1.1.11, would you mind sharing your BepInEx\LogOutput.log file following the steps in post #29? Before bots spawn, I was getting almost ~115 fps on Customs using the new version, and I'm pretty sure I was only getting ~90 fps with 1.1.11.


    Thanks!


    EDIT: I just posted 1.1.12 (non-alpha) to work with SPT-AKI 3.5.7. If you're still finding performance issues, I'll try to deploy fixes for them in the next release.


    EDIT 2: I just posted 1.1.13, which should have even better performance compared to 1.1.11. However, it's only compatible with 3.5.7.

    FYI - I started working on this, and... it's harder to fix than I originally thought. It'll probably be another week before I'm able to post an update, but I haven't forgotten. ;)


    I was able to revise the way the loot processing runs to improve performance, but... now I'm causing random game crashes. Obviously I need to fix that. I might share a pre-release version with you to make sure the performance improvements actually work, but I want to make an honest effort to fix the crashing issue first. I'll keep you posted.

    My work is never done!


    You're right that new stuttering is almost definitely related to loot ranking. Fortunately, that isn't nearly as much code to sort through. I'm fairly busy the next few days, but I'll try to improve it by early next week. In the meantime, setting destroy_loot_during_raid.loot_ranking.enabled=false should restore the performance from 1.1.8.


    There is an easy way to generate log data that should confirm our suspicions:

    1) Set debug=true in config/config.json

    2) In BepInEx\config\BepInEx.cfg, change line 48 to Enabled = true

    3) Restart the server and reproduce the issue in the game. A new console with bepinex messages will also appear when the game starts.

    4) In the bepinex console, you should see a lot of yellow "Waiting for next frame" messages after the stuttering happens (having multiple monitors helps with this, but you can ALT-TAB out of the game to check). I attached an example of what it looks like for me. If your cycle times in those messages are more than ~20ms, that definitely explains the stuttering, and it means my code is trying to do too much per frame.

    5) Exit the game and share BepInEx\LogOutput.log before starting the game again.


    Another thing that will help me understand the issue: are you significantly increasing the amount of loot or bots in raids compared to vanilla SPT?


    Thanks for helping me troubleshoot!

    I tested v1.1.10 of my mod with Realism, and I was able to reproduce the bug you found. After some digging, I found it's caused by two issues:

    • A silly mistake in my server code
    • Realism making unorthodox changes to certain item properties


    I just posted v1.1.11 that should fix this. I would definitely recommend upgrading to v1.1.11 if you have destroy_loot_during_raid.loot_ranking.enabled=true because your loot-ranking data is likely corrupted. Please let me know if you still have issues with it.


    Thanks again for your help!

    DanW added a new version:

    Quote
    • Fixed incompatibility with SPT Realism Mod that would prevent the game from loading
    • Fixed enabled flag in config.json not actually disabling everything when set to false
    • Set destroy_loot_during_raid.loot_ranking.alwaysRegenerate=true by default to minimize chances of accidental loot-ranking-data corruption


    config.json files from the 1.1.9 or later releases are compatible with this release.


    Thanks to oshtwtf for helping with troubleshooting issues with SPT Realism Mod!

    Very interesting! This was not a waste of time at all; clearly there's a problem with either my mod or Fontaine's. I'll try running my mod alongside his and see if I can reproduce the problem. Ultimately, I'm sure both of us want for everybody to be able to use our mods with as little headache as possible, so any improvements to make them more robust are welcome.


    Thanks for your help!

    Interesting... I get the same message, but my server doesn't freeze there. Here is what I see:


    [2023-05-16T03:46:47.885Z] info: [Late to the Party] Could not find FN40GL Mk2 grenade launcher in trader assorts.

    [2023-05-16T03:46:47.886Z] info: [Late to the Party] Creating preset for FN40GL Mk2 grenade launcher...

    [2023-05-16T03:46:47.886Z] info: [Late to the Party] Creating preset for FN40GL Mk2 grenade launcher...found FN40GL Mk2 grenade launcher

    [2023-05-16T03:46:47.887Z] info: [Late to the Party] Getting properties for FN40GL Mk2 grenade launcher... Final: Width=3,Height=1,Weight=2.92

    [2023-05-16T03:46:47.887Z] info: [Late to the Party] Found weapon FN40GL Mk2 grenade launcher: Width=3,Height=1,Weight=2.92


    Those messages are written by the server code, but it's certainly possible that something could be deadlocked (i.e. my mod doesn't play nicely with others).


    It looks like the server log you attached doesn't contain the messages in your screenshot. Maybe you attached a log generated after disabling the loot-ranking parameter? If you open the log file, you should be able to search for "FN40GL" and see the messages in your screenshot. If you find that log file from today, could you please share it? Maybe there are some messages that were logged but not shown in the console because the program was frozen.


    Also, I know this is a total PITA considering your extensive mod list, but... if you have time, could you try disabling the other mods one-by-one to see which one has the incompatibility with mine? Based on what you just found, searching for the "mechSKSv1" template might be a dead end for me. I'm a bit afraid of going down a rabbit hole without actually understanding the problem.


    Thanks for your help!

    Thanks, I must still be overlooking something.


    If you have time, could you please try doing the following to help me understand where it's hanging?

    1) Set debug=true in config/config.json

    2) Open src/LootRankingGenerator.ts and change line 15 (const verboseLogging = false;) from false to true
    3) Also in src/LootRankingGenerator.ts, uncomment line 462 (by removing the leading "//")

    4) Restart the server and try running the game. You should see a ton of messages appear when it's generating loot ranking data.

    5) Share the most recent server log file in user/logs/ after it crashes (or freezes for longer than you want to wait).

    6) After sharing the log, if the extra messages are distracting you can revert the changes in steps 1-3 if you'd like.


    You'll need a program like Notepad++ to see line numbers in the files, so hopefully I'm not signing you up for too much extra work!


    I'll have to look through those mods and try to find that template so I can test it, but it'll probably take me a few days to find a solution. In the meantime, setting destroy_loot_during_raid.loot_ranking.enabled=false should allow the mod to work for you with the latest changes besides loot ranking.


    Sorry it's still not working correctly, and thanks for helping me troubleshoot!

    With V1.1.9 my game is loading to a blank main menu.

    Here is a snippet of what's showing up in the logs:

    Could you please try v1.1.10 when you get a chance? It should hopefully fix the issue with the "mechSKSv1" template. If not, could you please let me know what other mods you're using?

    DanW added a new version:

    Quote
    • The loot-ranking system now uses weapon presets instead of random bot weapons if there are no matching trader offers for it.
    • If there aren't any presets defined for a weapon, a barebones one will be created for it for the purpose of loot-ranking
    • Eliminated "normal" warning and error messages when loot-ranking data is generated


    config.json files from the 1.1.9 release are compatible with this release.


    I have only tested this release with SPT-AKI 3.5.5. If I find any incompatibilities with SPT-AKI 3.5.6, I'll post a new version.

    The "mechSKSv1" template looks like something introduced by another mod. Do you know which one it is? It looks like I can't use the SPT code to generate weapons for it, so I'll have to find a workaround.

    DanW added a new version:

    Quote

    Loot is now ranked and despawned in order of its perceived "value" but with some amount of randomness applied. If you want to get high-value items, you'll need to run to contested areas right after you spawn just like in live Tarkov. However, thanks to the randomness, there's still a chance you'll be lucky and find a valuable item later in the raid.


    The ranking system is still a work-in-progress and will likely be adjusted in the future. If you'd like to play with the ranking parameters, I've provided a utility to view how each item in the game is ranked by the algorithm in the mod (see the README or Overview tab for more information).


    The config.json file from previous releases is NOT compatible.

    DanW added a new version:

    Quote
    • The PMC spawn rate now changes dynamically throughout the raid. PMC's are about twice as likely to spawn toward the beginning of the raid and less than half as likely to spawn toward the end of it. The spawn rate changes can be adjusted in config.json.
    • If you spawn into the raid late (namely as a Scav), bosses are less likely to spawn (to "simulate" players killing and looting them).
    • Bug fix for incorrect raid time being used for your PMC character if you first select "Scav", go all the way to the "Ready" page, and then back completely out to the main menu.


    You can use your config.json file from the 1.1.6 release or later, but it's not recommended. If you do, the mod will not make any PMC or boss spawn changes.

    DanW added a new version:

    Quote
    • The door-opening system is now functional and enabled by default
    • Implemented new check in DrakiaXYZ's Door Randomizer 1.0.2 mod
    • Prevented doors that don't show context menus to the player from being opened/closed by the mod


    config.json files from the 1.1.6 release are compatible with this release.

    DanW added a new version:

    Quote
    • Allow questassort object to be undefined for supporting custom traders
    • Minor client-side code refactoring

    DanW added a new version: