Search the Community
Showing results for tags 'Custom'.
Found 83 results
-
"The Peacemakers": Sandbox mission/Apex Showcase
Frankdatank1218 posted a topic in ARMA 3 - USER MISSIONS
If you have Arma 3 Apex and are either incapable or can't bother to be making some missions and content I made one myself. It's an open sandbox with every Apex vehicle, gun, and gear piece available. It features a firing range, respawn and revive system, vehicle respawns, toggle-able missions, and a fully stocked virtual arsenal. Linked below is the 16 player Multiplayer version and Singleplayer version: Multiplayer version: https://steamcommunity.com/sharedfiles/filedetails/?id=704886710&searchtext=peacemakers Singleplayer version: https://steamcommunity.com/sharedfiles/filedetails/?id=704884013&searchtext=peacemakers The singleplayer version has some different features. No player respawns, but you can switch between several playable characters and recruit as many or as little as you would like into your squad. You could also just go completely solo. -
Hello. I was searching for answer to this question, but couldn't find anything that can really help me. I am not so good with scripting that's why some tutorials I found were really complicated for me. So my question is, how to add custom unit in the game editor ? I created 7 characters all with custom uniforms and weapons but I would like to have them as a unit in editor so I don't have to copy/paste them every single time I start with new mission. I have them saved in notepad files. I hope you understand what I want. I am sure this was asked before so don't go hard on me for asking it again, please. You can post links to some tutorials, any help will be appreciated. :)
-
For some reason, the HUD is suddenly broken inside a fighter I'm working on. Full CfgVehicles code: class CfgVehicles { class Air; class Plane: Air { class HitPoints; }; class Plane_Base_F: Plane { class AnimationSources; class HitPoints: HitPoints { class HitHull; }; }; class PlaneWreck; class Plane_Fighter_01_base_F: Plane_Base_F { features = "Randomization: No <br />Camo selections: 1 - Body, wings, and gear <br />Script door sources: None <br />Script animations: None <br />Executed scripts: None <br />Firing from vehicles: No <br />Slingload: No <br />Cargo proxy indexes: None"; author = $STR_A3_Night515; DLC = AegisMod; mapSize = 15.5; class SimpleObject { animate[] = {}; hide[] = {}; verticalOffset = 0; }; _generalMacro = "Plane_Fighter_01_base_F"; scope = private; model = "\Air_F_Aegis\Plane_Fighter_01\Plane_Fighter_01_F.p3d"; editorSubcategory = "EdSubcat_Planes"; icon = "\Air_F_Aegis\Plane_Fighter_01\Data\UI\Map_Plane_Fighter_01_CA.paa"; picture = "\Air_F_Aegis\Plane_Fighter_01\Data\UI\Plane_Fighter_01_CA.paa"; destrType = DestructWreck; slingLoadCargoMemoryPoints[] = { "SlingLoadCargo1", "SlingLoadCargo2", "SlingLoadCargo3", "SlingLoadCargo4" }; memoryPointTaskMarker = "TaskMarker_1_pos"; armor = 80; armorStructural = 1; armorLights = 1; epeImpulseDamageCoef = 200; damageResistance = 0.01096; accuracy = 0.4; class Library { libTextDesc = $STR_A3_CfgVehicles_B_Plane_Fighter_01_F_Library0; }; driverAction = pilot_plane_fighter_01; getinAction = pilot_plane_fighter_01_Enter; getoutaction = pilot_plane_fighter_01_Exit; precisegetinout = true; viewDriverShadow = true; viewCargoShadow = true; viewDriverShadowDiff = 0.5; viewDriverShadowAmb = 0.5; LockDetectionSystem = CM_Lock_Radar; incomingMissileDetectionSystem = CM_Missile; class Turrets{}; class TransportItems{}; #include "sounds.hpp" vtol = true; altNoForce = 35000; altFullForce = 13636; maxSpeed = 1900; aileronSensitivity = 1.1; elevatorSensitivity = 0.8; rudderInfluence = 0.4; aileronControlsSensitivityCoef = 3; elevatorControlsSensitivityCoef = 4; rudderControlsSensitivityCoef = 4; elevatorCoef[] = {0.5,0.9,1.1,1.3,1.4,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5}; aileronCoef[] = {1,1.75,2.5,2.5,3.5,3.5,3.5,3.5,3.5,3.5,3.5,3.5,3.5,2,1,1}; rudderCoef[] = {0.6,1.0,1.0,0.9,0.8,0.7,0.6}; flapsFrictionCoef = 0.5; angleOfIndicence = 0.05235987; draconicForceXCoef = 8.0; draconicForceYCoef = 2.3; draconicForceZCoef = 1.0; draconicTorqueXCoef = 1.2; draconicTorqueYCoef = 1.0; envelope[] = {0.1,0.5,3,8,9,9,9,6.85,6.5,5.8,4.6,2.8,0}; thrustCoef[] = {1.2,1.6,2,1.9,1.8,1.7,1.6,1.5,1.4, 1.2,1.1,0.9,0.5,0.3,0,0}; acceleration = 300; landingSpeed = 250; landingAoa = "rad 10"; threat[] = {1,1,1}; irScanRangeMin = 3000; irScanRangeMax = 10000; irScanToEyeFactor = 4; laserScanner = 1; showAllTargets = 4; minFireTime = 30; headAimDown = 0.0; cabinOpening = true; brakeDistance = 150; fov = 1.5; dustEffect = HeliDust; waterEffect = HeliWater; driverLeftHandAnimName = "throttle_stick"; driverRightHandAnimName = "flight_stick"; memoryPointsGetInDriver = "GetIn_driver_pos"; memoryPointsGetInDriverDir = "GetIn_driver_dir"; memoryPointLRocket = "Rocket_1"; memoryPointRRocket = "Rocket_2"; memoryPointCM[] = { "FlareLauncher_1_pos", "FlareLauncher_2_pos" }; memoryPointCMDir[] = { "FlareLauncher_1_dir", "FlareLauncher_2_dir" }; memoryPointLDust = "WheelDust_left_pos"; memoryPointRDust = "WheelDust_right_pos"; memoryPointGun = "Usti hlavne"; gunAimDown = 0.0; selectionFireAnim = "zasleh"; gearUpTime = 3; gearDownTime = 3; driveOnComponent[] = { "wheel_1", "wheel_2", "wheel_3" }; numberPhysicalWheels = 3; wheelSteeringSensitivity = 2.5; class Exhausts { class Exhaust_1 { position = "Exhaust_1_pos"; direction = "Exhaust_1_dir"; effect = ExhaustsEffectJet; }; }; class WingVortices { class BodyLeft { effectName = BodyVortices; position = "body_vapour_L_S"; }; class BodyRight { effectName = BodyVortices; position = "body_vapour_R_S"; }; class WingTipLeft { effectName = WingVortices; position = "body_vapour_L_E"; }; class WingTipRight { effectName = WingVortices; position = "body_vapour_R_E"; }; }; class Reflectors { class Gear_1_light { color[] = {0.9,1.0,0.8}; ambient[] = {0.009,0.01,0.008}; intensity = 25000; size = 1; innerAngle = 0; outerAngle = 90; coneFadeCoef = 12; position = "Light_L"; direction = "Light_L_end"; hitpoint = ""; selection = ""; useFlare = true; flareSize = 0.5; flareMaxDistance = 30; class Attenuation { start = false; constant = false; linear = 15; quadratic = 7; hardLimitStart = 75; hardLimitEnd = 100; }; }; }; class AnimationSources: AnimationSources { class AddFalchion { source = user; animPeriod = 0.000001; initPhase = 0; weapon = Missile_AA_04_Plane_CAS_01_F; }; class AddGbu12 { source = user; animPeriod = 0.000001; initPhase = 0; weapon = GBU12BombLauncher; }; class AddZephyr { source = user; animPeriod = 0.000001; initPhase = 0; weapon = missiles_Zephyr; }; class Hatch_1_Bay { source = maxHoldsterValue; animPeriod = 0.6; initPhase = 0; }; class Hatch_2_Bay { source = maxHoldsterValue; animPeriod = 0.6; initPhase = 0; }; class Hatch_3_Bay { source = maxHoldsterValue; animPeriod = 0.6; initPhase = 0; }; class Hatch_4_Bay { source = maxHoldsterValue; animPeriod = 0.6; initPhase = 0; }; class Muzzle_flash { source = ammorandom; weapon = gatling_25mm; }; }; hiddenSelections[] = {"camo"}; hiddenSelectionsTextures[] = {"\Air_F_Aegis\Plane_Fighter_01\Data\Plane_Fighter_01_ext_CO.paa"}; class HitPoints: HitPoints { class HitHull: HitHull { armor = 999; explosionShielding = 10; name = "hull_hit"; passThrough = 0.5; visual = "hull_hit"; radius = 0.01; minimalHit = 0.02; depends = "Total"; material = -1; }; class HitEngine: HitHull { armor = 1.5; explosionShielding = 2; name = "engine_hit"; passThrough = 1; visual = "engine_hit"; radius = 0.48; minimalHit = 0.1; }; class HitAvionics: HitHull { armor = 3; explosionShielding = 1; name = "avionics_hit"; passThrough = 0.2; visual = "avionics_hit"; radius = 0.3; }; class HitFuel: HitHull { armor = 3; explosionShielding = 4; name = "fuel_hit"; passThrough = 0.5; visual = "fuel_hit"; radius = 2.3; minimalHit = 0.1; }; class HitGlass1: HitHull { armor = 1.5; explosionShielding = 3; name = "glass_1"; passThrough = 0; visual = "glass_1"; radius = 0.2; minimalHit = 0.1; }; class HitGlass2: HitHull { armor = 3; explosionShielding = 4; name = "glass_2"; passThrough = 0; visual = "glass_2"; radius = 0.1; minimalHit = 0.1; }; }; class Damage { tex[] = {}; mat[] = { "\Air_F_Aegis\Plane_Fighter_01\Data\Cannon.rvmat", "\Air_F_Aegis\Plane_Fighter_01\Data\Cannon_damage.rvmat", "\Air_F_Aegis\Plane_Fighter_01\Data\Cannon_destruct.rvmat", "\Air_F_Aegis\Plane_Fighter_01\Data\Plane_Fighter_01_ext.rvmat", "\Air_F_Aegis\Plane_Fighter_01\Data\Plane_Fighter_01_ext_damage.rvmat", "\Air_F_Aegis\Plane_Fighter_01\Data\Plane_Fighter_01_ext_destruct.rvmat", "\Air_F_Aegis\Plane_Fighter_01\Data\Plane_Fighter_01_glass.rvmat", "\Air_F_Aegis\Plane_Fighter_01\Data\Plane_Fighter_01_glass_damage.rvmat", "\Air_F_Aegis\Plane_Fighter_01\Data\Plane_Fighter_01_glass_damage.rvmat", "\Air_F_Aegis\Plane_Fighter_01\Data\Plane_Fighter_01_int_glass.rvmat", "\Air_F_Aegis\Plane_Fighter_01\Data\Plane_Fighter_01_int_glass_damage.rvmat", "\Air_F_Aegis\Plane_Fighter_01\Data\Plane_Fighter_01_int_glass_damage.rvmat" }; }; memoryPointDriverOptics = "PilotCamera_pos"; unitInfoType = RscOptics_CAS_01_TGP; class pilotCamera { class OpticsIn { class Wide { opticsDisplayName = "W"; initAngleX = 0; minAngleX = 0; maxAngleX = 0; initAngleY = 0; minAngleY = 0; maxAngleY = 0; initFov = "(30 / 120)"; minFov = "(30 / 120)"; maxFov = "(30 / 120)"; directionStabilized = true; visionMode[] = { Normal, Ti }; thermalMode[] = {0,1}; gunnerOpticsModel = "\A3\Drones_F\Weapons_F_Gamma\Reticle\UAV_Optics_Gunner_wide_F.p3d"; opticsPPEffects[] = { OpticsCHAbera2, OpticsBlur2 }; }; class Medium: Wide { opticsDisplayName = "M"; initFov = "(15 / 120)"; minFov = "(15 / 120)"; maxFov = "(15 / 120)"; gunnerOpticsModel = "\A3\Drones_F\Weapons_F_Gamma\Reticle\UAV_Optics_Gunner_medium_F.p3d"; }; class Narrow: Wide { opticsDisplayName = "N"; initFov = "(7.5 / 120)"; minFov = "(7.5 / 120)"; maxFov = "(7.5 / 120)"; gunnerOpticsModel = "\A3\Drones_F\Weapons_F_Gamma\Reticle\UAV_Optics_Gunner_narrow_F.p3d"; }; showMiniMapInOptics = true; showUAVViewInOptics = false; showSlingLoadManagerInOptics = false; }; minTurn = -130; maxTurn = 130; initTurn = 0; minElev = -10; maxElev = 90; initElev = 0; maxXRotSpeed = 0.3; maxYRotSpeed = 0.3; pilotOpticsShowCursor = true; controllable = true; }; class MFD { class AirplaneHUD { topLeft = "HUD_top_left"; topRight = "HUD_top_right"; bottomLeft = "HUD_bottom_left"; borderLeft = 0; borderRight = 0; borderTop = 0; borderBottom = 0; color[] = {1.0,1.0,1.0,1.0}; helmetMountedDisplay = true; helmetPosition[] = {-0.04,0.03,0.1}; helmetRight[] = {0.08,0,0}; helmetDown[] = {-0,-0.06,0}; #include "cfgHUD.hpp" }; }; class MarkerLights { class PositionRed { color[] = {0.8,0.0,0.0}; ambient[] = {0.08,0.0,0.0}; intensity = 75; name = "PositionLight_red_1_pos"; drawLight = 1; drawLightSize = 0.15; drawLightCenterSize = 0.04; activeLight = 0; blinking = 0; dayLight = 0; useFlare = 0; class Attenuation { start = 0; constant = 0; linear = 25; quadratic = 50; hardLimitStart = 0.75; hardLimitEnd = 1; }; }; class PositionGreen: PositionRed { color[] = {0.0,0.8,0.0}; ambient[] = {0.0,0.08,0.0}; name = "PositionLight_green_1_pos"; }; class CollisionWhite: PositionRed { color[] = {1.0,1.0,1.0}; ambient[] = {0.1,0.1,0.1}; name = "CollisionLight_white_1_pos"; blinking = 1; blinkingPattern[] = {0.1,0.9}; blinkingPatternGuarantee = 0; drawLightSize = 0.2; drawLightCenterSize = 0.04; }; class CollisionWhite2: CollisionWhite { name = "CollisionLight_white_2_pos"; }; }; class RenderTargets { class FLIR { renderTarget = "rendertarget0"; class CameraView1 { pointPosition = "flir_pos"; pointDirection = "flir_dir"; renderQuality = 1; renderVisionMode = 2; fov = 0.3; }; }; }; class TextureSources { class blufor { displayName = $STR_A3_TextureSources_blu0; author = $STR_A3_Night515; textures[] = {"\Air_F_Aegis\Plane_Fighter_01\Data\Plane_Fighter_01_ext_CO.paa"}; }; class dazzle { displayName = $STR_A3_TextureSources_dazzle0; author = $STR_A3_Night515; textures[] = {"\Air_F_Aegis\Plane_Fighter_01\Data\Plane_Fighter_01_ext_BLUFOR_CO.paa"}; }; }; }; class B_Plane_Fighter_01_CAS_F: Plane_Fighter_01_base_F { author = $STR_A3_Night515; _generalMacro = "B_Plane_Fighter_01_CAS_F"; scope = public; scopeCurator = public; displayName = "F-38 Stalker (CAS)"; side = 1; faction = BLU_F; crew = B_pilot_F; typicalCargo[] = {B_pilot_F}; weapons[] = { gatling_25mm, Missile_AA_04_Plane_CAS_01_F, GBU12BombLauncher, CMFlareLauncher }; magazines[] = { 300Rnd_25mm_shells, 2Rnd_Missile_AA_04_plane_fighter_01_F, 2Rnd_GBU12_LGB, 240Rnd_CMFlare_Chaff_Magazine }; class AnimationSources: AnimationSources { class AddFalchion: AddFalchion { initPhase = 1; }; class AddGbu12: AddGbu12 { initPhase = 1; }; }; availableForSupportTypes[] = {CAS_Bombing}; cost = 3000000; }; class B_CTRG_Plane_Fighter_01_CAS_F: Plane_Fighter_01_base_F { author = $STR_A3_Night515; _generalMacro = "B_CTRG_Plane_Fighter_01_CAS_F"; scope = public; scopeCurator = public; displayName = "F-38 Stalker (CAS)"; side = 1; faction = BLU_CTRG_F; crew = B_CTRG_pilot_F; typicalCargo[] = {B_CTRG_pilot_F}; weapons[] = { gatling_25mm, Missile_AA_04_Plane_CAS_01_F, GBU12BombLauncher, CMFlareLauncher }; magazines[] = { 300Rnd_25mm_shells, 2Rnd_Missile_AA_04_plane_fighter_01_F, 2Rnd_GBU12_LGB, 240Rnd_CMFlare_Chaff_Magazine }; class AnimationSources: AnimationSources { class AddFalchion: AddFalchion { initPhase = 1; }; class AddGbu12: AddGbu12 { initPhase = 1; }; }; availableForSupportTypes[] = {CAS_Bombing}; cost = 3000000; hiddenSelections[] = {"Camo"}; hiddenSelectionsTextures[] = {"\Air_F_Aegis\Plane_Fighter_01\Data\Plane_Fighter_01_ext_BLUFOR_CO.paa"}; }; class B_Plane_Fighter_01_AA_F: B_Plane_Fighter_01_CAS_F { author = $STR_A3_Night515; forceInGarage = true; _generalMacro = "B_Plane_Fighter_01_AA_F"; displayName = "F-38 Stalker (AA)"; weapons[] = { gatling_25mm, missiles_Zephyr, Missile_AA_04_Plane_CAS_01_F, CMFlareLauncher }; magazines[] = { 300Rnd_25mm_shells, 2Rnd_GAA_missiles, 2Rnd_Missile_AA_04_plane_fighter_01_F, 240Rnd_CMFlare_Chaff_Magazine }; class AnimationSources: AnimationSources { class AddGbu12: AddGbu12 { initPhase = 0; }; class AddZephyr: AddZephyr { initPhase = 1; }; }; availableForSupportTypes[] = {}; }; class B_CTRG_Plane_Fighter_01_AA_F: B_CTRG_Plane_Fighter_01_CAS_F { author = $STR_A3_Night515; _generalMacro = "B_CTRG_Plane_Fighter_01_AA_F"; displayName = "F-38 Stalker (AA)"; weapons[] = { gatling_25mm, missiles_Zephyr, Missile_AA_04_Plane_CAS_01_F, CMFlareLauncher }; magazines[] = { 300Rnd_25mm_shells, 2Rnd_GAA_missiles, 2Rnd_Missile_AA_04_plane_fighter_01_F, 240Rnd_CMFlare_Chaff_Magazine }; class AnimationSources: AnimationSources { class AddGbu12: AddGbu12 { initPhase = 0; }; class AddZephyr: AddZephyr { initPhase = 1; }; }; availableForSupportTypes[] = {}; }; class Plane_Fighter_01_wreck_F: PlaneWreck { author = $STR_A3_Night515; _generalMacro = "Plane_Fighter_01_wreck_F"; scope = protected; scopeCurator = private; class Armory { disabled = true; }; model = "Air_F_Aegis\Plane_Fighter_01\Plane_Fighter_01_wreck_F.p3d"; typicalCargo[] = {}; irTarget = false; transportAmmo = false; transportRepair = false; transportFuel = false; transportSoldier = true; class Eventhandlers{}; }; };
-
Need help with custom units creation.
boombastic posted a topic in ARMA 3 - ADDONS - CONFIGS & SCRIPTING
Hi all, I just want to make my custom units based on exported loadouts from Virtual Arsenal, that will be always accessible via mission editor or third party addons, nothing special, just my custom group under NATO or CSAT factions. If i get it right, the only way to do it - to make addon. But i have no skills and knowledge to make such addon by myself, so i need little help from the community. I try to do this by myself, and found this links: http://pastebin.com/9zUxVn07# http://pastebin.com/wtCnGxTR ... so i see that it have only few rows of code, but don't know how to use it :( What kind of file i need to create .bin, .cfg, .cpp, .sqf ? Does it accept pasted data from virtual arsenal e.t.c. Maybe somebody can help me and show some working example of such addon with only one or two units that have virtual arsenal loadout ? And i will continue to add my units to it. Thanks for any help. -
Retribution Follow the story of Sgt. Ghafurzai and the CSAT forces on their quest for retribution against the NATO forces who have have caused them much grief in the past on altis/bornholm/chernarus/stratis/takistan/zargobad. Please Note: This custom campaign of mine starts shortly after my other campaign: Resurgence. In order for you to understand the current story of this mission you will want to play that campaign. Resurgence - Armaholic,Steam Workshop Download: Download - Steam Workshop Change-log: Version 1.1 Mission "Closure" Fixed an issue where a target wouldn't couldn't be destroyed and it somehow wasn't reaching a specific triggerMisison "Seizing Mike-26" Fixed an issue where after the player has seized the airbase, the mission would just hang and not advance any further
- 1 reply
-
- 1
-
- Campaign
- Retribution
-
(and 2 more)
Tagged with:
-
Hi there im new around here but i think this is a great opportunity for a map creator. Were a new team creating a mod , we hope to be the next big mod in arma 3 we have no desire for this mod to be any sort of RP mod as we believe there are enough of those out there already (no disrespect to those who have made RP mods its just not our style) Were a good situated team we all get along and have a real passion for this idea, so far our in our team we have : designers, scripters and people who are great with server hosting. We are looking for a map creator /builder , the person needed should be experienced with terrain and building a map from scratch. Contact us if you're interested Steam ID: WaveyTots DonDamage
-
config.cpp /CfgSkeletons /CfgModel and animation
Skelt posted a topic in ARMA 3 - MISSION EDITING & SCRIPTING
I have custom skinned Civilians(using a BI model and hidden selections); which I have configed and pbo'd into the game. They work great, look great; but I'd really like to give them some different animations -- just move forward and rotate for navigation, maybe an idle or two as well. I have the animations I need in the correct format, I just can't seem to find anywhere which details the way to config in custom unit animations to be used by my custom skinned civies. I have looked at pretty much everything on google for "Arma 3 Custom Animations" and have been to the wiki several dozen times (this morning) and looked at the required configs, which did not help much. Lots of stuff on CfgSkeletons / CfgModel but not much on making them animate any differently than what is defaulted by BI. Not much out there on CfgAnimations. If I could find the default BI config for unit animation not in binary form I'd probably be able to swap out the few animations I need relatively easily. Maybe someone could point me to a resource? Thanks. -
Here's a basic guide on how to configure your own VR training courses: On biki: https://community.bistudio.com/wiki/Arma3:_Virtual_Reality_Custom_Courses If there are some community Courses configured, a new selector will appear with a list of the Courses. This selector will have different colour than the official ones. Config class CfgVRCourses { class Default; class MyCourse1: Default { title = "Course Name"; icon = "\A3\Structures_F_Bootcamp\VR\Helpers\Data\VR_Symbol_default_CA.paa"; class Stages { class Stage1 { title = "Stage 1 Name"; function = "BIS_fnc_VRFunctionName1"; }; class Stage2 { title = "Stage 2 Name"; function = "BIS_fnc_VRFunctionName2"; }; class Stage3 { title = "Stage 3 Name"; function = "BIS_fnc_VRFunctionName3"; }; }; }; }; icon: Path to icon that will be shown on a billboard throughout the Course. title: Text that will be shown ingame during Course selection or when loading a Stage. function: Function to run for each Stage. Must be defined in cfgFunctions (see https://community.bistudio.com/wiki/Functions_Library_%28Arma_3%29#Adding_a_Function, VR functions are usually defined in category "VR"). Functions Stage functions are typically FSMs (you can get the FM editor here: https://community.bistudio.com/wiki/BI_Tools_2.5). There are certain guidelines to follow: - player's starting coordinates are always markerPos "BIS_center" --- you should use coordinates relative to this one for spawning your assets - there is a brief timeout before player gains control in a Stage - you can spawn all your assets during this period --- you can determinate the moment player gains control by checking variable BIS_interruptable for TRUE --- any mission tasks or hints should be created after this period, once player is actually ingame - there is a logic unit used for icon helper (group icon) - BIS_icon and its group, BIS_iconGrp --- do not delete these! --- example of use: BIS_icon attachTo [bIS_UAV, [0,0,-3.5]]; BIS_iconGrp setGroupIconParams [bIS_TT_colorWarning, "", 1, TRUE]; - if player wanders too far away from his starting position, he is automatically moved back - default allowed radius is 100m --- this can be changed via variable BIS_stageArea in a Stage function --- example of use: BIS_stageArea = 150; - any assets you spawn will be deleted automatically when the Stage ends - a Stage is completed by using this code: call BIS_fnc_VR_stageDone; - always make sure you've properly terminated your function upon Stage end; keep in mind player can fail a Stage too --- for Stage failure, use code before you terminate the function: [] spawn BIS_fnc_VR_stageFailed; --- condition to check player's "death" or him leaving the Stage: damage player > 0.015 || !BIS_interruptable --- you don't need to call any code in this case, just make sure to properly terminate the function Stage function example To help you understand how a typical Stage FSM may look like, here's a link to a basic Stage function (it's a slightly tweaked Stage 2 of the Launchers Course): https://www.dropbox.com/s/5429wbhsl4f0sky/fn_VRCourseExample.fsm The End I hope I covered everything here. Have fun creating your own VR Courses!