Table of Contents

Class WorldSceneSettings

Namespace
FishMMO.Shared
Assembly
FishMMO.Shared.dll

MonoBehaviour holding per-scene server-facing configuration and the link to the scene's WorldMapDefinition. Day/night cycle authoring has moved to WorldDayNightCycle on its own component so a scene can mix and match (a dungeon may want only the settings, a surface zone may want both).

public class WorldSceneSettings : MonoBehaviour
Inheritance
Object
Component
Behaviour
MonoBehaviour
WorldSceneSettings
Inherited Members
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.ToString()
Object.name
Object.hideFlags

Fields

MapDefinition

The scene's map, loading image and player-facing name.

[Tooltip("The scene's map definition. Created and assigned automatically by FishMMO/World Map/Bake Maps.")]
public WorldMapDefinition MapDefinition

Field Value

WorldMapDefinition

Remarks

Created and filled in by FishMMO/World Map/Bake Maps, which also assigns it here if the field is empty. Left assignable by hand so a set of scenes that share a map — a dungeon and its instanced twin — can point at one definition.

MaxClients

The maximum number of clients allowed in this scene.

[Tooltip("The maximum number of clients allowed in this scene. Clamped to 200.")]
[Range(1, 200)]
public int MaxClients

Field Value

int

Remarks

The UnityEngine.RangeAttribute constrains the inspector; it does not constrain a value edited into the scene YAML by hand or arriving from an older asset, so every consumer clamps to MaximumClientsPerScene on read as well.

MaximumClientsPerScene

The hard ceiling on clients in any one scene, anywhere in the project.

public const int MaximumClientsPerScene = 200

Field Value

int

Remarks

The single source of truth for the cap. The world server (routing and instance spin-up) and the scene server (channel admission) both clamp to this, so a scene authored above it is reduced rather than honoured — a designer cannot raise a scene's population past what the bandwidth and observer budgets were sized for.

200 is a deliberate ceiling, not a guess: per-client cost is bounded by the observer visibility budget rather than by scene population, so scaling past this is done by adding scene instances (and scene servers), never by widening one scene. See SceneServerPlacementPolicy.

SceneTransitionImage

Legacy home of the scene's loading image, migrated into MapDefinition.

[Tooltip("Deprecated. Migrated into the Map Definition by FishMMO/World Map/Bake Maps.")]
public Sprite SceneTransitionImage

Field Value

Sprite

Remarks

The image belongs with the rest of a scene's presentation, and living on a component meant it could only be found by opening the scene. The map bake moves any value still here into the definition and clears this field, so a scene keeps its image without anybody re-authoring it; the reader still falls back to this for a scene that has not been baked since the move. Remove once every world scene has been baked.