🥎Hold and Throw
DH_Throw is a lightweight, standalone FiveM resource that lets players spawn, hold, throw, and pick up predefined objects with immersive animations and interaction.
🧱 How to Install
Follow instructions in Getting Started
🔧 Features
✅
/hand [object]
to spawn a predefined prop in hands✅
/throw
command or keybind (defaultG
) to throw the object✅ Realistic throw physics from hand or vehicle window
✅ [E] Pickup interaction hint when near a thrown object
✅ Modular config to enable/disable features
✅ Scaleform hints with keybind awareness
✅ Full export & event support for other resources
✅ Fully client-side and framework-independent
📜 Commands
/hand object
Spawns a prop from the config into your hand
/hand
Cancels current held object or shows usage
/throw
Throws the held object in a random direction
🎮 Keybind
Throw Object
G
✅ Yes
To rebind, go to Settings → Key Bindings → FiveM → Throw Held Object
⚙️ Config (config.lua
)
config.lua
)🔹 Predefined Objects
Config.Objects = {
waterbottle = { label = "Water Bottle", model = "prop_ld_flow_bottle" },
brick = { label = "Brick", model = "prop_brick_01" },
toolbox = { label = "Toolbox", model = "prop_tool_box_04" }
}
🔹 Global Settings
Config.Settings = {
AllowInVehicle = true, -- Allow throwing from vehicles
ForceUnarmed = true, -- Forces player to be unarmed while holding
BlockMelee = true, -- Prevents melee while holding
BlockAiming = true, -- Disables aiming and shooting
ShowThrowHint = true, -- Scaleform hint [G] Throw Object
ShowAvailableObjects = true -- Show object list if /hand has no args
}
Config.PickupKey = 38 -- [E] to pick up
🧩 Exports
🧪 Check if player is holding something
exports["DH_Throw"]:IsPlayerHoldingObject() then ... end
📦 Get current held object
name = exports["DH_Throw"]:GetHeldObjectName()
local entity = exports["DH_Throw"]:GetHeldObjectEntity()
❌ Remove the held object
exports["DH_Throw"]:RemoveHeldObject()
🎁 Set an object via code (same as /hand)
exports["DH_Throw"]:SetHeldObject("brick")
🪝 Events & Callbacks
🔔 DH_Throw:ObjectPickedUp
DH_Throw:ObjectPickedUp
Triggered when any object is picked up:
AddEventHandler("DH_Throw:ObjectPickedUp", function(objectName, netId, entity)
print("Picked up:", objectName)
end)
🔁 RegisterOnObjectPickup(callback)
RegisterOnObjectPickup(callback)
Alternative method for pickup detection:
exports["DH_Throw"]:RegisterOnObjectPickup(function(objectName, netId, entity)
-- custom logic
end)
💡 Tips
All objects thrown are synced and visible to all players
Throw direction is random when on foot, or based on seat position in vehicles
Melee, aiming, and weapon switching can all be disabled via config
Fully expandable — drop in new objects, add sounds, integrate with inventory
❓ Frequently Asked Questions
Last updated