Hide
Callback

For all callback related parameter like ShowIf, HideIf, EnableIf, DisableIf, RequiredIf, FieldShowIf, FieldHideIf, FieldEnableIf, FieldDisableIf, and the show parameter in InfoBox, AboveText etc.

They use this XPath-like syntax, but the start point is from the current field.

For example, by using upwalk, damage will only be enabled if it's a member (field/propery) of BuildObject type (or its subtype)

[Serializable] public class BuildingAttackBrain { [EnableIf("..@as(BuildObject)")] [InfoBox("Only available in BuildObject type", show: "..@not-as(BuildObject)")] public int damage; }

you can also downwalk

[Serializable] public struct DownWalkProp { public string myContent; } // same as: [AboveText("<field.myContent/>")] [AboveText("$field::" + nameof(DownWalkProp.myContent))] public DownWalkProp v2;