# QuestScript Guide — Minecraft 1.20.1

> Guide pages in the website manifest's owned order.

## Pages

- [QuestScript Guide](/minecraft/1.20.1/guide/index.md): QuestScript adds server-side JavaScript and Python scripting to Minecraft. Scripts receive controlled Host Objects and can react to game events, schedule work, and interact with the world through public facades.
- [Installation](/minecraft/1.20.1/guide/installation.md): QuestScript 0.1.0 alpha targets Minecraft 1.20.1 with Fabric. It requires:
- [Install a QuestPack](/minecraft/1.20.1/guide/questpack-deployment.md): A QuestPack is a normal Minecraft data pack managed by QuestScript as one authoring and deployment unit. It contains one or more Script Bundles and may also contain related vanilla or mod-owned server data such as fun...
- [Your first Script](/minecraft/1.20.1/guide/first-script.md): Create a Script Bundle at config/questscript/scripts/welcome/. Your selected language tab is remembered and applied to other synchronized examples.
- [Editor setup](/minecraft/1.20.1/guide/editor-setup.md): QuestScript rewrites three helper files in config/questscript/ when it starts:
- [Incremental world mutation](/minecraft/1.20.1/guide/scheduled-pyramid.md): This example spreads pyramid construction across game ticks. The generator yields after each block, and system.runJob advances it until completion.
- [Script lifecycle](/minecraft/1.20.1/guide/script-lifecycle.md): QuestScript loads a Script Bundle directory containing script.json below config/questscript/scripts/. Every persistent filesystem Script has an explicit manifest. It supports JavaScript ESM entrypoints .js/.mjs and Py...
- [Events and scheduling](/minecraft/1.20.1/guide/events.md): JavaScript exposes events through world.beforeEvents, world.afterEvents, system.beforeEvents, and system.afterEvents; Python uses world.beforeevents, world.afterevents, system.beforeevents, and system.afterevents. Sub...
- [Host Objects and public facades](/minecraft/1.20.1/guide/host-objects.md): QuestScript provides scripts with global Host Objects. The primary objects are:
- [Security](/minecraft/1.20.1/guide/security.md): Normal GraalJS and GraalPython Contexts deny general Host/Polyglot access, Java-class lookup and loading, reflection, native access, processes, threads, environment access, sockets, and unrestricted IO. Scripts receiv...
- [Trace Viewer](/minecraft/1.20.1/guide/threading-trace-viewer.md): The Trace Viewer opens finalized .qs-trace.ndjson.gz dumps and renders them as a synchronized timeline. No Minecraft server is needed for viewing. The file is decompressed and parsed locally in a browser worker; the v...
- [Operator commands](/minecraft/1.20.1/guide/commands.md): Every command except /qs trace requires operator level 2. Trace commands require level 4 because they create large diagnostic files.
