diff --git a/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/gamepad/dpad-down.png b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/gamepad/dpad-down.png
new file mode 100644
index 00000000..1f40c869
Binary files /dev/null and b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/gamepad/dpad-down.png differ
diff --git a/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/gamepad/dpad-left.png b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/gamepad/dpad-left.png
new file mode 100644
index 00000000..2ac6de86
Binary files /dev/null and b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/gamepad/dpad-left.png differ
diff --git a/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/gamepad/dpad-right.png b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/gamepad/dpad-right.png
new file mode 100644
index 00000000..cbd8e5f2
Binary files /dev/null and b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/gamepad/dpad-right.png differ
diff --git a/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/gamepad/dpad-up.png b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/gamepad/dpad-up.png
new file mode 100644
index 00000000..3879cce8
Binary files /dev/null and b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/gamepad/dpad-up.png differ
diff --git a/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/gamepad/dpad.png b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/gamepad/dpad.png
new file mode 100644
index 00000000..88fad8f9
Binary files /dev/null and b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/gamepad/dpad.png differ
diff --git a/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/gamepad/facebutton-down.png b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/gamepad/facebutton-down.png
new file mode 100644
index 00000000..6aa572a6
Binary files /dev/null and b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/gamepad/facebutton-down.png differ
diff --git a/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/gamepad/facebutton-left.png b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/gamepad/facebutton-left.png
new file mode 100644
index 00000000..ea7c9c64
Binary files /dev/null and b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/gamepad/facebutton-left.png differ
diff --git a/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/gamepad/facebutton-right.png b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/gamepad/facebutton-right.png
new file mode 100644
index 00000000..2e0e5a5a
Binary files /dev/null and b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/gamepad/facebutton-right.png differ
diff --git a/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/gamepad/facebutton-top.png b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/gamepad/facebutton-top.png
new file mode 100644
index 00000000..6acc03b2
Binary files /dev/null and b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/gamepad/facebutton-top.png differ
diff --git a/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/gamepad/shoulder-left.png b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/gamepad/shoulder-left.png
new file mode 100644
index 00000000..17f6fb0a
Binary files /dev/null and b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/gamepad/shoulder-left.png differ
diff --git a/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/gamepad/shoulder-right.png b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/gamepad/shoulder-right.png
new file mode 100644
index 00000000..db42583f
Binary files /dev/null and b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/gamepad/shoulder-right.png differ
diff --git a/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/gamepad/special-left.png b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/gamepad/special-left.png
new file mode 100644
index 00000000..35d8f4e3
Binary files /dev/null and b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/gamepad/special-left.png differ
diff --git a/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/gamepad/special-right.png b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/gamepad/special-right.png
new file mode 100644
index 00000000..2fab006b
Binary files /dev/null and b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/gamepad/special-right.png differ
diff --git a/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/gamepad/trigger-left.png b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/gamepad/trigger-left.png
new file mode 100644
index 00000000..62434a4a
Binary files /dev/null and b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/gamepad/trigger-left.png differ
diff --git a/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/gamepad/trigger-right.png b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/gamepad/trigger-right.png
new file mode 100644
index 00000000..ca952555
Binary files /dev/null and b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/gamepad/trigger-right.png differ
diff --git a/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-1.png b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-1.png
new file mode 100644
index 00000000..6e07ea75
Binary files /dev/null and b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-1.png differ
diff --git a/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-2.png b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-2.png
new file mode 100644
index 00000000..b82cfe17
Binary files /dev/null and b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-2.png differ
diff --git a/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-3.png b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-3.png
new file mode 100644
index 00000000..4bc72954
Binary files /dev/null and b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-3.png differ
diff --git a/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-4.png b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-4.png
new file mode 100644
index 00000000..98388efe
Binary files /dev/null and b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-4.png differ
diff --git a/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-5.png b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-5.png
new file mode 100644
index 00000000..77edaf82
Binary files /dev/null and b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-5.png differ
diff --git a/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-6.png b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-6.png
new file mode 100644
index 00000000..2e328a6b
Binary files /dev/null and b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-6.png differ
diff --git a/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-7.png b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-7.png
new file mode 100644
index 00000000..8cf28afc
Binary files /dev/null and b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-7.png differ
diff --git a/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-8.png b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-8.png
new file mode 100644
index 00000000..eb418fef
Binary files /dev/null and b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-8.png differ
diff --git a/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-9.png b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-9.png
new file mode 100644
index 00000000..a20ac2e3
Binary files /dev/null and b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-9.png differ
diff --git a/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-a.png b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-a.png
new file mode 100644
index 00000000..d845fa44
Binary files /dev/null and b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-a.png differ
diff --git a/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-arrows.png b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-arrows.png
new file mode 100644
index 00000000..6491f749
Binary files /dev/null and b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-arrows.png differ
diff --git a/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-b.png b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-b.png
new file mode 100644
index 00000000..2f42d8a4
Binary files /dev/null and b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-b.png differ
diff --git a/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-c.png b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-c.png
new file mode 100644
index 00000000..0a530ef7
Binary files /dev/null and b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-c.png differ
diff --git a/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-d.png b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-d.png
new file mode 100644
index 00000000..2436d62f
Binary files /dev/null and b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-d.png differ
diff --git a/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-down.png b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-down.png
new file mode 100644
index 00000000..71f2dd4d
Binary files /dev/null and b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-down.png differ
diff --git a/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-e.png b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-e.png
new file mode 100644
index 00000000..18d44a79
Binary files /dev/null and b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-e.png differ
diff --git a/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-enter.png b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-enter.png
new file mode 100644
index 00000000..4cbc61d3
Binary files /dev/null and b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-enter.png differ
diff --git a/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-escape.png b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-escape.png
new file mode 100644
index 00000000..968d5bfe
Binary files /dev/null and b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-escape.png differ
diff --git a/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-f.png b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-f.png
new file mode 100644
index 00000000..5ea2b7eb
Binary files /dev/null and b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-f.png differ
diff --git a/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-g.png b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-g.png
new file mode 100644
index 00000000..8e1eaac8
Binary files /dev/null and b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-g.png differ
diff --git a/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-h.png b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-h.png
new file mode 100644
index 00000000..5a6fafd5
Binary files /dev/null and b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-h.png differ
diff --git a/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-i.png b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-i.png
new file mode 100644
index 00000000..0e58a398
Binary files /dev/null and b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-i.png differ
diff --git a/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-j.png b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-j.png
new file mode 100644
index 00000000..417836f4
Binary files /dev/null and b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-j.png differ
diff --git a/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-k.png b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-k.png
new file mode 100644
index 00000000..52ba37d7
Binary files /dev/null and b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-k.png differ
diff --git a/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-l.png b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-l.png
new file mode 100644
index 00000000..82e1dfae
Binary files /dev/null and b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-l.png differ
diff --git a/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-left.png b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-left.png
new file mode 100644
index 00000000..e59cd269
Binary files /dev/null and b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-left.png differ
diff --git a/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-m.png b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-m.png
new file mode 100644
index 00000000..7ae6cad3
Binary files /dev/null and b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-m.png differ
diff --git a/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-n.png b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-n.png
new file mode 100644
index 00000000..41f13363
Binary files /dev/null and b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-n.png differ
diff --git a/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-o.png b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-o.png
new file mode 100644
index 00000000..ec18de8c
Binary files /dev/null and b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-o.png differ
diff --git a/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-p.png b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-p.png
new file mode 100644
index 00000000..3cc24045
Binary files /dev/null and b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-p.png differ
diff --git a/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-q.png b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-q.png
new file mode 100644
index 00000000..ac8a10db
Binary files /dev/null and b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-q.png differ
diff --git a/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-r.png b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-r.png
new file mode 100644
index 00000000..57ee08b9
Binary files /dev/null and b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-r.png differ
diff --git a/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-right.png b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-right.png
new file mode 100644
index 00000000..dad97765
Binary files /dev/null and b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-right.png differ
diff --git a/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-s.png b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-s.png
new file mode 100644
index 00000000..2c16d711
Binary files /dev/null and b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-s.png differ
diff --git a/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-space.png b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-space.png
new file mode 100644
index 00000000..aa2b684c
Binary files /dev/null and b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-space.png differ
diff --git a/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-t.png b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-t.png
new file mode 100644
index 00000000..c122913f
Binary files /dev/null and b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-t.png differ
diff --git a/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-u.png b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-u.png
new file mode 100644
index 00000000..6dc351c1
Binary files /dev/null and b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-u.png differ
diff --git a/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-up.png b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-up.png
new file mode 100644
index 00000000..d94221b6
Binary files /dev/null and b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-up.png differ
diff --git a/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-v.png b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-v.png
new file mode 100644
index 00000000..ffe6d9eb
Binary files /dev/null and b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-v.png differ
diff --git a/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-w.png b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-w.png
new file mode 100644
index 00000000..c79a4537
Binary files /dev/null and b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-w.png differ
diff --git a/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-x.png b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-x.png
new file mode 100644
index 00000000..fdf7e5d6
Binary files /dev/null and b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-x.png differ
diff --git a/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-y.png b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-y.png
new file mode 100644
index 00000000..e8469b02
Binary files /dev/null and b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-y.png differ
diff --git a/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-z.png b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-z.png
new file mode 100644
index 00000000..575a424b
Binary files /dev/null and b/packages/create-narrat/template-games/demo/public/img/ui/button-prompts/keyboard/key-z.png differ
diff --git a/packages/create-narrat/template-games/demo/src/config/common.yaml b/packages/create-narrat/template-games/demo/src/config/common.yaml
index b07eb170..5970a8ee 100644
--- a/packages/create-narrat/template-games/demo/src/config/common.yaml
+++ b/packages/create-narrat/template-games/demo/src/config/common.yaml
@@ -14,6 +14,10 @@ dialogPanel:
historyLength: 200 # The number of dialogue lines to keep in the history
hideDuringTransition: true # Setting this to true will make the dialog panel hide during screen transitions
showAfterScriptEnd: false # Setting this to true will make the dialog panel stay on even if the narrat script ends
+input:
+ showPromptsOnGamepad: true
+ showPromptsOnKeyboard: true
+ showBottomLegend: true
graphics:
allowFullscreen: true
layout:
diff --git a/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/gamepad/dpad-down.png b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/gamepad/dpad-down.png
new file mode 100644
index 00000000..1f40c869
Binary files /dev/null and b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/gamepad/dpad-down.png differ
diff --git a/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/gamepad/dpad-left.png b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/gamepad/dpad-left.png
new file mode 100644
index 00000000..2ac6de86
Binary files /dev/null and b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/gamepad/dpad-left.png differ
diff --git a/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/gamepad/dpad-right.png b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/gamepad/dpad-right.png
new file mode 100644
index 00000000..cbd8e5f2
Binary files /dev/null and b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/gamepad/dpad-right.png differ
diff --git a/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/gamepad/dpad-up.png b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/gamepad/dpad-up.png
new file mode 100644
index 00000000..3879cce8
Binary files /dev/null and b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/gamepad/dpad-up.png differ
diff --git a/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/gamepad/dpad.png b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/gamepad/dpad.png
new file mode 100644
index 00000000..88fad8f9
Binary files /dev/null and b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/gamepad/dpad.png differ
diff --git a/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/gamepad/facebutton-down.png b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/gamepad/facebutton-down.png
new file mode 100644
index 00000000..6aa572a6
Binary files /dev/null and b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/gamepad/facebutton-down.png differ
diff --git a/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/gamepad/facebutton-left.png b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/gamepad/facebutton-left.png
new file mode 100644
index 00000000..ea7c9c64
Binary files /dev/null and b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/gamepad/facebutton-left.png differ
diff --git a/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/gamepad/facebutton-right.png b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/gamepad/facebutton-right.png
new file mode 100644
index 00000000..2e0e5a5a
Binary files /dev/null and b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/gamepad/facebutton-right.png differ
diff --git a/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/gamepad/facebutton-top.png b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/gamepad/facebutton-top.png
new file mode 100644
index 00000000..6acc03b2
Binary files /dev/null and b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/gamepad/facebutton-top.png differ
diff --git a/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/gamepad/shoulder-left.png b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/gamepad/shoulder-left.png
new file mode 100644
index 00000000..17f6fb0a
Binary files /dev/null and b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/gamepad/shoulder-left.png differ
diff --git a/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/gamepad/shoulder-right.png b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/gamepad/shoulder-right.png
new file mode 100644
index 00000000..db42583f
Binary files /dev/null and b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/gamepad/shoulder-right.png differ
diff --git a/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/gamepad/special-left.png b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/gamepad/special-left.png
new file mode 100644
index 00000000..35d8f4e3
Binary files /dev/null and b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/gamepad/special-left.png differ
diff --git a/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/gamepad/special-right.png b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/gamepad/special-right.png
new file mode 100644
index 00000000..2fab006b
Binary files /dev/null and b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/gamepad/special-right.png differ
diff --git a/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/gamepad/trigger-left.png b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/gamepad/trigger-left.png
new file mode 100644
index 00000000..62434a4a
Binary files /dev/null and b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/gamepad/trigger-left.png differ
diff --git a/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/gamepad/trigger-right.png b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/gamepad/trigger-right.png
new file mode 100644
index 00000000..ca952555
Binary files /dev/null and b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/gamepad/trigger-right.png differ
diff --git a/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-1.png b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-1.png
new file mode 100644
index 00000000..6e07ea75
Binary files /dev/null and b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-1.png differ
diff --git a/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-2.png b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-2.png
new file mode 100644
index 00000000..b82cfe17
Binary files /dev/null and b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-2.png differ
diff --git a/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-3.png b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-3.png
new file mode 100644
index 00000000..4bc72954
Binary files /dev/null and b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-3.png differ
diff --git a/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-4.png b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-4.png
new file mode 100644
index 00000000..98388efe
Binary files /dev/null and b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-4.png differ
diff --git a/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-5.png b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-5.png
new file mode 100644
index 00000000..77edaf82
Binary files /dev/null and b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-5.png differ
diff --git a/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-6.png b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-6.png
new file mode 100644
index 00000000..2e328a6b
Binary files /dev/null and b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-6.png differ
diff --git a/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-7.png b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-7.png
new file mode 100644
index 00000000..8cf28afc
Binary files /dev/null and b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-7.png differ
diff --git a/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-8.png b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-8.png
new file mode 100644
index 00000000..eb418fef
Binary files /dev/null and b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-8.png differ
diff --git a/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-9.png b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-9.png
new file mode 100644
index 00000000..a20ac2e3
Binary files /dev/null and b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-9.png differ
diff --git a/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-a.png b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-a.png
new file mode 100644
index 00000000..d845fa44
Binary files /dev/null and b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-a.png differ
diff --git a/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-arrows.png b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-arrows.png
new file mode 100644
index 00000000..6491f749
Binary files /dev/null and b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-arrows.png differ
diff --git a/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-b.png b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-b.png
new file mode 100644
index 00000000..2f42d8a4
Binary files /dev/null and b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-b.png differ
diff --git a/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-c.png b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-c.png
new file mode 100644
index 00000000..0a530ef7
Binary files /dev/null and b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-c.png differ
diff --git a/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-d.png b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-d.png
new file mode 100644
index 00000000..2436d62f
Binary files /dev/null and b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-d.png differ
diff --git a/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-down.png b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-down.png
new file mode 100644
index 00000000..71f2dd4d
Binary files /dev/null and b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-down.png differ
diff --git a/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-e.png b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-e.png
new file mode 100644
index 00000000..18d44a79
Binary files /dev/null and b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-e.png differ
diff --git a/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-enter.png b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-enter.png
new file mode 100644
index 00000000..4cbc61d3
Binary files /dev/null and b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-enter.png differ
diff --git a/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-escape.png b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-escape.png
new file mode 100644
index 00000000..968d5bfe
Binary files /dev/null and b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-escape.png differ
diff --git a/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-f.png b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-f.png
new file mode 100644
index 00000000..5ea2b7eb
Binary files /dev/null and b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-f.png differ
diff --git a/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-g.png b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-g.png
new file mode 100644
index 00000000..8e1eaac8
Binary files /dev/null and b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-g.png differ
diff --git a/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-h.png b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-h.png
new file mode 100644
index 00000000..5a6fafd5
Binary files /dev/null and b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-h.png differ
diff --git a/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-i.png b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-i.png
new file mode 100644
index 00000000..0e58a398
Binary files /dev/null and b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-i.png differ
diff --git a/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-j.png b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-j.png
new file mode 100644
index 00000000..417836f4
Binary files /dev/null and b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-j.png differ
diff --git a/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-k.png b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-k.png
new file mode 100644
index 00000000..52ba37d7
Binary files /dev/null and b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-k.png differ
diff --git a/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-l.png b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-l.png
new file mode 100644
index 00000000..82e1dfae
Binary files /dev/null and b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-l.png differ
diff --git a/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-left.png b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-left.png
new file mode 100644
index 00000000..e59cd269
Binary files /dev/null and b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-left.png differ
diff --git a/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-m.png b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-m.png
new file mode 100644
index 00000000..7ae6cad3
Binary files /dev/null and b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-m.png differ
diff --git a/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-n.png b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-n.png
new file mode 100644
index 00000000..41f13363
Binary files /dev/null and b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-n.png differ
diff --git a/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-o.png b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-o.png
new file mode 100644
index 00000000..ec18de8c
Binary files /dev/null and b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-o.png differ
diff --git a/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-p.png b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-p.png
new file mode 100644
index 00000000..3cc24045
Binary files /dev/null and b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-p.png differ
diff --git a/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-q.png b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-q.png
new file mode 100644
index 00000000..ac8a10db
Binary files /dev/null and b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-q.png differ
diff --git a/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-r.png b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-r.png
new file mode 100644
index 00000000..57ee08b9
Binary files /dev/null and b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-r.png differ
diff --git a/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-right.png b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-right.png
new file mode 100644
index 00000000..dad97765
Binary files /dev/null and b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-right.png differ
diff --git a/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-s.png b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-s.png
new file mode 100644
index 00000000..2c16d711
Binary files /dev/null and b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-s.png differ
diff --git a/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-space.png b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-space.png
new file mode 100644
index 00000000..aa2b684c
Binary files /dev/null and b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-space.png differ
diff --git a/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-t.png b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-t.png
new file mode 100644
index 00000000..c122913f
Binary files /dev/null and b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-t.png differ
diff --git a/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-u.png b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-u.png
new file mode 100644
index 00000000..6dc351c1
Binary files /dev/null and b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-u.png differ
diff --git a/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-up.png b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-up.png
new file mode 100644
index 00000000..d94221b6
Binary files /dev/null and b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-up.png differ
diff --git a/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-v.png b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-v.png
new file mode 100644
index 00000000..ffe6d9eb
Binary files /dev/null and b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-v.png differ
diff --git a/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-w.png b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-w.png
new file mode 100644
index 00000000..c79a4537
Binary files /dev/null and b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-w.png differ
diff --git a/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-x.png b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-x.png
new file mode 100644
index 00000000..fdf7e5d6
Binary files /dev/null and b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-x.png differ
diff --git a/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-y.png b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-y.png
new file mode 100644
index 00000000..e8469b02
Binary files /dev/null and b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-y.png differ
diff --git a/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-z.png b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-z.png
new file mode 100644
index 00000000..575a424b
Binary files /dev/null and b/packages/create-narrat/template-games/empty/public/img/ui/button-prompts/keyboard/key-z.png differ
diff --git a/packages/create-narrat/template-games/empty/src/config/common.yaml b/packages/create-narrat/template-games/empty/src/config/common.yaml
index 2751716a..6f7b4956 100644
--- a/packages/create-narrat/template-games/empty/src/config/common.yaml
+++ b/packages/create-narrat/template-games/empty/src/config/common.yaml
@@ -15,6 +15,10 @@ dialogPanel:
historyLength: 200 # The number of dialogue lines to keep in the history
hideDuringTransition: true # Setting this to true will make the dialog panel hide during screen transitions
showAfterScriptEnd: false # Setting this to true will make the dialog panel stay on even if the narrat script ends
+input:
+ showPromptsOnGamepad: true
+ showPromptsOnKeyboard: true
+ showBottomLegend: true
graphics:
allowFullscreen: true
layout:
diff --git a/packages/narrat/examples/assets/img/ui/button-prompts/gamepad/dpad-down.png b/packages/narrat/examples/assets/img/ui/button-prompts/gamepad/dpad-down.png
new file mode 100644
index 00000000..1f40c869
Binary files /dev/null and b/packages/narrat/examples/assets/img/ui/button-prompts/gamepad/dpad-down.png differ
diff --git a/packages/narrat/examples/assets/img/ui/button-prompts/gamepad/dpad-left.png b/packages/narrat/examples/assets/img/ui/button-prompts/gamepad/dpad-left.png
new file mode 100644
index 00000000..2ac6de86
Binary files /dev/null and b/packages/narrat/examples/assets/img/ui/button-prompts/gamepad/dpad-left.png differ
diff --git a/packages/narrat/examples/assets/img/ui/button-prompts/gamepad/dpad-right.png b/packages/narrat/examples/assets/img/ui/button-prompts/gamepad/dpad-right.png
new file mode 100644
index 00000000..cbd8e5f2
Binary files /dev/null and b/packages/narrat/examples/assets/img/ui/button-prompts/gamepad/dpad-right.png differ
diff --git a/packages/narrat/examples/assets/img/ui/button-prompts/gamepad/dpad-up.png b/packages/narrat/examples/assets/img/ui/button-prompts/gamepad/dpad-up.png
new file mode 100644
index 00000000..3879cce8
Binary files /dev/null and b/packages/narrat/examples/assets/img/ui/button-prompts/gamepad/dpad-up.png differ
diff --git a/packages/narrat/examples/assets/img/ui/button-prompts/gamepad/dpad.png b/packages/narrat/examples/assets/img/ui/button-prompts/gamepad/dpad.png
new file mode 100644
index 00000000..88fad8f9
Binary files /dev/null and b/packages/narrat/examples/assets/img/ui/button-prompts/gamepad/dpad.png differ
diff --git a/packages/narrat/examples/assets/img/ui/button-prompts/gamepad/facebutton-down.png b/packages/narrat/examples/assets/img/ui/button-prompts/gamepad/facebutton-down.png
new file mode 100644
index 00000000..6aa572a6
Binary files /dev/null and b/packages/narrat/examples/assets/img/ui/button-prompts/gamepad/facebutton-down.png differ
diff --git a/packages/narrat/examples/assets/img/ui/button-prompts/gamepad/facebutton-left.png b/packages/narrat/examples/assets/img/ui/button-prompts/gamepad/facebutton-left.png
new file mode 100644
index 00000000..ea7c9c64
Binary files /dev/null and b/packages/narrat/examples/assets/img/ui/button-prompts/gamepad/facebutton-left.png differ
diff --git a/packages/narrat/examples/assets/img/ui/button-prompts/gamepad/facebutton-right.png b/packages/narrat/examples/assets/img/ui/button-prompts/gamepad/facebutton-right.png
new file mode 100644
index 00000000..2e0e5a5a
Binary files /dev/null and b/packages/narrat/examples/assets/img/ui/button-prompts/gamepad/facebutton-right.png differ
diff --git a/packages/narrat/examples/assets/img/ui/button-prompts/gamepad/facebutton-top.png b/packages/narrat/examples/assets/img/ui/button-prompts/gamepad/facebutton-top.png
new file mode 100644
index 00000000..6acc03b2
Binary files /dev/null and b/packages/narrat/examples/assets/img/ui/button-prompts/gamepad/facebutton-top.png differ
diff --git a/packages/narrat/examples/assets/img/ui/button-prompts/gamepad/shoulder-left.png b/packages/narrat/examples/assets/img/ui/button-prompts/gamepad/shoulder-left.png
new file mode 100644
index 00000000..17f6fb0a
Binary files /dev/null and b/packages/narrat/examples/assets/img/ui/button-prompts/gamepad/shoulder-left.png differ
diff --git a/packages/narrat/examples/assets/img/ui/button-prompts/gamepad/shoulder-right.png b/packages/narrat/examples/assets/img/ui/button-prompts/gamepad/shoulder-right.png
new file mode 100644
index 00000000..db42583f
Binary files /dev/null and b/packages/narrat/examples/assets/img/ui/button-prompts/gamepad/shoulder-right.png differ
diff --git a/packages/narrat/examples/assets/img/ui/button-prompts/gamepad/special-left.png b/packages/narrat/examples/assets/img/ui/button-prompts/gamepad/special-left.png
new file mode 100644
index 00000000..35d8f4e3
Binary files /dev/null and b/packages/narrat/examples/assets/img/ui/button-prompts/gamepad/special-left.png differ
diff --git a/packages/narrat/examples/assets/img/ui/button-prompts/gamepad/special-right.png b/packages/narrat/examples/assets/img/ui/button-prompts/gamepad/special-right.png
new file mode 100644
index 00000000..2fab006b
Binary files /dev/null and b/packages/narrat/examples/assets/img/ui/button-prompts/gamepad/special-right.png differ
diff --git a/packages/narrat/examples/assets/img/ui/button-prompts/gamepad/trigger-left.png b/packages/narrat/examples/assets/img/ui/button-prompts/gamepad/trigger-left.png
new file mode 100644
index 00000000..62434a4a
Binary files /dev/null and b/packages/narrat/examples/assets/img/ui/button-prompts/gamepad/trigger-left.png differ
diff --git a/packages/narrat/examples/assets/img/ui/button-prompts/gamepad/trigger-right.png b/packages/narrat/examples/assets/img/ui/button-prompts/gamepad/trigger-right.png
new file mode 100644
index 00000000..ca952555
Binary files /dev/null and b/packages/narrat/examples/assets/img/ui/button-prompts/gamepad/trigger-right.png differ
diff --git a/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-1.png b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-1.png
new file mode 100644
index 00000000..6e07ea75
Binary files /dev/null and b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-1.png differ
diff --git a/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-2.png b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-2.png
new file mode 100644
index 00000000..b82cfe17
Binary files /dev/null and b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-2.png differ
diff --git a/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-3.png b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-3.png
new file mode 100644
index 00000000..4bc72954
Binary files /dev/null and b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-3.png differ
diff --git a/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-4.png b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-4.png
new file mode 100644
index 00000000..98388efe
Binary files /dev/null and b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-4.png differ
diff --git a/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-5.png b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-5.png
new file mode 100644
index 00000000..77edaf82
Binary files /dev/null and b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-5.png differ
diff --git a/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-6.png b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-6.png
new file mode 100644
index 00000000..2e328a6b
Binary files /dev/null and b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-6.png differ
diff --git a/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-7.png b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-7.png
new file mode 100644
index 00000000..8cf28afc
Binary files /dev/null and b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-7.png differ
diff --git a/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-8.png b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-8.png
new file mode 100644
index 00000000..eb418fef
Binary files /dev/null and b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-8.png differ
diff --git a/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-9.png b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-9.png
new file mode 100644
index 00000000..a20ac2e3
Binary files /dev/null and b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-9.png differ
diff --git a/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-a.png b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-a.png
new file mode 100644
index 00000000..d845fa44
Binary files /dev/null and b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-a.png differ
diff --git a/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-arrows.png b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-arrows.png
new file mode 100644
index 00000000..6491f749
Binary files /dev/null and b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-arrows.png differ
diff --git a/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-b.png b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-b.png
new file mode 100644
index 00000000..2f42d8a4
Binary files /dev/null and b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-b.png differ
diff --git a/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-c.png b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-c.png
new file mode 100644
index 00000000..0a530ef7
Binary files /dev/null and b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-c.png differ
diff --git a/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-d.png b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-d.png
new file mode 100644
index 00000000..2436d62f
Binary files /dev/null and b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-d.png differ
diff --git a/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-down.png b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-down.png
new file mode 100644
index 00000000..71f2dd4d
Binary files /dev/null and b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-down.png differ
diff --git a/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-e.png b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-e.png
new file mode 100644
index 00000000..18d44a79
Binary files /dev/null and b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-e.png differ
diff --git a/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-enter.png b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-enter.png
new file mode 100644
index 00000000..4cbc61d3
Binary files /dev/null and b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-enter.png differ
diff --git a/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-escape.png b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-escape.png
new file mode 100644
index 00000000..968d5bfe
Binary files /dev/null and b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-escape.png differ
diff --git a/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-f.png b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-f.png
new file mode 100644
index 00000000..5ea2b7eb
Binary files /dev/null and b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-f.png differ
diff --git a/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-g.png b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-g.png
new file mode 100644
index 00000000..8e1eaac8
Binary files /dev/null and b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-g.png differ
diff --git a/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-h.png b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-h.png
new file mode 100644
index 00000000..5a6fafd5
Binary files /dev/null and b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-h.png differ
diff --git a/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-i.png b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-i.png
new file mode 100644
index 00000000..0e58a398
Binary files /dev/null and b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-i.png differ
diff --git a/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-j.png b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-j.png
new file mode 100644
index 00000000..417836f4
Binary files /dev/null and b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-j.png differ
diff --git a/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-k.png b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-k.png
new file mode 100644
index 00000000..52ba37d7
Binary files /dev/null and b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-k.png differ
diff --git a/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-l.png b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-l.png
new file mode 100644
index 00000000..82e1dfae
Binary files /dev/null and b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-l.png differ
diff --git a/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-left.png b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-left.png
new file mode 100644
index 00000000..e59cd269
Binary files /dev/null and b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-left.png differ
diff --git a/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-m.png b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-m.png
new file mode 100644
index 00000000..7ae6cad3
Binary files /dev/null and b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-m.png differ
diff --git a/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-n.png b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-n.png
new file mode 100644
index 00000000..41f13363
Binary files /dev/null and b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-n.png differ
diff --git a/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-o.png b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-o.png
new file mode 100644
index 00000000..ec18de8c
Binary files /dev/null and b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-o.png differ
diff --git a/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-p.png b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-p.png
new file mode 100644
index 00000000..3cc24045
Binary files /dev/null and b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-p.png differ
diff --git a/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-q.png b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-q.png
new file mode 100644
index 00000000..ac8a10db
Binary files /dev/null and b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-q.png differ
diff --git a/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-r.png b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-r.png
new file mode 100644
index 00000000..57ee08b9
Binary files /dev/null and b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-r.png differ
diff --git a/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-right.png b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-right.png
new file mode 100644
index 00000000..dad97765
Binary files /dev/null and b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-right.png differ
diff --git a/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-s.png b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-s.png
new file mode 100644
index 00000000..2c16d711
Binary files /dev/null and b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-s.png differ
diff --git a/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-space.png b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-space.png
new file mode 100644
index 00000000..aa2b684c
Binary files /dev/null and b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-space.png differ
diff --git a/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-t.png b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-t.png
new file mode 100644
index 00000000..c122913f
Binary files /dev/null and b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-t.png differ
diff --git a/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-u.png b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-u.png
new file mode 100644
index 00000000..6dc351c1
Binary files /dev/null and b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-u.png differ
diff --git a/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-up.png b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-up.png
new file mode 100644
index 00000000..d94221b6
Binary files /dev/null and b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-up.png differ
diff --git a/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-v.png b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-v.png
new file mode 100644
index 00000000..ffe6d9eb
Binary files /dev/null and b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-v.png differ
diff --git a/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-w.png b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-w.png
new file mode 100644
index 00000000..c79a4537
Binary files /dev/null and b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-w.png differ
diff --git a/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-x.png b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-x.png
new file mode 100644
index 00000000..fdf7e5d6
Binary files /dev/null and b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-x.png differ
diff --git a/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-y.png b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-y.png
new file mode 100644
index 00000000..e8469b02
Binary files /dev/null and b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-y.png differ
diff --git a/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-z.png b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-z.png
new file mode 100644
index 00000000..575a424b
Binary files /dev/null and b/packages/narrat/examples/assets/img/ui/button-prompts/keyboard/key-z.png differ
diff --git a/packages/narrat/src/app.vue b/packages/narrat/src/app.vue
index c3c0024e..1117b034 100644
--- a/packages/narrat/src/app.vue
+++ b/packages/narrat/src/app.vue
@@ -22,6 +22,7 @@