Marketplace

Browse, install, and publish layouts and sound packs for tRadio, tELS, and tDetector.

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:

ScriptCanvas size
tRadio300 × 406 px
tDetector400 × 400 px
tELS400 × 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

  1. Go to Your Creations.
  2. Click Create UI, then pick the target script and start designing.
  3. 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 and on* 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 @import are 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.