# TASK::TASK_START_SCENARIO_IN_PLACE_HASH

- **Hash:** `0x524B54361229154F`
- **Namespace:** TASK
- **Runtime name (Lua/JS):** `TaskStartScenarioInPlaceHash`
- **Side:** client (game native)
- **Name status:** official
- **Documentation:** described
- **Since game build:** 1207
- **URL:** https://natives.borderlinerp.com/natives/TASK/TASK_START_SCENARIO_IN_PLACE_HASH

## Signature

```c
void TASK_START_SCENARIO_IN_PLACE_HASH(Ped ped, Hash scenarioHash, int duration, BOOL playEnterAnim, Hash conditionalHash, float heading, BOOL idleForever);
```

## Parameters

- `ped` (`Ped`)
- `scenarioHash` (`Hash`)
- `duration` (`int`)
- `playEnterAnim` (`BOOL`)
- `conditionalHash` (`Hash`)
- `heading` (`float`)
- `idleForever` (`BOOL`)

## Returns

`void`

## Description

https://github.com/femga/rdr3_discoveries/blob/master/animations/scenarios
Params: duration in milliseconds

conditionalHash (optionally):
0 = play random conditional anim.
Every conditional anim has requirements to play it.
If requirements are not met, ped plays random allowed conditional anim or can be stuck.
For example, this scenario type has possible conditional anim WORLD_HUMAN_LEAN_BACK_WALL_SMOKING_MALE_D, but it can not be played by player, because condition is set to NOT be CAIConditionIsPlayer (check file amb_rest.meta and amb_rest_CA.meta with OPENIV to clarify requirements).

## Usage

### Lua

```lua
TaskStartScenarioInPlaceHash(ped, scenarioHash, duration, playEnterAnim, conditionalHash, heading, idleForever)

-- always available, by hash
Citizen.InvokeNative(0x524B54361229154F, ped, scenarioHash, duration, playEnterAnim, conditionalHash, heading, idleForever)
```

### JavaScript

```js
TaskStartScenarioInPlaceHash(ped, scenarioHash, duration, playEnterAnim, conditionalHash, heading, idleForever);

// by hash
Citizen.invokeNative('0x524B54361229154F', ped, scenarioHash, duration, playEnterAnim, conditionalHash, heading + 0.0000001, idleForever);
```

### C#

```csharp
Function.Call((Hash)0x524B54361229154F, ped, scenarioHash, duration, playEnterAnim, conditionalHash, heading, idleForever);
```

- Hash parameters: the named function also accepts a string and hashes it for you; `Citizen.InvokeNative` needs the number — pass `joaat("name")` or a backtick literal like `` `name` ``.
- Float parameters: Lua integers (`10`, or whole numbers decoded from NUI/JSON) are sent as ints and read as garbage. Write `10.0` or `value + 0.0`. The generated JS wrappers add `0.0000001` to non-zero floats for the same reason.

*Sources: alloc8or RDR3 NativeDB.*
