# CFX::START_FIND_KVP

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

## Signature

```c
int START_FIND_KVP(char* prefix);
```

## Parameters

- `prefix` (`char*`) — A prefix match

## Returns

`int` — A KVP find handle to use with [FIND_KVP](#\_0xBD7BEBC5) and close with [END_FIND_KVP](#\_0xB3210203)

## Usage

### Lua

```lua
local retval = StartFindKvp(prefix)

-- always available, by hash
local retval = Citizen.InvokeNative(0xdd379006, prefix, Citizen.ResultAsInteger())
```

### JavaScript

```js
const retval = StartFindKvp(prefix);

// by hash
const retval = Citizen.invokeNative('0xdd379006', prefix, Citizen.returnResultAnyway(), Citizen.resultAsInteger());
```

### C#

```csharp
int retval = Function.Call<int>((Hash)0xdd379006, prefix);
```

## Examples

*Source: Cfx.re native reference*

```lua
SetResourceKvp('mollis:2', 'should be taken with alcohol')
SetResourceKvp('mollis:1', 'vesuvius citrate')
SetResourceKvp('mollis:manufacturer', 'Betta Pharmaceuticals')

local kvpHandle = StartFindKvp('mollis:')

if kvpHandle ~= -1 then 
	local key
	
	repeat
		key = FindKvp(kvpHandle)

		if key then
			print(('%s: %s'):format(key, GetResourceKvpString(key)))
		end
	until not key

	EndFindKvp(kvpHandle)
else
	print('No KVPs found')
end
```

## See also

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

*Sources: Cfx.re native reference.*
