RedM Natives

REQUEST_IPL_HASH

Loads an IPL by hash. The hash must be a signed int32 — larger positive values are ignored without an error.

Hash0x59767C5A7A9AE6DA
Runtime nameRequestIplHash
NamespaceSTREAMING
SideClient
NameOfficial
Docs
Since build1207

Signature

void REQUEST_IPL_HASH(Hash iplHash);

Parameters

NameTypeDescription
iplHashHash

IPL hash as a signed 32-bit integer.

Returns void

Description

Old name: _REQUEST_IMAP

Verified notes

Reviewed in this portal's repository · by borderline-rp

Pass the signed form

A hash of 2³¹ or more passed as a positive integer is dropped silently: no error, the IPL never loads and IS_IPL_ACTIVE_HASH stays false. The same applies to REMOVE_IPL_HASH and IS_IPL_ACTIVE_HASH.

  • joaat("name") and backtick literals already return the signed form.
  • tonumber("0xF4101CBE") returns the unsigned form (4094696638) and breaks the call.

_GET_IPL_BOUNDING_SPHERE does accept the unsigned form, which makes the bug look like a streaming or timing problem: the sphere is found, the IPL never appears.

local function toSignedHash(h)
    h = math.floor(tonumber(h)) & 0xFFFFFFFF
    if h >= 0x80000000 then h = h - 0x100000000 end
    return h
end

RequestIplHash(toSignedHash('0xF4101CBE'))

Store hashes signed in your database too, or convert them on read.

Verified in game on the Borderline RP server, September 2026.

Usage

Lua
RequestIplHash(iplHash)

-- always works, by hash
Citizen.InvokeNative(0x59767C5A7A9AE6DA, iplHash)
JavaScript and C#
JavaScript
RequestIplHash(iplHash);

// by hash
Citizen.invokeNative('0x59767C5A7A9AE6DA', iplHash);
C#
Function.Call((Hash)0x59767C5A7A9AE6DA, iplHash);
  • 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`.

See also

Sources

alloc8or RDR3 NativeDB · RedM Natives (verified notes)

Something wrong or missing? Contribute a verified note — corrections ship through pull requests.