diff --git a/astro.config.ts b/astro.config.ts
index e7501b36b..aa7f68f4a 100644
--- a/astro.config.ts
+++ b/astro.config.ts
@@ -234,6 +234,7 @@ export default defineConfig({
"paper/dev/plugin-configurations",
"paper/dev/lifecycle",
"paper/dev/registries",
+ "paper/dev/dialogs",
"paper/dev/recipes",
"paper/dev/folia-support",
"paper/dev/roadmap",
diff --git a/src/content/docs/paper/dev/api/assets/dialogs/confirmation-dialog.png b/src/content/docs/paper/dev/api/assets/dialogs/confirmation-dialog.png
new file mode 100644
index 000000000..7b28b63d7
Binary files /dev/null and b/src/content/docs/paper/dev/api/assets/dialogs/confirmation-dialog.png differ
diff --git a/src/content/docs/paper/dev/api/assets/dialogs/dialog-showcase.mp4 b/src/content/docs/paper/dev/api/assets/dialogs/dialog-showcase.mp4
new file mode 100644
index 000000000..668523115
Binary files /dev/null and b/src/content/docs/paper/dev/api/assets/dialogs/dialog-showcase.mp4 differ
diff --git a/src/content/docs/paper/dev/api/assets/dialogs/input-boolean.mp4 b/src/content/docs/paper/dev/api/assets/dialogs/input-boolean.mp4
new file mode 100644
index 000000000..355b7f4d2
Binary files /dev/null and b/src/content/docs/paper/dev/api/assets/dialogs/input-boolean.mp4 differ
diff --git a/src/content/docs/paper/dev/api/assets/dialogs/input-dialog-showcase.mp4 b/src/content/docs/paper/dev/api/assets/dialogs/input-dialog-showcase.mp4
new file mode 100644
index 000000000..9e1518213
Binary files /dev/null and b/src/content/docs/paper/dev/api/assets/dialogs/input-dialog-showcase.mp4 differ
diff --git a/src/content/docs/paper/dev/api/assets/dialogs/input-multi-options.mp4 b/src/content/docs/paper/dev/api/assets/dialogs/input-multi-options.mp4
new file mode 100644
index 000000000..d238931c7
Binary files /dev/null and b/src/content/docs/paper/dev/api/assets/dialogs/input-multi-options.mp4 differ
diff --git a/src/content/docs/paper/dev/api/assets/dialogs/input-number-range.mp4 b/src/content/docs/paper/dev/api/assets/dialogs/input-number-range.mp4
new file mode 100644
index 000000000..51b6b48e0
Binary files /dev/null and b/src/content/docs/paper/dev/api/assets/dialogs/input-number-range.mp4 differ
diff --git a/src/content/docs/paper/dev/api/assets/dialogs/input-text.mp4 b/src/content/docs/paper/dev/api/assets/dialogs/input-text.mp4
new file mode 100644
index 000000000..663ccf552
Binary files /dev/null and b/src/content/docs/paper/dev/api/assets/dialogs/input-text.mp4 differ
diff --git a/src/content/docs/paper/dev/api/assets/dialogs/notice-dialog.png b/src/content/docs/paper/dev/api/assets/dialogs/notice-dialog.png
new file mode 100644
index 000000000..29aeb740b
Binary files /dev/null and b/src/content/docs/paper/dev/api/assets/dialogs/notice-dialog.png differ
diff --git a/src/content/docs/paper/dev/api/command-api/arguments/assets/registry-arguments/resource-dialog.mp4 b/src/content/docs/paper/dev/api/command-api/arguments/assets/registry-arguments/resource-dialog.mp4
new file mode 100644
index 000000000..166f9fb67
Binary files /dev/null and b/src/content/docs/paper/dev/api/command-api/arguments/assets/registry-arguments/resource-dialog.mp4 differ
diff --git a/src/content/docs/paper/dev/api/command-api/arguments/registry.mdx b/src/content/docs/paper/dev/api/command-api/arguments/registry.mdx
index cafaf249a..d781aada3 100755
--- a/src/content/docs/paper/dev/api/command-api/arguments/registry.mdx
+++ b/src/content/docs/paper/dev/api/command-api/arguments/registry.mdx
@@ -14,6 +14,7 @@ import ResourceChickenVariant from "./assets/registry-arguments/resource-chicken
import ResourceCowVariant from "./assets/registry-arguments/resource-cow-variant.mp4";
import ResourceDamageType from "./assets/registry-arguments/resource-damage-type.mp4";
import ResourceDataComponentType from "./assets/registry-arguments/resource-data-component-type.mp4";
+import ResourceDialog from "./assets/registry-arguments/resource-dialog.mp4";
import ResourceEnchantment from "./assets/registry-arguments/resource-enchantment.mp4";
import ResourceEntityType from "./assets/registry-arguments/resource-entity-type.mp4";
import ResourceFluid from "./assets/registry-arguments/resource-fluid.mp4";
@@ -197,42 +198,43 @@ input and be able to retrieve the backed instance without much trouble, that is
The following `RegistryKeys` exist:
-| RegistryKeys Field | Return Value | Preview Video |
-|------------------------|------------------------|---------------------------------------------|
-| ATTRIBUTE | Attribute | [Attribute](#attribute) |
-| BANNER_PATTERN | PatternType | [Banner Pattern](#banner-pattern) |
-| BIOME | Biome | [Biome](#biome) |
-| BLOCK | BlockType | [Block](#block) |
-| CAT_VARIANT | Cat.Type | [Cat Variant](#cat-variant) |
-| CHICKEN_VARIANT | Chicken.Variant | [Chicken Variant](#chicken-variant) |
-| COW_VARIANT | Cow.Variant | [Cow Variant](#cow-variant) |
-| DAMAGE_TYPE | DamageType | [Damage Type](#damage-type) |
-| DATA_COMPONENT_TYPE | DataComponentType | [Data Component Type](#data-component-type) |
-| ENCHANTMENT | Enchantment | [Enchantment](#enchantment) |
-| ENTITY_TYPE | EntityType | [Entity Type](#entity-type) |
-| FLUID | Fluid | [Fluid](#fluid) |
-| FROG_VARIANT | Frog.Variant | [Frog Variant](#frog-variant) |
-| GAME_EVENT | GameEvent | [Game Event](#game-event) |
-| INSTRUMENT | MusicInstrument | [Instrument](#instrument) |
-| ITEM | ItemType | [Item](#item) |
-| JUKEBOX_SONG | JukeboxSong | [Jukebox Song](#jukebox-song) |
-| MAP_DECORATION_TYPE | MapCursor.Type | [Map Decoration Type](#map-decoration-type) |
-| MEMORY_MODULE_TYPE | MemoryKey\> | [Memory Module Type](#memory-module-type) |
-| MENU | MenuType | [Menu](#menu) |
-| MOB_EFFECT | PotionEffectType | [Mob effect](#mob-effect) |
-| PAINTING_VARIANT | Art | [Painting variant](#painting-variant) |
-| PARTICLE_TYPE | Particle | [Particle](#particle) |
-| PIG_VARIANT | Pig.Variant | [Pig Variant](#pig-variant) |
-| POTION | PotionType | [Potion](#potion) |
-| SOUND_EVENT | Sound | [Sound](#sound) |
-| STRUCTURE | Structure | [Structure](#structure) |
-| STRUCTURE_TYPE | StructureType | [Structure Type](#structure-type) |
-| TRIM_MATERIAL | TrimMaterial | [Trim Material](#trim-material) |
-| TRIM_PATTERN | TrimPattern | [Trim Pattern](#trim-pattern) |
-| VILLAGER_PROFESSION | Villager.Profession | [Villager Profession](#villager-profession) |
-| VILLAGER_TYPE | Villager.Type | [Villager Type](#villager-type) |
-| WOLF_SOUND_VARIANT | Wolf.SoundVariant | [Wolf Sound Variant](#wolf-sound-variant) |
-| WOLF_VARIANT | Wolf.Variant | [Wolf Variant](#wolf-variant) |
+| RegistryKeys Field | Return Value | Preview Video |
+|---------------------|---------------------|---------------------------------------------|
+| ATTRIBUTE | Attribute | [Attribute](#attribute) |
+| BANNER_PATTERN | PatternType | [Banner Pattern](#banner-pattern) |
+| BIOME | Biome | [Biome](#biome) |
+| BLOCK | BlockType | [Block](#block) |
+| CAT_VARIANT | Cat.Type | [Cat Variant](#cat-variant) |
+| CHICKEN_VARIANT | Chicken.Variant | [Chicken Variant](#chicken-variant) |
+| COW_VARIANT | Cow.Variant | [Cow Variant](#cow-variant) |
+| DAMAGE_TYPE | DamageType | [Damage Type](#damage-type) |
+| DATA_COMPONENT_TYPE | DataComponentType | [Data Component Type](#data-component-type) |
+| DIALOG | Dialog | [Dialog](#dialog) |
+| ENCHANTMENT | Enchantment | [Enchantment](#enchantment) |
+| ENTITY_TYPE | EntityType | [Entity Type](#entity-type) |
+| FLUID | Fluid | [Fluid](#fluid) |
+| FROG_VARIANT | Frog.Variant | [Frog Variant](#frog-variant) |
+| GAME_EVENT | GameEvent | [Game Event](#game-event) |
+| INSTRUMENT | MusicInstrument | [Instrument](#instrument) |
+| ITEM | ItemType | [Item](#item) |
+| JUKEBOX_SONG | JukeboxSong | [Jukebox Song](#jukebox-song) |
+| MAP_DECORATION_TYPE | MapCursor.Type | [Map Decoration Type](#map-decoration-type) |
+| MEMORY_MODULE_TYPE | MemoryKey\> | [Memory Module Type](#memory-module-type) |
+| MENU | MenuType | [Menu](#menu) |
+| MOB_EFFECT | PotionEffectType | [Mob effect](#mob-effect) |
+| PAINTING_VARIANT | Art | [Painting variant](#painting-variant) |
+| PARTICLE_TYPE | Particle | [Particle](#particle) |
+| PIG_VARIANT | Pig.Variant | [Pig Variant](#pig-variant) |
+| POTION | PotionType | [Potion](#potion) |
+| SOUND_EVENT | Sound | [Sound](#sound) |
+| STRUCTURE | Structure | [Structure](#structure) |
+| STRUCTURE_TYPE | StructureType | [Structure Type](#structure-type) |
+| TRIM_MATERIAL | TrimMaterial | [Trim Material](#trim-material) |
+| TRIM_PATTERN | TrimPattern | [Trim Pattern](#trim-pattern) |
+| VILLAGER_PROFESSION | Villager.Profession | [Villager Profession](#villager-profession) |
+| VILLAGER_TYPE | Villager.Type | [Villager Type](#villager-type) |
+| WOLF_SOUND_VARIANT | Wolf.SoundVariant | [Wolf Sound Variant](#wolf-sound-variant) |
+| WOLF_VARIANT | Wolf.Variant | [Wolf Variant](#wolf-variant) |
### Attribute
@@ -258,15 +260,18 @@ The following `RegistryKeys` exist:
### Damage type
+### Data component type
+
+
+### Dialog
+
+
### Enchantment
### Entity type
-### Data component type
-
-
### Fluid
diff --git a/src/content/docs/paper/dev/api/dialogs.mdx b/src/content/docs/paper/dev/api/dialogs.mdx
new file mode 100644
index 000000000..1a08db7a0
--- /dev/null
+++ b/src/content/docs/paper/dev/api/dialogs.mdx
@@ -0,0 +1,369 @@
+---
+title: Dialog API
+description: A guide to the dialog API introduced in 1.21.7.
+slug: paper/dev/dialogs
+version: 1.21.7
+sidebar:
+ badge:
+ text: Experimental
+ variant: danger
+---
+
+import Video from "/src/components/Video.astro";
+
+import InputBooleanMp4 from "./assets/dialogs/input-boolean.mp4?url";
+import InputMultiOptionMp4 from "./assets/dialogs/input-multi-options.mp4?url";
+import InputTextMp4 from "./assets/dialogs/input-text.mp4?url";
+import InputNumberRange from "./assets/dialogs/input-number-range.mp4?url";
+import DialogShowcaseMp4 from "./assets/dialogs/dialog-showcase.mp4?url";
+import InputDialogShowcaseMp4 from "./assets/dialogs/input-dialog-showcase.mp4?url";
+
+:::danger[Experimental]
+
+The dialog API is currently experimental and might change in the future.
+
+:::
+
+[Dialogs](https://minecraft.wiki/w/Dialog) are a feature added to Minecraft in the [1.21.6](https://minecraft.wiki/w/Java_Edition_1.21.6)
+update. Paper released developer API for creating custom dialogs in 1.21.7. This section is meant
+as an introduction to this API and what you can and cannot do with dialogs.
+
+## What is a dialog
+Dialogs are a way for servers to send custom in-game menus to clients. They allow for displaying various information
+or provide an easy way to gather user input.
+
+Dialogs can be shown to players during the configuration phase or normal gameplay, which makes them a very
+versatile tool. A simple dialog might look like this:
+
+
+
+The dialog shown here is a **confirmation**-type dialog, which just means it always contains two buttons, one meant for
+confirmation and one meant for refusal.
+
+## Showing dialogs
+Dialogs can be shown in-game using the `/dialog show