Knowledge from the fieldRedM

Carried (shoulder) pelt in RDR2 is a generic p_cs_pelt_large prop — use _GET_FIRST_ENTITY_PED_IS_CARRYING, and AVOID GET_CARRIED_ATTACHED_INFO_FOR_SLOT's struct buffer in JS (it crashes)

learning:85

Carried (shoulder) pelt in RDR2 is a generic p_cs_pelt_large prop — use _GET_FIRST_ENTITY_PED_IS_CARRYING, and AVOID GET_CARRIED_ATTACHED_INFO_FOR_SLOT's struct buffer in JS (it crashes)

Context

Trying to identify a pelt the player is carrying on their shoulder (before stowing it on a horse), to sell/track it.

What works

_GET_FIRST_ENTITY_PED_IS_CARRYING(ped) (0xD806CD2A4F2C2996) returns the carried Entity directly — no buffer, no crash. Gate with IS_PED_CARRYING_SOMETHING (0xA911EE21EDF69DAF) and confirm with _GET_IS_CARRIABLE_PELT(entity) (0x255B6DB4E3AD3C3E).

The catch: the carried entity is a GENERIC prop

GetEntityModel(carriedPelt) returns p_cs_pelt_large (0xC21AF693) — or _medium/_small. These are generic size-class props; the actual ANIMAL and QUALITY are NOT on the carried entity's model. _GET_PED_QUALITY on it returns -1 (PQ_INVALID). So you can only get the pelt's SIZE from the shoulder-carried entity, not which animal/quality.

The real animal+quality only becomes available once the pelt is stowed on a horse (then it's a provision_<animal>_hide_<quality> hash in the kd_stable_stow state bag / via _GET_PELT_FROM_HORSE). Design accordingly: do animal/quality-specific pelt logic at the horse-stow stage, not the shoulder-carry stage.

The trap: GET_CARRIED_ATTACHED_INFO_FOR_SLOT (0x608BC6A6AACD5036)

The docs say its outData is a 32-byte struct<4> with { model, carryConfig, carriableSlot, entity } — which WOULD give animal info (carryConfig = e.g. DEAD_CARRIABLE_FOX). But in the CitizenFX JS runtime, calling it with a Uint8Array/ArrayBuffer out-param hard-crashes ("exception at address RDR3_GTAProcess.exe+..."), every time, regardless of slot. The 32-byte struct buffer marshalling that works for GET_EVENT_DATA does NOT work for this native in JS. Avoid it; use _GET_FIRST_ENTITY_PED_IS_CARRYING + accept the size-only limitation, or read animal/quality from the horse stow instead.

Linked: _GET_FIRST_ENTITY_PED_IS_CARRYING 0xD806CD2A4F2C2996, IS_PED_CARRYING_SOMETHING 0xA911EE21EDF69DAF, _GET_IS_CARRIABLE_PELT 0x255B6DB4E3AD3C3E, GET_CARRIED_ATTACHED_INFO_FOR_SLOT 0x608BC6A6AACD5036.

Linked natives

  • _GET_CARRIED_ATTACHED_INFO_FOR_SLOT (0x608BC6A6AACD5036)
  • _GET_FIRST_ENTITY_PED_IS_CARRYING (0xD806CD2A4F2C2996)
  • _GET_IS_CARRIABLE_PELT (0x255B6DB4E3AD3C3E)
  • IS_PED_CARRYING_SOMETHING (0xA911EE21EDF69DAF)

Tags: pelt, carry, carriable, hunting, struct-buffer, invokenative, rdr3
Category: natives
Source: scandi-hunting-build
Created: 2026-06-04T14:36:17.604Z

Back to documentation