User blog:Sypwn/Mission Editor FAQ

From VTOL VR Wiki
Jump to navigation Jump to search

Also see my Mission Editor tips.

Contents:
Units:
Q: Why won't it let me place multiple player units?
Q: Why won't it let me create a player on Team B?
Q: How do I enable the second seat on the T-55/AH-94/EF-24G?
Q: How do I move a player's spawn point during the mission?
Q: What are alt spawns and how do they work?
Q: How do I make a unit respawn when it dies?
Q: How can I spawn in a different number of enemies based on the number of players?
Q: Can I despawn or teleport AI units?
Q: Can I damage a unit with a trigger, or have a unit start damaged?
Q: How do I use the Drone Carrier unit?

AI Behavior:
Q: How do AI aircraft default behaviors work?
Q: How do AI aircraft behave when taking off and landing?
Q: What is RailPath/Follow/StayInRadius?
Q: Why aren't my units moving in formation?
Q: How do I specify the formation of a unit group?
Q: How do I make infantry board an AV-42C?
Q: How do I make a ground unit follow the road?
Q: What's the range of <some radar>?
Q: Why can't I make an ASF-58 or GAV-25 spawn or land on a carrier?

Objectives:
Q: What determines when the mission ends?
Q: Why isn't my "Destroy" type objective working correctly?
Q: How do I make an objective for PvP kills?
Q: How can I make an objective that requires staying in an area for some amount of time (or something similar)?

Events and Sequences:
Q: Why is my event that fires at the start of the mission not working properly?
Q: Why isn't my Sequence node delay working?
Q: How is an Entry Condition different from an Exit Condition?
Q: In what order to the components of a sequence node activate?
Q: How do I make a Timed Event or Trigger Event activate more than once?
Q: How do I make an Event Sequence loop or activate more than once?
Q: How do I make a random chance of something happening?

Event Conditions:
Q: Why is my condition activating immediately at the start of the mission when it shouldn't?
Q: How can I make a condition to check the distance between two units?
Q: Why are my "Near Waypoint" conditionals behaving strangely?
Q: How do I specify if "Near Waypoint" conditionals spherical distance or ground distance?
Q: How do I make a condition that checks that all present players are doing something, while also allowing for some slots to be empty?
Q: Why isn't my "Alive" condition working correctly for AI units?

Misc:
Q: How do I make a multiplayer mission?
Q: In what units are distance/altitude/speed measured in the editor?
Q: Why isn't my custom airbase name showing up in the COMMS page?
Q: How do I duplicate a mission within its campaign?
Q: How do I edit a custom map after I've already created a mission with it?
Q: How do the "Wind Variation" and "Gust" settings work?
Q: How do I make the wind randomly cycle between specific directions?
Q: How does reloading work with the "Infinite Ammo" setting?
Q: How do I access the editor without VR?
Q: How do I test my mission without VR?
Q: What should I know when editing the VTS mission files manually?

Workshop:
Q: How do I update a mission (or map, campaign, etc) that I already uploaded to the workshop?
Q: Why am I getting upload error "LimitExceeded" when trying to upload my mission/campaign?
Q: Why am I getting upload error "Fail" when trying to upload my mission/campaign?
Q: Why am I getting upload error "Map must be packed" when trying to upload my mission/campaign?
Q: Why won't Steam let me set my workshop content visibility to "Public"?
Q: Can I edit an existing workshop mission (or map, campaign, etc) that was created by someone else?
Q: I uploaded a mission (or map, campaign, etc) to the workshop, then lost my local copy. Can it be recovered?

Units

Q: Why won't it let me place multiple player units?
Q: Why won't it let me create a player on Team B?

You probably created a standalone singleplayer mission instead of a multiplayer campaign. To convert a singleplayer mission to multiplayer:
1. Create a new, empty singleplayer campaign.
2. Use the "Import" button to import your standalone mission.
3. Use the "Convert to MP" button to convert the campaign to multiplayer.

Q: How do I enable the second seat on the T-55/AH-94/EF-24G?

In the MP Spawn unit properties for that player, change the "Allowed Slots" slider to "2".
I also don't understand why it defaults to "1".

Q: How do I move a player's spawn point during the mission?

Move spawn.png

After selecting this action, move your editor cursor (the yellow thing in the middle) where you want the new spawn point, then press the "Set" button. A faint colored sphere should appear in the new location. Note you have to specify the heading manually. (You can see the current cursor heading at the bottom of the editor.)

There is currently one other method to move player spawns (if you know it, you know it), but that other method may break in future versions of VTOL VR. Please stick to using the "Move Spawn" action as intended.

Q: What are alt spawns and how do they work?

Alternate Spawns are a way to randomize the location of AI units to make the mission more enjoyable for repeated playthroughs. You access them by clicking the "Alt Spawns" tab on the left side of the Unit Tools dialog. Note that each alt spawn can have entirely different unit properties. This can be used to give AI aircraft randomized loadouts or default behaviors. But be sure to set the unit's base properties properties completely before creating alt spawns, otherwise you'll be forced to make future property changes to each alt spawn individually.

Which alt spawn each unit will use is decided by chance automatically at the start of the mission. It uses a "pulling marbles from a bag" style algorithm. You can set the "number of marbles" for each alt spawn by adjusting their weight property (except the first one which is always 100). For example, if you have 3 alt spawns with weights 100, 200, and 100 respectively, then their probabilities will be 25%, 50%, 25%.

If the units are part of a Unit Group, then you can check the "Sync Group" box to force them to all roll the same alt spawn number (to allow a whole squad spawn together somewhere random.) In this situation, the first member of the Unit Group will decide which spawn number is used for the whole group. If the members of the group do not have the same number of alt spawns when the box is checked, then it will automatically create additional alt spawns until their numbers are in sync, but you must still move all the new alt spawns to their new locations.

There is also a trigger action to "Force Alt Spawn" which can allow for more advanced uses of this feature.

Q: How do I make a unit respawn when it dies?

First, you must check the "respawnable" box in the unit's properties. Then, you can respawn it any number of times using events.
Here is an example Event Sequence that endlessly respawns a tank, 5 seconds after it dies:

Respawn tank loop.png

If the unit has alt-spawns, you should add a Randomize Alt Spawn action inside the "Tank is not alive" node. Otherwise it will respawn in the same place every time.

Note: Any attempts to spawn a unit that is already alive will fail. You cannot spawn multiple copies of a single unit this way.

Q: How can I spawn in a different number of enemies based on the number of players?

Here is a simple example solution to start with:

Countplayers.png

The moment the "Clear skies" objective starts, it will look at the number of players currently alive (up to 6 MP slots in this example), and spawn an appropriate number of AI aircraft (up to 9 in this example).

In order to allow for a dynamic number of targets to destroy, we use a Conditional type objective and use a Num Near WP condition as explained here.

Note that you would not want to use a Start Mode: Immediate for an objective like this for the reasons explained here. You need to ensure players are spawned in when the conditional action fires. You can delay the start of the objective by using a Timed Event, or first start with an objective to have all players take off or form up.

The solution pictured does have some limitations. If players join or leave after the objective has started, the new number of players will not be accounted for. It is possible to do so, but that solution is far more complicated and outside the scope of this FAQ.

Q: Can I teleport or despawn AI units?

Not cleanly, but there is a way to kinda fake it:
- Check the "respawnable" box in the unit's properties.
- Give the unit an additional alt-spawn whose location is the teleport destination.
- Set that new alt spawn weight to 0 by editing the VTS.
Then create an event sequence that:
1. Destroys the unit
2. Forces that new (0 weight) alt-spawn
3. Respawns the unit
Each of these actions should be in a separate sequence node, but with no delay between them.

Teleport units.gif

Unfortunately there will still be an explosion effect, unless the unit is an infantry.

To make the unit disappear instead: move the alt-spawn destination somewhere faaaaaaaaaaar outside the map, and add a 4th sequence node that immediately kills the unit after it's respawned. This particularly useful for infantry, as you can make it appear that they entered a structure or boarded a vehicle or combat aircraft.

Another extension of this trick is to create explosion effects. Spawning in a tent and immediately "teleporting" it away all in the same instant will appear to create a massive explosion out of thin air.

Q: Can I damage a unit with a trigger, or have a unit start damaged?

Generally, no. The only exception is naval units, for which you can use the System -> Units -> Destroy Units action to destroy their subsystems, such as turrets, radars, and launchers.

Q: How do I use the Drone Carrier unit?

You can order the carrier to launch its drones using the Unit -> Drone Carrier -> Launch Drones trigger action. The drones cannot be controlled by triggers, however, you can destroy the drones if desired using the System -> Units -> Destroy Units action, then selecting the drones (which are considered a subsystem of the Drone Carrier).

AI Behavior

Q: How do AI aircraft default behaviors work?

As I understand it, AI aircraft use essentially a priority system consisting of: Engage -> Path -> Orbit

  • If an AI is personally detecting an enemy, it will move to engage that target. AI aircraft will allegedly also investigate RWR signals, but this behavior isn't terribly consistent.
  • If an AI is not detecting an enemy, and it has a Default Path or path assigned through an action, it will follow that path.
  • If an AI does not have a Default Path, or has reached the end of a non-looping path, it will orbit its Default Orbit Point. If an orbit point was never provided, then it will orbit the position where it originally spawned.

Of course if you order an AI to perform a specific task using an action, it will do so. Then once complete it will revert to the list of actions above.

Q: How do AI aircraft behave when taking off and landing?

AI aircraft will use the ATC and follow its instructions exactly. You can simply place an aircraft on an airbase and order it to take off, and it will taxi appropriately. Once it's airborne, it will revert to its default behavior as described above.

They do appear to support some amount of action queuing. You can give them a "Take off" action immediately followed by another order action and once airborne they seem to perform the second action as desired.

There are obviously a few differences for VTOL aircraft. VTOL aircraft will default to taking off vertically *unless* they are spawned under a tent or in a hanger, or if their TWR is too low. In those cases they will taxi and take off traditionally, unless they are not on an airbase/carrier, in which case they will do nothing when ordered to take off. (There will be an entry in the player.log if a VTOL aircraft is ordered to take off but can't due to TWR.)

Q: What is RailPath/Follow/StayInRadius?

These are broken or deprecated. Do not use them.

Q: Why aren't my units moving in formation?

Units will not move in formation by default. They must be in a group together (Alpha, Bravo, etc), and given a group movement action, such as UnitGroup -> (Name of group) -> Move Path. Actions can be attached to objectives or triggers.

As of VTOL VR v1.8.1, the "Form On Pilot" event action now works in multiplayer missions, and thus can be used to instruct AI aircraft to form up on the player.

Q: How do I specify the formation of a unit group?

All air and sea groups are locked to a Vee formation.
For ground groups, you specify the formation using a trigger action: UnitGroup -> (Name of group) -> Set Formation.

Formation example.png

As seen in the screenshot, the Vee formation has the first unit in the center, and each subsequent unit behind it alternating left-right-left-right.

The order of the units within the formation is determined by the order in which those units are added to the group. You can view this order by clicking on the "Groups" sub-tab within the "Units" tab on the right, as seen in the screenshot above.

To reorder the members of the group:
1) Double click on the group name ("Golf" in this case) to open the bulk group editor
2) Click "None" at the top to remove all members, then re-check whoever you want to be the leader and click "Okay"
3) Re-open the bulk group editor, and re-check each member in the desired order and click "Okay"

Q: How do I make infantry board an AV-42C?

If the AV-42C is piloted by a player, you must create "Pick Up" and "Drop Off" type objectives. The infantry (selected in objective properties) will automatically board when a piloted AV-42C parks near them with doors open, and will depart when it arrives at the objective waypoint.

If the AV-42C is piloted by AI, you must first order it to "Land At Wpt" near the infantry, then order it to "Load Passengers" or "Unload Passengers". This is best handled by an Event Sequence so you can use Entry Conditions to ensure each step of the process is completed before moving to the next. There is no condition to check if the infantry are boarded, but if you give the AV-42 a "Take Off" action immediately after the load/unload action, it will wait for the infantry to board before taking off. Then you can use an "Is Not Landed" condition to advance the next node.

In both cases, you can also click the "Edit Passengers" button at the top of the AV-42's properties to make the infantry spawn directly into the aircraft.

Q: How do I make a ground unit follow the road?

By creating a very long path of "Path Mode: Linear", and tediously adding a point every time the road turns, even slightly. Then tell the unit to follow that path.

Yes, this is how everyone else had to do it.

To make units patrol a city, simply create a single long looping path that navigates the city and tell the units to follow it. They will (usually) join the path at whatever point is closest, not the beginning.

Q: What's the range of <some radar>?

Due to the number of factors involved with radar calculations, it is impossible to even estimate the effective range of a radar. A SAM radar may be able to detect a fully loaded F/A-26B as far as 100km out, while not being able to detect a slick F-45A flying nose-on at only 10km.

If you're trying to finely control the area in which a radar engages, you can use a looping event sequence with Player -> Is Side Of Path or Is X of Path Region conditions to toggle the launchers' "Engage Enemies" status.

Q: Why can't I make an ASF-58 or GAV-25 spawn or land on a carrier?

These aircraft are simply not carrier capable. They lack a launch bar, landing hook, and folding wings. They cannot be selected to spawn on a carrier, and will ignore orders to land on one.

Objectives

Q: What determines when the mission ends?

This is determined by objectives that have the "Required" box checked.

The mission ends in success if the following conditions are met:
1. At least one "Required" objective has been completed.
2. There are no currently active "Required" objectives.

The mission ends in failure if any "Required" objective is ever failed. If it's a singleplayer mission, the mission will also fail if the player dies or if the player's vehicle is destroyed.

If it's a multiplayer mission, the mission will end for everyone if either side succeeds or fails. The opposing team will see the opposite result.

Be careful to keep a "Required" objective open at all times until you want the mission to end. The intended method to do this is to use Prerequisite Objective Start Types, so that completing one objective immediately starts another. You can also put an Objective -> Start actions inside another objective's Completion and Failed actions section. Or you can have one "Required" objective that sits in the background for the whole mission, and is completed only at the very end.

If you need to further troubleshoot why a mission is ending early, search your player.log for "Final Mission Completion Check Routine". It will list which objectives are active whenever it checks if the mission should end or not.

Q: Why isn't my "Destroy" type objective working correctly?

"Destroy" type objectives do not work correctly when the targets are units that can respawn, such as players or respawnable AI units.

If you're trying to make a basic PvP mission, see Q: How do I make an objective for PvP kills?
If you specifically need to track the number of times a player or respawnable AI unit has died, this is best done by creating a looping event sequence that watches for every time the unit dies, and increments or decrements a Global Value.

Q: How do I make an objective for PvP kills?

The simplest method is to use the Team Score feature. In the Edit -> Scenario Info dialog you can configure how many team points are awarded for kills and deaths. (Kills include AI units. Deaths grant points to the opposing team.) Once you've configured that, set your Objective Type to Conditional, and set the Success Condition to [MP Team Stats] [Team A/B] [Score] [Greater Than] some number.

I recommend you set kills to be 0 points and deaths to be 1 point for both teams. This way AI kills don't count (if there are any), and a CFIT will award the other team a point.

Q: How can I make an objective that requires staying in an area for some amount of time (or something similar)?

Hold objective.png

Here is an example. Adapt it to your needs. To create a Conditional Action, select System -> System -> Fire Conditional Action in the Event Action Browser. Note that I use a series of "Unit Near Waypoint" conditions instead of a single "UnitList Any Near Waypoint" condition because the latter uses ground distance instead of spherical distance, which probably wouldn't make sense for your capture objective.

Events and Sequences

Q: Why is my event that fires at the start of the mission not working properly?
Q: Why is my condition activating immediately at the start of the mission when it shouldn't?

When the host presses "Start mission", all players will actually spend about 3 seconds fading out from the briefing room. During this time, the mission clock has already started, and events will fire accordingly. Actions that only apply to players that are spawned in (such as text popups, audio cues, and GPS waypoints) will thus have no effect. Additionally, any conditions that happen to be TRUE when there are 0 players alive will also fire immediately. The simple solution is to add roughly a 5sec initial delay to any events that fire at mission start.

However, it's also possible for the host to click "Start mission" without anyone selecting a slot, which again starts the timer immediately, and means players could take much longer than 5s to spawn in. Also, some players may spawn in late because they spent extra time setting up their equips. Therefore, a more ideal solution is to never provide essential info immediately at mission start (such as important audio cues or GPS waypoints), and to instead wait for all present players to be airborne, or form up, or approach the AO, etc.

Q: Why isn't my Sequence node delay working?
Q: How is an Entry Condition different from an Exit Condition?
Q: In what order to the components of a sequence node activate?

Sequence order.png

This shows the order that the components activate. Note that Entry Conditions pause after the node's delay, while Exit Conditions effectively pause before the next node's delay. So if you want to add a wait condition followed by a delay, you should add that condition as an Exit Condition to the previous node.

Also note that actions in the same block are usually fired in order (7a -> 7b), but not always, especially if there's lots of lag at the time. If the order of your actions matters, you should separate them into different nodes.

Q: How do I make a Timed Event or Trigger Event activate more than once?

You can't make either of these types of events repeat. However, any Timed Event or Trigger Event can instead be created as an Event Sequence, which can be repeated. (See next question.)

Q: How do I make an Event Sequence loop or activate more than once?

At the end of your sequence, add an "Event Sequences -> (current sequence) -> Restart" action. Ensure your Sequence includes a delay somewhere, or else a continually looping sequence can create lag. For an example, see Q: How do I make a unit respawn when it dies?

Q: How do I make a random chance of something happening?

This is done using Conditional Actions, which can be found in the Event Action Browser under System -> System -> Fire Conditional Action.

Fire conditional action.png


If you want it to have a chance of either happening or not happening, then the Conditional Action should look something like this:

Conditional action 2.png


If you want it to randomly pick between one of a few possible outcomes, then the Conditional Action should look something like this:

Conditional action 4.png

Note that to make it an equal chance of rolling each outcome, you have to use a very specific pattern of chance probabilities. The probability for each condition is 1/x where x is the number of remaining possible outcomes, including itself. | 1/4 = 25% | 1/3 = 33% | 1/2 = 50% | 1/1 = 100% = "Else" |

Event Conditions

Q: How can I make a condition to check the distance between two units?

The various "Near Waypoint" conditions allow you to select a unit instead of a waypoint. But keep in mind the answer to the next question...

Q: Why are my "Near Waypoint" conditionals behaving strangely?
Q: How do I specify if "Near Waypoint" conditionals spherical distance or ground distance?

The [Unit][Near Waypoint] condition measures spherical distance, while the [Unit Group / Unit List][Any Near Waypoint / Num Near WP] conditionals measure ground distance. A unit that is exactly 500m above and 200m East of a waypoint would be considered 539m away when checking spherical distance, but only 200m away when checking ground distance (because altitude is ignored).

Conditional distance.png

You can always use a [Unit List][1 Selected][Any Near Waypoint] conditional when you need to check ground distance of a single unit.

Q: How do I make a condition that checks that all present players are doing something, while also allowing for some slots to be empty?

VTOL VR v1.6 added new Unit Group conditions for this.

To check if a group of players are all near a waypoint, use the Unit Group <All Live Players Near Waypoint> condition.
To check if a group of players are all airborne, use Unit Group: <Num Landed> <Equals> <0> and AND that with Unit Group: <Num Alive> <Greater than> 0.
To check if a group of players are all landed, use Unit Group: <Num Airborne> <Equals> <0> and AND that with Unit Group: <Num Alive> <Greater than> 0.

You can also AND any of these with Unit Group: <All Present Players Alive> if you want to ensure no one is still waiting in the briefing room.

Q: Why isn't my "Alive" condition working correctly for AI units?

The "Alive" conditions are poorly worded. AI units that have not spawned in are still considered "alive". A more accurate name for the "Is Alive" condition would be "Is Not Dead". Respawnable units make this even more confusing. Here is a timeline of events in the form of a table, showing the "Is Alive" state for an example unit:

Unit state: Not spawned Spawned Dead Respawned
"Is Alive": true true false true

If you're trying to check how many AI units are actually alive in an area, but you don't know which units were spawned in, then you can use the "Num Near Waypoint" condition instead. Just make a waypoint in the middle of the mission area, and set the condition's distance to the maximum (200,000m). Unlike "Alive" conditions, "Near Waypoint" conditions will only consider units that are presently spawned in.

And finally, "Alive" conditions work differently for MP Spawns. A player spawn is only considered "Alive" if they are actually alive and spawned in, as you would expect. A player that has not spawned in is not considered to be alive.

Misc

Q: How do I make a multiplayer mission?

A multiplayer mission must be part of a multiplayer campaign. Simply create a new campaign and check the "Multiplayer" box.

If you already created a singleplayer campaign, there is an option in the campaign editor to convert it to multiplayer.
If you already created a singleplayer standalone mission, you can create a singleplayer campaign, then import the standalone mission, then convert the campaign to multiplayer.

Q: In what units are distance/altitude/speed/time measured in the editor?

Units in editor are in meters for altitude & distance, meters/second for speed and seconds for time.

You can toggle the editor cursor's altitude between meters and feet by clicking the word "Altitude" in the bottom right corner of the screen. This only affects the cursor altitude indicator in the bottom right corner. There is no way to change the measurement units used triggers, objectives, or unit properties.

Q: Why isn't my custom airbase name showing up in the COMMS page?

For some reason, the COMMS page looks at the airbase name that is defined in the map, not the one defined by the mission. You'll need to go back into the map editor, give the airbase a name there, then repack the map.

Q: How do I duplicate a mission within its campaign?

File -> Save As...
(You're obviously not the first person to miss this.)

Q: How do I edit a custom map after I've already created a mission with it?

After making changes in the Map Editor, you must manually apply those updates to any missions that used that map. To do so, select Tools -> Repack Map from the top bar of the Mission Editor. This will fetch the latest version of that custom map and apply it to the current mission.

NOTE: If multiple missions in the same campaign use the same map, repacking the map for one mission will update it for all missions in that campaign that use that map.

Q: How do the "Wind Variation" and "Gust" settings work?

The "Wind Variation" setting is a value in m/s that sets the maximum additional wind that can be randomly applied in any direction. The actual applied amount and direction will smoothly change over time, the exact rate at which it changes cannot be controlled. The wind variation is uniform. That is, it applies the same wind offset to the entire map.

The "Gusts" setting is the same as Variation, but with two differences: the change is less smooth and more rapid, and gusts are local (not uniform). Gusts are currently the only way for wind to be different in different parts of the map, and cannot be finely controlled.

For more info, see this video where BahamutoD explains and visualizes the various wind settings.

Q: How do I make the wind randomly cycle between specific directions?

Randomwind.png

The "Wind Timer" Global Value tracks how many minutes until the wind should change next. Its initial value is 0, which means it will roll a random wind setting as soon as the mission starts.

The "Update wind" conditional action first checks if the wind should be updated. If not, it does nothing (which is why the first box is empty). Below that is a conditional action of chances that rolls a new wind direction. In this case, it's set to randomly roll between blowing directly North, South, East, or West. You can change all of the wind transition settings here however you want.

The "Update timer" conditional action also first checks if the timer has reached 0. If not, it counts down the timer by one minute (since the sequence loops every 60 seconds). If the wind timer has reached 0, it uses a conditional action of chances to roll a new amount of time before the wind should change again. In this case, it could set the timer to 4, 9, 15, or 22 minutes before the next wind change event. Of course you can change these values as well.

And finally, the event sequence restarts itself.

Q: How does reloading work with the "Infinite Ammo" setting?

Each hardpoint will start a reload timer (based on the "Infinite Reload Delay" setting) when that hardpoint is empty. For example:

  • The gun will start its reload timer when the bullets reach 0.
  • A rocket pod will start its reload timer when all the rockets in that pod have been fired.
  • A hardpoint containing a single AIM-120 rail (such as mounted on the wings of the F-45A) will start its reload timer when that one missile is fired.
  • A hardpoint containing 2x AIM-120s (such as in the F-45A's internal bays) will start its reload timer when both missiles from that hardpoint have been fired.

Q: How do I access the editor without VR?

If you have previously played the game with VR on this computer, simply launch the game and look for the "Map Editor" and "Mission Editor" buttons in the bottom right of the game window.

If this computer has never had VR, then you will first need to accept the EULA. You can do this by manually editing the file at "C:\Users\%username%\AppData\Roaming\Boundless Dynamics, LLC\VTOLVR\SaveData\gameSettings.cfg" and adding the following lines:

EULA_AGREED = 1
EULA_NOTIF = True

If you want to prevent SteamVR from starting up when you launch the game, use the "Oculus" launch option. This will prevent SteamVR from starting, even if you don't have Oculus hardware.

Q: How do I test my mission without VR?

If it's a multiplayer mission, you can't. VR is required to get past the slot selection screen.

If it's a singleplayer mission, click File -> Scenario Info and ensure the following items are configured:

Equipment:
 Configurable is UNCHECKED
 Force Equips is CHECKED
Environment:
 Optional Env is UNCHECKED

Then save and test the mission. Press "R" on your keyboard to dismiss the ready room. Now you can use the developer camera to observe the mission.

Q: What should I know when editing the VTS mission files manually?

(These rules apply for all VTOL VR .vt* files, not just .vts)

0) MAKE A BACKUP FIRST. Personally I have my entire CustomScenarios directory sync to OneDrive using a symbolic link so I can always roll back changes.

1) Use a text editor that supports Unix EOL, such as Notepad++, Sublime, or VS Code. If you use a dumb text editor like Windows Notepad it will clobber the EOL and cause problems.

2) The best way to learn what each property does is to make changes in the mission and watch how those changes show up in the file. If you can't figure things like this out yourself, then you probably shouldn't be messing with the VTS file.

3) After saving changes to the VTS file, you must completely close VTOL VR and relaunch it! Otherwise your changes will not show up.

4) After making external changes to the VTS file, be sure to inspect all aspects of the mission and ensure everything is there. Units, triggers, waypoints, objectives, briefings etc. When the game encounters a syntax error, it will immediately stop parsing the rest of the mission file, but it will still load into the editor with whatever it did read. Things might seem normal at first, but then you notice all your events or objectives or briefing pages are empty. If you re-save after loading a corrupt VTS, and you don't have a backup, then all that missing data is gone.

Editing the VTS allows for easier bulk editing and cloning of data. It also allows you to set values that the game normally doesn't allow, like setting an alt spawn weight to 0, or adjusting the initial pitch of an aircraft spawn. However I will not provide step-by-step instructions for any of this because of what I said in point #2.

Workshop

Q: How do I update a mission (or map, campaign, etc) that I already uploaded to the workshop?

Simply upload it again after you've made your changes. In the upload settings dialog you should see an "Update Notes" section, confirming you are in fact updating the existing workshop content instead of creating a new one.

Q: Why am I getting upload error "LimitExceeded" when trying to upload my mission/campaign?

This occurs when the primary image for your campaign or standalone mission is greater than 1MB.
If it's a campaign, convert your campaign image to JPEG and ensure it's under 1MB. Then re-select it in the Campaign Info panel and save, and upload again.
If it's a standalone mission, convert your mission image to JPEG and ensure it's under 1MB. Then reselect it in the Scenario Info dialog and save, and upload again.

Q: Why am I getting upload error "Fail" when trying to upload my mission/campaign?

Steam is rejecting your upload without providing any reason as to why. This is known to happen if you do not own VTOL VR in your current account, and are instead playing it through Family Sharing. You must switch to the account that owns VTOL VR in order to upload content to the workshop.

If you are uploading from an account that owns VTOL VR and are still getting this error, please reboot your computer and try again.

Q: Why am I getting upload error "Map must be packed" when trying to upload my mission/campaign?

This can occasionally happen when using maps from the workshop, although the exact causes aren't fully known.

Try loading into the mission that's listed in the error message, then immediately save the mission, then try to upload it again.

Q: Why won't Steam let me set my workshop content visibility to "Public"?

Enable Steam Guard for your account, then try again.

Q: Can I edit an existing workshop mission (or map, campaign, etc) that was created by someone else?

Content on the workshop is encrypted to prevent stealing. You must ask the original creator to share their files with you for editing.

Q: I uploaded a mission (or map, campaign, etc) to the workshop, then lost my local copy. Can it be recovered?

Content on the workshop is encrypted to prevent stealing. If you have content that you created on the workshop and need to recover an unencrypted version for editing:

1. Join the official VTOL VR Discord server (if you aren't already).
2. Ensure your Steam account is linked to your Discord account and visible in your Discord profile (for verification).
3. Post links to the content you need recovered in the appropriate channel (#mission_editor, #map_editor, #vtol-liveries).
4. If no one replies within an hour or so, you can ping @moderator for assistance.