Jump to content


  • Content Count

  • Joined

  • Last visited

  • Medals

Everything posted by nkenny

  1. LAMBS Improved Danger.fsm by nkenny / diwako / joko Current version: 2.4.4 I am very happy to announce the release of a new AI improvement mod. At its core it is a considerable expansion of vanilla Danger.fsm. Added are features which extend the enemy response and reaction to fire. The overall goal is to make buildings part of the AI's available terrain. The AI will dynamically enter and clear buildings holding enemy soldiers. The nature of the the danger.fsm does not make these features a replacement for dedicated scripts and clever use of waypoints-- instead the mod should work seamlessly with existing missions. It puts no special demands on mission makers, nor does it add universal game mechanics with strategic implications. With the mod enabled the AI is a significantly more active combatant. The biggest changes is that the AI is now able to view buildings and structures as part of the tactical terrain. The AI will search through buildings, hide and garrison within, as well as provide suppressive fire against suspected enemy positions. In addition AI reactions to fire, even when the origin is unknown is expanded. The AI will also communicate threats to nearby allies. Armoured and tracked vehicles receive new custom behaviour which will see them always try to turn towards known enemies and hammer suspected locations of enemy forces. Features * AI will move inside buildings * Perform suppressive fire (Vehicles will dismantle buildings) * Panic, with special effects * React, even when exact enemy position is unknown * React by hiding in the presence of powerful vehicles when without equipment to deal with it * Check dead bodies, rearms when possible * Tanks will react by rotating towards threats * Improved civilian reactions, hiding in buildings and checking dead bodies * A special Close Quarter Battle mode when DELTA or FILE formation are used (formation can be configured) Some limitations of this implementation are twofold. For one, the Danger.fsm only triggers when the enemy feels threatened. Which makes the actions always purely reactive. This means that you should not expect pro-active searching through buildings, or changes in stance or formation based on terrain. Such things are simply governed elsewhere. Second limitation is myself. I am by education a philosopher, not a coder or computer developer. Please excuse my bumbling attempts. I intend to develop the mod further. In a sense it is already outdated based on my future plans. That said I wanted to release something now in a public sphere to gain more experience, feedback and perhaps garner more interest in FSM level modifications to AI behaviour. I see a lot of opportunities to add or fix annoying aspects of AI behaviour. I write that this release in a sense already outdated, because I intend to redo the current FSM flow structure; which is currently an expanded version of the Bohemia variant, which itself appears to have remained basically untouched since Arma2. Video Here is a (rather clumsily made) demonstrations video. The scenario consists of eight Spetsnaz soldiers assaulting three buildings held by 10 looters. The looters are garrisoned using CBAs taskDefend module. The attackers are given a single MOVE and SEARCH AND DESTROY waypoint. Their formation is set to DELTA/DIAMOND-- which triggers a special CQC mode. The attackers defeat all defenders and suffer zero casualties. No other special mods or scripts are in play. --- STEAM Workshop --- GitHub --- Development Discord
  2. Time to follow this thread a little closer again. First of all I would like to say thanks to everyone for the kind words. LAMBS Danger.fsm crossed the 50000 Steam Subscribers threshold a little while back. The team and I are happy and excited to see and hear about the games you play. We will be bringing out version 2.5 quite soonish. In fact, for those of that snoop our gitHub, will have seen quite a bit of activity recently. Version 2.5 will bring with it the much anticipated FSM rework and a considerable reorganisation and renaming of internal functions. The end result is a faster, more deadly AI; for developers, a streamlined and consistent environment. Two interesting features that will be coming with the next version are reworked group behaviours and a shared memory within the group. The former is already familiar. AI Groups will perform tactical manoeuvres, such as flanking or collective suppressive fire. With the next version, that feature has been updated, tightened and enhanced. The different tactical states are now more apparent and potent. You'll see group deliver area fire on known and expected locations and they will assault buildings with all the more rigor and aggression. Group actions are therefore much more integral to the AI's performance in a combat environment. Likewise the intelligence or evaluative process for group actions has been improved. There is also more consistency in AI using flares or manning static weapons. As to the former, a group now has a shared memory or consciousness of nearby enemies. When an AI soldier is in an assessment state, he will seek out enemies known to the group, but not directly threatening him. In other words, you will see the AI converge on known enemies or deliver sympathetic, prophylactic, suppressive fire when the enemy is not immediately within reach. The same system is used to make the AI more capable of clearing through buildings when enemies are suspected. Fun, dangerous, stuff. Thank you for playing :) Ken
  3. nkenny

    DUI - Squad Radar

    I speak from personal experience. The nametags are fantastic. :) -k
  4. Cool stuff! Literally. -k
  5. @mickeymen Have you checked the gitHub wiki? https://github.com/nk3nny/LambsDanger/wiki/Variables-and-functions ---- Here is the first of a three part series that covers the design philosophy of LAMBS Danger and how the module system works. Next video will consider Zeus and a more in depth look at the various modules. -k
  6. LAMBS Danger.fsm affects no weapon settings. With that said, the shared information may have other emergent properties. If anything the tendency of infantry to move and shoot in cqb may cause decreased accuracy. -k
  7. @LSValmont <unit> setVariable ["lambs_danger_disableAI", true]; -k
  8. LAMBS Danger fsm New release: Current version 2.4.4 *HOTFIX* Changelog Added context_menu actions support to the Zeus Enhanced mod Added configurable setting for ‘combat mode’ sharing distance Added patrol option to taskGarrison and taskCamp (default is disabled) Improved taskAssault (more reliable) Improved taskRush with dynamic cycle times Fixed random suppressive fire in taskCQB and improved house selection routines Fixed vehicles suppressing through terrain and high flying aircraft Fixed units will more reliable man static weapons in taskGarrison and taskCamp Fixed units will more reliably deploy static weapons from modded content Fixed units with LAMBS AI disabled will no longer be forced into combat mode by information sharing Fixed artillery registration issue Fixed in Zeus, moduleCQB and moduleAssault would always delete the logic even when asked not to. Fixed various issues in Eden and Zeus modules This version fixes and improves many small aspects of the mod related to task modules and group level behaviour. For players using the Zeus Enhanced (ZEN) mod, we’ve also connected the modules to the contextual menu for ease of use. The next move from the team will be an restructure of the naming scheme of many of the functions. As LAMBS Danger has proceeded the complexity of the project has increased. We are experimenting with future features. among these are: enhancements to artillery, a much requested reinforcement system, adding a post-combat AI, a dynamic close air support engine, and various other pieces. As always we are committed to keeping the mod from overriding mission makers intentions and hence creating a seamless improvement to the game. From the team diwako / joko / nkenny
  9. @mickeymen TaskGarrison is meant to be a long term garrison, not simply checking a building, or temporarily holding it. Because the waypoint is actually a handler for a scripted function and not a "way point" in the BIS sense, it should be treated as end state when activated through waypoints. There are technical and game design reasons for this. It is, however, possible to skip out of the garrisoned state. You can do that by using the taskReset module, or simply by running the taskReset function directly on the unit you wish to have abandon the garrison. That could be achieved within the trigger or statement you are using to have the garrisoned unit move again. The function to taskReset is [<group>] call lambs_wp_fnc_taskReset; Doing so comes with the limitation that this group will be fullly _reset_. Essentially the members of the group will join a freshly created group. -k
  10. @mickeymen 1. We allow the waypoint modules to be a little more invasive in terms of changing behaviours and combat modes. Best way to see which do what is to experiment a little. That said: When AI enter buildings, they are often limited to walking pace. This is a limitation of pathfinding. 2. In the same spirit as (1), the waypoint modules are not designed from the ground up to be easily linked into a chain of actions. These are better realised as "end states" or "fire and forget" modules. Easy ways in which to deploy the AI to a specific task. That doesn't mean it is impossible to string together different behaviours. The way to realise it is by using the taskReset module. Of course, if you are constructing a more advanced mission like that, I would advice creating your own scripted handler and calling the functions directly. @M1stb0rn As Joko says, only artillery units will be added to the artillery pool. Future versions will add CAS support 🙂 @Jimi Markkanen Not familiar with IFA3. By default it will only consider underbarrel grenade launchers. I suspect these weren't really around in WW2. hehe. Perhaps future version. -k
  11. LAMBS Danger fsm HOTFIX New release: Current version 2.4.2 Changelog (2.4.1 & 2.4.2) Added None to Task Garrison Exit Triggers (option prevents units from breaking garrison) Added Increased Flare/Illumination usage on Contact State Fixed Key Signature issues on Dedicated Server Fixed AI getting stuck in Garrison State* Fixed AI getting stuck in Fleeing mode Fixed vehicle AI would sometimes spam share Information Removed Investigation path from vehicle FSM (was unused) *Thanks to @Coulfor finding and fixing the issue. From the team diwako / joko / nkenny
  12. @coul That's a real bug! Must have been removed in one of the revisions. It isn't critical as I believe FSMs will time out automatically, but I will look into it further. -k
  13. @madrussian Next version will feature an internal restructure. Which is exactly where I would want to expand on the features you are interested in! -k
  14. LAMBS Danger.fsm New Release: Current version 2.4.0 Requires CBA_A3 3.15.0 or later Changelog Added Port all Strings over to Stringtables so that they can get Localized Added Vanilla EventHandler wrapper for all current Events Added Nearby friendly fire check for Suppression with configurable setting Added Nearby friendly fire check for vehicle suppression and assault functions Added Maximum Reveal value setting Added CBA Version dependency Added Player only setting for Task Creep/Hunt/Rush (these modules can now hunt enemy AI) Added SortByHeight, Teleport and Exit Condition setting to TaskGarrison Added Teleport setting to TaskCamp Added Remote compatibility to Task Assault/CQB/Camp/Creep/Garrison/Hunt/Patrol/Reset/Rush Zeus and Editor Modules Added Rewrite of Task Artillery to make it multiplayer compatible Added Various performance optimizations to danger FSM Added Immediate Action state Added fnc_immediateAction with smarter movement routines to avoiding fire Added fnc_indoor to only recognize buildings Added Units with ACE3 medical AI enabled will exit FSM Added Tweaks to fine-adjust suppression position Added Improvements to re-manning static weapons Added fnc_leaderAssault, fnc_leaderFlank, fnc_leaderSuppress, and fnc_leaderGarrison* Added fnc_leaderStaticDeploy, fnc_leaderStaticPack and fnc_leaderStaticFind (units will now dynamically deploy static weapons and more reliably man nearby ones) Added fnc_doSmoke, fnc_doUGL (functions to throw smoke and shoot flares respectively) Added FSM fix to prevent units from reacting to allied weapon fire Added FSM reaction state will now only trigger on dangerous events** Added FSM better support for ACE3 medical AI by delaying healing when unit is threatened by nearby gunfire or forced movement Added FSM faster and more aggressive movement when 'forceMove' variable is enabled Added units which call artillery will now attempt to use binoculars and stay in position to direct fire Added settings to disable dynamic weapon deployment and remanning Changed All number edit boxes in ZEUS Modules to sliders Changed Module Artillery Dropdown to Side Selector Changed Make use of CBA_fnc_getPos from CBA 3.15.0 update Changed Moved various settings such as speed and search range from FSM to function for easier editing Changed Increased threshold for doing suppression while suppressed from 0.5 to 0.75 Changed FSM priorities for bulletClose increased from 3 to 6 Changed fnc_fsmExitVariables to use fnc_isAlive Changed Default settings for CQB range from 50 to 60 Changed Radio minimum range settings from 200 to 20 based on user input Changed Gestures used to indicate initial reaction (from 'cease fire' to 'freeze') Changed fnc_hideInside, reduced range units without cover would retreat from 45-110m to 10-55m Changed Debug information variables are now global if `Debug Functions` setting is enabled Fixed An issue with ShareInformation Fixed That Task Creep/Rush didn't use user set Cycle Times Fixed Error in fnc_vehicleSuppress (vehicles would fail to engage) Fixed Assaulting units from occasionally looking into the ceiling Fixed Global variable in suppression part of FSM (timeout) Fixed Increased APC dismount range from 180 to 250 meters Fixed Tightened range which units check for CQB buildings in CQB mode (No need to check out to 250 meters) Fixed fnc_react - reaction state stances were reversed Fixed fnc_suppress - override setting would also override intelligent target adjustment based on visibility Fixed fnc_zoneMarker - marker is now created local only Fixed FSM issues with doWatch and doLook Fixed FSM leader state Contact! Now uses distinct gesture and collects troops better Fixed FSM improved performance, moved more code to functions, and clarified priorities Fixed move command in fnc_leaderFlank would override the current waypoint Fixed Flying Waypoint in TaskGarrison Fixed A possible issue with group counts overflowing max group limit with some taskX Modules/Waypoints Removed fnc_leaderManoevure replaced by fnc_leaderFlank Group Tactics A big addition in this release is the introduction of a more extensive set of group level actions. These are called when the AI assesses that enemies are holding in garrisoned buildings or in otherwise weak tactical positions. The unit can respond in four ways: Flanking, suppressing, assaulting, or attempting to garrison its own or enemy building. The exact tactic being employed depends on the unit's own combat mode, available cover and distance to target. These new states replace the more limited fnc_leaderManoevure. Reaction state The second major overhaul is how the AI will enter the reaction state: Units that expect enemy contact are less likely to flinch. By default they will now only enter a reaction state when the unit is hit, unit spots a new enemy, nearby explosion or bullet impact, seeing unit from their own group killed, hearing another unit being hit, or bullet whizzing by. Units set to FULL speed mode or STEALTH behaviour will not trigger reaction and hiding responses. Special thanks The team would like to extend thanks to @BadGuy for help with adding User Interface elements, @R3vo for the German translations and @madrussian for spotting an error with waypoints being deleted. Discord Got questions, suggestions or other feedback? Come hang with the cool kids on our Discord. From the team: diwako / joko / nkenny --- STEAM Workshop --- GitHub --- Discord
  15. @Carlos Leung No configuration necessary. Mod runs automatically on all units. Even modded ones, provided they inherit from vanilla units. -k
  16. @Disgusting_Man I'll look into it. We have a version we use in nopryl.no that I could make public. @tyreyalv I keep my skill settings at the default. As I have investigated elsewhere, I find the biggest difference being the weapon carried-- particularly when mods are compared to each other. On our server we run custom settings, but closely linked to 'veteran' or 'expert' settings. In the end it is a matter of preference. A cross-section of the deadliness of gameplay that you or your community want to have. Arma3 settings are unfrotuantely rather opaque in this regard, so there is little other option than experimenting youself or trying one of the mods that specialise just in that regard. 🙂 -k
  17. Realised half-way through this video that I didn't have my headset on. Which in turn messed with the sound quite a bit. Initially I had intended to remake it, but didn't really have the time for it. Take it for what it is. An early development video showcasing the new group manoeuvre system being introduced in version 2.4 Oh, and errors in suppression (i.e., friendly fire have since been fixed) -k
  18. @LSValmont Nothing fancy. In our case the move just gave the squad extra impetus to keep on target. Based on our new tactical manoeuvres , substituting with doMove, as suggested, was sufficient. -k
  19. @madrussian That's a massive find! In my experiments I found that the move command overrode the current WP, but then set the unit back on their previous one. I will promptly investigate. We are adding a considerable rework and expansion of fn_leaderManoeuvre So changing this will be quick-- and you can expect a fix soon. -k Update: Error has been confirmed, exactly as described. We will institute a fix. Thnx madrussian
  20. @mickeymen The mod does not at present alter the built in behaviours of waypoints. That code is unfortunately not accessible. What you describe is something I have considered. At least reading the waypoints units are currently working under and then somehow taking these into account in their decision making process. One limitation is that the Danger fsm is purely reactive. The AI only makes assessments when actually in combat. What you describe would require another cycle to run on the group (or all groups) in question. Now this isn't completely out of bounds, in future versions we will be adding a post-battle assessment phase. Where just such things can be accounted for. So the answer is yes, we are aware of it. At the present, though we have the ability to, it is not within the scope of existing technologies, at this stage of development to add such features. Its also worth mentioning that LAMBS Danger seeks to be a non-invasive enhancement of the game. Suddenly manning (potentially stealing) vehicles or extended garrisoning of buildings is outside what we intend to do. With that said, armed with LAMBS Danger it is quite easy to write your own mission script (or mod for that matter) to suit your needs. 1. Periodically cycle through all local groups 2. Check each groups waypoints 3. If the waypoint is of types X, Y, and Z AND has a blank script/init field: Add your own intended script to that field suitable to the waypoint in question. The next version of LAMBS Danger will come with simpler garrisoning scripts and so on. 🙂 @mjolnir66 Vehicles (of all stripes) are due another pass in the future. One reason I have been hesitant to delve too deep into features such as changing to HE rounds is: 1. I want the mod to be universally compatible with content mods: I do not want to add and maintain of all ammunition types in all mods. 2. Creating a powerful and flexible engine to make that decision is harder than you might think. When to change from one round to another is hard enough for humans, you do not want AI to be stuck in an endless reloading cycle. 3. It would make tanks EXTREMELY dangerous. -k
  21. ~Showcasing three small new features: Flares, throwing smoke and deploying static weapons @mjolnir66 It is essentially an expanded Suppression function. Units which are heavily suppressed have a chance to be panicked. You can configure this chance 0-100% in the CBA settings menu. You can also attach custom scripts to it via CBA eventhandlers. @jo spanner Cool idea 🙂 -k
  22. @mjolnir66 Unfortunately the fleeing variable has only one point of contact "<group> allowFleeing 0/1". And once the group has started fleeing, it is difficult to unflee it. If you want more fine control for your own missions, I would set the fleeing variable to 0 and let the panic function do its work 🙂 https://community.bistudio.com/wiki/allowFleeing -k
  23. @tittoffer We'll look into it. I am afraid it is an all or nothing thing in regards to buildings however. Some buildings are simply poorly configured. 😕 -k
  24. @jo spanner I'll do a little bit of testing tomorrow. It should be simpy: [ myUnit, getPos retreatpoint, true ] spawn lambs_wp_fnc_taskAssault; Note spawn. Also I suspect your sixth argument confused things. It is an internal variable when the point of assault/retreat is a waypoint. 🙂 -k
  25. Cool stuff! We're looking to add a post-battle assessment state in the FSM, which would be a perfect place to add something like this 🙂 But by itself it is pretty neat too. -k