XenStreak: daily flames that bring your members back tomorrow

XenStreak: daily flames that bring your members back tomorrow 2.1.2

No permission to download
XenStreak 1.0.7 - Streaks that no longer reset out of nowhere
Free update. Built straight from community feedback.​



The headline: several of you reported streaks resetting "for no reason." After a deep dive, the day-counting math turned out to be correct in every timezone. The real culprit was two design flaws working together, and both are now fixed.

What was actually happening

  • The flame lied, then reset. The badge stayed lit for ~2 days (measured in the server timezone), but a streak reset the moment a single day was missed (measured in the member timezone). So the flame kept glowing on a streak that was already broken, then dropped to 1 on the next visit. From the member's side: "it was alive, then it reset for no reason."
  • No forgiveness. Missing one single day wiped the entire streak.

What's fixed

  • One source of truth. The displayed flame, the leaderboard, and the reset rule now all use the member's own timezone and the exact same threshold. The flame can no longer show a streak that is already lost.
  • New "Grace days" option (streak freeze). Configure how many missed days a member can have before the streak resets. Default is 1, so a member who misses one busy day keeps their streak instead of losing everything. Set it to 0 for the old strict behavior (must visit every single day).
  • Timezone consistency. All "what day is it" checks now resolve through the member's profile timezone (falling back to the board timezone, then UTC), so the flame is accurate for everyone regardless of where they live.

Heads up on upgrade

  • Default behavior is now slightly more forgiving: one missed day no longer breaks a streak (Grace days = 1).
  • Prefer the old strict rule? Set ACP > Options > XenStreak > Grace days to 0.
  • No schema changes, no data migration. Existing streaks are untouched.

Under the hood

  • Shared timezone + day-difference helpers, so the badge and the tracker can never drift apart again.
  • Verified against a 32-case matrix (7 timezones, DST spring and fall transitions, half-hour offset zones, day-boundary visits) plus a dedicated grace-period test suite.

Thanks to everyone who reported this. Keep the feedback coming.​

XenStreak 1.0.6 - bug fixes​


🧼 Profile badge cleaned up
The streak badge on member profiles was showing the day count twice on desktop ("9 9 days" instead of just "9 days") because of a redundant element. It now reads [flame] 9 days cleanly on both desktop and mobile.

🧹 Footer credit dedup
Removed the older footer credit injection that was running alongside the new consolidated one. If you had several XenSupport add-ons installed, your footer was showing two "XenForo add-ons by ©XenSupport" lines. Now you'll see exactly one, regardless of how many XenSupport add-ons you have.

Just drop the new files in and run the upgrade from the Admin CP.
Fixes

  • Streaks now roll over at the member's local midnight (their timezone) instead of UTC. This stops streaks from resetting for members who visit late at night. Daylight saving time is handled, and it falls back to the board timezone when a member hasn't set their own.
  • The flame "active" window is more tolerant of timezone offsets, so a valid streak is no longer hidden by mistake.
Changes

  • Renamed the "Total daily visits" stat to "Total days visited" for clarity (it is the lifetime count of days a member has visited, not a per-day number).
Back
Top Bottom