Jump to content

Search the Community

Showing results for tags 'Spawn'.

More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


    • Arma Reforger
    • Vigor
    • DAYZ
    • ARMA 3
    • ARMA 2
    • YLANDS
    • ARGO
  • Die Hard OFP Lovers' Club's Topics
  • ArmA Toolmakers's Releases
  • ArmA Toolmakers's General
  • Japan in Arma's Topics
  • Arma 3 Photography Club's Discussions
  • The Order Of the Wolfs- Unit's Topics
  • 4th Infantry Brigade's Recruitment
  • 11th Marine Expeditionary Unit OFFICIAL | 11th MEU(SOC)'s 11th MEU(SOC) Recruitment Status - OPEN
  • Legion latina semper fi's New Server Legion latina next wick
  • Legion latina semper fi's https://www.facebook.com/groups/legionlatinasemperfidelis/
  • Legion latina semper fi's Server VPN LEGION LATINA SEMPER FI
  • Team Nederland's Welkom bij ons club
  • Team Nederland's Facebook
  • [H.S.O.] Hellenic Special Operations's Infos
  • BI Forum Ravage Club's Forum Topics
  • Exilemod (Unofficial)'s General Discussion
  • Exilemod (Unofficial)'s Scripts
  • Exilemod (Unofficial)'s Addons
  • Exilemod (Unofficial)'s Problems & Bugs
  • Exilemod (Unofficial)'s Exilemod Tweaks
  • Exilemod (Unofficial)'s Promotion
  • Exilemod (Unofficial)'s Maps - Mission Files
  • TKO's Weferlingen
  • TKO's Napf
  • TKO's Rules
  • TKO's Changelog
  • TKO's Help
  • TKO's What we Need
  • TKO's Cam Lao Nam
  • MSOF A3 Wasteland's Server Game Play Features
  • MSOF A3 Wasteland's Problems & Bugs
  • MSOF A3 Wasteland's Maps in Rotation
  • SOS GAMING's Server
  • SOS GAMING's News on Server
  • SOS GAMING's Regeln / Rules
  • SOS GAMING's Ghost-Town-Team
  • SOS GAMING's Steuerung / Keys
  • SOS GAMING's Div. Infos
  • SOS GAMING's Small Talk
  • NAMC's Topics
  • NTC's New Members
  • NTC's Enlisted Members
  • The STATE's Topics
  • HavenEmpire Gaming community's HavenEmpire Gaming community
  • Polska_Rodzina's Polska_Rodzina-ARGO
  • Carrier command tips and tricks's Tips and tricks
  • Carrier command tips and tricks's Talk about carrier command
  • ItzChaos's Community's Socials
  • Photography club of Arma 3's Epic photos
  • Photography club of Arma 3's Team pics
  • Photography club of Arma 3's Vehicle pics
  • Photography club of Arma 3's Other
  • Spartan Gamers DayZ's Baneados del Servidor
  • Warriors Waging War's Vigor
  • Tales of the Republic's Republic News
  • Operazioni Arma Italia's CHI SIAMO
  • [GER] HUSKY-GAMING.CC / Roleplay at its best!'s Starte deine Reise noch heute!

Find results in...

Find results that contain...

Date Created

  • Start


Last Updated

  • Start


Filter by number of...


  • Start



Website URL


Jabber (xmpp)








Steam url id







PlayStation PSN














Found 105 results

  1. CSWR is an Arma 3 script that allows the Mission Editor to spawn AI units and vehicles (by ground or air paradrop) and makes those groups move randomly to waypoints forever in life, where spawn-points and waypoints are easily pre-defined by Mission Editor through Eden marker's positions. CSWR accepts faction loadout customization, including additional customizations for sniper teams and paratroopers. CSWR almost doesn't change any original Arma AI behavior, saving server performance and Arma 3 integrity. Creation concept: bring life to the mission through non-stop units' movements with some level of unpredictability without losing control of server performance and what AI units can do. Special thanks: To the old (but gold) "T8 Units" script for the inspiration over the years. How to install / Documentation: https://github.com/aldolammel/Arma-3-Controlled-Spawn-And-Waypoints-Randomizr-Script/blob/main/controlled-spawn-and-waypoints-randomizr.stratis/CSWRandomizr/_CSWR_Script_Documentation.pdf What to expect from the CSWR script: No dependencies from other mods or scripts; Manually define which markers the faction can use as spawn-points; Sectorize which groups can spawn through many sectorized spawn-point options of their faction; Create unlimited different types of spawn-points (including air paradrop) for one or more factions; Spawn-points can be triggered by mission starts, Timer delay (down count), Trigger delay (trigger activation), and Target delay (unit killed or building destroyed). For more details, check the documentation; Once the spawn-points are created, the script will spawn the groups randomly through their faction spawns; There is no re-spawn. Death is death for units and vehicles spawned by CSWR; Vehicles with turrets spawned by CSWR, when damaged, their gunners never leave the vehicle, doing the last standing in combat until death; Manually define which markers will be used as one type of destinations (waypoints) for AI units and vehicles; There are 4 types of destinations: Move: groups will move randomly through your predefined move-markers; IMPROVED! Watch: sniper groups will search for the best high position to cover one of your predefined watch-markers; Hold: soldiers, civilians, or ground vehicles (mainly tracked ones) will set position facing a specific direction predefined by you with hold-markers; IMPROVED! Occupy: soldiers and civilians will search for a building around a predefined occupy-marker, and will go there, get in and stay; Once the destination markers are created, CSWR will take care of taking (or not) the groups there, randomly; NEW! Sectorize which groups can move through many sectorized destination options of their faction; Manually set the number of soldiers, who they are, their loadouts, who belongs in each group type, and even ground vehicles and helicopters; Add or remove Night-Vision-Goggles and Flashlights for one or more factions, easily through "True" or "False" management; There are 7 infantry templates and 8 vehicle templates to customize (with modded or vanilla things) for each faction; Define easily how many AI groups are in-game, what squad types they belong, and their behavior: safe, aware, stealth, combat, chaos. For more details, check the documentation; All vehicles and units spawned by CSWR can be (ON/OFF) editable by Zeus; Set if the CSWR should wait for another script load first on the server; Debugging: friendly error handling; Debugging: hint monitor to control some AI numbers; IMPROVED! Debugging: full documentation available. . Video demo: Video installing: Check the file above on GitHub. Check the file above on GitHub. Dependencies: None 😉 Download: - On GitHub: https://github.com/aldolammel/Arma-3-Controlled-Spawn-And-Waypoints-Randomizr-Script - On Steam Workshop: https://steamcommunity.com/sharedfiles/filedetails/?id=2740912514 Missions using it: Tanks & Helicopters (light): https://steamcommunity.com/sharedfiles/filedetails/?id=2424050518 Escape from Kherson: https://steamcommunity.com/sharedfiles/filedetails/?id=2878171355 Ukrainian ATGM Team: https://steamcommunity.com/sharedfiles/filedetails/?id=2847369831 Fake SDF in Syria: https://steamcommunity.com/sharedfiles/filedetails/?id=2728537885 Tanks Theater: https://steamcommunity.com/sharedfiles/filedetails/?id=2160397214 ISIS VBIED: https://steamcommunity.com/sharedfiles/filedetails/?id=2732654349 - - - - - - - - - - - Changelog: Dec, 1st 2023 | v6.5.1: news, fixes and notes. Known issues: - Watch > Sniper groups still not considering buildings when no natural highlands to take a position for overwatching; - Occupy > If you hide a building and the building can be occupied, the groups will consider that hidden building as a regular place to occupy; Paradrop > When parachuters are civilians, they're crouched right after landing and stay like this forever. - Move Hold > Sometimes tracked vehicles are not facing exactly the marker direction configured by the editor;
  2. all vehicles are glitching into the ground slightly. can watch a vics bottom part of tracks disappear into the ground and then pop back up over and over again. when the track glitches into ground you are not able to get in it until it pops back up above the ground. after a while the vehicles are all damaged .
  3. Hello everyone, I've created this 2 scripts/functions because I was bored to find (for an hour) and kill the last enemy in a sector to get control of it, even though I had a hundred allies in it. I recommend to use both scripts as functions and not scripts, because both can be called multiple times and having functions can be a lot more handy if you guys are scripting. Does it work in multiplayer? Yes, MultiPlayer and SinglePlayer. What does this script/function do? This script accepts 2 parameters: - Position (center position of the sector) - Range (Ellipse range in meters) It calculates (by counting infantry of each side inside the sector) which side is owning the given sector and returns it as text. How does it calculate the infantry inside? It calls a second script which is getUnitsCount. This script can be also called by itself if you need it somewhere else, it accepts 3 parameters: - Position - Range - Side → of which you want to get the units count inside the area. If AI vehicles are inside the area, crew will be calculated. getUnitsCount returns the sum of the units, therefore an integer value. Return values - "west" → If BLUFOR are owning the sector; - "east" → If OPFOR are owning the sector; - "independent" → If Independents are owning the sector; - "civilian" → If no-one is owning the sector, which means not a single west, east or independent unit is inside the area, therefore civilians own it or it's currently contended (same units for each side) How do I call the script? [_positionParameter, _rangeInMeters] execVM "getCurrentOwnership.sqf"; How do I use it in a trigger? Simply put a trigger with the following condition, obviously on the right hand side instead of west you can use civilian, independent or east if you'd like to check if the given side has ownership of the area. It can be also called from other script if you like to do so. Make sure the trigger is ServerOnly!!!!! ([_positionParameter, _rangeInMeters] execVM "getCurrentOwnership.sqf") == "west" ----------------- SCRIPTS ----------------- getUnitsCount.sqf //Uncomment following if using as function //params [ "_position", "_distance", "_side" ]; //Uncomment following if using as script _position = _this select 0; _distance = _this select 1; _side = _this select 3; _infantrycount = 0; _countedvehicles = 0; _vehiclecrewcount = 0; _infantrycount = _side countSide ( [ _position nearEntities [ "Man", _distance],{ !(captive _x) && ((getpos _x) select 2 < 100) }] call BIS_fnc_conditionalSelect ); _countedvehicles = [ ( _position nearEntities [ ["Car", "Tank", "Air"], _distance] ), { ((getpos _x) select 2 < 750) && count (crew _x) > 0 } ] call BIS_fnc_conditionalSelect; _vehiclecrewcount = 0; { _vehiclecrewcount = _vehiclecrewcount + (_side countSide (crew _x)) } foreach _countedvehicles; //Return value (_infantrycount + _vehiclecrewcount) getCurrentOwnership.sqf (updated 08 march 2023) //Uncomment following if using as function //params["_position","_range"]; //Uncomment following if using as script _position = _this select 0; _range = _this select 1; _westCount = [_position, _range, west] call OFF_fnc_getUnitsCount; _eastCount = [_position, _range, east] call OFF_fnc_getUnitsCount; _indeCount = [_position, _range, independent] call OFF_fnc_getUnitsCount; _result = 0; if (_westCount > _eastCount && _westCount > _indeCount) then { _result = "west"; }; if (_westCount > _eastCount && _westCount < _indeCount) then { _result = "independent"; }; if (_eastCount > _westCount && _eastCount > _indeCount) then { _result = "east"; }; if (_eastCount > _westCount && _eastCount < _indeCount) then { _result = "independent"; }; if (_indeCount > _westCount && _indeCount > _eastCount) then { _result = "independent"; }; if (_indeCount > _westCount && _indeCount < _eastCount) then { _result = "east"; }; _result;
  4. What does this script do? This script creates a minefield with a random number of mines and IED, positioning them in a random way inside the given area. Does not include APERSTripMine (mines with cable) Does it work in multiplayer? Yes, it works in MultiPlayer and SinglePlayer Parameters _area → Marker → Set a marker area with the size you like in editor _minMinesCount → int → Minimum number of mines you want in the area _maxMinesCount → int → Maximum number of mines you want in the area How do I call the script? Just get into your init.sqf and place it like this, has to be server only. If you have multiple minefields you have to add multiple lines with each marker and number of mines. if (isServer) { ["MarkerName", 10, 30] execVM "randomMinefield.sqf"; }; Next improvements - Will use marker position and specified range manually instead of marker size which is not very handy. randomMinefield.sqf (thanks to Hypoxic125 for the error feedback) //Uncomment following if used as function //params["_area", "_minMinesCount", "_maxMinesCount"]; //Uncomment following if used as script _area = _this select 0; _minMinesCount = _this select 1; _maxMinesCount = _this select 2; _minesArray = ["ATMine","APERSBoundingMine","APERSMine","IEDLandBig_F","IEDUrbanBig_F","IEDUrbanSmall_F","IEDLandSmall_F"]; _minesCountInArea = random[_minMinesCount, _maxMinesCount/2, _maxMinesCount]; _areaDimensions = getMarkerSize _markerArea; _minesPositionRange = _areaDimensions select 0; //Creating random position and spawning mines for "_i" from 0 to _minesCountInArea - 1 do { _randomPos = [[_markerArea], []] call BIS_fnc_randomPos; _randomPos set [2, 0]; createMine[selectRandom _minesArray, _randomPos, [], 0]; }
  5. Hi, is there any code or other way to get textures path to a vehicle, so I can use setObjectTextureGlobal when I spawn it? I have found this on internet but even I can say its deeply wrong _vehicleType = typeOf cursorTarget; _textureSets = "true" configClasses (configFile >> "CfgVehicles" >> _vehicleType >> "TextureSources"); _availableTextures = []; _textureSets apply { _colorName = configName _x; _textures = [_x , "textures", []] call BIS_fnc_returnConfigEntry; _availableTextures pushBack [_colorName, _textures]; Gives me error "Missing }" when used in debug console.
  6. NightOps - Arma Platform Modding Project www.NightOps.de One month after the early access release of Arma Reforger, we are happy to announce the NightOps modding project officially. We provide frameworks and custom gamemodes in Arma Reforger for everyone to use. This makes creating a coop or solo scenario very easy for mission makers. No workbench experience yet? Don’t worry, our first tutorials and documentation will lead you through it! And the best thing, it’s already published! The team made several released the last weeks but we feel now ready, to announce this project to the public. You can either use just one framework as a dependency or the whole package with a lot of useful features for creating custom missions. A showcase what features and mechanics are included can be already played in the NightOps - Everon 1985 mini-campaign and we will release custom PvE and PvPvE gamemodes in the near future. What is already done and can be used right now by everyone: Custom Modes Framework (provides ready-to-use Coop gamemode prefabs and some mighty custom trigger for mission design) Dynamic Task Framework (provides a dedicated server working task manager with a lot of custom task trigger) Dynamic Spawn Framework (provides a system to dynamically spawn and de-spawn groups, vehicles and objects and can even use a dynamic faction system to change the spawning units depending on mission header configuration) Everything is covered in a great basic tutorial written by Herbiie and documented well on our website. And more deep dive guides will follow soon about every framework. Next to that, Zeal published a small tutorial about Additional Script utilizing the frameworks in a more specific way about topics, people were asking lately alot. It’s part of our philosophy to make the project open-source sharing everything we learned for the community. So you can either just download the dependencies in the Ingame workshop or review the sourcecode repositories on GitHub. And finally, I want to share a overview about our roadmap for the near future: While we are working already on bigger gamemodes in the background, we are happy to tease the NightOps DYNAMIC COMBAT PATROL mode which will be released soon. We will offer a immersive and persistent combat patrol experience for Arma Reforgers Everon map. And mission makers can use the gamemode out of the box to add it to other custom terrains easily. Ofcourse, that will be covered by another tutorial when it's done. So don’t miss an update and follow us on Twitter. We are looking for your feedback and issue reports. And if you need support, you can always tag us in the official Arma discord server, on the Enfusion Discord or in our own NightOps discord. So enjoy the mods, feel free to critize what's buggy right now (and we expect that you find the bug's we aren't aware of) and stay safe!
  7. Hello! im trying to make a script that spawns 1-3 helicopters on a random location on a map and they starts to patroling. what i have so far is this : _vehicle = createVehicle [ "B_Heli_Light_01_F", player getPos[ 100, getDir player ], [], 0, "FLY" ]; createVehicleCrew _vehicle; this is spawning it in the air but i cant seem to find anything that makes it spawn random, this makes it spawn over the player head. i know that BIS_fnc_randomPos exists but cant seem to get it to work. i also need the script to add " [group _unit, getPos _unit, 1000] call BIS_fnc_taskPatrol; " to the helicopters init field to make it start patroling. and maybe if we are pushing it, maybe having to loiter a little around each waypoint i feel like i got almost all the pieces to the puzzle but have lost my glasses so i cant put it together... i hope you guys can help.
  8. Hi everyone, I need little help with spawning defender/garrison/static units into my mission. My question is if this is the right way to do this? What I do is open new mission on the same map as my main mission, carefully and precisely place all defender units (units that will stay on one position) save and export to SQF. I paste the code in "someTown.sqf" and then use this to spawn it in the main mission: ["someTown.sqf", "BIS_fnc_execVM", false, false] call BIS_fnc_MP; Probably there is more up to date and efficient way to do this via remoteExec but I cannot understand how to do it ... please help. Coding every static gun or defender position and heading is much slower and consumes much more time ...
  9. Hello guys, thanks for taking the time. I am working hard on an experience for some people that I am going to entertain as Zeus and mission maker, but gotten to a point where I have not manage to find any module, mod or other script that meet my specific needs. My friends during their adventure through a map, will come and go to different locations, and return to the same ones again potentially. Each time they do, I want to be able to spawn in AI units, under specific classnames, in very specific location like a marker or trigger. Maybe one AI of one type of classname stands at a gatehouse, and another AI of another type of classname is standing outside in the rain. But each time they go there, they will spawn in into the same spot or markers. And if they leave, they will despawn again, in order to save on performance for the server. I have seen many population scripts out there, but they generally populate areas and houses, they do not place them into very specific manual locations, or i can choose which classname will be placed down to the detail. I am also looking for the option that if I spawn a third guy by the guard house, he starts to patrol in a small radius when he has appeared. I can easily create this by placing down NPCs, but it is going to tax the performance if I have so many different locations populated all at once. It would be better if they despawn on leaving, and respawn on approach. It would also be useful if there are specific enemy classnames in an area they can attack, they will respawn later in case they want to go back and do the same attack over again. Anyone has any ideas or suggestions? Much appreciated!
  10. Hi all i have this script i use to spawn a heli, and it land at my location like planed But how do i make so that a trigger fires when i get inside the heli. i have tried with COND: BOB in P3REndHeli. also COND: BOB in EndHeli. but no joy, anyone got some ideas. Cheers Play3r private _P3REndHeli = createVehicle ["B_Heli_Transport_03_F", getMarkerPos "HeliSpawn", [], 0, "FLY"]; createVehicleCrew _P3REndHeli; _P3REndHeli setVehicleVarName "EndHeli"; systemChat str _P3REndHeli; private _LandingPad = "Land_HelipadEmpty_F" createVehicle position player; _waypointPickup = group driver _P3REndHeli addWaypoint [position _LandingPad,0]; _waypointPickup setWaypointType "SCRIPTED"; _waypointPickup setWaypointScript "A3\functions_f\waypoints\fn_wpLand.sqf";
  11. Hi guys, I am bashing my head with something very easy (hopefully 🙂). I want to make a script to fill some buildings (sorted by classname or random) with enemies in given location (town, village, etc.). The old way I used before was just making a trigger next to every big building in the location and pasting this in on activation: private _group = createGroup [WEST, true]; _unit1 = _group createUnit ["CUP_B_US_Soldier_OEFCP",(nearestBuilding thisTrigger buildingPos 1),[],0,"CAN_COLLIDE"]; _unit1 disableAI "PATH"; _unit1 setUnitPos "UP"; _unit2 = _group createUnit ["CUP_B_US_Soldier_MG_OEFCP",(nearestBuilding thisTrigger buildingPos 2),[],0,"CAN_COLLIDE"]; _unit2 disableAI "PATH"; _unit2 setUnitPos "UP"; _unit3 = _group createUnit ["CUP_B_US_Soldier_GL_OEFCP",(nearestBuilding thisTrigger buildingPos 3),[],0,"CAN_COLLIDE"]; _unit3 disableAI "PATH"; _unit3 setUnitPos "UP"; _unit4 = _group createUnit ["CUP_B_US_Soldier_OEFCP",(nearestBuilding thisTrigger buildingPos 4),[],0,"CAN_COLLIDE"]; _unit4 disableAI "PATH"; _unit4 setUnitPos "UP"; _unit5 = _group createUnit ["CUP_B_US_Soldier_MG_OEFCP",(nearestBuilding thisTrigger buildingPos 5),[],0,"CAN_COLLIDE"]; _unit5 disableAI "PATH"; _unit5 setUnitPos "UP"; _unit6 = _group createUnit ["CUP_B_US_Soldier_GL_OEFCP",(nearestBuilding thisTrigger buildingPos 6),[],0,"CAN_COLLIDE"]; _unit6 disableAI "PATH"; _unit6 setUnitPos "UP"; Its terribly tedious and I want to change it to a proper script executed by the server. Any ideas?
  12. What I began on my current AR project is to create a tool class with methods that make me some things easier. In this case I show how to create an easy to use CreateVehicle and a DeleteVehicle method with overloaded argument lists. Which just means that you can have different parameter syntaxes as known from various Arma 3 commands. I created a new script file in the newly created folder MyProject/scripts/GameCode/Tools according to the AR directory structure as I understand it^^. I named the file SaRo_Tools.c - this file will contain the class with my tools methods. What do I have to do when spawning a vehicle without that tools class? Something like this: Now instead of doing this we create our tools class which does most of this automatically: Now you have 2 easy methods to spawn a vehicle: IEntity vehicle1, vehicle2; //1st method using resource name and spawn position vehicle1 = SaRo_Tools.CreateVehicle("{DD774A8FD0989A78}Prefabs/Vehicles/Wheeled/M998/M1025_armed_M2HB_MERDC.et", Vector(1288.93, 0, 766.7)); //2nd method using resource name, an existing entity and a position vector relative to that entity vehicle2 = SaRo_Tools.CreateVehicle("{DD774A8FD0989A78}Prefabs/Vehicles/Wheeled/M998/M1025_armed_M2HB_MERDC.et", someEntity, Vector (0, 0, -15)); //spawns 15m behind someEntity Maybe I did some mistakes in this post because I did write it out of my mind partially. But I ll validate, expand and edit it if Im at home... Deletion methods will be done then as well EDIT: to get this done, I also added 2 entity deletion methods to the tools class. I just post those 2 methods and not the CreateVehicle methods from above again although they are in that class: Now you have 2 easy methods to delete an entity: //1st method delete using the entity ID SaRo_Tools.DeleteVehicle ( SaRo_BMHQ01MenuBaseClass.camoNetID ); //2nd method delete using the entity itself SaRo_Tools.DeleteVehicle ( someEntity ); Now YOU know how to build an own tools library class and you also know how to overload class methods. Its your turn to create more methods that way to get things a bit easier for you...
  13. Hi, there. I am trying to make two "factories" in my mission - one producing fuel and the other vehicle ammo points. Both factories should produce a box filled with fuel and "ammo points" respectively. The fuel and ammo points use ACE3 framework. For the fuel factory I made these script and it works perfectly (executed via initServer) : while {true} do { sleep 1800; _fuel = "CargoNet_01_barrels_F" createVehicle [4694.33,9483.27,0]; [_fuel, 1000] call ace_refuel_fnc_makeSource; _marker = createMarker ["Fuel Produced!", [4697.51,9475.91,0]]; _marker setMarkerType "loc_Truck"; sleep 300; deleteMarker "Fuel Produced!" }; Every half hour it produces one barrel with 1000 fuel (ACE). I tried to make the same thing with ammo points for vehicle rearming but no success. I am trying to implement ACE3 Rearm framework code (taken from https://ace3.acemod.org/wiki/framework/rearm-framework.html) : while {true} do { sleep 600; _ammobox = "CargoNet_01_box_F" createVehicle [5058.03,6888.37,0]; _ammobox = setVariable ["ace_rearm_isSupplyVehicle",true]; [_ammobox, 1200] call ace_rearm_fnc_setSupplyCount; _marker = createMarker ["Ammo Produced!", [5056.13,6886.58,0]]; _marker setMarkerType "loc_Truck"; sleep 300; deleteMarker "Ammo Produced!" }; But it doesn't spawn anything, it doesn't show any error and I have no clue why isn't working. Big thanks to everyone who wants to help a big script nOOb like myself.
  14. Hi. There's a two issues I'd like some help with for a KP Liberation mission I've created for the Chernarus 2020 map: 1) I want to add an oil rig as a factory. I've added the factory marker in the editor as below where I've experimented with changing its height. However, when I play the mission on the server and enter the capture zone, the bar just fills up blue with no AI spawning. I've only managed to spawn AI twice: once in mid-air where one died and the others vanished and another where a BTR-80 was in the water. Would I need a separate script that kicks in just for spawning OpFor AI on the oil rig? In the second screenshot there's respawn positions that came with the composition which I normally delete before saving. Can they be used instead? 2) I'd like to have active/dynamic playermarkers back just like in this thread. If you unPBO the mission, there's a GREUH_playermarkers.sqf file which I gather must be what I'm after. However, in the Parameters screen it's something that's only available under the GREUH player menu not KP Player Menu but GREUH doesn't work. How do I enable it for KP Player Menu? I know this can cause issues but for my mission I'm not using the Steam Workshop version and instead using the mission.sqm and all the folders/files in Missionframework from the GitHub site. I have also asked on the Discord channel (KP DEVELOPMENTS -> # kp-liberation) but unfortunately no one could help. Although someone did suggest because it's a composition rather than a single 'asset' (i.e. a house) I'm using and/or being on the water this might be what's causing the first issue? I have asked on the KP Liberation thread as well as the Discord server but unfortunately no one's being able to help so far. Thanks in advance!
  15. Hello i am newbie to scripting and arma3 editing and i can't find an answer to this: I spawn a group of AI infantry and a truck (will be 2 IFVs when i get it to work) then set the waypoint so the AI infantry group board the truck. I had no success yet. The AI infantry group move then stand still near the truck and do nothing. I would be glad if anyone can tell me what i am doing wrong. This is the code for the truck: And this is the code for the infantry group:
  16. What does this script do? This script spawns random reinforcements (group from 4 to 10 men) of the desired faction at the given position, and they will automatically redirect to players position (at the moment of script call, as Last Known Position). Does it work in multiplayer? Yes, it works in MultiPlayer and SinglePlayer Parameters _faction → String → Faction (see below) _sideReinforcements → Side → Side of reinforcements of which can be → west, east, independent _spawnPosition → Position → Center position of where you want to spawn reinforcements _rangeOfSpawn → int → Range of spawn from spawnPosition (if you like to narrow spawn just set this as 1) _addVehicle → Bool → Add a support vehicle Do you think side can be redundant? Maybe, but faction has been added secondly as I didn't want plain CSAT reinforcements when I'm playing on Livonia with Specnaz units, you know? I know not all RHS units have been added, I probably will, no guarantee. If you do script, you can.. Just look at the code, it's easy. Supported Factions SUPPORTED VANILLA FACTIONS: BLU_F NATO (standard) OPF_F CSAT (standard) IND_F AAF (standard) BLU_T_F NATO (Apex, pacific) OPF_T_F CSAT (Apex, pacific) IND_C_F Syndikat (Apex) BLU_W_F NATO Woodland (Contact) OPF_R_F Specnaz (Contact) IND_E_F LDF (Contact) SUPPORTED MODS FACTIONS: rhs_faction_usarmy_d RHS USAF (USA Army D OCP) rhs_faction_usarmy_wd RHS USAF (USA Army D UCP) rhs_faction_usmc_d RHS USAF (USA Army D MARPAT) rhs_faction_usmc_wd RHS USAF (USA Army WD MARPAT) rhs_faction_msv RHS AFRF (Russia MSV EMR) rhs_faction_vdv RHS AFRF (Russia VDV DES) rhssaf_faction_army RHS SAF (KOV Digital) Tban EricJ Taliban Units Edit: Added Syndikat faction IND_C_F (26/02/2022) How do I call the script? Let's say I am a BLUFOR player and I call for reinforcements, just put the following line in a activation trigger line: ["BLU_F", west, getMarkerPos "spawnMarkerPoint", 1, true] execVM "reinforcements.sqf"; Let's say RHS AFRF (Russians) enemy called reinforcements instead, those reinforcement will proceed to my position to engage: ["rhs_faction_msv", east, getMarkerPos "russianReinforcementsSpawnMarker", 1, false] execVM "reinforcements.sqf"; reinforcements.sqf //Uncomment following if used as function //params["_faction","_sideReinforcements","_spawnPosition", "_rangeOfSpawn","_addVehicle"]; //Uncomment following if used as script _faction = _this select 0; _sideReinforcements = _this select 1; _spawnPosition = _this select 2; _rangeOfSpawn = _this select 3; _addVehicle = _this select 4; _unitsArray = []; _vehicleArray = []; _unitsArrayToSpawn = []; _counter = 0; //Parsing factions switch (_faction) do { //Vanilla case "BLU_F": //NATO (standard) { _unitsArray = [ "B_Soldier_SL_F", "B_Medic_F", "B_Soldier_GL_F", "B_Soldier_F", "B_HeavyGunner_F", "B_Soldier_LAT_F", "B_Soldier_M_F", "B_Soldier_AR_F", "B_Soldier_LAT2_F", "B_Soldier_UAV_F" ]; _vehicleArray = [ "B_MRAP_01_hmg_F" ]; }; case "OPF_F": //CSAT (standard) { _unitsArray = [ "O_Soldier_SL_F", "O_Medic_F", "O_Soldier_HAT_F", "O_Soldier_GL_F", "O_Soldier_F", "O_HeavyGunner_F", "O_Soldier_F", "O_Soldier_M_F", "O_Soldier_AR_F", "O_Soldier_UAV_F" ]; _vehicleArray = [ "O_MRAP_02_hmg_F" ]; }; case "IND_F": //AAF units { _unitsArray = [ "I_Soldier_SL_F", "I_Medic_F", "I_Soldier_GL_F", "I_Soldier_F", "I_Soldier_AR_F", "I_Soldier_F", "I_Soldier_AT_F", "I_Soldier_AA_F", "I_Soldier_M_F", "I_Soldier_UAV_F" ]; _vehicleArray = [ "I_MRAP_03_hmg_F" ]; }; case "IND_C_F": //Syndikat units { _unitsArray = [ "I_C_Soldier_Para_1_F", "I_C_Soldier_Para_2_F", "I_C_Soldier_Bandit_7_F", "I_C_Soldier_Bandit_1_F", "I_C_Soldier_Para_5_F", "I_C_Soldier_Bandit_6_F", "I_C_Soldier_Bandit_5_F", "I_C_Soldier_Bandit_4_F", "I_C_Soldier_Para_6_F", "I_C_Soldier_Para_3_F" ]; _vehicleArray = [ "I_C_Offroad_02_AT_F" ]; }; case "OPF_T_F": //Chinese CSAT (Apex) { _unitsArray = [ "O_T_Soldier_SL_F", "O_T_Medic_F", "O_T_Soldier_HAT_F", "O_T_Soldier_GL_F", "O_T_Soldier_F", "O_T_HeavyGunner_F", "O_T_Soldier_F", "O_T_Soldier_M_F", "O_T_Soldier_AR_F", "O_T_Soldier_UAV_F" ]; _vehicleArray = [ "O_T_MRAP_02_hmg_ghex_F" ]; }; case "BLU_T_F": //NATO Pacific (Apex) { _unitsArray = [ "B_T_Soldier_SL_F", "B_T_Medic_F", "B_T_Soldier_GL_F", "B_T_Soldier_F", "B_T_HeavyGunner_F", "B_T_Soldier_LAT_F", "B_T_Soldier_M_F", "B_T_Soldier_AR_F", "B_T_Soldier_LAT2_F", "B_T_Soldier_UAV_F" ]; _vehicleArray = [ "B_T_MRAP_01_hmg_F" ]; }; case "BLU_W_F": //NATO (Contact) { _unitsArray = [ "B_W_Soldier_SL_F", "B_W_Medic_F", "B_W_Soldier_GL_F", "B_W_Soldier_F", "B_W_HeavyGunner_F", "B_W_Soldier_LAT_F", "B_W_Soldier_M_F", "B_W_Soldier_AR_F", "B_W_Soldier_LAT2_F", "B_W_Soldier_UAV_F" ]; _vehicleArray = [ "B_T_MRAP_01_hmg_F" ]; }; case "OPF_R_F": //Specnaz (Contact) { _unitsArray = [ "O_R_Soldier_SL_F", "O_R_Medic_F", "O_R_Soldier_LAT_F", "O_R_Soldier_GL_F", "O_R_JTAC_F", "O_R_JTAC_F", "O_R_JTAC_F", "O_R_Soldier_M_F", "O_R_Soldier_AR_F", "O_R_JTAC_F" ]; _vehicleArray = [ "O_T_LSV_02_armed_F" ]; }; case "INF_E_F": //LDF (Contact) { _unitsArray = [ "I_E_Soldier_TL_F", "I_E_Medic_F", "I_E_Soldier_GL_F", "I_E_Soldier_F", "I_E_Soldier_AR_F", "I_E_Soldier_F", "I_E_Soldier_AT_F", "I_E_Soldier_AA_F", "I_E_Soldier_M_F", "I_E_Soldier_UAV_F" ]; _vehicleArray = [ "I_E_Offroad_01_covered_F" ]; }; case "rhs_faction_usarmy_d": //RHS USAF (USA Army D OCP) { _unitsArray = [ "rhsusf_army_ocp_squadleader", "rhsusf_army_ocp_medic", "rhsusf_army_ocp_grenadier", "rhsusf_army_ocp_rifleman", "rhsusf_army_ocp_autorifleman", "rhsusf_army_ocp_rifleman", "rhsusf_army_ocp_javelin", "rhsusf_army_ocp_marksman", "rhsusf_army_ocp_aa", "rhsusf_army_ocp_uav" ]; _vehicleArray = [ "rhsusf_m1025_d_m2" ]; }; case "rhs_faction_usarmy_wd": //RHS USAF (USA Army W UCP) { _unitsArray = [ "rhsusf_army_ucp_squadleader", "rhsusf_army_ucp_medic", "rhsusf_army_ucp_grenadier", "rhsusf_army_ucp_rifleman", "rhsusf_army_ucp_autorifleman", "rhsusf_army_ucp_rifleman", "rhsusf_army_ucp_javelin", "rhsusf_army_ucp_marksman", "rhsusf_army_ucp_aa", "rhsusf_army_ucp_uav" ]; _vehicleArray = [ "rhsusf_m1025_w_m2" ]; }; case "rhs_faction_usmc_d": //RHS USAF (USMC D) { _unitsArray = [ "rhsusf_usmc_marpat_d_squadleader", "rhsusf_navy_sarc_d_fast", "rhsusf_usmc_marpat_d_grenadier", "rhsusf_usmc_marpat_d_rifleman", "rhsusf_usmc_marpat_d_autorifleman", "rhsusf_usmc_marpat_d_rifleman", "rhsusf_usmc_marpat_d_javelin", "rhsusf_usmc_marpat_d_marksman", "rhsusf_usmc_marpat_d_stinger", "rhsusf_usmc_marpat_d_uav" ]; _vehicleArray = [ "rhsusf_m1025_d_s_m2" ]; }; case "rhs_faction_usmc_wd": //RHS USAF (USMC WD MARPAT) { _unitsArray = [ "rhsusf_usmc_marpat_wd_squadleader", "rhsusf_navy_sarc_wd_fast", "rhsusf_usmc_marpat_wd_grenadier", "rhsusf_usmc_marpat_wd_rifleman", "rhsusf_usmc_marpat_wd_autorifleman", "rhsusf_usmc_marpat_wd_rifleman", "rhsusf_usmc_marpat_wd_javelin", "rhsusf_usmc_marpat_wd_marksman", "rhsusf_usmc_marpat_wd_stinger", "rhsusf_usmc_marpat_wd_uav" ]; _vehicleArray = [ "rhsusf_m1025_w_s_m2" ]; }; case "rhs_faction_msv": { _unitsArray = [ "rhs_msv_emr_sergeant", "rhs_msv_emr_medic", "rhs_msv_emr_grenadier_rpg", "rhs_msv_emr_rifleman", "rhs_msv_emr_arifleman_rpk", "rhs_msv_emr_rifleman", "rhs_msv_emr_rifleman", "rhs_msv_emr_aa", "rhs_msv_emr_LAT", "rhs_msv_emr_marksman" ]; _vehicleArray = [ "rhs_tigr_sts_msv" ]; }; case "rhs_faction_vdv": { _unitsArray = [ "rhs_vdv_des_sergeant", "rhs_vdv_des_medic", "rhs_vdv_des_grenadier_rpg", "rhs_vdv_des_rifleman", "rhs_vdv_des_arifleman_rpk", "rhs_vdv_des_rifleman", "rhs_vdv_des_rifleman", "rhs_vdv_des_LAT", "rhs_vdv_des_aa", "rhs_vdv_des_marksman" ]; _vehicleArray = [ "rhs_tigr_sts_3camo_msv" ]; }; case "Tban": { _unitsArray = [ "TBan_Fighter6", "TBan_Fighter5", "TBan_Fighter4", "TBan_Fighter3NH", "TBan_Fighter2NH", "TBan_Fighter1NH", "TBan_Fighter3", "TBan_Fighter2", "TBan_Fighter1" ]; _vehicleArray = [ "Tban_O_Offroad_01_F" ]; }; case "rhssaf_faction_army": { _unitsArray = [ "rhssaf_army_m10_digital_sq_Lead", "rhssaf_army_m10_digital_medic", "rhssaf_army_m10_digital_gl", "rhssaf_army_m10_digital_rifleman_m70", "rhssaf_army_m10_digital_mgun_m84", "rhssaf_army_m10_digital_rifleman_m70", "rhssaf_army_m10_digital_rifleman_m70", "rhssaf_army_m10_digital_spec_aa", "rhssaf_army_m10_digital_spec_at", "rhssaf_army_m10_digital_sniper_m76" ]; _vehicleArray = [ "rhssaf_m1151_olive_pkm" ]; }; }; _groupSize = [4,10] call BIS_fnc_randomInt; _unitsArray resize _groupSize; //Random position around given position _randomSpawnPosition = [_spawnPosition, random _rangeOfSpawn, random 360] call BIS_fnc_relPos; //Spawning group _spawnedGroup = [_randomSpawnPosition, _sideReinforcements, _unitsArray] call BIS_fnc_spawnGroup; _waypoint = _spawnedGroup addWaypoint [position (allPlayers select 0), 0]; _waypoint setWaypointBehaviour "AWARE"; _waypoint setWaypointCombatMode "RED"; _waypoint setWaypointSpeed "FULL"; _waypoint setWaypointType "MOVE"; _waypoint setWaypointStatements ["true",""]; _spawnedGroup setCurrentWaypoint [_spawnedGroup, 0]; //Spawning vehicle if (_addVehicle) then { _vehGroup = [_randomSpawnPosition, _sideReinforcements, _vehicleArray] call BIS_fnc_spawnGroup; _wp = _vehGroup addWaypoint [position (allPlayers select 0), 0]; _wp setWaypointBehaviour "AWARE"; _wp setWaypointCombatMode "RED"; _wp setWaypointSpeed "FULL"; _wp setWaypointType "MOVE"; _wp setWaypointStatements ["true",""]; _vehGroup setCurrentWaypoint [_vehGroup, 0]; };
  17. Hello there, I am facing some challenges to implement the findEmptyPosition and avoid collision among vehicles those spawn in the same spot. Some help to fix it will be very much appreciated. Here below is my code working pretty fine, except for the collisions in some rounds. If you prefer, here is for download: https://drive.google.com/file/d/1NIdU2pLEjl41M3Vlc0dVANRvuK3PFCqd/view?usp=sharing // SIDE SPAWNS // Spawnpoints for each faction. Only the specific faction can spawn. _bluAllSpawns = ["bluSpawn01","bluSpawn02","bluSpawn03","bluSpawn04","bluSpawn05","bluSpawn06"]; _opAllSpawns = ["opSpawn01","opSpawn02","opSpawn03","opSpawn04","opSpawn05","opSpawn06"]; _indAllSpawns = ["indSpawn01","indSpawn02","indSpawn03","indSpawn04","indSpawn05","indSpawn06"]; // ................................................................................................................................................ // SHARED DESTINY // Waypoints where any faction can go. _goToSharedDestiny = ["destinoComum01","destinoComum02","destinoComum03","destinoComum04"]; // SIDE DESTINY // Waypoints where only the specific faction can go. _goToDestinyBlu = ["destinoBlu01","destinoBlu02"]; _goToDestinyOp = ["destinoOp01","destinoOp02"]; _goToDestinyInd = ["destinoInd01","destinoInd02"]; // ANY DESTINY // Use _goToAnywhere for the group to consider going to both shared destinations and those of all factions. _goToAnywhere = _goToSharedDestiny + _goToDestinyBlu + _goToDestinyOp + _goToDestinyInd; // ................................................................................................................................................ // BLUFOR GROUPS // Number of soldiers and type of faction squads. _bluSquadLight = ["B_Soldier_TL_F", "B_soldier_AR_F"]; _bluSquadRegular = ["B_Soldier_TL_F", "B_soldier_AR_F", "B_soldier_AR_F", "B_soldier_AR_F"]; _bluSquadHeavy = ["B_Soldier_TL_F", "B_soldier_AR_F", "B_soldier_AR_F", "B_soldier_AR_F", "B_soldier_AR_F", "B_soldier_AR_F"]; _bluVehLight = ["B_Quadbike_01_F"]; _bluVehRegular = ["B_MRAP_01_hmg_F"]; _bluVehHeavy = ["B_MBT_01_cannon_F"]; // OPFOR GROUPS // Number of soldiers and type of faction squads. _opSquadLight = ["O_Soldier_TL_F", "O_soldier_AR_F"]; _opSquadRegular = ["O_Soldier_TL_F", "O_soldier_AR_F", "O_soldier_AR_F", "O_soldier_AR_F"]; _opSquadHeavy = ["O_Soldier_TL_F", "O_soldier_AR_F", "O_soldier_AR_F", "O_soldier_AR_F", "O_soldier_AR_F", "O_soldier_AR_F"]; _opVehLight = ["O_Quadbike_01_F"]; _opVehRegular = ["O_MRAP_02_hmg_F"]; _opVehHeavy = ["O_MBT_02_cannon_F"]; // INDEPENDENT GROUPS // Number of soldiers and type of faction squads. _indSquadLight = ["I_Soldier_TL_F", "I_Soldier_AR_F"]; _indSquadRegular = ["I_Soldier_TL_F", "I_Soldier_AR_F", "I_Soldier_AR_F", "I_Soldier_AR_F"]; _indSquadHeavy = ["I_Soldier_TL_F", "I_Soldier_AR_F", "I_Soldier_AR_F", "I_Soldier_AR_F", "I_Soldier_AR_F", "I_Soldier_AR_F"]; _indVehLight = ["I_Quadbike_01_F"]; _indVehRegular = ["I_MRAP_03_hmg_F"]; _indVehHeavy = ["I_MBT_03_cannon_F"]; // ................................................................................................................................................ // BLUFOR STRATEGY // All faction groups and destinations. _bluGroup01 = [getmarkerpos (selectRandom _bluAllSpawns), BLUFOR, _bluSquadLight,[],[],[],[],[],180] call BIS_fnc_spawnGroup; _bluGroup01 addWaypoint [getmarkerpos (selectRandom _goToSharedDestiny), 0]; _bluGroup02 = [getmarkerpos (selectRandom _bluAllSpawns), BLUFOR, _bluSquadLight,[],[],[],[],[],180] call BIS_fnc_spawnGroup; _bluGroup02 addWaypoint [getmarkerpos (selectRandom _goToDestinyBlu), 0]; _bluGroup03 = [getmarkerpos (selectRandom _bluAllSpawns), BLUFOR, _bluSquadRegular,[],[],[],[],[],180] call BIS_fnc_spawnGroup; _bluGroup03 addWaypoint [getmarkerpos (selectRandom _goToSharedDestiny), 0]; _bluGroup03 addWaypoint [getmarkerpos (selectRandom _goToDestinyBlu), 1]; _bluGroup04 = [getmarkerpos (selectRandom _bluAllSpawns), BLUFOR, _bluSquadHeavy,[],[],[],[],[],180] call BIS_fnc_spawnGroup; _bluGroup04 addWaypoint [getmarkerpos (selectRandom _goToAnywhere), 0]; _bluGroup04 addWaypoint [getmarkerpos (selectRandom _goToAnywhere), 1]; _bluGroup05 = [getmarkerpos (selectRandom _bluAllSpawns), BLUFOR, _bluVehHeavy,[],[],[],[],[],180] call BIS_fnc_spawnGroup; //This one will hold position (no waypoint). _bluGroup06 = [getmarkerpos (selectRandom _bluAllSpawns), BLUFOR, _bluVehHeavy,[],[],[],[],[],180] call BIS_fnc_spawnGroup; _bluGroup06 addWaypoint [getmarkerpos (selectRandom _goToDestinyBlu), 0]; // ................................................................................................................................................ // OPFOR STRATEGY // All faction groups and destinations. _opGroup01 = [getmarkerpos (selectRandom _opAllSpawns), OPFOR, _opSquadLight,[],[],[],[],[],180] call BIS_fnc_spawnGroup; _opGroup01 addWaypoint [getmarkerpos (selectRandom _goToSharedDestiny), 0]; _opGroup02 = [getmarkerpos (selectRandom _opAllSpawns), OPFOR, _opSquadRegular,[],[],[],[],[],180] call BIS_fnc_spawnGroup; _opGroup02 addWaypoint [getmarkerpos (selectRandom _goToSharedDestiny), 0]; _opGroup02 addWaypoint [getmarkerpos (selectRandom _goToDestinyOp), 1]; _opGroup03 = [getmarkerpos (selectRandom _opAllSpawns), OPFOR, _opSquadHeavy,[],[],[],[],[],180] call BIS_fnc_spawnGroup; _opGroup03 addWaypoint [getmarkerpos (selectRandom _goToDestinyOp), 0]; // ................................................................................................................................................ // INDEPENDENT STRATEGY // All faction groups and destinations. _indGroup01 = [getmarkerpos (selectRandom _indAllSpawns), INDEPENDENT, _indSquadLight,[],[],[],[],[],180] call BIS_fnc_spawnGroup; _indGroup01 addWaypoint [getmarkerpos (selectRandom _goToSharedDestiny), 0]; _indGroup02 = [getmarkerpos (selectRandom _indAllSpawns), INDEPENDENT, _indSquadRegular,[],[],[],[],[],180] call BIS_fnc_spawnGroup; _indGroup02 addWaypoint [getmarkerpos (selectRandom _goToSharedDestiny), 0]; _indGroup02 addWaypoint [getmarkerpos (selectRandom _goToDestinyInd), 1]; _indGroup02 addWaypoint [getmarkerpos (selectRandom _goToDestinyInd), 2]; _indGroup02 addWaypoint [getmarkerpos (selectRandom _goToSharedDestiny), 3]; _indGroup03 = [getmarkerpos (selectRandom _indAllSpawns), INDEPENDENT, _indSquadHeavy,[],[],[],[],[],180] call BIS_fnc_spawnGroup; _indGroup03 addWaypoint [getmarkerpos (selectRandom _goToDestinyInd), 0]; _indGroup04 = [getmarkerpos (selectRandom _indAllSpawns), INDEPENDENT, _indVehHeavy,[],[],[],[],[],180] call BIS_fnc_spawnGroup; _indGroup04 addWaypoint [getmarkerpos (selectRandom _goToDestinyInd), 0];
  18. Hey, I'm new to coding and mission editing in Arma, so please go easy on me. I'm attempting to create a template of sorts to build future missions out of, I want to have a clean, easy & modular spawn system that can be easily tweaked for different scenarios, I also want to do this without mods. I am aware of 2 main ways of handling spawning AI, "createUnit" and "BIS_fnc_spawnGroup" I'm not exactly sure what is best for my specific use case, and I'm not entirely sure how to use either of them properly. Essentially what i want to do is have a trigger spawn multiple units of my choice on a marker and then have the units move towards another marker, I also want to be able to modify the behavior of these units (ex. start on limited speed.) I have tried a few different methods to achieve this, these are the issues I'm having with each: With "createUnit" the only way i have found to spawn multiple units is to repeat the code over and over, I'm sure there's a better way to do this and if so I'd love to know. Also with my current setup i have to repeat the domove code for each individual unit, I would also like to know if there is a better way to do this. Here is the code located in the triggers "On activation" field: With "BIS_fnc_spawnGroup" I'm not entirely sure how to order the units spawned within to move towards a marker, I would like to know how to do this, and I also read somewhere that the group will not be automatically deleted when all units are dead so I added a line at the end, I have no idea if it works though. Here's the code for that from the triggers activation field: I read that createUnit is better for performance when paired with the sleep command, however i have no idea how that works, and I also have my doubts, at-least with my current code repeating the same lines over and over for each unit seems very inefficient, the BIS command seems much cleaner however i don't know how to issue a move order with it which is my main problem. Additionally i would like to setup a headless client but that's a whole different topic and I don't want to draw this out any further, though if you feel like you have some useful advice on that please do share. Thanks and any advice & methods is appreciated. ❤️
  19. Hi all, Here is a new module in MGI Advanced Module addon, for spawning any groups you want, any time... (done) This module allows: - to spawn any group, even customized, on any side, - spawning on multiple possible areas (triggers) - with a wide randomized choice or a very specific group. You can place several modules on the map, each of them have their own parameters; 1. Choose the side (applies to all groups spawned from a module, no matter the initial vanilla side). So civilian units can be aggressors. 2. decide if you want to spawn: * at total random (so the groups are picked in cfgGroups, but for the side you chose (normal limitation) * at randomized or specific faction(s) . They must exist in cfgGroups (not all factions from cfgFactionClasses are available for groups). All factions (cfgGroups) are available so not depending, here, on the final side * You can filter these first possibilities by the type(s) of groups. For example, "infantry" and/or "motorized" and/or "armored"... But, these types must exist in the cfgGroups. * you can choose to spawn a specific group (from cfgGroups).. or even an array of units, vehicles... or even an edited group (with all customized textures, pylons, loadouts...) * linked group(s) on module, customized or not, will be candidates for spawning. That's fine for spawning not existing groups such as air or sea patrols. 3. Choose the attitude: behavior, combat mode, formation... 4. choose the repeat sequence (limitation and delay) 5. decide on what condition groups module can spawn (not only at start, but any time!) 6. decide for a simple task (or not). Chase players, enemies, defend... 7. run a code for each group (useful for specific task) MODULE(S) IN 3DEN - Position/ area of the module(s) if no synced trigger area. Direction of the module, in 3den, is the direction of the group (if no synced trigger area) SYNCED TRIGGER AREA(S) - The position, area and direction of the module doesn't matter any more. The group(s) are spawning at randomized positions in randomized trigger area(s), with the direction of the trigger area. SYNCED UNIT(S) - In 3den, you can place (customized or not) group(s) with the module(s). No matter if you synced one (leader or not) or several units of a group, with the module. The group will be candidate for spawning. PARAMETERS SIDE - Definitely the side of your group(s) for this module. No matter the choice you did (edited group, chosen faction(s), or type(s) of group or group(s)..) What ever you spawn we belong to this side. --> But, if you let the module at full random (no synced group, no, faction, no type, no group), in this case, the randomized group is picked among the native possibility from cfgGroups. So, if you just select a side (say EAST), you'll spawn randomized groups(s) from OPFOR. HOW MANY GROUPS - The number of group(s) to be spawned at each occurrence. Randomization will depend on the possibility of what you want to spawn, so your choice) Min 1 max 12 (limited for performance saving when spawning heavy customized groups. Feel free to add other modules) NOTE: The modules works with edited groups or existing configs/classes of groups in cfgGroups (see config viewer from console). So, scripted groups have always the architecture: configFile >> "cfgGroups" >> "side" >> "faction"* >> "type of group" >> "group" ... then units/vehicles for each group Example: side like "Indep" , faction like "IND_E_F", type like "infantry", group like "I_E_InfSquad" FACTION(S)* - If empty, no filter about them. If filled without any more details (type(s), group(s) ) all available factions in cfgGroups can be used to spawn any child type, then any child group. But ⚠️ all current faction names can't work. Some existing factions in cfgFactionClasses are not present in cfgGroups. For example: "CIV_IDAP_F" (IDAP civilian faction has no group) or even "OPF_V_F" (Arma Viper) can't work in the architecture of cfgGroups. (for Viper, the only group defined in: configfile >> "CfgGroups" >> "East" >> "OPF_F" >> "SpecOps" >> "OI_ViperTeam" exits. So at faction level, there is nothing to do). You can fill the parameter with a working class like: "OPF_F" , or the config (configfile >> "CfgGroups" >> "East" >> "OPF_F"), or an array of these possibilities. Not case sensitive. TYPE(S) - if more a filter about what you want to spawn. That should be simple as "infantry" or " motorized or mechanized" or "armored". That doesn't. Even in Arma vanilla, you can find exotic classes as "motorized_MTP". Any dev has his own mind to sort the groups by types. The reason is probably the way you can find sorted groups in 3den's right panel. But, it's just impossible (or needs an updated list of hundreds of names) to filter groups easily. You have to do that job, if you want to do so, writing a config or a class or an array of that, for filtering the type(s). Not case sensitive but do not make typo's error! If wrong, there is no more filter. You can fill the parameter with a working class (not the config) like: "specops", or an array of these possibilities. SPECIFIC GROUP(S) - a step more for less randomization. You are at the group level. As factions, you can fill it with class (of group) or config or an array of these possibilities. Much more, you can add arrays of units/vehicles class(es). That's also a way to customize some groups, but one the contrary of synced edited ones, you'll not able to define appearance for vehicles or pylons payload at this moment. RADIUS AREA - radius of the module area, so the spawn area if no synced trigger areas. Useless if any trigger area synced. GROUP(S) DIRECTION - orientation of the module in 3den (shift mousse drag) . Do not write anything on field (it's a result, not an entry). Useless if any trigger area synced. GROUP(S) SKILL - As 3den, skill for whole group, with +/-10% randomized on each units. ENABLE DYNAMIC SIMULATION - As in 3den. See Biki for detailed explanation (recommended) CONDITION FIELD - checked every 2 seconds. So, much more convenient than a simple condition of presence at start! Feel free to do what you want but return a boolean. Examples: * spawning only at night : sunOrMoon < 0.5 * strengthening weakened side : INDEPENDENT countSide allGroups < 3 * waiting for more players : count allPlayers > 2 * even checking for 1000 m distance at least from any player: private _possAreas = _logic getVariable "possAreas"; (count allPlayers > 0 && allPlayers findIf {private _plyr = _x; _possAreas findIf {_plyr distance _x#0 < 1000} == -1} == -1) but that will not despawn or hide or disable the groups! See the dynamic simulation instead. REPEAT OCCURRENCE - the added times for re-spawning the same groups (not at the same place) . 0 means no more occurrence. -1 means infinite repeat. So if you want to spawn 3 times a group, set it to 2 (1 shot + 2 added) INTERVAL FOR REPEAT - A delay between 2 consecutive spawns , if the condition are met. If not, the spawn will wait for condition to be TRUE, then spawn, then wait for interval duration, then check for condition... min 30 sec max 2 hours. FORMATION OF THE GROUP - As usual. Sometimes this setting is reinitialized to default wedge. I didn't identify why. So check twice before OK button and save scenario. BEHAVIOR - (or behaviour, sorry) Same as usual COMBAT MODE - same as usual SPEED MODE - As usual. same little problem as formation. Check twice. INSIGNIA - I hope that works fine everywhere... CODE FOR GROUP - Blank of any code (without {}). Passes parameters are <group> <<leader>, <vehicles of the group> . For example, just write: params ["_grp","_lead","_vehs"]; private _wp = _grp addWaypoint [<aPosition>,0]; _wp setWaypointType "MOVE"; _lead forceFlagTexture "\A3\Data_F\Flags\Flag_red_CO.paa"; {_x setFuel 0.2} forEach _vehs No bracket, just like this. BASIC TASK - can be: * Do Nothing (the preferred one of dumb AIs) * Attack nearest known enemy. So the group will start after an enemy knowledge acquisition. Not before. I hope I managed air assets for chasing air assets... I can't imagine infantry running after a jet. * Chase nearest enemy. Same as above but the position of nearest enemy is known (for spawning attack waves for example) * Attack nearest Player (known enemy) . The group must acquire the detection of a hostile player. * Chase nearest player (enemy). The group will start the hunting on player's (updated) position. * Defend this area. some SAD waypoints in the area of the group(s). known difficulties - Mods like Unsung or CUP or RHS (all in fact) requires a sharp attention for the name of the factions/groups but also Types... of groups. You can't imagine hundreds of names for stupid things like "infantry" "armored" "mechanized" ... That should be normalized, but not! - Too many mods, even non used by mission, but just loaded on server (so ticked), will affect the randomization for nuts, and lead to unwanted results like Arma or CUP units during Unsung play. know bugs all corrected so far To do list: - respawn without delay on whole group death - add a filter for mods... A lot of work. Enjoy! All feedback welcome. [RELEASED]
  20. Hello everyone! I haven't been active for a very long time. Now I am back and I need your help. I have downloaded a ready MP/Coop Mission - Rush Redux on Tanoa by OPTiX. Since we are a small community on a private server, I need to make this mission better playable and it needs to be agains AI soldiers, so my friends and I can fight them and still finsih the main mission by completing the objectives. This is possible by destroying the MCOM's when playing on the OPFOR side because if you spawn as a BLUFOR player, the enemies will simply show up, fire upon you and your squad mates and not attack the objective. So the gameplay would be pretty boring. That's why I am going to remove the BLUFOR playable units. I have tried using THIS example with the script in the description, including my own config lines of the enemy soldiers, but it didn't work, showing me that ")" was missing on a line in the main script: { if (_Spawntarget distance _x˃_Deletedistance) then {deleteVehicle _x;}; } forEach units _EditGroup; } foreach (allGroups select {side _x == _Spawnside && (_x getVariable ["spawned",true])}); And because it didn't work I tried with A.E.S (Ambient Enemy Spawner), but the enemy soldiers spawn around me very rare and too late, and it's always laggy as hell. I have tried different options in the main module, but I wasn't satisfied with the results. Other than that, I would like to use a simple script, may be like the first one above, in order to place down custom AI units, not only Vanilla, so I can put enemies from any mod I would like to use, and I need to make a stable version without any lagg while playing. What would you recommend me to do? May be put some units around the map and automatically spawn them on me when I start playing, but the thing is that the player always starts on a different random location and can spawn in the HQ or in a vehicle. If I want to use custom enemy units I guess I will have to use a config line to get them working. Please, give me some advices, scripts or suggestions how to accomplish this task. I want the enemies to hunt down the players. Thank you in advance!
  21. Hello everyone! I read a post by another user and felt the need to finally give back to the community. I give to you functional HEMTT Movers and SAM trailers. these 3 addActions allow players to tow and un-tow SAM trailers. Works on dedicated servers too! Semper Prorsum! Steam Workshop Demo Mission initPlayerLocal.sqf Thank you Larrow, pierremgi, and Davidoss . For me to be able to read someone's request for help and know what needs to be done before I even open notePad. Is all thanks to your tutelage. Both directly and indirectly through your extensive posts helping others. I am in your debt, thank you.
  22. I have a spawned boat that i spawn a ammobox (rhs_7ya37_1_singl) and i attach the ammobox to the boat, but if i sit in the boat i 1' person the box disappear but if i look thru 3' person the ammobox is in the boat. can anyone help me to find out what i can do so the box is visible i 1' person also Cheers
  23. Sup! I want to ask what do you think about these two blocks of code, performance wise. It's a 'side process' on client that fires an event on a dedicated server. My first approach was using a spawn-while-loop, but after some research (https://ace3mod.com/wiki/development/arma-3-scheduler-and-our-practices.html) I want to try another approach. I'm using CBA_A3 by the way. Using spawn-while-loop: // from some other piece of code --> fwp_saveInterval = 30 [] spawn { while {true} do { ["FWP_EH_serverUnitSave", [player, getPlayerUID player]] call CBA_fnc_serverEvent; // skip interval sleep fwp_saveInterval; }; }; Using CBA_fnc_addPerFrameHandler: // from other piece of code --> fwp_saveInterval = 30 fwp_clientAutosavePFH = [ { ["FWP_EH_serverUnitSave", [player, getPlayerUID player]] call CBA_fnc_serverEvent; }, fwp_saveInterval, [] ] call CBA_fnc_addPerFrameHandler; Thanks in advance 😄
  24. Made a mission like always. Hosted a listen server. My friends join the lobby. We start. Im on the ground as a soldier like normal. Friends are seagulls above their soldier. The ace nametag thing above the soldiers says "error: no unit." I have like a thousand hours in the editor and I have never run into this problem before. My own troubleshooting: I turned respawn off, since seagulls come with the respawn, it still happens. I started up a second instance of arma from my own pc and joined to rule out if my friends had other versions of something, it still happens. When the non-host comes to the point where the map should be visible before mission start, it says "could not connect to the positioning system" or whatever, but all the soldiers I placed have a map so it's like they don't get their gear even. Im thinking maybe something just glitched tf out and I should try to redo the mission with a fresh start. Anyone have a clue? Mods used: CBA ACE3 ALIVE TFAR RHS ASR_AI Kunduz. SOLVED When using doStop in MP on playable characters, all except the host become seagulls. This happens in total vanilla too. I sent a bug-report to BIS.
  25. Hello everyone. Let's say I'm running a mission that currently has over 1000 running scripts (diag_activeScripts#0 > 1000): for"_i" from 0 to 1000 do { [] spawn { while {true} do { for "_i" from 0 to 50000 do {true} } } } Each iteration of every script requires about 20 ms to complete, which is well above the scheduler's execution time limit (3 ms). This practically means that if my game is running @60 FPS (16.6 ms per frame) and I have a script at the 1001st position in the queue, it will be executed at least over ~17 seconds later! And this is just the first iteration of my script. There will be a ~17s delay between each iteration. This is only a stress test of course, but still I'd rather my scripts were executed ASAP. I don't mean like 'call', because my scripts are way too demanding for calling. They have to be executed in the scheduled environment. I can think of a dirty method (using a perFrame eventHandler, and executing the code bit by bit), but I was hoping for a more straightforward solution. Does anyone know a way?