# CFX::START_FIND_EXTERNAL_KVP

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

## Signature

```c
int START_FIND_EXTERNAL_KVP(char* resourceName, char* prefix);
```

## Parameters

- `resourceName` (`char*`) — The resource to try finding the key/values for
- `prefix` (`char*`) — A prefix match

## Returns

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

## Description

*Source: Cfx.re native reference*

Equivalent of [START_FIND_KVP](#\_0xDD379006), but for another resource than the current one.

## Usage

### Lua

```lua
local retval = StartFindExternalKvp(resourceName, prefix)

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

### JavaScript

```js
const retval = StartFindExternalKvp(resourceName, prefix);

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

### C#

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

## Examples

*Source: Cfx.re native reference*

```lua
local kvpHandle = StartFindExternalKvp('drugs', '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
```

*Sources: Cfx.re native reference.*
