# CFX::GET_TIMECYCLE_MODIFIER_VAR

- **Hash:** `0xA7109E12`
- **Namespace:** CFX
- **Runtime name (Lua/JS):** `GetTimecycleModifierVar`
- **Side:** client (Cfx runtime native)
- **Name status:** official
- **Documentation:** described with examples
- **URL:** https://natives.borderlinerp.com/natives/CFX/GET_TIMECYCLE_MODIFIER_VAR

## Signature

```c
BOOL GET_TIMECYCLE_MODIFIER_VAR(char* modifierName, char* varName, float* value1, float* value2);
```

## Parameters

- `modifierName` (`char*`) — The name of timecycle modifier.
- `varName` (`char*`) — The name of timecycle variable.
- `value1` (`float*`)
- `value2` (`float*`)

## Returns

`BOOL` — Whether or not variable by name was found on the specified timecycle modifier.

## Usage

### Lua

```lua
local retval, value1, value2 = GetTimecycleModifierVar(modifierName, varName)

-- always available, by hash
local retval, value1, value2 = Citizen.InvokeNative(0xa7109e12, modifierName, varName, Citizen.PointerValueFloat(), Citizen.PointerValueFloat(), Citizen.ReturnResultAnyway())
```

### JavaScript

```js
const [retval, value1, value2] = GetTimecycleModifierVar(modifierName, varName);

// by hash
const [retval, value1, value2] = Citizen.invokeNative('0xa7109e12', modifierName, varName, Citizen.pointerValueFloat(), Citizen.pointerValueFloat(), Citizen.returnResultAnyway());
```

### C#

```csharp
var value1 = new OutputArgument();
var value2 = new OutputArgument();
bool retval = Function.Call<bool>((Hash)0xa7109e12, modifierName, varName, value1, value2);
// value1.GetResult<float>()
// value2.GetResult<float>()
```

- Pointer (out) arguments are not passed in Lua/JS: their values are returned after the result, in order.

## Examples

*Source: Cfx.re native reference*

```lua
local modifierName = "superDARK"
local varName = "postfx_noise"

if DoesTimecycleModifierHasVar(modifierName, varName) then
  local success, value1, value2 = GetTimecycleModifierVar(modifierName, varName)

  if success then
    print(string.format("[%s] removed var %s with values: %f %f", modifierName, varName, value1, value2))
    RemoveTimecycleModifierVar(modifierName, varName)
  end
else
    SetTimecycleModifierVar(modifierName, varName, 1.0, 1.0)
    print(string.format("[%s] created var %s", modifierName, varName))
end
```

## See also

- [CFX::REMOVE_TIMECYCLE_MODIFIER_VAR](https://natives.borderlinerp.com/natives/CFX/REMOVE_TIMECYCLE_MODIFIER_VAR.md)
- [CFX::SET_TIMECYCLE_MODIFIER_VAR](https://natives.borderlinerp.com/natives/CFX/SET_TIMECYCLE_MODIFIER_VAR.md)

*Sources: Cfx.re native reference.*
