A complete, polished duck-hunting challenge for RedM. Challenge a nearby player to a duel, or bet on yourself in solo. Hand-crafted RDR2-styled UI, a database-backed records leaderboard, and built-in anti-grief protection.
Runs on VORP, RSG Core or TPZ Core — one download, whichever you use.
Duck Hunt redm
Duck Hunt redm
Features
- Three frameworks, one build — VORP, RSG Core or TPZ Core. The script finds whichever is running on its own; there is nothing to set.
- PvP duels — challenge any nearby player; the winner takes the whole pot.
- Solo challenge — bet on yourself, hit the duck target in time, and win a reward.
- Custom bets — ready presets, or let players type their own stake (server-bounded).
- Multiple locations — add as many hunter NPCs as you want; players use the nearest.
- Records leaderboard — saved in MySQL (oxmysql): best ducks + time, survives restarts.
- Anti-grief isolation — every duel and solo runs in its own private world, where the players are completely hidden from everyone else, so no outsider can see or attack them mid-match. And if a player shoots their rival instead of the ducks, they are instantly disqualified — the pot goes to the victim.
- Server-authoritative — scores, bets, distances and locations are validated server-side.
- Discord webhook — optional logging of every match and solo result.
- Clean western UI, draggable menu, and immersive sounds.
- Built-in version checker and resource-name lock.
Requirements
- One of: VORP Core, RSG Core or TPZ Core
- oxmysql
Download
Showcase
Tebex — free
Support
Need help or updates? Join our Discord.
Configuration
Config = {}
-- FRAMEWORK
-- 'auto' finds whichever of the three is running, which is right for almost
-- every server. Name yours only if you keep a second one installed but stopped.
Config.Framework = 'auto' -- auto | vorp | rsg | tpz
Config.Keys = {
Talk = 0x760A9C6F, -- G
Accept = 0xC7B5340A, -- ENTER
}
Config.Locale = 'en' -- text lives in locale.lua
Config.Lang = Locales[Config.Locale] or Locales['en']
-- LOCATIONS — each place links one hunter NPC to its own two stand spots.
-- Add as many places as you want: copy a block and change npc + spots.
Config.Locations = {
{
npc = vector4(-2537.22, -1421.21, 145.85, 71.32),
spots = {
vector4(-2542.46, -1423.70, 145.76, 152.85), -- player 1 / solo
vector4(-2544.64, -1422.29, 145.69, 133.85), -- player 2
},
},
{
npc = vector4(1703.05, 1486.87, 146.46, 360.0),
spots = {
vector4(1698.49, 1482.41, 146.39, 103.64),
vector4(1697.70, 1485.67, 146.45, 103.25),
},
},
}
-- Shared NPC + blip settings (same for every location)
Config.NPC = {
model = "u_m_m_sdtrapper_01",
promptDistance = 2.5,
blip = { enabled = true, sprite = 500148876, name = "Duck Hunt Challenge" },
}
Config.HuntSpot = { countdown = 3 } -- seconds before the hunt starts
-- SOLO: pay stake -> hit target in time -> win reward (miss = lose stake)
Config.Solo = {
enabled = true,
timeLimit = 60,
isolate = true, -- hunt alone in a private world (no griefing)
challenges = {
{ target = 6, stake = 10, reward = 25 },
{ target = 9, stake = 20, reward = 55 },
{ target = 12, stake = 30, reward = 90 },
},
}
-- PVP MATCH (server only accepts values from these lists)
Config.Match = {
timeOptions = { 30, 60, 90, 120 },
duckOptions = { 5, 10, 15, 20 },
}
Config.Bet = {
enabled = true,
default = 25,
options = { 10, 25, 50, 100 },
allowCustom = true, -- let players type their own stake
customMin = 10,
customMax = 1000,
}
-- DISCORD LOG (optional webhook for match / solo results)
Config.Webhook = {
enabled = false,
url = "",
name = "Duck Hunt",
avatar = "",
}
Download
[Tebex — free](https://zoo-scripts.tebex.io/package/7579480)
| Code is accessible | Config only |
| Subscription-based | No |
| Lines (approximately) | ~3,600 |
| Requirements | VORP Core, RSG Core or TPZ Core — plus oxmysql |
| Support | Yes |
| Uploading: ImageD.png… |
