What Happens When a Manager Disappears

Every club in Goal Legends is either run by a person or run by the AI. Until this week there was no path from the first group to the second: if a manager stopped logging in, their club just sat there. Facilities never upgraded, the transfer market never moved for them, and nobody else could ever take it over, because nothing in the codebase had ever cleared a club's owner. We wanted a way for clubs to come back to life without just deleting someone's season the first week they went quiet.

The schedule

Three thresholds, all measured from the last time a manager actually did something in the app:

  • 30 days: a "we miss you" email and inbox message. No consequence yet, just a nudge.
  • 83 days: a warning that the club will be reassigned in exactly 7 days, spelling out what that means.
  • 90 days: the club is actually freed up. It becomes claimable again from Claim a Club, exactly as it was before anyone owned it, crest and history intact.

The moment a club is freed, every facility on it immediately drops two levels. If it's still unclaimed three days later, it drops one more, and again every three days after that, floored at zero, until either someone claims it or there's nothing left to lose. A neglected club should look neglected. Claiming it stops the decay immediately; whatever level the facilities are at when you claim it is what you inherit.

The bug we almost shipped

The obvious signal for "is this manager active" is their last login. It's also wrong. ASP.NET's login cookie renews itself for two more weeks every time you use the site, silently, with no new login event, so a manager who checks in every ten days would never trigger a fresh login row at all, and by the LastLoginAt measure would look permanently inactive despite actually playing regularly. We added a second field, LastActiveAt, touched on ordinary page loads instead of just the login screen, specifically so this couldn't repossess someone's club out from under them while they were still around.

Opting out without losing the club

Every inactivity email carries a one-click unsubscribe link: no login required, since the whole point is that someone who doesn't want to be emailed might not want to sign back in either. It uses ASP.NET's Data Protection API to seal the manager's id into a tamper-proof token, so the link works without a session and can't be forged into unsubscribing someone else. Clicking it turns off the emails immediately. It deliberately does not turn off the reassignment itself: opting out of email is a communication preference, not an exemption from a 90-day-inactive club going back into circulation.

← Back to the devlog

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.