> For the complete documentation index, see [llms.txt](https://fast-studios.gitbook.io/press-e/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://fast-studios.gitbook.io/press-e/manual/scripting/universals.md).

# Universals

To change [**universal**](/press-e/manual/speed-up-workflow.md#universals) values at runtime, use **`UniversalsRuntime`**.\
It exposes the following functions:

* `SetBool`
* `SetInt`
* `SetFloat`
* `SetString`
* `SetEnumIndex`
* `SetColor`
* `SetVector2`
* `SetVector3`
* `SetVector2Int`
* `SetVector3Int`
* `SetQuaternion`
* `SetLayerMask`
* `SetKeyCode`

For each function you must provide:

1. **Which script** you’re updating (only scripts that support universals, you can see them in the [Universals](/press-e/manual/speed-up-workflow.md#universals) Window),
2. The **property name**
3. The **new value**.

Example:

```csharp
public void ChangeUniversals()
{
    // Interactable.maxInteractions -> 10
    UniversalsRuntime.SetInt<Interactable>(nameof(Interactable.maxInteractions), 10);

    // Key.CanInteract -> true  (using the property name as string)
    UniversalsRuntime.SetBool<Key>("CanInteract", true);   
    
    // PositionLerp.Duration -> 3.5f
    UniversalsRuntime.SetFloat<PositionLerp>(nameof(PositionLerp.Duration), 3.5f);
    
    // Key.KeyName -> "Universal Key"
    string KeyName = nameof(Key.KeyName);
    UniversalsRuntime.SetString<Key>(KeyName, "Universal Key");
}
```
