Table of Contents

Class Waypoint

Namespace
FishMMO.Shared
Assembly
FishMMO.Shared.dll

A discoverable fast-travel point. Interacting with it unlocks it for the character; once unlocked it appears on that character's world map and can be travelled to.

public class Waypoint : Interactable, ISpawnable, IWaypoint, IInteractable, ISceneObject
Inheritance
Object
Component
Behaviour
MonoBehaviour
NetworkBehaviour
Waypoint
Implements
Inherited Members
NetworkBehaviour.IsSpawned
NetworkBehaviour.ComponentIndex
NetworkBehaviour.NetworkObject
NetworkBehaviour.MAXIMUM_NETWORKBEHAVIOURS
NetworkBehaviour.UNSET_NETWORKBEHAVIOUR_ID
NetworkBehaviour.ToString()
NetworkBehaviour.Reset()
NetworkBehaviour.OnValidate()
NetworkBehaviour.IsBehaviourReconciling
NetworkBehaviour.ClearReplicateCache()
NetworkBehaviour.CreateReconcile()
NetworkBehaviour.Reconcile_Reader<T>(PooledReader, ref T)
NetworkBehaviour.OnStartServerCalled
NetworkBehaviour.OnStartClientCalled
NetworkBehaviour.OnStartNetwork()
NetworkBehaviour.OnStopNetwork()
NetworkBehaviour.OnOwnershipServer(NetworkConnection)
NetworkBehaviour.OnSpawnServer(NetworkConnection)
NetworkBehaviour.OnDespawnServer(NetworkConnection)
NetworkBehaviour.OnStartClient()
NetworkBehaviour.OnStopClient()
NetworkBehaviour.OnOwnershipClient(NetworkConnection)
NetworkBehaviour.ClearBuffedRpcs()
NetworkBehaviour.ExcludeOwnerFromUnbufferedObserversRpcs
NetworkBehaviour.IsClientOnly
NetworkBehaviour.IsServerOnly
NetworkBehaviour.IsHost
NetworkBehaviour.IsClient
NetworkBehaviour.IsServer
NetworkBehaviour.IsDeinitializing
NetworkBehaviour.NetworkManager
NetworkBehaviour.ServerManager
NetworkBehaviour.ClientManager
NetworkBehaviour.ObserverManager
NetworkBehaviour.TransportManager
NetworkBehaviour.TimeManager
NetworkBehaviour.SceneManager
NetworkBehaviour.PredictionManager
NetworkBehaviour.RollbackManager
NetworkBehaviour.NetworkObserver
NetworkBehaviour.IsClientInitialized
NetworkBehaviour.IsClientStarted
NetworkBehaviour.IsClientOnlyInitialized
NetworkBehaviour.IsClientOnlyStarted
NetworkBehaviour.IsServerInitialized
NetworkBehaviour.IsServerStarted
NetworkBehaviour.IsServerOnlyInitialized
NetworkBehaviour.IsServerOnlyStarted
NetworkBehaviour.IsHostInitialized
NetworkBehaviour.IsHostStarted
NetworkBehaviour.IsOffline
NetworkBehaviour.IsNetworked
NetworkBehaviour.GetIsNetworked()
NetworkBehaviour.IsManagerReconciling
NetworkBehaviour.Observers
NetworkBehaviour.IsOwner
NetworkBehaviour.IsController
NetworkBehaviour.HasAuthority
NetworkBehaviour.Owner
NetworkBehaviour.OwnerId
NetworkBehaviour.ObjectId
NetworkBehaviour.LocalConnection
NetworkBehaviour.OwnerMatches(NetworkConnection)
NetworkBehaviour.Despawn(GameObject, DespawnType?)
NetworkBehaviour.Despawn(NetworkObject, DespawnType?)
NetworkBehaviour.Despawn(DespawnType?)
NetworkBehaviour.Spawn(GameObject, NetworkConnection, Scene)
NetworkBehaviour.Spawn(NetworkObject, NetworkConnection, Scene)
NetworkBehaviour.RemoveOwnership()
NetworkBehaviour.GiveOwnership(NetworkConnection)
NetworkBehaviour.GetInstance<T>()
NetworkBehaviour.TryRegisterInstance<T>(T)
NetworkBehaviour.UnregisterInstance<T>()
NetworkBehaviour.CanLog(LoggingType)
MonoBehaviour.IsInvoking()
MonoBehaviour.CancelInvoke()
MonoBehaviour.StopCoroutine(Coroutine)
MonoBehaviour.StopAllCoroutines()
MonoBehaviour.destroyCancellationToken
MonoBehaviour.useGUILayout
MonoBehaviour.didStart
MonoBehaviour.didAwake
MonoBehaviour.runInEditMode
Behaviour.enabled
Behaviour.isActiveAndEnabled
Component.GetComponent<T>()
Component.TryGetComponent<T>(out T)
Component.GetComponentInChildren<T>()
Component.GetComponentsInChildren<T>()
Component.GetComponentInParent<T>()
Component.GetComponentsInParent<T>()
Component.GetComponents<T>()
Component.GetComponentIndex()
Component.CompareTag(TagHandle)
Component.transform
Component.transformHandle
Component.gameObject
Component.tag
Object.GetEntityId()
Object.GetInstanceID()
Object.GetHashCode()
Object.InstantiateAsync<T>(T)
Object.InstantiateAsync<T>(T, Transform)
Object.InstantiateAsync<T>(T, Vector3, Quaternion)
Object.InstantiateAsync<T>(T, Transform, Vector3, Quaternion)
Object.Instantiate(Object, Vector3, Quaternion)
Object.Instantiate(Object, Vector3, Quaternion, Transform)
Object.Instantiate(Object)
Object.Instantiate(Object, Scene)
Object.Instantiate<T>(T, InstantiateParameters)
Object.Instantiate<T>(T, Vector3, Quaternion, InstantiateParameters)
Object.Instantiate(Object, Transform)
Object.Instantiate<T>(T)
Object.Instantiate<T>(T, Vector3, Quaternion)
Object.Instantiate<T>(T, Vector3, Quaternion, Transform)
Object.Instantiate<T>(T, Transform)
Object.Destroy(Object)
Object.DestroyImmediate(Object)
Object.DontDestroyOnLoad(Object)
Object.DestroyObject(Object)
Object.FindObjectsOfType<T>()
Object.FindObjectsByType<T>(FindObjectsSortMode)
Object.FindObjectsByType<T>(FindObjectsInactive, FindObjectsSortMode)
Object.FindObjectOfType<T>()
Object.FindFirstObjectByType<T>()
Object.FindAnyObjectByType<T>()
Object.FindFirstObjectByType<T>(FindObjectsInactive)
Object.FindAnyObjectByType<T>(FindObjectsInactive)
Object.FindObjectsByType<T>()
Object.FindObjectsByType<T>(FindObjectsInactive)
Object.name
Object.hideFlags

Remarks

Authoring. Place one in a world scene and give it a WaypointIndex that no other waypoint in that scene uses — the index is the bit the character's unlock record stores, so it must never change once the scene ships; a renumbered waypoint is a waypoint every existing character loses. Adding a new one at the next free index is safe. The world scene details cache rebuild reports duplicates.

Behaviour. Like every interactable, what happens on interaction is the ECA trigger list: the shipped Waypoint Interact trigger runs UnlockWaypointAction and then the discovery achievement. Travel is not an interaction — it is requested from the map, validated by the server, and the arrival runs OnTravelTriggers. TravelConditions are the designer's gate on that request.

Do not put a MapMarker on the same object. A marker would draw the waypoint for anyone who streamed it, discovered or not; the map draws waypoints from the character's unlock record instead, and MapMarkerFilter drops any marker of the waypoint type to keep that true.

Fields

Icon

[Tooltip("Icon drawn on the map. Uses the waypoint marker style when empty.")]
public Sprite Icon

Field Value

Sprite

WaypointName

[Tooltip("Player-facing name shown on the map. Uses the GameObject name when empty.")]
public string WaypointName

Field Value

string

Properties

ArrivalPoint

Where a travelling character lands. Falls back to the waypoint's own transform.

public Transform ArrivalPoint { get; }

Property Value

Transform

Description

Optional description shown in the map's waypoint panel.

public string Description { get; }

Property Value

string

OnTravelTriggers

Triggers invoked server-side after a character arrives here by fast travel.

public List<Trigger> OnTravelTriggers { get; }

Property Value

List<Trigger>

ResolvedName

public string ResolvedName { get; }

Property Value

string

SceneName

The name of the scene this waypoint stands in.

public string SceneName { get; }

Property Value

string

Title

The display title for this interactable, shown in the UI.

public override string Title { get; }

Property Value

string

TitleColor

The color of the title displayed for this interactable in the UI.

public override Color TitleColor { get; }

Property Value

Color

TravelConditions

Designer-authored conditions a character must meet to travel here. Evaluated on the server against the traveller. Null or empty means no conditions.

public List<BaseCondition> TravelConditions { get; }

Property Value

List<BaseCondition>

WaypointIndex

The authored index of this waypoint within its scene, from 0.

public int WaypointIndex { get; }

Property Value

int

Methods

OnStartServer()

Registers the scene object and the waypoint. See WaypointRegistry.

public override void OnStartServer()

OnStopServer()

Drops the waypoint from the registry when its scene unloads or it is despawned.

public override void OnStopServer()

ToDetails()

Produces the form baked into the world scene details cache.

public SceneWaypointDetails ToDetails()

Returns

SceneWaypointDetails