Changes and expands many aspects of bounty squads to be both more logical and fair.
Version: 1.0.6
by Vintar
for Anomaly 1.5.2
To install via Mod Organizer:
- Import the BountySquadsExpanded archive file into Mod Organizer
- (for MCM users) open the Mod Configuration Menu and set the settings to what you want
To install manually:
- Install the 'gamedata' folder from the BountySquadsExpanded archive file into your Anomaly directory
- (for MCM users) open the Mod Configuration Menu and set the settings to what you want
Mod Configuration Menu (MCM) is highly recommended.
Description:
Bounty squads have always operated very simplistically, which ended up with weird situations like Monolith exosuit bounty squads tracking your rookie self to Cordon, even though you've never even seen or shot a Monolith. This addon fixes these issues. Also adds MCM options so you can customize the experience exactly how you want.
Changes:
- Bounty squads now only have a chance to spawn during each update. The chance is initially very low, but increases dramatically for a given faction if the player kills STALKERs of that faction. The more faction members the player kills, the higher the chance that faction will send bounty squads.
- Bounty squads only spawn from locations owned by the bounty faction - they no longer spawn out of thin air or in hostile territory. They also only spawn if the actor is within linked-level range of their territories. Thus, being within enemy territory makes it more likely that that faction can potentially send a bounty squad after you.
- Bounty squads stop targeting the player during sleep.
- Bounty squad rank is dependent on the player's rank. Rookie players will get rookie bounty squads. Only master and legendary-ranked players will get the geared-up alpha squads.
- All factions can potentially send bounty squads after the player.
- Northern levels are re-opened for bounty squads to track you. This is mainly so that Monolith bounty squads actually care about you passing through their territory.
- Being in a vacant safe zone no longer prevents bounty squads from attacking you. If you want them to back off, you need to stay in a spot with plenty of allies.
- Greater maximum amount of potential bounty squads at each rank/rep. Bounty squads will have a nonzero chance to appear starting with 'bad' reputation, or 'professional' rank.
- Disguises affect bounty squads: using a disguise while killing doesn't link those kills to you, and a disguise prevents bounty squads from tracking you.
- MCM customization: control many parameters through the MCM to tailor bounty squad functionality to your liking. Other settings can be modified in plugins/bounty_squads.ltx
Credits
RavenAscendant for creating MCM
Version Log:
1.0.6 - (2022/12/04)
- Remove saving of factor increase, as it was probably causing the engine-level CTD
1.0.5 - (2022/05/01)
- Bounty squads will always be hostile no matter your relation with their faction
- Wearing and maintaining a disguise prevents bounty squads from tracking you
- Using a disguise while killing will not increase the chance of the victim faction sending bounty squads your way
- Bounty squads will be forced online when on the same level as the player, in case the game fails to convert them naturally
1.0.4 - (2021/03/18)
- Added extra callback to prevent unlucky edge cases of bounty squads attacking during sleep
- Scripted squads (traders, mechanics, initial 'story' squads) now count towards bounty squad deterrence
- Companion squads no longer stop bounty squads from targeting the player
- Small code optimizations
1.0.3 - (2021/03/16)
- Fixed issue where faction multipliers could sometimes be forgotten across game save/load
- Whether the actor is considered safe no longer depends on an arbitrary list of specific smart terrains, but whether the actor is on any smart terrain occupied by allies hostile to the bounty squad
1.0.2 - (2021/03/15)
- Fixed crash from typo giving nonexistent 'experienced' squads
1.0.1 - (2021/03/14)
- Bounty squads stop targeting the player during sleep
- Actor targeting conditions were reversed - this has been fixed
My Addons:
Warfare Alife Overhaul
Separated Helmets Outfits Backpacks
Bounty Squads Expanded
NPC Loot Claim
Modular Miscellaneous Tweaks
Y+F Fluid Dynamic Relations (maintained by me)
"Bounty squads stop targeting the player during sleep."
Thanks for the great feature. Being attacked while waking up is certainly realistic, but it was interfering with the fun of the game.
Up until I read this description I had no idea bounty hunters were an actual thing. I always wondered why I would wake up to a firing squad firing at me/my allies right when I woke up. Would never make sense that if I slept in Military Warehouses (which was entirely owned by my faction) yet enemies would still end up right next to me upon waking up. Defeating the purpose of sleeping safely in my own base. Amazing mod. Thank you!
"they no longer spawn out of thin air or in hostile territory. "
excellent, instant download
Brilliant Work my Dude !
Thank you. As someone who plays Ironman quite often, bounty squads were the bane of my existence. Nothing like getting rushed by a squad of mercs using the best weapons the Zone can offer while you barely have a suit and a Mosin Nagant. What did I ever do to anger so many people anyways, if my reputation is excellent?!
<3
Finally i can go outside without getting ********** by Monoliths Duty and Military groups
When I kill someone from the enemy squad in the red forest, squads from all locations come at me to kill me already knowing my location. Will this addon remove this problem in the vanilla version? where is mcm menu?
Is it possible to make these squads always hostile to the player? In the original, I was followed by a crowd of neutrals, if you are a scientist, this is ridiculous.
Was this some weirdness with dynamic faction relations? They only ever spawned when the bounty faction was hostile to the player. But if you had a ceasefire before they reached you, I could see this happening. I'll see if this is possible
*Only master and legendary-ranked players will get the geared-up alpha squads*
Can we have a version without this change? Some experinced players like to get shiny good armor and weapons during their hobo phase, if I can rekt an alpha squad with a pm and toz, I want some rewards. Thanks in advance
You can change what section spawn at each rank inside configs/plugins/bounty_squads.ltx
~ STACK TRACEBACK:
d:/games/anomaly\gamedata\scripts\_g.script (line: 2069) in function 'alife_create'
d:/games/anomaly\gamedata\scripts\sim_board.script (line: 139) in function 'create_squad'
d:/games/anomaly\gamedata\scripts\sim_squad_bounty.script (line: 80) in function 'try_spawn'
d:/games/anomaly\gamedata\scripts\sim_squad_bounty.script (line: 227) in function 'f'
d:/games/anomaly\gamedata\scripts\_g.script (line: 370) in function 'functor_a'
d:/games/anomaly\gamedata\scripts\_g.script (line: 458) in function <d:/games/anomaly\gamedata\scripts\_g.script:453>
~ ------------------------------------------------------------------------
!ERROR: alife_create | section [bandit_sim_squad_experienced] is invalid!
! [SCRIPT ERROR]: d:/games/anomaly\gamedata\scripts\sim_board.script:140: attempt to index local 'squad' (a nil value)
FATAL ERROR
[error]Expression : <no expression>
[error]Function : CScriptEngine::lua_error
[error]File : ..\xrServerEntities\script_engine.cpp
[error]Line : 191
[error]Description : fatal error
[error]Arguments : LUA error: d:/games/anomaly\gamedata\scripts\sim_board.script:140: attempt to index local 'squad' (a nil value)
stack trace:
I encountered this Crash today, chilling and organizing my Inventory at Loris's Farm. No other addons were installed that touches Squads.
Ah sorry about that. I messed up and got the section name wrong - wrote sim_squad_experienced instead of sim_squad_advanced.
Anyway, the fixed new version 1.0.2 has been uploaded. Thanks for posting the crash log.
Nice, Thank you for the quick fix :)
Good job, I will try this out!
Is this Compatible with warfare gamemode ?
Yes
This comment is currently awaiting admin approval, join now to view.
WARNING: collect_translations | strings of (st_dyn_news_spam_faction_stalker_) don't exist!
-bounty_squads.attack - target: actor - rush: true
! ERROR on rejecting: entity not found. parent_id = [20948], entity_id = [20955], frame = [23161].
FATAL ERROR
[error]Expression : <no expression>
[error]Function : handler_base
[error]File : xrDebugNew.cpp
[error]Line : 988
[error]Description : pure virtual function call
stack trace:
Happended when i killed the factions important member Sin
Hmm, looking into this. Not really sure why killing a story NPC would cause bounty squads to crash.
Do you have any addons that modify NPCs? Like HD Models? If you don't have the hotfix linked in the description of 'Anomaly HD Models Addon', the Sin character causes a crash when you kill him.
It also looks like you have an error related to the dynamic news messaging - do you have an addon related to that at all?
Will it still spawn bounty squads after a faction is wiped out in warfare? I assume not because they no longer have territory.
Your thinking is correct. Bounty squads only spawn from positions where that faction has a squad. If a faction has no squads, they'll never spawn bounty squads.
excellent! <3
I remember when I was once a virgin dooty rookie, and on my first mission i got jumped by 3 freedomers with L85s and mossbergs, all i had was a makarov. good times, but good riddance. great mod
Как я могу узнать , кто охотится на меня ?
Think you can make a version of this where there are more bounty squads after you, but with your "dont get killed in your sleep" fixes? I have literally never seen/never noticed a bounty squad in all my time of playing and ive been a legendary stalker on more than one occasion. Id love to bump up this difficulty aspect.
It's easy enough to do this by modifying configs/plugins/bounty_squad.ltx and increasing the max number of possible bounty squads per rank. Combine that with MCM and set the slider to a higher base spawn % chance, and you'll have plenty of attacks
Я так и не понял, как это работает!?
Hi! I'm facing the following crash:
FATAL ERROR
[error]Expression : new_id.size()
[error]Function : CCharacterInfo::InitSpecificCharacter
[error]File : ..\xrServerEntities\character_info.cpp
[error]Line : 61
[error]Description : assertion failed
Issue went away after disabling this mod, do you think it is related?
It's unlikely.
This particular crash is often seen when you've exceeded the maximum number of ALife objects (2^16). ALife objects include stalkers, mutants, any object that has physics associated with it (barrels, boxes, props, etc), and items. Essentially, the game has run out of IDs to give new objects (error in "new_id.size()"). Likely culprits include overly fast spawn rates, Dynamic object addons, or excessive hoarding of items.
You may have "fixed" the crash by removing this addon, because you prevented a bounty squad from spawning when you were already at the ID limit. But this just delays it until the next ALife object spawns that exceeds the limit.
I understand. I'll check and tweak my settings accordingly. Thank you for taking the time to explain the issue and of course making this great addon!
I've actually learned that this crash can happen due to Ukrainian voices overwriting an Alife profiles addon
I've started a new game with ambient anomalies disabled to save some ids but the issue is happening again. I'm not using any over the top population factors either. I do have dynamic objects, dynamic stalkers, dynamic mutants and dynamic nocturnal mutants though but their spawn settings are just 1/10th of default settings. I could not resolve the issue on that save no matter what. I've disabled the voice line mods also. It's definitely not related to your mod though.
Update for the curious: It was a conflict with MAO and rowan's alife profiles. Doing a manual merge fixed the issue.
Look, I don't mean to sound like a noob, but who are the bounty squads???
Ever had a Monolith bounty squad jump you in Cordon? And they're all geared with exoskeletons and high-tech weapons? Or an enemy squad spawned on top of you after sleeping?
That was probably a "bounty squad". It's a vanilla Anomaly feature where, at low enough reputation or high enough rank, your enemies will spawn alpha squads to kill you. You've probably seen PDA messages from other STALKERs saying something like "I heard batonmax has made many enemies, and they plan to hunt him down in Cordon." or "I heard batonmax has a bounty on his head".
This addon refines the system to make more sense and be more fair.
Yes, I think I get it, thanks!
New game required?
No
Crashes when I installed it on a existing save file.
! [SCRIPT ERROR]: ...mes/stalker anomaly\gamedata\scripts\actor_status.script:359: bad argument #1 to 'pairs' (table expected, got nil)
FATAL ERROR
[error]Expression : <no expression>
[error]Function : CScriptEngine::lua_error
[error]File : ..\xrServerEntities\script_engine.cpp
[error]Line : 191
[error]Description : fatal error
[error]Arguments : LUA error: ...mes/stalker anomaly\gamedata\scripts\actor_status.script:359: bad argument #1 to 'pairs' (table expected, got nil)
stack trace:
Hmm I installed it on an existing save too and didn't have any crashes. It might be something else?
This is caused by an old version of VoDis/AltIcons, not this addon
Well both this addon and VoDis is brand new. I just found them from a youtuber. I also ran bounty hunter without VoDis and it stilled crashed. It is the only addon that seems to have issues but it may be something else affecting it, I don't know.
Here's a copy-paste from the Anomaly Discord by the VoDis author:
"If your game crashes with this being the reason/log:
LUA error: d:/games/anomaly\gamedata\scripts\actor_status.script:359: bad argument #1 to 'pairs' (table expected, got nil)
Please remove "az_vodis_centeredicons.script" from your gamedata/scripts folder.
This update pretty much removes it, but those that have it must remove it manually.
Moddb.com"
So make sure you remove the offending file manually.
If you still believe that this addon is causing a crash, please post the log like you did for your original post
I do not know if it is this mod or not. I have removed the file and attempted to load it with the bounty files added and I get the same crash. I attempted removing the bounty files and centered icons file and I still crash. The only way I can fix the crashing is by emptying the scripts folder, loading successfully then putting the scripts back in and playing without adding the bounty files. I find it very confusing.
! [LUA] SCRIPT RUNTIME ERROR
! [LUA] ...mes/stalker anomaly\gamedata\scripts\actor_status.script:359: bad argument #1 to 'pairs' (table expected, got nil)
! [SCRIPT ERROR]: ...mes/stalker anomaly\gamedata\scripts\actor_status.script:359: bad argument #1 to 'pairs' (table expected, got nil)
FATAL ERROR
[error]Expression : <no expression>
[error]Function : CScriptEngine::lua_error
[error]File : ..\xrServerEntities\script_engine.cpp
[error]Line : 191
[error]Description : fatal error
[error]Arguments : LUA error: ...mes/stalker anomaly\gamedata\scripts\actor_status.script:359: bad argument #1 to 'pairs' (table expected, got nil)
stack trace:
This is without the bounty files and the centered icons file in the script folder.
It's not this mod. I'm trying to help you with your crash regardless, but it's 100% not caused by this addon. This addon changes bounty squads, whereas your crash is related to the HUD/UI.
As such, the addon causing the crash is a HUD addon. Also, you should use Mod Organizer 2 to install addons instead of doing it manually. This way, you don't have to delete files each time you want to remove, reinstall, or reorder addons, which makes bugfixing easier.
I'm convinced that you have not removed all traces of the old versions of the HUD mod you're using, or did not install/uninstall it correctly. I really recommend using Mod Organizer 2 to do these things
I think this CDT is caused by your addon (that I'm loving so far):
ERROR: CGameObject:net_spawn() Object with ID already exists! ID=27800 self=stalker_rogue_ms27800 other=stalker_rogue_ms27800
! Failed to spawn entity 'stalker_rogue_ms'
ERROR: CGameObject:net_spawn() Object with ID already exists! ID=27660 self=wpn_kiparis27660 other=wpn_kiparis27660
! Failed to spawn entity 'wpn_kiparis'
ERROR: CGameObject:net_spawn() Object with ID already exists! ID=27685 self=device_pda27685 other=device_pda27685
! Failed to spawn entity 'device_pda'
ERROR: CGameObject:net_spawn() Object with ID already exists! ID=27705 self=detector_simple27705 other=detector_simple27705
! Failed to spawn entity 'detector_simple'
ERROR: CGameObject:net_spawn() Object with ID already exists! ID=27706 self=wpn_gsh1827706 other=wpn_gsh1827706
! Failed to spawn entity 'wpn_gsh18'
ERROR: CGameObject:net_spawn() Object with ID already exists! ID=27707 self=wpn_pkm_zulus27707 other=wpn_pkm_zulus27707
! Failed to spawn entity 'wpn_pkm_zulus'
ERROR: CGameObject:net_spawn() Object with ID already exists! ID=27729 self=ammo_9x19_fmj27729 other=ammo_9x19_fmj27729
! Failed to spawn entity 'ammo_9x19_fmj'
ERROR: CGameObject:net_spawn() Object with ID already exists! ID=27730 self=ammo_pkm_10027730 other=ammo_pkm_10027730
! Failed to spawn entity 'ammo_pkm_100'
ERROR: CGameObject:net_spawn() Object with ID already exists! ID=27731 self=ammo_pkm_10027731 other=ammo_pkm_10027731
! Failed to spawn entity 'ammo_pkm_100'
ERROR: CGameObject:net_spawn() Object with ID already exists! ID=44258 self=wpn_l85_alt44258 other=wpn_l85_alt44258
! Failed to spawn entity 'wpn_l85_alt'
ERROR: CGameObject:net_spawn() Object with ID already exists! ID=51085 self=wpn_m4a1_custom51085 other=wpn_m4a1_custom51085
! Failed to spawn entity 'wpn_m4a1_custom'
ERROR: CGameObject:net_spawn() Object with ID already exists! ID=43274 self=wpn_vssk43274 other=wpn_vssk43274
! Failed to spawn entity 'wpn_vssk'
-bounty_squads.attack - target: actor - rush: true [4]
I was in Limansk with Rogue for final mission of part 2, war against Sin.
However, reloading it never happened again.
Probably not from this addon. The console output "-bounty_squads.attack - target: actor - rush: true [4]" is standard output. All of the other junk seems like an issue with another addon - probably one that deals with object IDs such as "dynamic objects", "dynamic mutants" and similar addons
Hold on, so there are actually squads being sent after the player in Anomaly...? All this time I thought its just a-live being funny.
Using this mod, I had a military bounty squad spawn directly on top of me after I slept in Yantar. The base was controlled by the ecologists, and the military doesn't control any bases/resources/territories in Yantar. I'm also using Warfare Alife Overhaul. Is this supposed to happen? I thought this mod stops bounty squads from spawning directly on top of you while you sleep.
Edit: also installed using Mod Organizer 2. Nothing appears to be overwriting or conflicting with it.
I had another military bounty squad spawning directly on me while I slept at Freedom's base in the army warehouse. All the other bounty squads seem to functioning just fine, so not sure why this is happening with just the military.
weird. bases, especially the big faction bases are excluded for the bounty squads to act on. you an even check in the console once you step into a faction base it will give you a message about the bounty squads having no target anymore. has to be something weird about military indeed or is one off. did you start a new game with the altered bounty squads or did you install it mid-game?
warfare overhaul *might* have an influence but i don't think it changed anything about the bountysquads, it does however place some spawnpoints/patrol routes a little differently so that *may* be a source of un-intended behaviour.
There is a vanilla issue where bounty squads often don't switch online even when they're within your online ALife radius (~250m). So what ends up happening is that re-loading the game causes them to switch online, but they're literally on top of you since they can travel unimpeded while offline.
I'll push out a version with a fix for this in a bit