You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .cursor/skills/rmf-menu-authoring/reference.md
+5-1Lines changed: 5 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -120,6 +120,10 @@ Top = last `<hbr>`. `<br>` = temporary stepping stones; layout change resets `<b
120
120
121
121
`blank`, `hr`, `vbar`, `text`, `ctext`, `image`, `list`, `slider`, `ticker`, `input`, `setkey`, `popup`, `selection`, `ghoul`, `gpm`, `filebox`, `filereq`, `loadbox`, `serverbox`, `serverdetail`, `players`, `listfile`, `users`, `chat`, `rooms`. File sort: `name`/`rname`, `size`/`rsize`, `time`/`rtime`. Area width/height = absolute pixels. For exact tint on list/ctext use `noshade` and area-level tint.
122
122
123
+
**`<list>` size limit:** SoF can only read **239 characters inside each quoted string** — the dropdown names *and* the `match "..."` values are separate limits. Count every letter, space, and comma between the quotes; ignore `<list`, `match`, `cvar`, and the rest of the line. Too long → menu may freeze, or you see `cvar` / `key` printed as plain text instead of a list. Fix: shorter names, fewer items, or split into two lists.
124
+
125
+
Example: `<list "Off,On" match "0,1" ...>` — first string is 6 chars (`Off,On`), second is 3 (`0,1`). Both are fine.
@@ -133,7 +137,7 @@ Top = last `<hbr>`. `<br>` = temporary stepping stones; layout change resets `<b
133
137
-`ctext` often has `invisible`; `text` has `regular`. `serverbox` columns 0–5 (5 = pure). `filebox` uses `align` in practice.
134
138
-`chat` with `private`. Area parsers can be option-order sensitive. Most tags not explicitly closed.
135
139
-`return` = guarded teardown; `menuoff` = direct. `defaults noborder` + selective borders for cleaner layouts. Prefer frames over blank-heavy layout for scaling. Use `noshade` when list/ctext looks muted.
136
-
-**`<list>`comma-string limit (SoF.exe):**each quoted labels string and each `match "..."` value string is copied into a **240-byte stack buffer** during parse (`sub_200C92D0`, frame `0x11C`, buffer at `+0x2C`, no bounds check). Overflow corrupts the splitter loop and can **hang** the game. Keep each comma-separated string **≤239 chars**; split long pickers across lists/pages. **Do not put `{placeholders}`inside list quotes** — only `{name}` tokens on their own (like `{theme_tints}`) are expanded at load time; inside `"..."` the engine still sees the braces and the `<list>` parse fails, leaking `cvar` / `atext` / `key` tokens as raw centered text.
140
+
-**`<list>`too long?**See §8 — max **239 charsinside each `"..."`**.
-**`{menu_theme_list}`:** Buddy tab injects the full `<list …>` tag at load time via `internal_menus_get_theme_list_rmf()` so labels stay under the 239-char quoted-string cap as the theme count grows.
9
+
-**RMF docs:** Clearer §8 note on `<list>` size limit — only characters inside each `"..."`, with a short example.
<slider cvar tip_duration min 0 max 8000 step 250 tip "How long menu tooltips stay visible."><br>
38
38
<ctext _sofbuddy_menu_hotkey atext "Menu open key : " noshade tip "Rebind via set _sofbuddy_menu_hotkey <key>;sofbuddy_apply_menu_hotkey in console, or Restore Defaults below."><br>
0 commit comments