|
| 1 | +# Frames, UI & Secure Internals |
| 2 | + |
| 3 | +## FrameScript |
| 4 | + |
| 5 | +**New:** |
| 6 | + |
| 7 | +- **`GetForbiddenObjectTable(object: FrameScriptObject) → forbiddenTable: FrameScriptObject`** — secure-only; retrieves the forbidden-side object table for a script object. |
| 8 | +- **`securecopy(value: LuaValueReference, options: SecureCopyOptions?) → copy: LuaValueReference`** — securely copies a Lua value; tables deep-copied with recursive/shared refs preserved, script objects kept by reference, copy receives the current execution taint. |
| 9 | +- **`SecureCopyOptions`** (struct) — options for `securecopy`. Fields: `maxTraversalDepth: number (default 100), wrapUntrustedFunctions: bool (default true)`. |
| 10 | +- **`SecureDelegateOptions`** (struct) — options for `CreateSecureDelegate`. Fields: `wrapUntrustedFunctions: bool (default true)`. |
| 11 | + |
| 12 | +## SimpleFrameAPI |
| 13 | + |
| 14 | +**New:** |
| 15 | + |
| 16 | +- **`AddRoleset(roleset: string)`** — adds a roleset tag without removing existing ones. |
| 17 | +- **`RemoveRoleset(roleset: string)`** — removes a roleset tag. |
| 18 | +- **`SetRolesets(rolesetsString: cstring?)`** — sets the frame's roleset tags (comma-separated for multiple; nil clears) — used by the UI-mode system to gate visibility. |
| 19 | +- **`GetRolesetNames() → rolesets: table`** — the frame's roleset tags (`{"roleless"}` if none). |
| 20 | +- **`GetOnUpdateMode() → onUpdateMode: OnUpdateMode`** — the configured OnUpdate execution mode. |
| 21 | +- **`SetOnUpdateMode(onUpdateMode: OnUpdateMode)`** — changes when OnUpdate scripts run for this object. |
| 22 | +- **`CreateVectorGraphics(name: cstring?, drawLayer: DrawLayer?, templateName: cstring?, subLevel: number?) → vectorGraphics: SimpleVectorGraphics`** — creates a vector-graphics child region. |
| 23 | + |
| 24 | +## SimpleFrameScriptObjectAPI |
| 25 | + |
| 26 | +**New:** |
| 27 | + |
| 28 | +- **`GetName() → name: cstring`** — the object's name (secret-gated by the ObjectName aspect). |
| 29 | +- **`GetObjectTable() → objectTable: FrameScriptObject`** — the script object's backing object table. |
| 30 | +- **`HasAnyForbiddenAspect(aspect: ForbiddenAspect) → hasAnyForbiddenAspect: bool`** — whether the object has the supplied forbidden aspect. |
| 31 | +- **`HasAnyForbiddenAspects() → hasAnyForbiddenAspects: bool`** — whether the object has any forbidden aspects. |
| 32 | + |
| 33 | +## SimpleFrameScriptObjectConstants *(new namespace)* |
| 34 | + |
| 35 | +**New:** |
| 36 | + |
| 37 | +- **`OnUpdateMode`** (enum) — when OnUpdate scripts run. Values: `Disabled, RunWhenVisible, RunWhenVisibleOnce, RunOnce, RunAlways`. |
| 38 | +- **`ScriptBindingType`** (enum) — script binding phase. Values: `Precall, Extrinsic, Postcall`. |
| 39 | +- **`ScriptObjectMetatable`** (enum) — Values: `Public, Forbidden`. |
| 40 | +- **`ScriptObjectPartition`** (enum) — Values: `Public, Forbidden`. |
| 41 | + |
| 42 | +## SimpleStatusBarAPI |
| 43 | + |
| 44 | +**New:** |
| 45 | + |
| 46 | +- **`GetRenderMode() → renderMode: StatusBarRenderMode`** — the status bar's render mode. |
| 47 | +- **`SetRenderMode(renderMode: StatusBarRenderMode)`** — sets the render mode (linear fill vs radial progress). |
| 48 | + |
| 49 | +## SimpleStatusBarConstants |
| 50 | + |
| 51 | +**New:** |
| 52 | + |
| 53 | +- **`StatusBarRenderMode`** (enum) — how the bar renders its fill. Values: `Linear` (existing fill behaviour), `Radial` (drives the managed texture's radial fill percent instead of resizing anchors). |
| 54 | + |
| 55 | +## SimpleTextureBaseAPI |
| 56 | + |
| 57 | +**New (radial progress bar):** |
| 58 | + |
| 59 | +- **`ClearRadialProgressBar()`** — disables radial rendering, restores standard texture display. |
| 60 | +- **`Get/SetRadialProgressBarStartOffset(offset: normalizedValue)`** — start angle offset (0–1; 0 = bottom). |
| 61 | +- **`Get/SetRadialProgressBarEndOffset(offset: normalizedValue)`** — end angle offset (0–1). |
| 62 | +- **`Get/SetRadialProgressBarPercent(percent: normalizedValue)`** — fill percentage (0–1). |
| 63 | +- **`Get/SetRadialProgressBarFeather(feather: normalizedValue)`** — edge feather/blur amount. |
| 64 | +- **`Get/SetRadialProgressBarReverse(reverse: bool)`** — whether the bar fills counterclockwise. |
| 65 | + |
| 66 | +## SimpleAnimRadialProgressAPI *(new namespace)* |
| 67 | + |
| 68 | +**New:** |
| 69 | + |
| 70 | +- **`Get/SetFromPercent(percent: number)`** — animation's starting radial fill percent. |
| 71 | +- **`Get/SetToPercent(percent: number)`** — animation's ending radial fill percent. |
| 72 | + |
| 73 | +## SimpleVectorGraphicsAPI *(new namespace)* |
| 74 | + |
| 75 | +**New:** |
| 76 | + |
| 77 | +- **`SetSVG(svgAsset: FileAsset) → success: bool`** — assigns an SVG asset. |
| 78 | +- **`GetSVGFileID() → svgFile: fileID`** — file ID of the assigned SVG. |
| 79 | +- **`HasSVG() → hasSVG: bool`** — whether an SVG is assigned. |
| 80 | +- **`ClearSVG()`** — clears the assigned SVG. |
| 81 | + |
| 82 | +## C_Roleset (RolesetSystemDocumentation) *(new namespace)* |
| 83 | + |
| 84 | +**New:** |
| 85 | + |
| 86 | +- **`C_Roleset.ApplyRolesetFilters(blockedRolesets: table, allowedRolesets: table)`** — sets/clears both blocklist and allowlist filters atomically with one visibility re-evaluation; empty table clears the corresponding filter. |
| 87 | + |
| 88 | +## DurationTextBindingObjectAPI |
| 89 | + |
| 90 | +**New:** |
| 91 | + |
| 92 | +- **`SetTextColorCurve(curve: LuaColorCurveObject, property: DurationTextBindingProperty)`** — drive a font string's colour from a duration property via a curve. |
| 93 | +- **`GetTextColorCurve() → curve: LuaColorCurveObject, property: DurationTextBindingProperty`** — the curve and property in use (may return nothing). |
| 94 | +- **`ClearTextColorCurve()`** — clears the colour curve. |
| 95 | +- **`GetFormattedTextColor() → color: colorRGBA`** — the colour currently assigned to the configured font string (may return nothing). |
| 96 | + |
| 97 | +## MinimapFrameAPI |
| 98 | + |
| 99 | +**New:** |
| 100 | + |
| 101 | +- **`SetIconScale(scale: number)`** — sets the scale applied to minimap icons. |
0 commit comments