Looting Bots

  • Skwizzy added a new file:

  • Skwizzy added a new version:

  • Skwizzy added a new version:

  • Skwizzy added a new version:

    Quote

    Container Looting!

    Two flavors of container looting to satisfy players with different performance requirements. With dynamic container looting, bots will add container checks alongside their normal dead body check allowing them to identify nearby containers and break their patrol to try and loot them. Reserve patrol looting is similar except it is limited to bots that use the preexisting patrols that stop in front of containers.


    As always please let me know if you experience any issues!

    Special thanks to DrakiaXYZ and Solarint for answering all my patrol/navmesh related questions!

    New Features

    • Reserve Patrol Container Looting - First iteration of container looting. Hooks into the method that is called during a patrol that makes a bot pretend to loot a container in raid and actually lets the bots take the items from the container. This version is low cost but also very limited as I havent seen too many bots that are using these specific patrols that have the container points in them.
    • Dynamic Looting System - New dynamic looting system that relies on the logic used by the bots to loot corpses. Runs additional logic alongside the corpse looting methods to check for nearby containers within a sphere around the player and finds the closest container that has a valid navigation path. Once the bot reaches the container they will exhibit the same behavior as corpse looting where they crouch, look at the container, and initiate the same looting logic used by corpse looting. After looting, the bot will wait a certain amount of time before trying to find another nearby container to loot.
      • If a container is behind a door, the bot will open the door after running into it for a few seconds to get to the container
      • If a bot is stuck on an open door, the bot will close it
      • Not all containers are able to be reached. This entirely depends on if there is a valid NavMesh nearby that the bot can use to navigate close enough to the container

    Mod Settings

    • Enable reserve patrols - Enables looting of containers for bots on patrols that stop in front of lootable containers (reserve patrols). Not needed if using dynamic looting.
    • Enable dynamic looting - Enable dynamic looting of containers for selected bot types. Will detect containers within the set distance and navigate to them similar to how they would loot a corpse. More resource demanding than reserve patrol looting.
    • Dynamic Looting: Dynamic looting: Delay between containers - The amount of time the bot will wait after looting a container before trying to find the next nearest container
    • Dynamic looting: Detect container distance - Distance (in meters) a bot is able to detect a container
    • Debug: Show navigation points - Renders spheres to help visualize the decision making process for where a bot should move to. (Credits to DrakiaXYZ for the helper)
      • Red - container position.
      • Black - "Optimized" container position.
      • Green - Calculated bot destination
      • Blue - Where the bot will actually move. (Position snapped to NavMesh)

    Fixes

    • Properly disable new corpse looting for bot types when disabling looting
    • Update bot's gear value when new weapons are equipped
    • Correct weapon swap logic when looted weapon is worth more than both the primary and secondary weapon. (Bot throws secondary, moves primary to secondary, and equips looted weapon as primary)
    • Fix issue where bots always swapped from armor vest to armor rig
  • Skwizzy added a new version:

    Quote

    Version 1.1.0 is finally here with Loose Item Looting and a huge framework conversion!


    New Features:

    • New Dependancy DrakiaXYZ BigBrain - Huge refactor to utilize DrakiaXYZ new BigBrain AI framework. Allows for full control over the bot's logic layer, bypassing the need to patch any existing BSG methods. This has reduced the complexity of the code immensely and allows for much better maintainability.
    • New "LootingLayer" - Added to all bot brains to handle custom looting logic. Bypasses all old BSG code
      • Layer will attempt to activate every 6 seconds while a bot is on patrol and trigger a scan of nearby loot.
      • If a lootable object has been found, the bot will attempt to navigate to the object and commence looting
      • Once looting is completed, the bot will wait the amount of time specified in the "Delay Between Looting" option before attempting another loot scan.
    • Loose Item Looting - Bots are now able to loot loose items found on the map! The LootFinder component now detects all lootable objects (items, containers, corpses)
    • Inventory Management - Bots now have some logic to better manage their inventory when looting to help make sure things like ammo and magazines are able to be looted for weapons that bots are picking up.
      • Bots will now try to reserve a 1x2 grid slot in their rig that will only be used as a place for magazines when bots reload.
      • Item placement in rigs has been adjusted so that bots prefer to place items in slots that match the exact size of the item.
      • Bots will also receive 10 stacks of loose ammo in their secure containers for the weapons they are looting so that they are able to fill empty magazines.
      • Bots will now throw all old magazines for a gun that they are dropping and will not pick up mags that they are not able to use.
    • Corpse looting logic is fully detached from BSG code, meaning bots will now use the custom "LootFinder" to locate nearby corpses. Should see bots looting corpses more frequently
    • All bot types are actually able to loot now! Previously PMC bots using different boss brains would not exhibit custom looting behavior, but now thanks to BigBrain we can bypass that pesky logic with our own! This means even Bosses and Raiders should now be able to loot. Defaults have been adjusted, all looting types are enabled for Scav, PMC, and Raider type bots.


    For a full list of changes view the release notes

  • Skwizzy added a new version:

    Quote

    Thanks again to everyone in the discord for all the testing, issue reports, and suggestions! <3

    Smallish update mainly adding some more customizable Mod Settings for looting behavior, fixing some bugs, and adding some new tools for debugging

    New Features

    • Mod Settings: New Detection Radius Settings - Detection radius has been separated into 3 different settings for each type of loot. Now you can configure how far a bot can detect each type of lootable object. Options are: "Detect corpse distance", "Detect container distance", "Detect item distance"
    • Mod Settings: Allow attachment stripping - Option to control whether or not bots should try to take the attachments off a weapon if the weapon cannot be picked up. This is enabled by default.
    • Mod Settings: Allowed gear to equip settings - 2 new settings have been added, PMC: Allowed gear to equip and Scav: Allowed gear to equip. With these 2 settings, bots will only be able to equip gear that have been enabled in the settings. Available choices for both settings are Backpack, TacticalRig, ArmoredRig, ArmorVest, Weapon, Grenade, Helmet, All. PMC setting applies only to PMC bots and Scav settings apply to all other bot types. Defaults to All
    • Mod Settings: Allowed gear to pickup settings - 2 new settings have been added, PMC: Allowed gear to pickup and Scav: Allowed gear to pickup. When encountering gear to loot, bots will only pickup the gear into their bags that have been enabled in the settings. Available choices for both settings are Backpack, TacticalRig, ArmoredRig, ArmorVest, Weapon, Grenade, Helmet, All. PMC setting applies only to PMC bots and Scav settings apply to all other bot types. Defaults to All
    • Mod Settings: Loot Threshold Settings - 2 new settings have been added to the "Loot Settings" section PMC: Loot value threshold and Scav: Loot value threshold. Bots will now only pick up items that have a value in roubles that exceeds the threshold set. PMC bot types will use the "PMC" threshold, while all other bot types will use the "Scav" threshold. If you want bots to pick up any item regardless of value, set these both to 0. PMC defaults to 12000₽, Scav defaults to 5000₽

    Changes and Fixes

    • Only execute Update methods in LootingLogic when BotState is Active
    • Only activate LootingLayer if BotState is Active
    • Only activate looting layer if a bot has available slots for looting
    • Only loot corpses if their Player object is defined
    • Fix issues where bots gets stuck looting with a short "Delay Between Looting". Have tested with a value of 0 and consistely saw bots looting and immediately moving towards the next nearest lootable after looting had ended
    • Add missing LootingLayer to "Knight" and "Killa" bot brains
    • Integration with BotDebug mod, a new dedicated panel was added for the LootingLayer
      • Debug panel shows "Available space, "Total looted value", "Target Loot", "Distance to Loot" and an indicator when the bot is actively performing looting transactions


    Been a bit busy IRL with work as of late but I will continue to make updates as time allows!

  • Skwizzy added a new version:

    Quote

    Community was quick to sort this one out!


    Update to NoDiscardLimit server mod to fix issue where items like keys and cases were able to be insured when the EnableDiscardLimit server config option was set to false. For items that have a DiscardLimit set, the server mod will now flag those items as InsuranceDisabled which will continue to prevent the user from being able to insure items like keys and cases. Restores what is allowed to be insured back to the EFT Live behavior and fixes the exploit where items can be duplicated via insurance of items in pouches. If you had previously insured items that were not supposed to be insurable, the will no longer be insured.


    You should delete Skiwzzy-NoDiscardLimit-1.0.0 mod in your user directory if you had the previous version installed.

  • Skwizzy added a new version:

    Quote

    Update of 1.1.2 to support AKI 3.6.0. Thanks DrakiaXYZ for the updates to GClasses!

  • Skwizzy added a new version:

    Quote

    New Features

    • NoDiscardLimit: Settings to remove loot from bot spawns - Thanks to Fontaine, the NoDiscardLimit mod now has options to prevent PMCs and Scavs from spawning with loot already in their inventories. Items such as meds/ammo/food/drinks will still be added to their inventory as part of bot loot generation
      • Settings can be found in user/NoDiscardLimit/config/config.json
      • pmcSpawnWithLoot: When set to true, PMCs will spawn with loot in their bags/pockets (default SPT behavior)
      • scavSpawnWithLoot: When set to true, Scavs will spawn with loot in the bags/pockets (default SPT behavior)
      • Default config: {"pmcSpawnWithLoot": false, "scavSpawnWithLoot": true }
    • Loot Finder (Timer) settings: Delay after spawn - Setting to control the amount of seconds a bot will wait to start their first loot scan after spawning into raid.
    • Loot Settings: Transaction Delay - New setting to control the amount of time a bot will wait after executing a looting transaction before performing another one. Used to simulate the amount of time a bot will take to loot things from a container/corpse. A looting transaction is when a bot decides to take/equip an item

    Changes

    • Loot Finder scans will only run if the bot has more than 2 available slots in their inventory
    • Loot Finder scans will ignore loose items that will not fit in the bot's current inventory
    • Increased base looting time for containers and corpses to 3 seconds
    • BotDebug menu "Available space" now updated in real time as loot is transferred
    • Fix issue where bots were treated as bosses preventing them from swapping any equipment
    • Fix issue where gear looted from containers or the ground would not be equipped/swapped
    • Bots will forget their target loot when interrupted during looting, triggering a new scan when returning to the looting layer. Previously bots would attempt to navigate to the same loot after the interruption.
    • Fix issue where some items were still not insurable such as the Ronin mask
    • Fix issue where destination was not being reset after LootingLogic had ended. Caused an issue with bots thinking they were close enough to a new lootable container when they were actually not.
    • Show "Calculating path..." in BotDebug menu when distance to loot is being initialized
  • Skwizzy added a new version:

    Quote

    Finally updated GClasses and NoDiscardLimit implementation to work with AKI 3.7.0!!

    Changes

    • Added LootingLayer to the following new bot brains: BossBoar, BoarSniper, FlBoar, Obdolbs and ArenaFighter
    • Fix issue where bots were not picking up usable magazines after equipping a new weapon
    • Fix issue where PMCs/scavs with boss brains were being treated as bosses and not allowed to swap gear
    • Fix issue where helmets were not recognized as equippable
    • Fix mistake in distance math where shortest distance was not being updated resulting in horribly incorrect loot finding.
  • Skwizzy added a new version:

    Quote

    Finally updated GClasses and NoDiscardLimit implementation to work with AKI 3.7.1! Thank you everyone for your patience! ^^

    Changes

    • Added LootingLayer to the following new bot brains: BossBoar, BoarSniper, FlBoar, Obdolbs and ArenaFighter
    • Fix issue where bots were not picking up usable magazines after equipping a new weapon
    • Fix issue where PMCs/scavs with boss brains were being treated as bosses and not allowed to swap gear
    • Fix issue where helmets were not recognized as equippable
    • Fix mistake in distance math where shortest distance was not being updated resulting in horribly incorrect loot finding.
  • Quote

    pmcSpawnWithLoot: When set to true, PMCs will spawn with loot in their bags/pockets (default SPT

    don't quite work. killed many pmcs on start of the raid and backpack is allways empty. edited config file to true.

  • tzeapa


    Just did some testing and this option seems to be working as intended. With this option set to true I am seeing pmcs spawning with loot in their bags. Perhaps you have another mod that is altering the loot on PMCs? I know that this used to be an option in SPT Realism

  • Curious Skwizzy if this has to do with Looting Bots?

  • Skwizzy added a new version:

    Quote

    Changes

    • When scanning for loot, calculate the distance the bot has to walk in order to reach the loot. If this distance is larger than the loot detection radius, the loot will be considered too far to loot. This should prevent bots on maps like interchange from pathing from the second floor to the parking garage if some loot was detected in the garage with a small vertical distance
    • Change old loot value threshold settings to Min loot value threshold
    • Scav: Max loot value threshold and PMC: Max loot value threshold - When a value other than 0 is specified, bots will not loot items with a value that exceeds the maximum threshold. By default this is set to `0` for both scav and PMC
    • Change Delay between looting setting to Loot scan interval. This now accurately controls the time between loot scans for a bot. When a bot completes a scan or leaves the looting logic, the bot will wait the specified amount of seconds before scanning again. Previously there were 2 timers and they were not playing nicely together
    • Default Loot scan interval has been increased: 6 seconds -> 10 seconds
    • Allow bots to pick up stacks of money
    • Sort the initial results from a loot scan by distance, greatly reducing the amount of times needed to iterate through the results (Thanks Drakia)
    • Move loot finding calculations into a coroutine to avoid blocking thread with heavy calculations
    • Do not allow the looting layer to activate if the bot is healing
    • Do not allow the looting layer to activate if the bot type is not enabled for any looting. Previously bots not enabled for looting would still scan but not loot
  • Skwizzy added a new version:

  • Skwizzy added a new version:

    Quote

    Compatible with AKI 3.7.1 - 3.7.6

    Changes

    • Prevent scavs from looting memory 🤖 . Fixed a memory leak due to excessive regex calls and log message concatenation

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!