Are you sick of accidentally killing enemies you are trying to capture? Do you wish to have a less lethal playthrough, or to rob more stalkers of their possessions? Do you wish you could just catch one off guard and tell them to drop their weapon instead of having to put them into a near-death state? This addon lets you scream at your enemies to make them surrender, swat 4 style.
To attempt intimidation, you have to [aim down sights] and press the [use key] while looking at the enemy.
For balance purposes you only get one chance at intimidation per enemy, so if an enemy refused to surrender, they will keep refusing upon future requests.
But if you really need to try again, save-loading or changing levels resets the counter.
Video demonstration of successful intimidation(stealth is optional):
You can install this addon by placing files manually, or, what is more recommended, using MO2 or JSGME.
To change the addon's settings you will need to also have installed the Anomaly Mod Configuration Menu.
Moddb.com
The Mod Configuration Menu addon shouldn't be required, but i haven't tested the game without it, so, if you don't have that addon, tell me if you get mcm-related error messages or if anything goes wrong regarding my addon's settings.
It seems to work fine on Anomaly version 1.5.2, but i mainly play in 1.5.1, so i don't know for sure if any version-specific issues might appear after playing for a longer amount of time.
-I did not test this addon for very long, so, errors are possible, and, if you encounter any, please notify me.
-if you use this addon together with the latest version of my "convert enemies to your faction" addon, you will have an option to make a higher chance to convert enemies that surrendered without getting injured.
-The surrendered enemies act like they are injured even after no damage at all. That happens because the surrendering mechanic in the base game works using npc's wounded states, so to make them surrender i need to keep them at low hp. To change that i would have to rewrite a lot of ways the game changes npc's states, and i'm not even sure if all of them are accessible. There's just way too much work and breaking compatibility for it to be worth it.
-I couldn't find a way to make enemy's responses come out straight out of their "mouth", so right now it just plays at their last known position. Also i don't know how to detect their specific voices, so each faction only gets 1 response voice. Immersion breaking, but i don't know how to improve it. You can turn it off in the mcm options.
-There is a way to add your own custom intimidation sounds, but it's very finicky, with all these file format conversion requirements, and having to add some lines of code.
-Sometimes enemies surrender, but don't play their surrender animations, so you can come up to them and get a surrender dialog window, but they will still be shooting at you. I'm pretty sure it's just an error in the game, as i had this problem even when i was making enemies surrender using the old fashion way, without this addon. I don't know how to fix it, so just consider that animation error as refusal to surrender.
-The script is using Anomaly's original surrender mechanic, which is forcing enemies to surrender at low hp. It means that sometimes they can die from even the smallest amount of damage, including bleeding and friendly fire from their teammates. There are moments where it looks like you kill them just by screaming at them. Not much i can do about that without changing a ton of code.
Also, enemies, that managed to regenerate enough of their health while being surrendered, will stand up and attack you. I'm not planning to do anything about that, as most players don't need to leave their targets surrendered for that long. Also, having to watch your captives adds to the gameplay a bit.
-You can only intimidate your faction's true enemies, so, even if you use disguise, it won't let you intimidate your friends. Also, you drop disguise during intimidation.
-Monolith and zombies don't surrender. Not sure about others.
-I haven't tested the addon in warfare mode, so try it at your own risk.
v1.0:
-The first version of the addon.
v1.0.1:
-Added nil concatenation prevention code to remove possibility of crashes in cases when attempting to get addresses of the sounds from the lists somehow returns nil values.
If you happen to like my addons so much you want to give me money:
I've been told that some people like donating money to modders, and i should try setting up a donation link for myself. So here we are.
Boosty.to
It might be not the most convenient way, but here in Russia we unfortunately don't have that many other ways available right now, due to the you-know-what-crazy-situation.
Also, if you're actually going to donate, make sure the donation sum won't negatively impact your well-being, because i have no clue if i can refund that.
Average
1063 votes submitted.
Alright, at this time i'm going to stop making new addons or major updates, as, even though it was fun, working on these addons takes too much time (the four addons i made took me most of my summer), and i did not even get a chance to actually play with my addons myself.
I'm still going to fix errors and make slight adjustments, but adding anything new just takes too much time, way more than i can afford right now. I want to start working on some more important projects.
Anyway, thanks again for your support, and i hope you enjoy playing with what i have made.
This is the kind mod that make you feel good being here x) oh the gameplay possibilities... bravo and thank you
Wow, this is a cool addon :)
Finally :P
For a long time I thought about someone making such a mod, because don't always want to kill single ememy and its nice for RP, thank you!
every time i look at the new addons there's something amazing that i think i need, do you know if this works with existing saves?
Yep, it should work with any save.
why he gets wounded in the video if you didn't shot him, he was crying of 'stress' lol?
That's just the way it has to work. Since the base game only makes the stalkers stay surrendered while they are injured, i have to keep them at low hp. There is no easy way to just force them into the surrender state without injuring them. To change that i would likely have to rewrite about half of the wounds and surrender code of the game, and i am just not that experienced in programming to pull that feat off.
Calling it "stress" is probably the best way to keep some immersion here. You could also pretend you hit that stalker on the head to make sure they won't be able to do sudden moves any time soon, or something of that sort.
merc voice ?
The currently available voices are taken from the game itself, and, unfortunately the game doesn't have any good merc voice lines that would fit the "drop weapon and surrender" situation. Same thing with monolith. For some reason, these factions just don't have that kind of voice lines.
I assume most of these voices came from the original series of the game, and the devs just never expected you to be friendly enough to those factions to need these lines.
I guess i could just add the bad voice lines, but if you understand the language, they are really immersion breaking.
The best available things that mercs could tell their potential captives with that voice is just stuff like "come out", "be careful", "you are making me angry" and "i am going to shoot you"
can you get the voiceover for merc/isg from here?
Moddb.com
It should be possible for you to add these lines using the "custom" voice option.
First you copy the voice line you like from that addon. For example, the file "random_7.ogg" in ShadowCompanyVoicedActor\gamedata\sounds\characters_voice\random_shouts is the character telling someone to drop their weapon, so it would fit perfectly.
Take that sound file and put it inside my addon's gamedata\sounds\characters_voice\human\is_custom folder. It won't need conversion because it's already made to work in stalker.
Then you open the intimidation_surrender.script file, and find this code(somewhere at lines 310-320):
[23] = --"Custom"
{
"is_custom\\dude_getdown",
"is_custom\\dude_getdownifyoudont",
},
Just remove the example addresses and add the name of your file instead.
So it should look like this:
[23] = --"Custom"
{
"is_custom\\random_7",
},
After all these steps, if you choose the "custom" voice setting, it should make your character play that voice line whenever you attempt intimidation.
You can add more voice lines, and the script will just play them in random order.
Sorry if it's inconvenient for you, i just find it a lot less time consuming to let the users make their own changes instead of making adjustments myself upon every request.
ok i will try it
it works but is it possible to create an option for Merc ?
Are you asking if it's possible to make a setting with a name Merc, or if it's possible to make Merc NPCs have responses with this voice?
If it's the first case, i'm not sure why one would need to make an extra option when there's an already working variant. Are you planning to add multiple different voices?
In second case, you would have to make a separate folder for merc sounds and then specify addresses of their sounds in the code.
At this time i have to go and sleep, so don't expect another response from me sooner than 8 hours from now.
ok
I'm not sure about which one of my sentences that "ok" is directed towards, so i will have to clarify:
Are you satisfied with the information you got, or do you need any further help?
I think I've got all the information I need
Hello stalker!
Congratulations, this is a really great mod!
I found a bug into your mod (a crash to desktop) but I already fixed it in my game:
In line 581 or 583 (I don't remember, I'm sorry) if you rapidly press the action button, eventually the game tries to concatenate a nil value to the string, causing a CTD.
To solve this bug, I changed these lines from:
if surrendered then
sound_object("characters_voice\\human\\".. surrender_voice_lines[comm][math.random(1,#surrender_voice_lines[comm])]):play_no_feedback(npc, sound_object.s3d, 0, npc:position(), 1, 1)
else
sound_object("characters_voice\\human\\".. refusal_voice_lines[comm][math.random(1,#surrender_voice_lines[comm])]):play_no_feedback(npc, sound_object.s3d, 0, npc:position(), 1, 1)
end
to:
if surrendered then
local surrender_sound = surrender_voice_lines[comm][math.random(1,#surrender_voice_lines[comm])]
if not surrender_sound then return nil end
sound_object("characters_voice\\human\\".. surrender_sound):play_no_feedback(npc, sound_object.s3d, 0, npc:position(), 1, 1)
else
local refusal_sound = refusal_voice_lines[comm][math.random(1,#surrender_voice_lines[comm])]
if not refusal_sound then return nil end
sound_object("characters_voice\\human\\".. refusal_sound):play_no_feedback(npc, sound_object.s3d, 0, npc:position(), 1, 1)
end
This way, I'll check the variable value before concatenate it, preventing the bug.
Edit: I'm sorry, I tried to put the code here but the comment section do not help me out. I put the fix that I made in pastebin: Pastebin.com
I couldn't reproduce the crash, but adding error prevention code makes sense, so i updated the addon just in case. Thanks for the heads up.
The fact that they just sound really hurt like they got a bullet in their body after you do nothing but rob them only
Me, trying to intimidate an enemy:
What a fool you are. I'm a god. How can you kill a god? What a grand and intoxicating innocence. How could you be so naive? There is no escape. No recall or intervention can work in this place. Come. Lay down your weapons. It is not too late for my mercy.
make them surrender and then recruit them: Moddb.com
Please tell me how to change the key to "T"
in the file intimidation_surrender.script, somewhere around line 642, change this:
if bind == key_bindings.kUSE then
to this:
if key == DIK_keys.DIK_T then
"DIK_T" is a dik keycode of T. If you need to set it to a different key, you can find its keycode here: Community.bistudio.com
If you also want to remove the need to have an active gun and zooming it, you will have to remove the if condition at line 645(just delete the whole line, also including removing its "end" at line 751)
(Not sure if it's the correct line number, so, to clarify, the one that has to be removed says "if (active_item and IsWeapon(active_item) and axr_main.weapon_is_zoomed) then")
Thanks a lot
This is absolutely fantastic addon it makes the gameplay way more realistic!
Now playing as bandits would be way more profitable when you can force enemy into surrender
However is there any chance to remove the one use of intimidation per enemy?
It's possible, but due to the addon being made with only 1 intimidation attempt in mind, the easiest solution could be very awkward and error prone.
I could make a better version of this, but i just started recovering from multiple sleepless nights, and i don't want to spend another night on rewriting my code, so all i can give is this crappy version:
In the intimidation_surrender.script somewhere around line 652
remove all this:
--check if the object is already in the list
if _intimidation_surrendered_npcs[obj:id()] then
if _intimidation_surrendered_npcs[obj:id()].result == false then
--play intimidation and refusal voice line
PlayIntimidationVoice()
DelayedSurrender(false,obj:id())
end
and also change "elseif not" at the next line to "if not"
(at the line that says "elseif not (character_community(obj) == "zombied" or character_community(obj) == "monolith") then")
I tested it for a minute, and it seems to give you multiple tries, however, if an enemy stands up after already surrendering, intimidating them again only makes them wounded.
If you also remove "and not obj:wounded()" at line 649, it could probably let you intimidate those stalkers that got wounded but did not surrender on their own. However, because the script changes their health, there is a chance that using this might just kill them instead.
Though i must say, there are not many unique voice lines, so if you are playing with them turned on, they will get stale very quickly with this amount of usage.
This is a 10/10 addon, Bravo!
Creative, immersive, with great potential
Shame it came as a result of personal sacrifices
Enjoy your rest from modding - you definitely deserve it!
he se agradece tio!
"-You can only intimidate your faction's true enemies, so, even if you use disguise, it won't let you intimidate your friends. Also, you drop disguise during intimidation."
That doesn't seem very immersive, how can screaming at someone with a gun in their face blow your disguise?
oh wait... haha... nevermind, I just read what I typed.
Damn, that's good smoke!
When i do it, nothing happens, i dont know whether it needs new save or it just doesn't works
You don't need a new save, it should work right away.
Are you using MCM?
Who were you trying it on? It doesn't work on friendly and neutral factions, monolith, zombies and wounded enemies(also it might not work on isg faction either, i didn't test it).
Were you aiming down sights and pressing the [Use] key while being close to the enemy and looking at them?
Interesting thing I discover while playing as a mercenary disguising myself as a duty stalker. The crosshair on my gun turn red while hovering over freedom stalker while in my duty disguise but fighting against freedom. I can't press F to Intimidate the Freedom Stalker to surrender even though they now see me as their enemy with my duty disguise. But amazingly if I damage them enough to get them to play the injured or surrendered animation. Talking to them will give me the option to convert them to my faction. So now a Freedom Stalker which is allied to the Mercenary becomes a Mercenary Stalker. using this addon with your Convert enemy addon which works really nice together
what language is he shouting in ?
Russian.
The game has a lot of these voice lines stored in the files, it's a real shame that about half of them aren't actually being used anywhere in the Anomaly, they added a lot of immersion in the original series.
Nice! Love these simple addons that add so much! the funniest thing is when after you rob them they lay down and hold themselves as if they have been anally abused! do you think you could make the chance for surrender lower depending on rank and faction? for example a military veteran has less chance of surrendering compared to a rookie, or factions like monolith never surrendering?
This addon actually already has a system that makes surrender chance depend on the ranks. Your character rank competes against enemy npc's rank, giving you a higher chance to intimidate the enemy if your rank surpasses theirs. So if you are a rookie, veteran enemies would just tell you to **** off, unless you catch them from behind. And if you are a legend, only someone as high as masters and other legends would dare to defy you.
There's also a mechanic of isolation, that makes enemies surrounded by your team more likely to surrender, and enemies among their friends feel braver and less likely to surrender.
All these settings can be seen in the MCM menu, if you have that addon. The settings might be a bit confusing, but i did add some tooltips that should help a little.
As for the faction dependence, the game already doesn't let factions like monolith and zombies surrender by default, so if i decided to make it optional, i would have to rewrite that part of the code, and it's not something i want to screw around with, as both of these factions' wounded states are kind of special in their own way, like the monolith blowing themselves up after getting a heavy injury.
love the details bro. 👊 i need to get in and start making my own addons when i have the time
So, how does it work? I installed it but if i aim to an NPC and press F (my use key) my character isn't speaking and the NPC isn't surrender. Does it only work in fights or only on enemy npc's? Are there incompatibilities?
It only works on your faction's enemies.
If you for some reason want to intimidate your friends, you could change intimidation_surrender.script file:
changing the line 668 (if relation == "enemy" then)
to line (if relation then) should remove the restriction i added.
However, since my script is based on the game's wounded state, friendly stalkers still likely won't surrender if their name isn't red to you.
Thanks!
На какую кнопку запугивать врага? просто у меня нет в настройках этой кнопки
Прицеливание + кнопка использования [f по стандарту] (которой ты подбираешь предметы и открываешь двери)
Доброго времени суток. Возможна ли работа мода на версии 1.5.2? В моём случае, этот мод и другой ваш(на вербовку сдавшихся врагов) не отображается в MCM и не работает.
По крайней мере при беглом тестировании полгода назад, мои аддоны исправно работали на 1.5.2 со всеми настройками.
Но я не могу дать гарантии стабильности моих аддонов на этой версии, так как не играю на ней, и, хоть мои аддоны и выглядели работающими исправно со всеми настройками, я не пробовал полностью проходить игру с ними в этом обновлении.
В списке изменений версии 1.5.2 не указан ни один файл, связанный с моими аддонами, поэтому, теоретически, не должно быть никаких проблем.
Однако, если у вас возникли проблемы с настройками, значит похоже что всё-таки возможны конфликты?
Так как я не тестировал эти аддоны уже более полугода, могу предположить, что если это не связано с обычным конфликтом между разными аддонами, то это могло быть проблемой с какими-либо мелкими дополнительными обновлениями версии 1.5.2 или обновлением вспомогательных аддонов(вроде самого mcm).
Премного благодарю за оперативный и широкий ответ.
I have a error on 1.5.2.
"! [LUA] 0 : [C ] __len
! [LUA] 1 : [Lua] ...aly 1.5.2\gamedata\scripts\intimidation_surrender.script(586) : PlaySurrenderVoice
! [LUA] 2 : [Lua] ...aly 1.5.2\gamedata\scripts\intimidation_surrender.script(609) : SurrenderNPC
! [LUA] 3 : [Lua] ...aly 1.5.2\gamedata\scripts\intimidation_surrender.script(622) : func_or_userdata
! [LUA] 4 : [Lua] c:/games/anomaly 1.5.2\gamedata\scripts\axr_main.script(271) : make_callback
! [LUA] 5 : [Lua] c:/games/anomaly 1.5.2\gamedata\scripts\_g.script(119) : SendScriptCallback
! [LUA] 6 : [Lua] ...s/anomaly 1.5.2\gamedata\scripts\bind_stalker_ext.script(104) : actor_on_update
! [LUA] 7 : [Lua] c:/games/anomaly 1.5.2\gamedata\scripts\bind_stalker.script(310) :
! [LUA] SCRIPT RUNTIME ERROR
! [LUA] ...aly 1.5.2\gamedata\scripts\intimidation_surrender.script:586: attempt to get length of a nil value
! [SCRIPT ERROR]: ...aly 1.5.2\gamedata\scripts\intimidation_surrender.script:586: attempt to get length of a nil value
FATAL ERROR
[error]Expression : <no expression>
[error]Function : CScriptEngine::lua_pcall_failed
[error]File : ..\xrServerEntities\script_engine.cpp
[error]Line : 204
[error]Description : fatal error
[error]Arguments : LUA error: ...aly 1.5.2\gamedata\scripts\intimidation_surrender.script:586: attempt to get length of a nil value
stack trace:"
WHY???
From what the error tells me, the game is trying to find sound files from a list, but for some reason that list doesn't exist.
If it's not a problem with the code, it could be a problem with incorrect installation, missing or moved base game files, or incorrectly named file paths.
If you are playing with MCM addon, try disabling the "enemy responses" setting of my addon. If the response sound files were the only problem, it might get rid of the error.
Enemies will not respond to your words with their voice, but it's not that big of a loss, because there aren't that many good unique voice lines anyway.
If your own character's voice also gives an error as well, you might be out of luck here, because i didn't account for that kind of a problem, and made the character play empty sound when their voice setting is set to no voice.
thanks for the reply.I'll try to follow your advice. I will write about the result
UPD: Disabling the opponents' responses worked. Before that, it flew out at the end of MY phrase. Maybe the paths to audio files have been changed in 1.5.2?
Отключение ответов противников сработало. До этого вылетало на окончании МОЕЙ фразы. Может быть, в 1.5.2 изменены пути к звуковым файлам? В любом случае ,ваш мод за-ме-ча-те-ль-ный! Спасибо за прекрасную работу.