The tLib marketplace lets you browse, install, and publish layouts and sound packs for tRadio, tELS, and tDetector — no file editing or server restart required.
Browsing and Installing
Access via the in-game panel for your script (/tradio, /tels, /tdet) → Marketplace, or through the tLib web panel. Two tabs:
- Browse — search and install available items. Installed items show a checkmark; click Uninstall to remove.
- Installed — lists every item currently on the server with a remove button for each.
UI Studio
The UI Studio is the tool for building and publishing custom layouts for any tScript. Supported product types:
| Script | Canvas size |
|---|---|
| tRadio | 300 × 406 px |
| tDetector | 400 × 400 px |
| tELS | 400 × 120 px |
Access
Any signed-in account can publish — creator status is granted automatically on your first upload. The only gate is a staff-issued ban, which blocks further uploads and immediately hides your existing published items.
Creating a layout
- Go to Your Creations.
- Click Create UI, then pick the target script and start designing.
- The UI Studio opens with a new draft.
Editor modes
- Design mode — visual canvas; drag to add/position/resize elements. Seven element types: background image, text, LED (boolean toggle), LED-color, icon toggle, icon set, button. Not available for tDetector — see below.
- HTML mode — raw code editor; full control over markup and CSS.
Undo/redo (50 states) works in both modes. Design-mode layouts embed the canvas as a <!-- studio-design:<base64> --> comment so the studio can round-trip between modes.
Design mode's elements bind to live data via data-hud-* attributes — data-hud-text,
data-hud-led, data-hud-led-color, data-hud-show/data-hud-hide, data-hud-eq, and
data-hud-btn — these are read and driven live by tRadio's and tELS's shared HUD binder at
runtime, not cosmetic. For tRadio specifically, the canvas size is also written onto the root
element (data-radio-width/data-radio-height) so the installed layout renders at its intended
size instead of tRadio's default.
tDetector doesn't use this attribute model at all. Its runtime expects exactly one
<script data-layout-script> block registering window.__tdetLayoutUpdate(state, root) —
Design mode can't produce that, so it's disabled for tDetector-targeted items. HTML mode allows
exactly this one script block as the sole exception to the "no scripts" rule below, specifically
for tDetector items — everything else (a second script tag, event handlers, javascript: URLs,
etc.) is still rejected.
Drafts
Drafts are stored in browser localStorage, not on the server — clearing your browser's site data permanently deletes all unpublished work. Every new, never-submitted layout gets its own draft slot (not just one shared slot), and they're listed alongside your published items on Your Creations with a Draft badge, so you can jump back into one, or delete it, without ever submitting it for review.
Validation and size limits
A layout is a single self-contained HTML + CSS document — no separate asset bundle. Images
(background, icons) are embedded inline as data: URIs, whether you draw them in Design mode or
paste them into HTML mode. Clicking Submit for review validates before saving:
- Bare
<script>tags andon*inline event handlers are rejected — except the single<script data-layout-script>block tDetector items are allowed (see above) javascript:URLs,<iframe>,<object>/<embed>,<meta http-equiv>,<base>,<link>, and@importare rejected- The document must be under 2 MB total
This is a floor, not a ceiling — every new item and every edit to a published item is also reviewed by staff before it goes live (see below).
Forking an existing layout
On any published UI item's page, Fork copies its layout into a new local draft (does not count as a download) and opens the studio, with an attribution note linking back to the original. Publishing a fork always creates a new item — it never modifies the original, even if you own it.
Updating a published item
From Your Creations, items with a saved local draft show an "Edits pending" badge. Submit from the studio to push the update to the same item ID — this resets the item to "pending" for re-review.
