# Platform Variables

The ONE Game Hosting service has a feature called Platform Variables, which can be used for configuration of your applications. Platform variables come in two types:

* variables pre-defined by the platform
* user defined variables

These variables can be used inside the `startupParameters` property of an [ApplicationBuild](/game-hosting/elements/application/applicationbuild.md) and inside configuration files ([ApplicationBuildConfiguration](/game-hosting/elements/application/applicationbuildconfiguration.md) elements), submitted for an ApplicationBuild. Examples are provided near the end of this page.

## Platform defined variables

The platform supplies a number of predefined variables:

| Variable name                | Description                                                                                                                                       |
| ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| VARSERVERID                  | The ID of the (physical or virtual) server an application is deployed on                                                                          |
| VARHOSTID                    | The ID of the host an application is deployed on                                                                                                  |
| VARHOSTNAME                  | The hostname of the host an application is deployed on                                                                                            |
| VARPLAYERS                   | Maximum number of players allowed on a game server                                                                                                |
| VARCONTINENT                 | The name of the continent in which the host is located                                                                                            |
| VARCOUNTRYCODE               | The ISO 3166-1 alpha-2 code of the country in which the host is located                                                                           |
| VARCOUNTRY                   | The full name of the country in which the host is located                                                                                         |
| VARDCLOCATIONID              | The ID of the data center location in which the host is located                                                                                   |
| VARDCLOCATION                | The name of the data center location in which the host is located                                                                                 |
| VARDEPLOYMENTENVIRONMENTID   | The ID of the DeploymentEnvironment of this ApplicationInstance                                                                                   |
| VARDEPLOYMENTENVIRONMENTNAME | The name of the DeploymentEnvironment of this ApplicationInstance                                                                                 |
| VARREGIONID                  | The identifier of the DeploymentRegion in which the host is located                                                                               |
| VARREGIONNAME                | The name of the DeploymentRegion in which the host is located                                                                                     |
| VARPROVIDER                  | The name of the owner of the (physical or virtual) server (e.g. i3D.net, GCP, AWS, etc.)                                                          |
| VARFLEETID                   | The identifier of the Fleet in which the host is located                                                                                          |
| VARFLEETNAME                 | The name of the Fleet in which the host is located                                                                                                |
| VARAPPLICATIONID             | The identifier of the Application element belonging to the ApplicationInstance that is being deployed                                             |
| VARAPPLICATIONBUILDID        | The identifier of the ApplicationBuild element that is being deployed                                                                             |
| VARAPPLICATIONINSTANCEID     | The ID of the ApplicationInstance that's being deployed                                                                                           |
| VARIPV4PRIVATE               | RFC-1918 IPv4 address of the host an application is deployed on                                                                                   |
| VARIPV4PUBLIC                | Public IPv4 address of the host an application is deployed on                                                                                     |
| VARIPV4BINDING               | IPv4 address that should be used by an application to bind on (e.g. a cloud VM will locally only see the host's private IP and not the public IP) |
| VARIPV6                      | IPv6 address of the host an application is deployed on                                                                                            |
| VARIPV6BINDING               | IPv6 address that should be used by an application to bind on (e.g. a cloud VM will locally only see the host's private IP and not the public IP) |

Table 1: Platform defined VARiables

## User defined variables

Alongside the platform defined VARiables, there are also custom ones that are derived from [ApplicationProperty](/game-hosting/elements/application/applicationproperty.md) elements. For each ApplicationProperty, a VARiable is generated. Some examples of this:

For a property named `game_port`, a VARiable named `VAR_GAME_PORT` is generated. For a property named `managementport`, a VARiable named `VAR_MANAGEMENTPORT` is generated. For a property named `management_password`, a VARiable named `VAR_MANAGEMENT_PASSWORD` is generated.

As you may already see, there is a visual difference between platform-defined VARiables and custom ones. The custom ones have the prefix `VAR_` (with an underscore), whereas the platform-defined ones lack the underscore.

All VARiables are in upper case.

Please note that startParameters VAR must have quotations surrounding it when using JSON:

```
{
 "startParameters": "dclocation: \\\"<YOUR PARAMETER>\\\" regionId:2434242"
}
```

## Examples

An example of VAR usage inside [ApplicationBuild](/game-hosting/elements/application/applicationbuild.md).startupParameters:

`-ip VARIPV4BINDING -port VAR_GAME_PORT -arcusport VAR_MANAGEMENTPORT -name "Bluewolf VAR_GAME_PORT" -applicationInstanceId VARAPPLICATIONINSTANCEID -maxplayers 8`

An example of VAR usage inside [ApplicationBuildConfiguration](/game-hosting/elements/application/applicationbuildconfiguration.md).configContent:

```
// Server name
hostname=Bluewolf VARAPPLICATIONINSTANCEID

// Arcus management passsword
arcus_password=VAR_MANAGEMENT_PASSWORD

// Server password
srv_password=VAR_SRVPASSWORD

// etc
```

You can concatenate VARiables if you want - they do not have to be separated by a space:

`-regionIdent VARREGIONNAME-VARAPPLICATIONINSTANCEID`

It will even work without a glue character:

`-regionIdent VARREGIONNAMEVARAPPLICATIONINSTANCEID`

!!! Warning "Underscore is not a glue character"

```
    Remember `_` is a character that can exist in a VAR name, so **this will not work**: `-regionIdent VARREGIONNAME_VARAPPLICATIONINSTANCEID`
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.i3d.net/game-hosting/elements/application/platform-variables.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
