Table of Contents

Enum DisconnectNoticeReason

Namespace
FishMMO.Shared
Assembly
FishMMO.Shared.dll

Why a server is about to close a connection.

public enum DisconnectNoticeReason : byte

Fields

AdministrativeKick = 10

An operator kicked this account.

CharacterUnavailable = 2

The account's selected character could not be read, claimed, or spawned.

ProtocolViolation = 9

The connection sent something the server would not accept.

RateLimited = 8

The request was refused by a rate limit or debounce.

RoutingFailed = 4

The world server could not route this client to a scene server.

RoutingTimedOut = 5

The client stayed on the world server past its routing deadline.

SceneHandshakeTimedOut = 6

The client never acknowledged the scene it was sent to load.

SceneUnavailable = 3

The scene the character belongs to could not be prepared or validated.

ServerError = 1

The server hit an internal failure while handling this connection.

ServerMaintenance = 11

The server is stopping for scheduled maintenance.

Terminal: the server the client was on is going away, so its reconnect loop would spend every attempt on a socket that is closing. The player is returned to the login screen with the reason, and comes back when the world does.

SessionSuperseded = 7

Another server now owns this character's session.

Unspecified = 0

No specific reason was supplied.

Remarks

Deliberately an enum rather than a message string. The reasons the servers log to themselves are internal ("Failed to get selected character", "Instance routing rate limited") and are useful to an operator, not to a player — and putting them on the wire would hand an attacker a running commentary on the server's internal state. The client maps each value to its own player-facing wording.