Skip to content

HIGH: Pay-mode switch triggers catch-up payment exploit #29

Description

@TheCodingDad-TisonK

Severity: HIGH

File: src/IncomeSystem.lua:280-302 + src/Settings.lua:84-88
Multiplayer: No
Fix Complexity: SIMPLE
Confidence: 100% (source-verified)

Description

checkHourly() pays catch-up for gap between self.lastHour and currentHour (clamped to 24). setPayMode() does not reset the inactive mode's timer state.

Impact

After N days in Daily mode, switching to Hourly triggers catch-up: (3 days * 24) + (15 - 10) = 77, clamped to 24. At Easy/10x ($50,000/interval), player receives $1,200,000 instantly.

Fix

Reset both lastHour and lastDay to current values in setPayMode().


Source: Consolidated Bug Review 2026-07-26, IM-001

Metadata

Metadata

Labels

bugSomething isn't workingeconomyEconomy systemmpMultiplayeruser-repliedUser is awaiting response

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions