Skip to main content

UI Elements

DDDBrowser provides a minimal, unobtrusive user interface that stays out of your way while exploring 3D scenes. This guide explains all the UI elements available.

Top Bar​

The top bar is always visible and provides essential controls:

URL Input Field​

  • Purpose: Enter scene URLs to load
  • Location: Left side of top bar
  • Usage: Type a URL and press Enter or click Load
  • Requirements: Prefer HTTPS; plain HTTP prompts for Allow HTTP

Load Button​

  • Purpose: Start loading the scene from the URL input
  • Location: Next to URL input field
  • Usage: Click to begin loading
  • Keyboard: Press Enter while URL input is focused

Progress Indicator​

  • Purpose: Shows loading progress
  • Location: Center of top bar
  • Displays:
    • Scene definition / load stage
    • Asset download progress
    • Processing status
  • States: Idle, Loading, Complete, Error

Leave Instance Button​

  • Purpose: Unload current scene and return to idle state
  • Location: Right side of top bar
  • Usage: Click to leave the current scene
  • Effect: Returns to default grid view, unloads all assets

Settings Modal​

Open via Esc → Settings (or the menu entry for Settings). Details: Application Settings.

General view​

  • Audio Device and per-bus volume sliders
  • Quit Confirmation: "Don't ask again"
  • Graphics: Occlusion culling, Shadows
  • Network Policy: script HTTP third-party host allowlist
  • Script origins: hosts allowed to supply remote .luau beyond the scene origin
  • Open Cache, Change Keybindings, Cancel, Save

Keybindings view​

  • Action List: All available input actions
  • Current Bindings: Shows current key assignments
  • Rebind: Click an action, then press the key(s) to bind
  • Modifiers: Support for Shift, Ctrl, Alt
  • Mouse Buttons: Can bind to left/right mouse buttons
  • Esc returns to the General view without closing Settings

Travel Modal​

The travel modal appears when:

  • You interact with a portal
  • A script calls Scene.TravelTo(url)

Features:

  • Shows destination URL
  • Displays scene metadata (if available)
  • Confirmation button to travel
  • Cancel option

Portal Modal​

When you approach a portal, a modal may appear showing:

  • Destination: Where the portal leads
  • World Information: World ID and position (if applicable)
  • Validation Status: Whether the destination is valid
  • Travel Button: Confirm travel to destination

Portals can be configured to:

  • Auto-trigger (travel immediately)
  • Manual trigger (require interaction)
  • Script trigger (controlled by scripts)

Textboxes: world billboard vs modal (two different features)​

DDDBrowser uses “textbox” for two unrelated surfaces. Do not conflate them.

World billboard textboxes (scene JSON)​

Instances with type: "textbox" are 3D billboards in the world. They are authored via a textbox asset + instance and rendered by the scene textbox system. Placing a textbox instance does not open a modal.

See Scene Features — Textboxes and Instances — Textbox.

Modal overlays are opened only by scripts:

  • Engine.openTextBox() / Engine.closeTextBox()
  • ImGui variants: Engine.openImGuiTextBox() / Engine.closeImGuiTextBox()

Features: title, body text, buttons, checkboxes, optional Lua callback.

See Engine API — Textboxes.

URL Modal​

The URL modal appears when:

  • A script calls Engine.openExternalUrl(url)
  • User confirmation is required to open external URLs

Features:

  • Shows the URL that will be opened
  • Security warning about external sites
  • Accept/Decline buttons
  • Script callback with user's choice

Press Esc for the exit/pause menu. Typical actions:

  • Settings: Application settings (see above)
  • Leave / leave-instance controls (also on the top bar when in a scene)
  • Quit: Exit the application (respects quit confirmation preference)

URL travel remains on the top bar URL field + Load.

ImGui Textbox​

Lightweight script overlay (still a modal/overlay, not a world billboard):

  • Opened by: Engine.openImGuiTextBox()
  • Use case: Temporary messages, debug info

UI State Indicators​

DDDBrowser shows visual indicators for:

  • Loading State: Progress bar and status text
  • Error State: Error messages with retry option
  • Active State: Scene is loaded and interactive
  • Idle State: No scene loaded, showing grid

Customization​

UI elements cannot be customized by users, but scenes can:

  • World labels: Author type: "textbox" instances for in-world billboards
  • Modal UI: Scripts open/close Engine.openTextBox / ImGui textboxes
  • Other modals: Travel, portal, URL confirmation, Settings (Esc)

Best Practices​

  • Keep UI minimal: Don't overwhelm users with too many modals
  • Provide feedback: Use progress indicators and status messages
  • Handle errors gracefully: Show clear error messages
  • Respect user input: Allow cancellation of actions

Next Steps​