# QuestScript Guide

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.

## Get started

1. [Install QuestScript](/minecraft/preview/guide/installation.md) on a Fabric server.
2. [Create your first Script Bundle](/minecraft/preview/guide/first-script.md) in
   `config/questscript/scripts/`.
3. Load it with a QuestScript operator command.

Before loading third-party code, read the [security model](/minecraft/preview/guide/security.md). The
proxy-only sandbox closes direct JVM and server-process access, while gameplay
operations enforce the current Script Run's operator-granted capabilities and
typed scopes. Command execution remains fail-closed for now.

## Learn the runtime

- [Editor setup](/minecraft/preview/guide/editor-setup.md) configures JavaScript and Python completion.
- [Step-by-step world changes](/minecraft/preview/guide/scheduled-pyramid.md) demonstrates scheduled
  work across multiple ticks.
- [Script lifecycle](/minecraft/preview/guide/script-lifecycle.md) explains loading, unloading,
  reload, cleanup, imports, and exports.
- [Events and scheduling](/minecraft/preview/guide/events.md) covers Before Events, After Events,
  Script Events, queues, and server-thread budgets.
- [Host Objects and public facades](/minecraft/preview/guide/host-objects.md) describes the boundary
  between Scripts and Minecraft.

Server operators should also read [operator commands](/minecraft/preview/guide/commands.md),
[QuestPack deployment](/minecraft/preview/guide/questpack-deployment.md), and the
[Trace Viewer guide](/minecraft/preview/guide/threading-trace-viewer.md). The generated
[API Reference](/minecraft/preview/api/index.md) documents the JavaScript and Python contracts.

> **Alpha status.** QuestScript is alpha software. Public APIs may change
> without backward compatibility until the first public release.
