Table of Contents

Enum ObserverClassification

Namespace
FishMMO.Shared
Assembly
FishMMO.Shared.dll

What kind of thing an observed object is, for the purposes of interest management.

public enum ObserverClassification : byte

Fields

Interactable = 2

A stationary service NPC: banker, merchant, ability crafter.

Monster = 1

A hostile or neutral mobile NPC, including pets.

Player = 0

A player character.

Titan = 5

A god-tier entity that walks the world and should be visible across it.

Titans are wired differently from everything else: their prefabs use ConditionOverrideType.IgnoreManager so they never take the GridCondition, whose cells would otherwise clip them to a fraction of their range. See ClassifiedDistanceCondition.

Waypoint = 4

A fast-travel node.

WorldItem = 3

A dropped item lying in the world.

Remarks

Each value gets its own visibility range and its own per-viewer budget, authored on a ClassifiedDistanceCondition asset under Assets/Settings/ObserverConditions. The classifications exist because the costs are not comparable: a player is a moving, predicted, chattering entity; a dropped sword is a spawn payload that never speaks again; a Titan is one object that the whole zone is supposed to be able to see.

Budgets are per classification precisely so a crowd of one kind cannot squeeze out another. Under a single shared budget, forty players in a town square evicted the banker they were queueing for, and a field of dropped loot could have cost you the monster you were fighting.