
Suggestion: Move old-resident-delete Check to Its Own 15-Minute Task (Separate from doNewDay)
Closed this issue · 2 comments
Please explain your feature request to the best of your abilities:
Currently, towns only fall into ruin (become fallenTowns) during the doNewDay() task, which runs once per day. This creates inconsistent timing, where towns often exceed the 42-day inactivity mark by several hours, depending on when the daily task runs. This affects gameplay on servers like EarthMC, where the timing of town ruin is critical for overclaims and strategic planning.
I’m requesting that the fallenTowns check be moved into a separate task that runs independently — ideally every 15 minutes. This would allow towns to fall into ruin precisely at the 42-day mark based on the mayor's last login time, not on the server’s daily tick schedule.
This change would improve fairness, prevent timing exploits, and create a more consistent and predictable experience for players tracking town activity.
Optionally, a config setting like fallenTownCheckIntervalMinutes: 15 could allow server owners to control how often this task runs, or even disable it for performance reasons if needed.
Currently, the transition of towns into fallenTowns (ruin state after 42 days of mayor inactivity) only occurs during the doNewDay() routine. Since this task runs once per day, towns often linger past the 42-day threshold, causing delays and inconsistencies for players tracking when towns will fall or become overclaimable.
Create a separate scheduled task (e.g. checkFallenTowns()) that runs every 15 minutes to evaluate whether towns should be moved to the fallenTowns list. This will:
Ensure towns fall into ruin at the exact 42-day mark
Allow players to plan overclaims and raids more precisely
Increase fairness and eliminate confusion around timing exploits
Leaving the fallenTowns logic inside doNewDay() (current behavior)
Increasing the frequency of doNewDay() itself (not ideal, since it's resource-heavy and includes unrelated checks)
This could be configurable via a setting like fallenTownCheckIntervalMinutes: 15 to give servers control over how precise they want ruin handling to be.