Home

Mods

Skins

Mod Loader Help

Modding Discord

Home

Mods

Skins

Modding Discord

Mod Loader Help

Getting Started

FAQ

Creating a mod

Creating a skin

API

Documentation


VTOL VR Documentation

This page provides help to modders with different information people have found out about VTOL VR, such as where to find all the actors or how to get the players vehicle.
This page will get improved upon when there are more discoveries.

Contents

Getting all actors in scene

Inside the games class TargetManager, there is a list of all the current actors in the scene. Each actor registers and unregisters with this list when they get spawned and destroyed so make sure to keep checking this list in case the one you are using has been destroyed.
There also is allied and enemy lists in the class TargetManager if you just want one team.

TargetManager.instance.allActors;
TargetManager.instance.alliedUnits;
TargetManager.instance.enemyUnits;
TargetManager.instance.detectedByAllies;
TargetManager.instance.detectedByEnemies;
//All return a list of the class actor.

Posting message to the flight log

You can send messages to the flight logger by using the class LightLogger.
This can be useful when you want to debug values to see inside of VR without taking off the headset.

FlightLogger.Log("My Message");

Getting all Campaigns

You can get all the campaigns the user has installed with the class VTResources.

VTResources.GetBuiltInCampaigns(); //Returns a list of the class 'VTCampaignInfo'
VTResources.GetCustomCampaigns(); //Returns a list of the class 'VTCampaignInfo'
VTResources.GetBuiltInCampaign("campaignID"); //Returns 'VTCampaignInfo'
VTResources.GetCustomCampaign("campaignID"); //Returns 'VTCampaignInfo'

Getting all Scenarios

When you have the campaign, you can get a list of all the scenarios inside that campaign.

VTResources.GetBuiltInCampaign("campaignID").allScenarios; 
VTResources.GetCustomCampaign("campaignID").allScenarios;
//Returns a list of the class 'VTScenarioInfo'

Getting and setting pilots save

You can get a PilotSave from the PilotSaveManager class as long as you know the name of the save.
Then you can set their pilot with PilotSaveManager.current.

PilotSaveManager.pilots; //Dictionary of the class 'PilotSave' with the key being their names'
PilotSaveManager.current; //To set the selected Pilot
                            

VTOL VR's Debug Camera Controls

The game has a debug camera which the developer uses to view around the different actors in the scene from his desktop.
These are the controls for it.

  • Insert - Enables/Disables
  • [ - Moves back an actor in the list
  • ] - Moves forward an actor in the list
  • . - Cycles through time scales (0.1,0.25,0.5,1,2,4)
  • , - Sets the timescale to 0.1
  • / - Sets the time scale to 1
  • Tab - Enables/Disables Gun shooting from mouse
  • Left Shift + Scroll - Changes FOV
  • h - Enables Head debug (Doesn't seem to work)
  • v - Does a toggle mod (Doesn't seem to work)
  • t - Does something called tgtMode (Doesn't seem to do anything)

Waiting for scenario to finish loading

With this snippet of code, you can wait for the scenario to finished loading before you run your code.
Scene Index 7 and 12 are Akutan and CustomMapBase scenes.
You will need "using UnityEngine.SceneManagement;" at the top of the file for SceneManager to work

public override void ModLoaded()
{
    base.ModLoaded();
    SceneManager.sceneLoaded += SceneLoaded;
}

private void SceneLoaded(Scene arg0, LoadSceneMode arg1)
{
    if (arg0.buildIndex == 7 || arg0.buildIndex == 12)
        StartCoroutine(WaitForScenario());
}

private IEnumerator WaitForScenario()
{
    while (VTMapManager.fetch == null || !VTMapManager.fetch.scenarioReady)
    {
        yield return null;
    }
    Debug.Log("Scenario Loaded");
}