createWorld(), and its effect is permanent. It defines
what exists, what the player can control inside the world, and what the player’s inputs mean once
the stream is live. After creation you steer with controls (Adventure) or instructions (Directing).
The creation prompt is the world’s identity, and it is the contract the model reads your live inputs
against.
A strong prompt says five things, in this order:
Detail buys control
Consistent output comes from a clear, detailed prompt. A broad prompt is still valid input, but every region it leaves unsaid the model fills with its own invention, which can be different on every rerun. The difference is easiest to see side by side. This prompt leaves a lot up to the model:A cyberpunk city street at night, neon lights, rain, atmospheric, cinematic, 8K.
The Neon City prompt, one of the example worlds featured in the Happy Oyster JS-SDK example project,
describes the same street in specific detail:
A rain-slicked cyberpunk city street at night. Neon signs in pink, cyan and orange reflect in deep
puddles on the asphalt, steam rises from grates and vents, and holographic billboards flicker above
crowded noodle stalls. Narrow alleys branch off between towering buildings strung with cables, and
the wet air glows under the city lights.
It names what the world must render:
- the surfaces: rain-slicked asphalt and deep puddles
- the light sources: neon in three named colors and holographic billboards
- the inhabitants: crowded noodle stalls
- the landmarks that reward exploring: alleys branching off between the buildings
Recurring anchors
Three to six anchors, named early and referred back to as the prompt continues, hold a world together better than a long list of details that each show up once and never return. A world built around desert ruins might commit to four: sandstone, golden hour, wind-worn carved stone, and a caravan trail. Every later sentence is one of those four made specific. The model also renders the nouns the prompt supplies, so negation does not work: a negation still supplies its noun.A vast, empty desert. No people, no structures, no signs of civilization.
“No people” places people in the world’s attention. Spend the words on what occupies each region
instead:
A vast, empty desert: broken columns and half-buried arches, carved reliefs worn smooth by wind, a
distant caravan trail, heat shimmer over the sand.
Embody the subject
Adventure worlds work best written in the second person, “you are the wolf” rather than “a wolf runs”, which ties the camera to the subject and keeps the world staged around it. A prompt that describes the subject from the outside, like a spectator watching a scene, leaves the controls with nothing to attach to:A cloaked traveler walks up a narrow forest trail, carrying a lantern.
That sentence describes a shot of someone else. Cast the subject with concrete physical detail in
the same sentence you declare it, so the model knows its scale and silhouette from the first frame:
You are a traveler on the narrow trail, cloaked and carrying a lantern that swings as you walk.
For third-person Adventure worlds, the createWorld()
perspective parameter ("third_person")
frames the subject on screen. The prompt still addresses it as “you”.
Pair the subject with a premise
A subject alone has nothing to do. Give it an objective or a disruption, something it’s trying to reach or something that breaks the routine, and later instructions (or in Adventure, a player’s held controls) have something to push against instead of a static backdrop to wander.A lone courier moves through a city where gravity reverses every hour.
The subject and the system are there, but nothing pulls the courier forward, so the world just sits
around them.
A lone courier races to deliver a sealed letter across a city where gravity reverses every hour,
sprinting to clear each rooftop before the pull flips beneath her.
Direct visible change
A world that only describes appearance renders a single held frame:A cavernous ice cave glitters with blue light, hung with rows of long icicles.
Give it something that moves on its own, independent of any control, and it starts moving the moment
the travel opens. Favor verbs that point at a visible before and after: awakens, unfolds, drifts,
ripples, deepens, comes alive, gives way.
A cavernous ice cave glitters with blue light, hung with rows of long icicles; meltwater drips from
their tips into a still pool below, rings spreading across the surface with each drop.
Close with concrete photographic descriptors
Light, atmosphere, and materials are things a renderer can paint. Quality words describe nothing renderable:…breathtaking, cinematic, epic, 8K masterpiece.
Close with concrete photographic descriptors, placed as a short fragment after the complete scene:
the quality of the light, the type of weather, the texture of the surfaces.
…heat shimmer rises off the sand, and the sky burns amber and rose above the horizon.
Camera language belongs to this beat too, and for Directing worlds it has a real counterpart to
agree with: layout fixes the camera’s movement style for the whole travel, "Stable" or "Fast".
A prompt closing on a slow pullback or a fixed frame reads as Stable; one closing on a tracking shot
or a whip pan reads as Fast. Write toward whichever layout you picked, not the other one.
Adventure and Directing
HappyOyster ships two modes, selected before connecting withmode: "adventure" or
mode: "directing". Adventure is played: you hold movement and interaction controls in real time,
closer to how LingBot and
LingBot World work. Directing is steered: you write
instructions in plain English that land on the story as it plays, closer to how
LongLive and
Helios work. The paragraph shape above holds in both, but
the emphasis differs, covered next for each mode in turn.
Adventure
The subject carries the prompt: the player controls it directly, issuing held commands in real time. Chooseperspective to match the casting: "first_person" when you are the eyes, "third_person"
when the subject should be on screen. While a travel runs, the world advertises interaction verbs;
the SDK reference covers the control
surface. The engine attempts any free-form verb it is sent, so a subject cast with obvious
affordances, like a wolf that pounces or a boat that jumps a wake, gives the verbs something to work
with. A verb that plays out as nothing is a cue to reword it toward an action the world advertises.
Directing
The prompt is your opening shot: stage, cast, atmosphere, and whatever story tension the first instructions will pull on. A legible scene with named actors matters most, because every later instruction refers back to what the prompt established. Pickresolution (480p or 720p) at
creation. You can also set a layout (camera movement style, Stable or Fast) and a narrative
register (Calm, Dramatic, or Normal).
The prompt can be as short as a story idea: the generation layer expands a high-level premise into a
multi-act script on its own. To keep the authorship, write the script into the prompt yourself.
Timing guidance takes whatever ranges fit the scene (“from 0 to 15 seconds, the messenger climbs
through the fog”), together with character actions or dialogue, camera direction, emotion, and scene
changes; the ranges are free-form, and the layer maps them onto the engine’s four-second blocks. At
the granular end you can script act by act, one act per block of about four seconds, up to 45 acts,
which is roughly three minutes of directed story.
Starting images
An optional starting frame sharpens the prompt’s authority, and each mode consumes it in its own way:- Adventure treats the image as a visual anchor: the model generates the world from image and prompt together. Write the prompt to describe the image’s scene. When they disagree, you are asking for two different worlds at once.
- Directing uses the image as the literal first frame and skips AI first-frame generation. What you upload is shot one, so write the prompt as the scene that shot opens.
createWorld() parameters, the URL and upload constraints, and the content-policy codes are in
the SDK reference.
Common pitfalls
- A spectator prompt in an Adventure world. “A knight rides across the plain” describes a shot,
and the controls have no one to move; forward becomes a camera guess. Cast the subject in second
person and pick the
perspectivethat matches the casting. - No line that moves on its own. A prompt that is all appearance renders a held diorama. One named ambient motion, fireflies in the hollows, lanterns coming alive, gives the world life before any input arrives.
- A starting image the prompt argues with. In Adventure the model generates one world from both; in Directing the image is shot one. Write the prompt as the scene the image shows or opens.
- A close that fights the
layout. A prompt ending on whip pans withlayout: "Stable", or on a locked frame with"Fast", sends the travel two camera briefs. Write toward the layout you picked. - A travel’s worth of story in one instruction. Instructions land one block at a time, and a three-act instruction fights that cadence. One actor, one action, one intended outcome per instruction.
- Words spent on what must not appear. A negation supplies its noun: “no people” places people in the world’s attention. Describe what occupies the space instead.