# LAW::GET_PLAYER_REGISTERED_CRIME

- **Hash:** `0x532C5FDDB986EE5C`
- **Namespace:** LAW
- **Runtime name (Lua/JS):** `GetPlayerRegisteredCrime`
- **Side:** client (game native)
- **Name status:** official
- **Documentation:** described with examples
- **Since game build:** 1207
- **URL:** https://natives.borderlinerp.com/natives/LAW/GET_PLAYER_REGISTERED_CRIME

## Signature

```c
BOOL GET_PLAYER_REGISTERED_CRIME(Player player, int index, Any* outData);
```

## Parameters

- `player` (`Player`)
- `index` (`int`)
- `outData` (`Any*`)

## Returns

`BOOL`

## Description

*Source: alloc8or RDR3 NativeDB*

Reads one entry from the player's registered-crimes list (oldest -> newest) at the given index.
	- Commonly iterated with index 0..23.
	- Returns true if the entry exists/was copied into outData.
	- Scripts typically check outData.f_10 (reported flag) and use (crimeType, unk7) as inputs to other LAW queries.

outData (script struct<11>):
	struct RegisteredCrime
	{
		alignas(8) Hash crimeType;   // outData.f_0
		alignas(8) int  bounty;      // outData.f_1
		alignas(8) Hash unk2;        // outData.f_2
		alignas(8) Any  unk3;        // outData.f_3
		alignas(8) Any  unk4;        // outData.f_4
		alignas(8) Any  unk5;        // outData.f_5
		alignas(8) Any  unk6;        // outData.f_6
		alignas(8) int  unk7;        // outData.f_7 (paired with crimeType in scripts)
		alignas(8) Any  unk8;        // outData.f_8
		alignas(8) Any  unk9;        // outData.f_9
		alignas(8) bool wasReported; // outData.f_10
	};

*Source: VORPCORE RDR3natives*

Returns the player registed crime data at the index

## Usage

### Lua

```lua
local retval, outData = GetPlayerRegisteredCrime(player, index, outData)

-- always available, by hash
local retval, outData = Citizen.InvokeNative(0x532C5FDDB986EE5C, player, index, Citizen.PointerValueIntInitialized(outData), Citizen.ReturnResultAnyway())
```

### JavaScript

```js
const [retval, outData] = GetPlayerRegisteredCrime(player, index, outData);

// by hash
const [retval, outData] = Citizen.invokeNative('0x532C5FDDB986EE5C', player, index, Citizen.pointerValueIntInitialized(outData), Citizen.returnResultAnyway());
```

### C#

```csharp
var outData = new OutputArgument();
bool retval = Function.Call<bool>((Hash)0x532C5FDDB986EE5C, player, index, outData);
// outData.GetResult<int>()
```

- The last argument is an in/out pointer: pass its initial value, and the updated value is returned after the result.
- `Any*` arguments are often structs. Build them with a DataView buffer and pass it with `:Buffer()` — see the examples and notes below.

## Examples

*Source: VORPCORE RDR3natives*

```lua
struct outData
{
  Hash crimeType;
  int bounty;
  Hash unk2;
  Any unk3;
  Any unk4;
  Any unk5;
  Any unk6;
  int unk7;
  Any unk8;
  Any unk9;
  bool unk10;
}
```

*Sources: alloc8or RDR3 NativeDB, VORPCORE RDR3natives.*
