Skip to content

The trusted layer: what you can't do ​

You'll learn: the few things on screen that are never yours, and why. You'll need this when: you design full-screen UI, menus or anything that asks a player for input.

Status: Built (headless, and in the plots dev stack): reserved controls never reach plots, the trusted events go out on a channel plots can't touch, and the plots dev page and the iOS app's native plot UI draw the trusted layer. Not in the live world yet.

Draw anything, except these ​

Your plot can draw anything: HUDs, crosshairs, binoculars, full-screen menus, video, a top-down camera. Coverage isn't limited. What can't be covered is the trusted layer, drawn by the base game last, over everything:

ElementWhere (iPhone portrait)When
The settings button and chat, the app's Back and tab barsettings top left, chat top right, about 52×52 ptalways
Leave {your plot}the first item of the settings menu (there's no Leave button on screen)inside your plot, or looking on
The base's own controls (hotbar, jump, sneak, sprint)where the base draws themalways
Prompts ("keep your items?", base transfers)a bottom sheet, up to 40% of the height; your input pauseson demand
Entry protection and the start countdowna shimmer round the body; a ring at the top centrewhile a player is protected, and during a start countdown
"Typing to {your plot}"a strip above the keyboardwhile your text field has focus
Real players' nametagsover each real player, in the trusted stylealways (you may turn them off)

The trusted layer, mocked up on an iPhone: entering, the settings menu with "Leave Bedwars" first, the "keep your items?" sheet, typing

A mockup (Bedwars as the plot): the settings button top left and chat top right on every screen, the entry protection ring at the top centre with a real nametag, the settings menu open with "Leave Bedwars" first (there's no Leave button on screen), the "Keep your items in Bedwars?" sheet, and the "Typing to Bedwars" strip. Gold outlines mark what the base game draws over any plot.

The settings menu in the plots dev page, inside Bedwars: "Leave Bedwars" is its first item

A capture from the plots dev page: the settings menu inside the Bedwars plot, "Leave Bedwars" first.

So in practice, keep your own important UI off the settings button, the chat corner and the top-centre ring area. The rest of the top-left corner is yours.

The reserved controls ​

The settings button (and its menu's "Leave {your plot}"), chat, the hotbar and the base's touch controls, the app's Back and the system gestures go to the base game, never to your plot: a "hit" region of your overlay over them never gets their taps. A "leave" action never shows up in input.read(). You can be as strict as you like with the camera and controls, because no one is ever stuck.

Text entry is labelled ​

ui.askForText(p, "Name your ship") opens a text box (the answer arrives in onTextSubmit); the base labels it "Typing to {your plot's name}". The name is your plot.json name. A plot can draw a fake sign-in screen, so the label tells players who they're typing to. Real sign-in only happens in the app's own screens, outside the world.

Nametags ​

Nametag components are your own labels, never in the trusted style. Real players get trusted tags from the room. You may hide them (players.setRealNametagsVisible(false), runtime only, for anonymity games), but you can never draw one.

No device, no secrets ​

Plot code has no imports for the clipboard, notifications, haptics, camera, microphone, location, files, motion sensors or the network. A player is a per-plot id and a display name; you never see account ids or tokens. Base UI sounds are reserved assets you can't load.

Next ​

Budgets and tick rates.