RedM Natives

FIRE_SINGLE_BULLET

alignas(8) float xStart; alignas(8) float yStart; alignas(8) float zStart; alignas(8) float xEnd; alignas(8) float yEnd; alignas(8) float zEnd; alignas(8) Hash weaponHash; alignas(8) float damage; alignas(8) float p8; // often -1.0f in s…

Hash0xCBC9A21F6A2A679C
Runtime nameFireSingleBullet
NamespaceMISC
SideClient
NameOfficial
Docs
Since build1207

Signature

void FIRE_SINGLE_BULLET(Any* args);

Parameters

NameTypeDescription
argsAny*—

Returns void

Description

struct FireSingleBulletArgs
{
	alignas(8) float  xStart;
	alignas(8) float  yStart;
	alignas(8) float  zStart;
	alignas(8) float  xEnd;
	alignas(8) float  yEnd;
	alignas(8) float  zEnd;
	alignas(8) Hash   weaponHash;
	alignas(8) float  damage;
	alignas(8) float  p8;          // often -1.0f in scripts; likely default/sentinel shot float
	alignas(8) Ped    instigator;  // confirmed ped GUID
	alignas(8) Entity entity2;     // optional entity ref; likely ignore/target-related
	alignas(8) Entity entity3;     // optional entity ref; likely ignore/target-related
	alignas(8) BOOL   p12;         // main shot behavior flag
	alignas(8) BOOL   p13;         // main shot behavior flag
	alignas(8) BOOL   p14;
	alignas(8) BOOL   p15;         // adds extra internal flag bit
	alignas(8) BOOL   p16;
	alignas(8) BOOL   p17;         // confirmed BOOL
	alignas(8) BOOL   p18;         // adds extra internal flag bit
	alignas(8) BOOL   p19;         // confirmed BOOL-like
};

static_assert(sizeof(FireSingleBulletArgs) == 0xA0, "incorrect FireSingleBulletArgs size");

Usage

Lua
local args = FireSingleBullet(args)

-- always works, by hash
local args = Citizen.InvokeNative(0xCBC9A21F6A2A679C, Citizen.PointerValueIntInitialized(args))
JavaScript and C#
JavaScript
const args = FireSingleBullet(args);

// by hash
const args = Citizen.invokeNative('0xCBC9A21F6A2A679C', Citizen.pointerValueIntInitialized(args));
C#
var args = new OutputArgument();
Function.Call((Hash)0xCBC9A21F6A2A679C, args);
// args.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

LUA · VORPCORE RDR3natives
struct FireSingleBulletArgs
{
  float xStart;
  float yStart;
  float zStart;
  float xEnd;
  float yEnd;
  float zEnd;
  Hash weaponHash;
  float damage;
  float p8;
  Entity instigator;
  Entity entity2;
  Entity entity3;
  BOOL p12;
  BOOL p13;
  BOOL p14;
  BOOL p15;
  BOOL p16;
  Any p17;
  BOOL p18;
  BOOL p19;
}

Sources

alloc8or RDR3 NativeDB · VORPCORE RDR3natives

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