Class ClientWorldLabelSettings
How the world-anchored labels — nameplates, guild lines, damage and healing numbers — are drawn: how large, how far out, how strongly, how many at once, and whether walls hide them. Also which nameplates are up without being targeted: NPCs and other players inside their own ranges, and the player's own.
public static class ClientWorldLabelSettings
- Inheritance
-
ClientWorldLabelSettings
- Inherited Members
Remarks
These are the layer's own fields, made editable. UITKWorldLabelLayer already carried every one of them as a serialized field tuned in ClientPreboot.unity. Each default below is the value authored there, so a fresh install draws exactly what it drew before this existed and only a player who moves a control changes anything.
Two of them are performance controls, not taste. The draw distance and the visible-label cap bound the cost of the client's hottest UI loop — one projection, one style diff and one sort entry per label per frame. A machine that struggles in a crowded hub gets a real frame back by dropping either, which is the same reason the minimap's refresh rate is exposed.
Scale multiplies rather than replaces. A label's font size is computed from its world-unit size and its distance from the camera, so a fixed point size would throw away the perspective behaviour that makes a distant nameplate small. The multiplier scales the clamp bounds along with the computed size, or a scale above one would be swallowed by the upper clamp the moment the player walked close enough to hit it.
Fields
DefaultDistance
Draw distance a fresh install uses, in metres.
public const float DefaultDistance = 80
Field Value
Remarks
Eighty, matching UITKWorldLabelLayer.MaxVisibleDistance as authored.
DefaultMaxVisible
How many labels a fresh install draws at once.
public const int DefaultMaxVisible = 64
Field Value
Remarks
Sixty-four, matching UITKWorldLabelLayer.MaxVisibleLabels as authored.
DefaultNpcNameRange
How close an NPC must be, in metres, for its nameplate to show without being targeted on a fresh install.
public const float DefaultNpcNameRange = 30
Field Value
Remarks
Thirty: conversational distance in a town, and well inside the eighty-metre draw distance, so a nameplate that this rule turns on is never immediately culled by the layer's distance cutoff and drawn as nothing.
DefaultOcclude
Whether a fresh install hides labels behind scene geometry.
public const bool DefaultOcclude = false
Field Value
Remarks
Off, as authored. It costs a physics linecast per visible label per frame, so it is a setting a player opts into for the look of it, not one that should be paid for by default.
DefaultOpacity
Label opacity a fresh install uses.
public const float DefaultOpacity = 1
Field Value
DefaultPlayerNameRange
How close another player must be, in metres, for their nameplate to show without being targeted on a fresh install.
public const float DefaultPlayerNameRange = 30
Field Value
Remarks
The same thirty as NPCs. Other players' names used to be target-only, but only because the player prefabs never referenced their labels — nothing chose that behaviour, and a crowd of anonymous players in a hub reads as a bug rather than as a default.
DefaultScale
Label size multiplier a fresh install uses.
public const float DefaultScale = 1
Field Value
DefaultShowOwnName
Whether a fresh install keeps the player's own nameplate up at all times.
public const bool DefaultShowOwnName = true
Field Value
MaximumDistance
Longest draw distance offered, in metres.
public const float MaximumDistance = 200
Field Value
MaximumMaxVisible
Most labels offered.
public const int MaximumMaxVisible = 256
Field Value
MaximumNpcNameRange
Longest NPC nameplate range offered, in metres. Matches the draw distance ceiling.
public const float MaximumNpcNameRange = 200
Field Value
MaximumOpacity
Strongest labels offered.
public const float MaximumOpacity = 1
Field Value
MaximumPlayerNameRange
Longest player nameplate range offered, in metres. Matches the draw distance ceiling.
public const float MaximumPlayerNameRange = 200
Field Value
MaximumScale
Largest label size multiplier offered.
public const float MaximumScale = 2
Field Value
MinimumDistance
Shortest draw distance offered, in metres.
public const float MinimumDistance = 10
Field Value
Remarks
Ten rather than zero. Zero is the layer's "no limit" sentinel, so a slider that reached it would turn the cheapest setting into the most expensive one at the exact end of the travel a player drags to when they want less.
MinimumMaxVisible
Fewest labels offered.
public const int MinimumMaxVisible = 16
Field Value
Remarks
Sixteen. Below that a player standing in a group loses their own target's nameplate to the budget, which reads as the game failing rather than as a setting doing its job.
MinimumNpcNameRange
Shortest NPC nameplate range offered, in metres.
public const float MinimumNpcNameRange = 0
Field Value
Remarks
Zero is a real setting here, not a sentinel: it means NPC nameplates show only on the current target, which is exactly what the client did before the range existed.
MinimumOpacity
Faintest labels offered. Above zero; invisible labels are what the toggles are for.
public const float MinimumOpacity = 0.2
Field Value
MinimumPlayerNameRange
Shortest player nameplate range offered, in metres. Zero means target only.
public const float MinimumPlayerNameRange = 0
Field Value
MinimumScale
Smallest label size multiplier offered.
public const float MinimumScale = 0.5
Field Value
Properties
Distance
The chosen draw distance, in metres.
public static float Distance { get; }
Property Value
MaxVisible
The chosen draw budget.
public static int MaxVisible { get; }
Property Value
NpcNameRange
How close an NPC must be, in metres, for its nameplate to show untargeted. Zero: target only.
public static float NpcNameRange { get; }
Property Value
Occlude
Whether labels behind scene geometry are hidden.
public static bool Occlude { get; }
Property Value
Opacity
The chosen label opacity.
public static float Opacity { get; }
Property Value
PlayerNameRange
How close another player must be, in metres, for their nameplate to show untargeted. Zero: target only.
public static float PlayerNameRange { get; }
Property Value
Scale
The chosen label size multiplier.
public static float Scale { get; }
Property Value
ShowOwnName
Whether the player's own nameplate stays up at all times.
public static bool ShowOwnName { get; }
Property Value
Methods
SetDistance(float)
Writes the draw distance and notifies the layer.
public static void SetDistance(float value)
Parameters
valuefloat
SetMaxVisible(int)
Writes the draw budget and notifies the layer.
public static void SetMaxVisible(int value)
Parameters
valueint
SetNpcNameRange(float)
Writes the NPC nameplate range and notifies the nameplate display.
public static void SetNpcNameRange(float value)
Parameters
valuefloat
SetOcclude(bool)
Writes the occlusion setting and notifies the layer.
public static void SetOcclude(bool value)
Parameters
valuebool
SetOpacity(float)
Writes the label opacity and notifies the layer.
public static void SetOpacity(float value)
Parameters
valuefloat
SetPlayerNameRange(float)
Writes the player nameplate range and notifies the nameplate display.
public static void SetPlayerNameRange(float value)
Parameters
valuefloat
SetScale(float)
Writes the label size multiplier and notifies the layer.
public static void SetScale(float value)
Parameters
valuefloat
SetShowOwnName(bool)
Writes the own-nameplate setting and notifies the nameplate display.
public static void SetShowOwnName(bool value)
Parameters
valuebool
Events
OnChanged
Raised when any world label setting changes.
public static event Action OnChanged
Event Type
Remarks
The layer subscribes and re-reads. It is a scene object that comes and goes with the client scenes, so it reads on enable as well — the event only carries a CHANGE, and a layer that waited for one would start on the authored values rather than the player's. ClientNameplateDisplay subscribes for the two nameplate rules, which it applies to characters rather than to the layer.