> For the complete documentation index, see [llms.txt](https://kinematicsoup.gitbook.io/reactor/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kinematicsoup.gitbook.io/reactor/api-reference/ks.reactor.client.unity.editor/ks.reactor.client.unity.editor.ksserverinstaller.md).

# Class ksServerInstaller

Namespace: [KS.Reactor.Client.Unity.Editor](/reactor/api-reference/ks.reactor.client.unity.editor.md)\
Assembly: KSUnity-Source.dll

Provides methods for validating, downloading, and installing local Reactor test servers.

```csharp
public class ksServerInstaller : ksSingleton<ksServerInstaller>
```

#### Inheritance

[object](https://learn.microsoft.com/dotnet/api/system.object) â† Object â† ScriptableObject â† [ksSingleton\<ksServerInstaller>](/reactor/api-reference/ks.unity.editor/ks.unity.editor.kssingleton-1.md) â† [ksServerInstaller](/reactor/api-reference/ks.reactor.client.unity.editor/ks.reactor.client.unity.editor.ksserverinstaller.md)

#### Inherited Members

[ksSingleton\<ksServerInstaller>.Get()](/reactor/api-reference/ks.unity.editor/ks.unity.editor.kssingleton-1.md#KS_Unity_Editor_ksSingleton_1_Get), [ksSingleton\<ksServerInstaller>.Initialize()](/reactor/api-reference/ks.unity.editor/ks.unity.editor.kssingleton-1.md#KS_Unity_Editor_ksSingleton_1_Initialize), [ksSingleton\<ksServerInstaller>.Create()](/reactor/api-reference/ks.unity.editor/ks.unity.editor.kssingleton-1.md#KS_Unity_Editor_ksSingleton_1_Create), ScriptableObject.SetDirty(), ScriptableObject.CreateInstance(string), ScriptableObject.CreateInstance(Type), ScriptableObject.CreateInstance\<T>(), Object.GetInstanceID(), Object.GetHashCode(), Object.Equals(object), Object.Instantiate(Object, Vector3, Quaternion), Object.Instantiate(Object, Vector3, Quaternion, Transform), Object.Instantiate(Object), Object.Instantiate(Object, Transform), Object.Instantiate(Object, Transform, bool), Object.Instantiate\<T>(T), Object.Instantiate\<T>(T, Vector3, Quaternion), Object.Instantiate\<T>(T, Vector3, Quaternion, Transform), Object.Instantiate\<T>(T, Transform), Object.Instantiate\<T>(T, Transform, bool), Object.Destroy(Object, float), Object.Destroy(Object), Object.DestroyImmediate(Object, bool), Object.DestroyImmediate(Object), Object.FindObjectsOfType(Type), Object.FindObjectsOfType(Type, bool), Object.FindObjectsByType(Type, FindObjectsSortMode), Object.FindObjectsByType(Type, FindObjectsInactive, FindObjectsSortMode), Object.DontDestroyOnLoad(Object), Object.DestroyObject(Object, float), Object.DestroyObject(Object), Object.FindSceneObjectsOfType(Type), Object.FindObjectsOfTypeIncludingAssets(Type), Object.FindObjectsOfType\<T>(), Object.FindObjectsByType\<T>(FindObjectsSortMode), Object.FindObjectsOfType\<T>(bool), Object.FindObjectsByType\<T>(FindObjectsInactive, FindObjectsSortMode), Object.FindObjectOfType\<T>(), Object.FindObjectOfType\<T>(bool), Object.FindFirstObjectByType\<T>(), Object.FindAnyObjectByType\<T>(), Object.FindFirstObjectByType\<T>(FindObjectsInactive), Object.FindAnyObjectByType\<T>(FindObjectsInactive), Object.FindObjectsOfTypeAll(Type), Object.FindObjectOfType(Type), Object.FindFirstObjectByType(Type), Object.FindAnyObjectByType(Type), Object.FindObjectOfType(Type, bool), Object.FindFirstObjectByType(Type, FindObjectsInactive), Object.FindAnyObjectByType(Type, FindObjectsInactive), Object.ToString(), Object.name, Object.hideFlags, [object.Equals(object)](https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals\(system-object\)), [object.Equals(object, object)](https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals\(system-object-system-object\)), [object.GetHashCode()](https://learn.microsoft.com/dotnet/api/system.object.gethashcode), [object.GetType()](https://learn.microsoft.com/dotnet/api/system.object.gettype), [object.MemberwiseClone()](https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone), [object.ReferenceEquals(object, object)](https://learn.microsoft.com/dotnet/api/system.object.referenceequals), [object.ToString()](https://learn.microsoft.com/dotnet/api/system.object.tostring)

## Fields

### ShowDownloadRequest <a href="#ks_reactor_client_unity_editor_ksserverinstaller_showdownloadrequest" id="ks_reactor_client_unity_editor_ksserverinstaller_showdownloadrequest"></a>

```csharp
public bool ShowDownloadRequest
```

#### Field Value

[bool](https://learn.microsoft.com/dotnet/api/system.boolean)

## Methods

### Check(bool, bool, bool, bool, bool) <a href="#ks_reactor_client_unity_editor_ksserverinstaller_check_system_boolean_system_boolean_system_boolean" id="ks_reactor_client_unity_editor_ksserverinstaller_check_system_boolean_system_boolean_system_boolean"></a>

Check local server file existance and versions and optionally prompt the user to download a new server if the check fails.

```csharp
public ksServerInstaller.FileStates Check(bool checkBuildFiles = true, bool checkServerFiles = true, bool attemptDownload = false, bool logWarnings = true, bool versionUpdate = false)
```

#### Parameters

`checkBuildFiles` [bool](https://learn.microsoft.com/dotnet/api/system.boolean)

Check if the files required for building images are available.

`checkServerFiles` [bool](https://learn.microsoft.com/dotnet/api/system.boolean)

Check if the files required for running local servers and clusters are available.

`attemptDownload` [bool](https://learn.microsoft.com/dotnet/api/system.boolean)

Attempt to download a new server if the check fails.

`logWarnings` [bool](https://learn.microsoft.com/dotnet/api/system.boolean)

Should warning messages for missing of invalid versioning written to the logs.

`versionUpdate` [bool](https://learn.microsoft.com/dotnet/api/system.boolean)

If true and all other checks pass, the check fails and returns [INVALID\_VERSION](/reactor/api-reference/ks.reactor.client.unity.editor/ks.reactor.client.unity.editor.ksserverinstaller/ks.reactor.client.unity.editor.ksserverinstaller.filestates.md#KS_Reactor_Client_Unity_Editor_ksServerInstaller_FileStates_INVALID_VERSION).

#### Returns

[ksServerInstaller](/reactor/api-reference/ks.reactor.client.unity.editor/ks.reactor.client.unity.editor.ksserverinstaller.md).[FileStates](/reactor/api-reference/ks.reactor.client.unity.editor/ks.reactor.client.unity.editor.ksserverinstaller/ks.reactor.client.unity.editor.ksserverinstaller.filestates.md)

Result of the server check.

### Download(string) <a href="#ks_reactor_client_unity_editor_ksserverinstaller_download_system_string" id="ks_reactor_client_unity_editor_ksserverinstaller_download_system_string"></a>

Prompt the user to download a new server instance.

```csharp
public bool Download(string dialogMessage)
```

#### Parameters

`dialogMessage` [string](https://learn.microsoft.com/dotnet/api/system.string)

Message to display when asking to download a new server.

#### Returns

[bool](https://learn.microsoft.com/dotnet/api/system.boolean)

Returns false if the download was not accepted or encountered an error.
