Class ClientNameplateSettings
How overhead nameplates look: how large, how strongly, how solid a background, which rows are worth reading, and how many may be on screen at once.
public static class ClientNameplateSettings
- Inheritance
-
ClientNameplateSettings
- Inherited Members
Remarks
Separate from ClientWorldLabelSettings on purpose. The two are drawn by different layers with separate budgets, and they answer different questions for a player: damage numbers are feedback you read for a second, and a nameplate is furniture you look past all day. Wanting one loud and the other faint is an ordinary preference that a single shared opacity could not express.
What is deliberately still shared is the draw distance and the hide-behind- geometry toggle. Both are statements about projected world UI as a whole rather than about nameplates, and a second copy of each would let a player set two answers to one question and then wonder which won.
The three rules that decide WHICH nameplates are up — the two ranges and the own-name toggle — stay in ClientWorldLabelSettings with their original configuration keys. They are read by ClientNameplateDisplay rather than by the layer, and moving their keys would silently reset the choice of every existing install for nothing but tidiness.
Every default here is what the layer draws with no configuration at all, so a fresh install looks exactly as it did before these controls existed and only a player who moves something changes anything.
Fields
DefaultBackgroundOpacity
Background strength a fresh install uses: the style's own opacity, unmodified.
public const float DefaultBackgroundOpacity = 1
Field Value
DefaultMaxVisible
How many nameplates a fresh install draws at once.
public const int DefaultMaxVisible = 64
Field Value
Remarks
Sixty-four, matching UITKNameplateLayer.MaxVisiblePlates as authored.
DefaultOpacity
Nameplate opacity a fresh install uses.
public const float DefaultOpacity = 1
Field Value
DefaultScale
Nameplate size multiplier a fresh install uses.
public const float DefaultScale = 1
Field Value
DefaultShowGuild
Whether a fresh install shows the guild row.
public const bool DefaultShowGuild = true
Field Value
DefaultShowTitles
Whether a fresh install shows the title row.
public const bool DefaultShowTitles = true
Field Value
MaximumBackgroundOpacity
Strongest background offered.
public const float MaximumBackgroundOpacity = 1
Field Value
MaximumMaxVisible
Most nameplates offered.
public const int MaximumMaxVisible = 256
Field Value
MaximumOpacity
Strongest nameplates offered.
public const float MaximumOpacity = 1
Field Value
MaximumScale
Largest nameplate size multiplier offered.
public const float MaximumScale = 2
Field Value
MinimumBackgroundOpacity
Faintest background offered.
public const float MinimumBackgroundOpacity = 0
Field Value
Remarks
Zero IS a setting here, unlike the plate opacity above: it means no background at all, text straight over the world, which is a look people ask for by name. The text stays, so nothing disappears and the effect of the slider is visible all the way down.
MinimumMaxVisible
Fewest nameplates offered.
public const int MinimumMaxVisible = 8
Field Value
Remarks
Eight rather than the world labels' sixteen. A nameplate budget is spent on the nearest plates first, so a low setting is a legitimate "only the few things around me" choice rather than the failure a low label budget would be mid-fight.
MinimumOpacity
Faintest nameplates offered.
public const float MinimumOpacity = 0.2
Field Value
Remarks
A fifth, not zero: an invisible nameplate is what the two ranges and the own-name toggle are for, and a slider that reached zero would give a player a second, much less discoverable way to turn nameplates off — one they cannot see the effect of while dragging it.
MinimumScale
Smallest nameplate size multiplier offered.
public const float MinimumScale = 0.5
Field Value
Properties
BackgroundOpacity
The chosen background strength, as a multiplier on each style's own opacity.
public static float BackgroundOpacity { get; }
Property Value
MaxVisible
The chosen nameplate budget.
public static int MaxVisible { get; }
Property Value
Opacity
The chosen nameplate opacity.
public static float Opacity { get; }
Property Value
Scale
The chosen nameplate size multiplier.
public static float Scale { get; }
Property Value
ShowGuild
Whether the guild row is drawn.
public static bool ShowGuild { get; }
Property Value
ShowTitles
Whether the title row is drawn.
public static bool ShowTitles { get; }
Property Value
Methods
IsRowVisible(NameplateSlot)
Whether a row of a given kind is drawn at all.
public static bool IsRowVisible(NameplateSlot slot)
Parameters
slotNameplateSlotThe row's slot.
Returns
- bool
False when the player has turned that kind of row off.
Remarks
Answered here rather than in the renderer so "which rows does the player want" has one home, and so the rule can be read without a panel. Only the two optional rows are refusable: a nameplate with its name row turned off is not a nameplate, and a status row is transient enough that hiding it would mostly hide nothing.
IsRowVisible(NameplateSlot, bool, bool)
Whether a row of a given kind is drawn, against settings the caller has already read.
public static bool IsRowVisible(NameplateSlot slot, bool showGuild, bool showTitles)
Parameters
slotNameplateSlotThe row's slot.
showGuildboolWhether guild rows are wanted.
showTitlesboolWhether title rows are wanted.
Returns
- bool
False when that kind of row is turned off.
Remarks
The renderer asks the question for every row of every plate it draws, and reading the configuration store that often would undo the caching the rest of that loop is built around. It caches the two answers and calls this; the overload above is the same rule for anyone who is not in a hot loop, so there is still only one definition of it.
SetBackgroundOpacity(float)
Writes the background strength and notifies the layer.
public static void SetBackgroundOpacity(float value)
Parameters
valuefloat
SetMaxVisible(int)
Writes the nameplate budget and notifies the layer.
public static void SetMaxVisible(int value)
Parameters
valueint
SetOpacity(float)
Writes the nameplate opacity and notifies the layer.
public static void SetOpacity(float value)
Parameters
valuefloat
SetScale(float)
Writes the nameplate size multiplier and notifies the layer.
public static void SetScale(float value)
Parameters
valuefloat
SetShowGuild(bool)
Writes the guild row setting and notifies the layer.
public static void SetShowGuild(bool value)
Parameters
valuebool
SetShowTitles(bool)
Writes the title row setting and notifies the layer.
public static void SetShowTitles(bool value)
Parameters
valuebool
Events
OnChanged
Raised when any of these change, so the layer can re-read them.
public static event Action OnChanged
Event Type
Remarks
Its own event rather than OnChanged: the layer listens to both — it still takes the draw distance and the occlusion toggle from there — and two events cost one more subscription while keeping "who owns this setting" a question with one answer.