You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit d62753e
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: docs/ai/assistant.md
+29Lines changed: 29 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -36,6 +36,35 @@ Once the assistant is enabled and a provider is set, a round **✨ button** appe
36
36
bottom-left of the viewport (just below the **+** add button). Click it to open or close
37
37
the assistant window — the same window the quick prompt bar opens into.
38
38
39
+
### In VR
40
+
41
+
Radial menu ▸ **Tools ▸ AI** opens the same conversation on a panel in the headset, where you can type or hold a button
42
+
and talk — see [The AI assistant in VR](../vr.md#the-ai-assistant-in-vr).
43
+
44
+
## Voice typing
45
+
46
+
Talk to the assistant instead of typing. Set up a speech-to-text provider in **Settings ▸ AI ▸ Voice typing provider**
47
+
(search *voice*, *whisper* or *dictation*):
48
+
49
+
| Setting | Default | Notes |
50
+
|---|---|---|
51
+
|**Provider**| OpenAI |**OpenAI** (`whisper-1`), **Groq** (`whisper-large-v3`), or **Self-hosted** — any OpenAI-compatible `/audio/transcriptions` server, such as faster-whisper |
52
+
|**Base URL / API key / Model**| from the preset | OpenAI and Groq need a key; a self-hosted server only its URL |
53
+
|**Language hint**| blank (detect) | for example `en`|
54
+
|**Test connection**| — | sends half a second of silence; *Connected* means the server accepted it |
55
+
56
+

57
+
58
+
The assistant window then has a **mic** button next to **Send**: click to listen, click again to stop. The words land in
59
+
the input, so you can fix them before sending. (In VR they are sent as soon as you let go.)
60
+
61
+

62
+
63
+
- The voice key is stored on this device only, like the AI provider key ([Where keys are stored](providers.md#where-keys-are-stored)).
64
+
- If voice chat is on, the assistant uses the same microphone without opening a second one, and voice chat keeps
65
+
working.
66
+
- Voice needs a browser that can record audio and microphone permission. A recording stops itself after 60 seconds.
67
+
39
68
## What you can ask for
40
69
41
70
The assistant works with the building blocks the app already has:
Since 1.24 everyone in a session appears as a **rigged, animated character** instead of a floating head. The body
4
+
stands under the person's viewpoint, **walks, runs, strafes, jumps and idles** with the way they move, turns to face
5
+
where they look, and — when they are in **VR** — reaches for their controllers with its arms. The classic floating head
6
+
is still there as a choice.
7
+
8
+

9
+
10
+
## The characters
11
+
12
+
Nine characters ship with the app: **Knight**, **Mage**, **Rogue**, **Hooded rogue**, **Barbarian**, **Skeleton**,
13
+
**Skeleton warrior**, **Skeleton mage** and **Skeleton rogue**, from Kay Lousberg's free CC0 KayKit packs.
14
+
15
+

16
+
17
+
If you never pick one, you get **Surprise me**: a character chosen from your id, so everyone sees the same one for you.
18
+
The same characters are also an Explorer pack, **Packs ▸ Adventurers**, that you can place in a scene as animated
19
+
models (see [Packs](packs.md#adventurers-124)).
20
+
21
+
## Customize Character
22
+
23
+
Profile menu (your picture, top right) ▸ **Customize Character** — also **Settings ▸ Interface ▸ Avatars ▸ Customize
24
+
character…**. A side panel opens and the camera moves to **your own character**, standing where you are, so you see
25
+
yourself the way other people do.
26
+
27
+

28
+
29
+
| Section | What you choose |
30
+
|---|---|
31
+
|**Character**| one of the nine — step through them with ‹ › — or **Surprise me** or **Classic head**|
32
+
|**Head**| the character's own head, a stylised **Sphere**, **Box**, **Capsule** or **Cone** in your colour, or **My photo** (your profile picture on a card; needs a profile photo) |
33
+
|**Hat**| None, Cap, Top hat or Crown — it sits on whatever head you chose |
34
+
|**Colours**|**Outfit** recolours the character's clothes (skin and face keep theirs; **Original** puts them back); **Head** colours a stylised head or the classic avatar |
35
+
|**Show my name above me**| your name label |
36
+
|**Ping**| the colour and chime of *your*[pings](notifications.md#pinging); **Preview** pings beside your character (only you see and hear it) |
37
+
38
+
Every change shows on your character at once; nothing reaches other people until you press **Apply**, which saves it and
39
+
shows it to everyone. **Cancel**, <kbd>Esc</kbd> or ✕ throw the changes away. Either way the camera flies back to where
40
+
you were.
41
+
42
+
## Showing everyone as classic heads
43
+
44
+
**Settings ▸ Interface ▸ Avatars ▸ Show everyone as classic heads** draws other people as the floating head instead of
45
+
their character — on **this device only**, and lighter on a headset with many people in the room. They still see your
46
+
character.
47
+
48
+
## In VR
49
+
50
+
A VR user's character follows their head, and its arms reach for their controllers; a hand held out of the arm's reach
51
+
falls back to the floating controller marker. Pointing at an object puts the character's hand on it.
52
+
53
+
## Limits
54
+
55
+
- The bodies are stylised (big heads): a character is about 2.2 m tall so its eyes sit where the person's are.
56
+
- In the editor, a character follows the editor camera — flying the camera makes the body float.
57
+
- Characters add no network traffic: each screen works the bodies out from the position and hand data already shared.
58
+
- Each character is at most about 6,000 triangles with one material, so eight people stay inside a Quest's budget.
A **checkpoint** is a copy of the scene as it is right now — objects, node graphs, HUD, sky, physics, the camera — kept
4
+
**on this device**, with a name, an optional note, a picture and a time. [Autosave](saving.md#autosave) only remembers
5
+
the *last* state; checkpoints let you go back to *any* earlier one.
6
+
7
+

8
+
9
+
## Saving a checkpoint
10
+
11
+
**Menu** (the logo button) ▸ **Save checkpoint…**, or press <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>S</kbd>. Type a name and, if you like,
12
+
a note ("before lighting", "try the red version next"), then press **Save checkpoint**.
13
+
14
+
## The timeline
15
+
16
+
**Menu ▸ Checkpoints** lists every checkpoint, newest first, grouped by day. In it you can:
17
+
18
+
| Action | How |
19
+
|---|---|
20
+
|**Restore**| replaces the open scene with the checkpoint. The scene you leave is kept in the timeline as **"Before restoring …"**, so a restore can itself be undone. With people connected, they are asked to accept first (the same as opening a saved session) |
21
+
|**Rename**| double-click the name |
22
+
|**Note**| click the note line to edit it (<kbd>Ctrl</kbd>+<kbd>Enter</kbd> saves) |
23
+
|**Pin**| a pinned checkpoint is never removed to make room |
24
+
|**Delete**| removes the checkpoint |
25
+
|**Compare**| press **Compare**, then tick two checkpoints: their pictures sit on top of each other with a swipe slider, plus what changed (object count, size, time apart, "same content"). Tick just one to compare it with the scene as it is now |
26
+
27
+
Two filters narrow the list: show only **This scene**'s checkpoints, or hide the **Automatic** ones.
28
+
29
+
## Automatic checkpoints
30
+
31
+
While you work, autosave also adds an **automatic** checkpoint every few minutes — only when the scene actually changed
32
+
since the last one, and never while a scene is loading or a simulation is running.
33
+
34
+
## Settings
35
+
36
+
**Settings ▸ Scene ▸ Checkpoints**:
37
+
38
+
| Setting | Default | What it does |
39
+
|---|---|---|
40
+
| Keep automatic checkpoints | on | autosave adds rows to the timeline |
41
+
| Automatic checkpoint every | 10 min | 5 / 10 / 30 / 60 min — the shortest gap between two |
42
+
| Checkpoint storage | 250 MB | 100 MB / 250 MB / 500 MB / 1 GB that this device may use |
43
+
44
+
## Limits
45
+
46
+
- Checkpoints stay on this device (this browser). They are not shared with other people and are not part of a project
47
+
file — use **Save** and scene versions ([Saving & Sessions](saving.md)) for that.
48
+
- When a new checkpoint would not fit, the **oldest unpinned** ones are removed — automatic ones before named ones. If
49
+
even that is not enough (everything else is pinned), the save is refused and a message says so. At most 60 checkpoints
50
+
are kept.
51
+
- A scene larger than the storage limit cannot be checkpointed.
Copy file name to clipboardExpand all lines: docs/community.md
+55-5Lines changed: 55 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -41,13 +41,18 @@ Publish again from the same scene and the dialog offers **Update "‹title›"
41
41
42
42
There is no unpublish button in the app yet.
43
43
44
+
When you publish or update a game, the dialog also shows a **This game: …** line with its visits — see
45
+
[Your games & stats](#your-games-stats).
46
+
44
47
### The GitHub gallery destination
45
48
46
-
Choosing **GitHub gallery** downloads `‹slug›-gallery-entry.zip` (the scene, a thumbnail and an `entry.json`) and opens the gallery repository: fork it, add the folder and a row to `gallery.json`, open a pull request. Contest entries need the Community destination, and the dialog says so if you pick both.
49
+
Choosing **GitHub gallery** builds the same submission zip as the **Community gallery** tab of Publish / Export, with
50
+
the same two GitHub steps — see [The Community gallery tab](publish-export.md#the-community-gallery-tab). Contest entries
51
+
need the Community destination, and the dialog says so if you pick both.
47
52
48
53
## A scene's page
49
54
50
-
Every published scene has a page at `/s/‹id›`: the hero shot, the title, the author's `@handle`, the license, a **♥** like button (sign in to use it), the summary, the tags, and four actions:
55
+
Every published scene has a page at `/s/‹id›`: the hero shot, the title, the author's `@handle`, the license, a **♥** like button (sign in to use it; the same like as the [hearts in the app](#hearts)), the summary, the tags, and four actions:
51
56
52
57
-**▶ Play** — opens the app with the scene loaded and Play mode already running.
53
58
-**Open in ThePrototype** — the same, in the editor.
@@ -58,7 +63,8 @@ A public scene also has an **Embed** button — see [Embedding a scene](#embeddi
58
63
59
64
Below that: what the scene includes, its lineage (*Remix of … by @handle*, and how many remixes it has), and comments. **Report this scene** is at the bottom — see [Reporting](#reporting).
60
65
61
-
`/community` is the browse page: **Featured**, **Recent** and **Top**, tag chips, and a strip for the contest that is open.
66
+
`/community` is the browse page: **Featured**, **Recent** and **Top**, tag chips, a **Mine** chip while you are signed in
67
+
(see [below](#mine)), and a strip for the contest that is open.
62
68
63
69
### Links that open the app
64
70
@@ -78,14 +84,55 @@ The flag lasts for the life of the page.
78
84
79
85
**The editor is the player.** Play opens the real app with the full scene, not a preview: the game's HUD, its flow graph, its physics and its sound all run, and a click on the viewport takes the pointer.
80
86
81
-
**Remix is a local load.** Nothing is created on the server until you publish. When you do, the dialog shows a ticked *Remix of "‹title›" by @handle* line and the new scene carries that lineage on its page. Every license in the picker allows this; a remix of your own scene is simply a new scene, with no lineage line.
87
+
**Remix is a local load.** Nothing is created on the server until you publish. When you do, the dialog shows a ticked *Remix of "‹title›" by @handle* line and the new scene carries that lineage on its page. Every license in the picker allows this; a remix of your own scene is simply a new scene, with no lineage line. A remix is also a **new game** with its own [game id](#one-game-one-count).
82
88
83
89
## The Community tab in Templates
84
90
85
91
**Menu ▸ Templates ▸ Community** lists published scenes inside the app — featured ones first, then the most recent — with the author's handle, the license, the size and the like count on each card. Tag chips narrow the list; **Clear** resets it. Clicking a card loads the scene through the ordinary template path: a backup of your current scene is stashed first, and connected peers are asked before anything changes. The small button in a card's corner saves the scene to your Library instead, without loading it.
86
92
87
93
When a contest is open a notice row says so (*Contest: Make a mirror — 9 days left*) with a **More** link to its page, and the tab's **Publish yours** link opens the Publish dialog.
88
94
95
+
### Hearts
96
+
97
+
Like a published scene without leaving the app: the **heart** button sits on every card in **Templates ▸ Community**, on
98
+
the start card of a **play link** (`/p/‹id›`) and in a published game's **pause menu** (<kbd>Esc</kbd>, top right).
99
+
Press it and the count updates at once (and goes back if the like could not be saved). Signed out, it asks you to sign in
100
+
(profile menu, top right). It is the same like as the ♥ on the scene's page — one like per person per scene.
101
+
102
+

103
+
104
+

105
+
106
+
### Mine
107
+
108
+
While you are signed in, the **Mine** chip in **Templates ▸ Community** (and on theprototype.app/community) shows only
109
+
your own published scenes — unlisted ones too. A scene staff hid shows *Hidden by moderation: ‹reason›*, so you know why.
110
+
111
+
## Your games & stats
112
+
113
+
Profile menu ▸ **📈 Your games & stats** shows how many people arrived from the **Made with ThePrototype** badge in your
114
+
play links, embeds and exported builds — for the last **7 days**, **30 days** or **all time**, split by source (play
115
+
link, itch.io, static host, embed). The [Publish](#publish) dialog shows the same count for the game you are publishing
116
+
or updating.
117
+
118
+

119
+
120
+
### One game, one count
121
+
122
+
Every scene gets a permanent **game id** the first time you save, export or publish it. Re-exporting, a new itch.io build
123
+
and the play link all count toward the **same game** — including visits from before you published it. A **copy**
124
+
(Explorer ▸ Duplicate, Save to Library) or a **remix** of someone else's scene becomes a **new game**.
125
+
126
+
- Visits are counted per game, never per visitor: no cookies, no IP addresses.
127
+
- Builds exported before 1.24 count under their own old id.
128
+
- Exports made while signed out still count, but show in your stats only once the game is published or exported again
129
+
while you are signed in.
130
+
131
+
### If a scene of yours is hidden
132
+
133
+
If staff hide or remove one of your scenes, **Your games** (and the Publish dialog, when you update it) says *Hidden by
134
+
moderation: ‹reason›*. Press **Ask for a review** — once a day, with an optional note — and staff get it in their queue.
135
+
89
136
## Contests
90
137
91
138
A contest is a brief, a starter scene, a two-week window and a page at `/c/‹slug›`: the rules, a live countdown, the starter, the entries, and the results once it ends. The first two are **Make a mirror** and **Follow the beat**; windows overlap by a week, so there is always one open and one closing.
@@ -106,4 +153,7 @@ The site and the app share one sign-in. **Sign in** in the site header offers th
106
153
107
154
## Reporting
108
155
109
-
Every scene page ends with **Report this scene**: pick a reason — **Spam**, **Not safe for work**, **Stolen work**, **Illegal content** or **Other** — add a note if you like, and send it (this needs a sign-in, and counts once per person per scene). A scene reported by three different people is hidden from every list and page until a maintainer has looked at it. Assets an author had no right to license are exactly what *Stolen work* is for: the license picker cannot express "all rights reserved", so a report and a takedown are how that is handled.
156
+
Every scene page ends with **Report this scene**: pick a reason — **Spam**, **Not safe for work**, **Stolen work**, **Illegal content** or **Other** — add a note if you like, and send it (this needs a sign-in, and counts once per person per scene). A scene reported by three different people — counting only accounts older than three days — is hidden from every list and page until a maintainer has looked at it.
157
+
158
+
Staff accounts have a **Staff · Insights & moderation** entry in the profile menu for the report queue and the visit
159
+
totals; it is not shown to anyone else. Assets an author had no right to license are exactly what *Stolen work* is for: the license picker cannot express "all rights reserved", so a report and a takedown are how that is handled.
0 commit comments