
Daily Challenges for Offline RDR2
Bring RDO-style daily challenges to single-player. Streak multipliers, RDR$ payouts, journal-styled overlay, per-character progress. ~342 challenges across hunting, combat, exploration, survival, and more.
About this mod
Red Dead Online had a daily-challenge loop that gave the open world a reason to revisit it every day — pick a turkey, ride to Tumbleweed, lasso an outlaw. Single-player has the same world but no reward system layered over it.
Daily Challenges brings the loop back. Every real-world day at midnight, the mod picks 5 challenges at random from a pool of ~342 distinct templates, tracks your progress as you play, and pays out RDR$ (and bookkeeps Honor + stat-core points for the overlay). Build a streak across consecutive days and your rewards scale up to 2.5× at the 22-day tier; hit 28 days for a milestone bonus and start the cycle again.
Tap Shift+F9 at any time to flip open the journal — a cream-parchment, dark-wood-framed page that shows today’s notices, your current streak, lifetime earnings, and tier progress. Quiet completion toasts slide in from the right as you knock challenges off.
Highlights
342 unique challenges across 16 categories — hunting (humans + animals + birds + fish), skinning, plucking, fishing, foraging, town visits, landmark exploration, lasso/grapple/KO, distance travel, crafting, survival, lawman/outlaw, regions, stealth, headshots, time-of-day, weather
Per-character save — switch between Arthur and John (or any save) and each keeps its own streak, today’s picks, and lifetime totals
5-challenge daily rotation with a 10-day no-repeat buffer so the same challenge doesn’t appear back-to-back
RDO streak tiers — 1.0× (days 1-7), 1.5× (8-14), 2.0× (15-21), 2.5× (22-28), 28-day milestone bonus then cycle resets
Journal-style overlay — parchment body, dark-wood title bar, gold streak meter with tier markers, wax-red completion stamps, decorative gold rules, fade-in animation. Composited entirely from the engine’s text + rect natives, no streamed textures
Slide-in toast notifications with colored ledger stripes (gold/amber/wax-red/cream) per event class
INI configurable — challenge count per day, streak multipliers, payouts, detection cadence, overlay hotkey, and all wave-B/C/D thresholds
Atomic save with CRC32 integrity check — game crashing mid-save can’t corrupt your progress
Detection coverage
What the mod actually tracks at runtime, and how each category is detected:
Kills (specific model) — Real-time damage attribution via HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY plus first-sight-dead fallback. Works for any animal or NPC model.
Kills (specific weapon) — Weapon hash from GET_PED_CAUSE_OF_DEATH. Every firearm, bow, throwing knife, and tomahawk supported.
Mounted kills — Player state IS_PED_ON_MOUNT sampled at kill time.
Cover kills — IS_PED_IN_COVER sampled at kill time.
Ranged kills — Distance between player and victim ≥ 50m at kill time.
Melee/unarmed kills — Weapon hash matches weapon_unarmed or zero.
Headshots (humans) — GET_PED_LAST_DAMAGE_BONE matched against the SKEL_Head bone-tag table. Reliable for human/humanoid NPCs.
Headshots (animals) — Fallback using GET_PED_LAST_WEAPON_IMPACT_COORD plus GET_MODEL_DIMENSIONS. Counts as a headshot when the impact lands in the upper 40% of the victim’s bounding box. Best-effort for medium-and-larger animals.
Stealth kills — IS_PED_BEING_STEALTH_KILLED sampled into a sticky timestamp; sticky window is 3 seconds by default (StealthStickyMs).
Kill from behind — IS_PED_FACING_PED inverse with a 180° cone; player must be in the victim’s rear hemisphere at death time.
Free-aim kills — IS_PLAYER_FREE_AIMING sampled every frame (not just per-tick) with a 2-second sticky window so kills shortly after L2 release still credit.
Night kills — TIME::GET_CLOCK_HOURS in the 21:00–05:00 window at kill time.
Dawn kills — TIME::GET_CLOCK_HOURS in the 05:00–08:00 window at kill time.
Weather-conditional kills (rain/snow/thunder/blizzard) — Current dominant weather hash from _GET_WEATHER_TYPE_TRANSITION sampled at kill time.
Region-specific kills — 14 named regions (Big Valley, Tall Trees, Bayou Nwa, New Austin, Cumberland Forest, Grizzlies/Ambarino, Heartlands, Cholla Springs, Roanoke Ridge, Lemoyne, Hennigans Stead, Gaptooth Ridge, Great Plains, Scarlett Meadows). Victim position checked against AABB rectangles.
Wanted-level kills — GET_PLAYER_WANTED_LEVEL > 0 at kill time.
Gang faction takedowns — 7 factions, 29 model variants total (O’Driscolls, Lemoyne Raiders, Murfree Brutes, Skinner Brothers, Del Lobos, Night Folk, plus bounty hunter spawns). Victim model hash looked up in a faction table.
Skinning/plucking — Credited immediately on kill (no proximity wait). Routed alongside kill detection.
Fishing — Generic catch detection. Fishing rod equipped plus scenario session ≥ 5 seconds. Species-specific fishing challenges credit on any catch.
Foraging — 22+ plant species. Proximity to plant object within 1.5m while in a scenario.
Town visits — 8 major towns (Valentine, Saint Denis, Rhodes, Strawberry, Tumbleweed, Annesburg, Blackwater, Van Horn). Coordinate footprint with daily reset.
Landmark visits — 19 named locations (Bolger Glade, Bard’s Crossing, Owanjila Dam, Lake Don Julio, Window Rock, Macomb’s End, Aurora Basin, Mount Hagen, Roanoke Valley, Cumberland Falls, Manzanita Post, Wallace Station, Emerald Ranch, Beecher’s Hope, Thieves’ Landing, Fort Wallace, Butcher Creek, Van Horn, Riggs Station). Coordinate proximity with daily reset.
Distance travel — Per-transport accumulator (horseback / wagon / train) via position delta with transport-state gating. Horseback fires at 3048m (10000ft), wagon at 1524m (5000ft), train at 1500m.
Swim distance — IS_PED_SWIMMING plus position delta. Fractional meters preserved across accumulator cycles.
Sprint distance — AI::IS_PED_SPRINTING plus position delta. Fractional meters preserved.
Gallop duration — Mounted plus GET_ENTITY_SPEED ≥ 8 m/s (configurable). Credits per accumulated second.
Sit-by-fire duration — Scenario state plus 4m campfire proximity. Accumulates milliseconds.
Crafting / cooking — Campfire scenario session of ≥ 15 seconds credits one craft and one cook event. Wildcard category covers all craft/cook challenges.
Eating — HP rebound > threshold while outside combat. Default threshold 8 HP. Can be disabled via EnableConsumeHeuristic=0.
Lasso / Grapple / KO — Lasso weapon equipped, target ped is ragdolled and within 15m. KO requires alive target with HP < 50.
Horse interactions — Mounted plus scenario active. Held-item check distinguishes brush/pat from tonic use. Throttled to once per 8 seconds.
Survive 24 hours — Continuous alive timer with reset on death.
No-kill 24 hours — Rolling no-kill timer with reset on any kill.
Stay healthy — HP ≥ 80% (configurable) plus not-in-combat for accumulated seconds.
What is not detected in V1 (the pool excludes challenges that need any of these):
Dead Eye activation state
Specific fish species
Inventory enumeration (no "kill 3 with pistol" if pistol detection needs current-equipped check before kill)
Bounty mission state (which targets are wanted)
Pheromone / photograph mechanics
Multiplayer-only events (PvP, role missions, posses)
Installation
Install Script Hook RDR2 if you haven’t already.
Drop
DailyChallenges.asi
and
DailyChallenges.ini
into your Red Dead Redemption 2 game folder (same folder as
RDR2.exe
).
Launch the game. You’ll get a toast saying “A new day begins” with today’s 5 picks, and Shift+F9 will open the journal.
Your progress is saved to
%APPDATA%\ADaysWork\state_
— each save character gets its own file.
Configuration
DailyChallenges.ini
lives next to the game executable. Edit and restart to apply.
DailyChallenges.ini
lives next to RDR2.exe. Edit, save, restart the game.
[General]
ModEnabled=1
— Master on/off. Set to 0 to disable without removing the .asi.
LogVerbose=0
— Per-kill diagnostic log spam. Leave off unless debugging.
OverlayHotkey=120
— Windows VK code for the journal toggle. Always combined with Shift. Defaults to F9 (0x78). F8 = 0x77, F10 = 0x79.
ChallengesPerDay=5
— Number of challenges rolled each day. Valid range 1 to 8.
[Rewards]
BaseRdrPerChallenge=8
— Base RDR$ payout. Multiplied by your current streak-tier multiplier.
BaseHonorPerChallenge=1
— Bookkept by the mod for the overlay. No in-game honor change (the SDK doesn’t expose that native).
AllCompleteBonusRdr=50
— Extra $ when all today’s challenges are completed.
CoreFragmentPerChallenge=4
— Bookkept stat-core fragments shown on overlay. No in-game core change yet.
[Streak]
Tier1Multiplier=1.0
— Days 1 through 7.
Tier2Multiplier=1.5
— Days 8 through 14.
Tier3Multiplier=2.0
— Days 15 through 21.
Tier4Multiplier=2.5
— Days 22 through 28.
Day28ResetRdr=100
— Bonus $ paid when streak hits 28; cycle resets afterward.
Day28ResetCoreRefill=1
— Cosmetic core-refill on the milestone display.
[Rotation]
NoRepeatDays=10
— A challenge that appeared in the last N days won’t reappear. With ~342 challenges and 5 picks per day, the 80-entry recent buffer means months of unique daily sets.
[Detection]
PollIntervalMs=500
— How often the world-state sweeps run. Lower = more responsive; higher = less CPU. 500 catches every multi-second state transition.
EnableConsumeHeuristic=1
— Detects eating via HP rebound outside combat. Set to 0 if you find it noisy.
ConsumeHpRiseThreshold=8
— HP delta required to count as an eat event. Higher = stricter, fewer false positives.
StealthStickyMs=3000
— How long the IS_PED_BEING_STEALTH_KILLED flag stays “true” after the animation ends, before the kill credit decides it counts as stealth. Lower = stricter, higher = more lenient.
FreeAimStickyMs=2000
— How long after releasing L2 a kill still credits as free-aim. Compensates for the 500ms detector poll cadence.
GallopSpeedThresholdMs=8.0
— Horse speed in m/s required to count as galloping. Lower to ~6 if you ride slower breeds and want easier credit.
HealthStablePct=80
— HP percentage required for “stay healthy for X minutes” challenges. Clamped to 1–100.
Known limitations
Honor and stat-core rewards are bookkeeping only. The mod tracks them and the overlay displays them, but the underlying game-state natives for modifying honor/cores aren’t in the ScriptHookRDR2 SDK. Money rewards (RDR$) do apply in-game via
CASH::PLAYER_ADD_CASH
. When these natives are reverse-engineered we’ll wire them in.
No Dead Eye / no specific-fish-species detection. The pool was curated to exclude challenges that need state we can’t read. Some heuristics (eat-event from HP rebound, craft from sit-by-fire) are best-effort — if a challenge fires when you didn’t actually do it, raise the threshold in the INI.
Animal headshots are best-effort. Human headshot detection is reliable via
GET_PED_LAST_DAMAGE_BONE
. Animals use a fallback height heuristic (impact in the top 40% of the bounding box). Works well for medium/large animals; less accurate for small ones like rabbits.
Faction takedowns rely on a hand-curated model table. 29 gang model variants across 7 factions are recognized. If a faction member spawned with an uncommon variant we missed, that specific spawn won’t credit. Reach out with the model name and we’ll add it.
Compatibility
Single-player only. Do not use on RDR Online. The mod doesn’t touch network code but loading any .asi mod in Online is against ToS.
Game version: tested against the current Steam build (SDK 1.0.1207.73).
Plays nicely with other ASI mods — pure cosmetic + reward layer over the existing world, no script hooks fight for control.
Save-game safe — uses its own per-character file in AppData; never writes to the RDR2 save file.
Credits:
highvolt2
Downloads
| Name | Format | Size |
|---|---|---|
| DailyChallenges.zip | ZIP | 53.69 KB |
To start download click the filename. To open archive files use one of these programs: WinRAR, 7-Zip, WinZip. Some mod archives may need to be extracted before the mods will work.
