Tell whether a player disconnects by leaving or due to error

As a Roblox developer, it is currently impossible to determine whether a player leaves an experience by choice (via the in-app menu, terminated the app with hotkeys, etc.) or if they experience an error which causes them to disconnect (power loss, network error, app crash).

Seems as simple as sending a handshake to the server if the client leaves safely, and not being able to send one if the client errors. The exact details as to why they left aren’t important, just whether or not it was their choice. Although, it may help some developers to know if the player is leaving because they are teleporting.

If Roblox is able to address this issue, it would improve my development experience because systems such as combat log detectors cannot differentiate between players who try to cheat versus those who genuinely leave the game unexpectedly, and so there is little room for forgiveness.

It’s not beyond the realm of possibility for players to temporarily cut off their wi-fi connection to fake a network error, but it’s certainly more trouble than it’s worth for the majority of players, and the developer can implement checks to see if a player is disconnecting too often or strategically.

74 Likes

There’s a small issue with this, pressing the X button (on PC) or closing the app (on mobile) does not internally fire the game:Shutfown() function.

While this probably isn’t an issue, since the handshake can be handled by C, but its still an issue if it was added to the Shutdown function.

4 Likes

I don’t think this would be the best use-case, since the client could simply lie about crashing, or the user could physically disconnect their network device/turn off their internet connection.

2 Likes

No anti-cheat system is perfect, I would at least want to be able to detect ragequitters and server hoppers who don’t even make the effort to feign an error.

5 Likes