# mojang/minecraft-scripting-libraries architecture

> Architecture diagram of the GitHub repository mojang/minecraft-scripting-libraries, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-11). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/mojang/minecraft-scripting-libraries
- Repository: https://github.com/mojang/minecraft-scripting-libraries

## Overview

This is a JavaScript monorepo of Minecraft scripting helper libraries and developer tools. The user-facing library workflow is content authors using reusable gameplay and math helpers in Minecraft scripting projects. A separate substantial tool, the API documentation generator, models Minecraft releases and modules and applies filters and markup generators; the excerpts show its data relationships but not its complete CLI or output workflow. The graph omits build and test machinery. Relationships are limited to calls or references visible in excerpts or the source index; unsampled subsystems are represented only where the tree supports a path.

Main entry points: [`tools/api-docs-generator/src/MinecraftRelease.ts`](https://github.com/mojang/minecraft-scripting-libraries/blob/main/tools/api-docs-generator/src/MinecraftRelease.ts) (Release Model), [`libraries/math/src/vector3/coreHelpers.ts`](https://github.com/mojang/minecraft-scripting-libraries/blob/main/libraries/math/src/vector3/coreHelpers.ts) (Vector Helpers), [`tools/api-docs-generator/src/Context.ts`](https://github.com/mojang/minecraft-scripting-libraries/blob/main/tools/api-docs-generator/src/Context.ts) (Generator Context), [`tools/api-docs-generator/src/FileLoader.ts`](https://github.com/mojang/minecraft-scripting-libraries/blob/main/tools/api-docs-generator/src/FileLoader.ts) (File Loader)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_libs["Scripting Libraries"]
  node_gameplay["Gameplay Utilities<br/>[eventPromise.ts]"]
  node_mathvec["Vector Helpers<br/>[coreHelpers.ts]"]
  node_vectorwrap["Vector Wrappers<br/>[vectorWrapper.ts]"]
  node_aabb["AABB Helpers<br/>[coreHelpers.ts]"]
  node_clamp["Clamp Utility<br/>[clamp.ts]"]
end

subgraph group_docs["API Documentation Generator"]
  node_context["Generator Context<br/>[Context.ts]"]
  node_fileloader["File Loader<br/>[FileLoader.ts]"]
  node_logger["Logger<br/>[Logger.ts]"]
end

subgraph group_models["Release Data Models"]
  node_release["Release Model"]
  node_scriptmodel["Script Module"]
  node_blockmodel["Block Module"]
  node_commandmodel["Command Module"]
  node_enginemodel["Engine Data Module"]
  node_afterevents["Event Ordering"]
  node_othermodules["Other Data Modules"]
  node_protocol["Protocol Changelog"]
end

subgraph group_markup["Documentation Processing"]
  node_filters["Common Filters<br/>[CommonFilters.ts]"]
  node_commandfilters["Command Filters<br/>[CommandFilters.ts]"]
  node_filterindex["Filter Registry<br/>[Filters.ts]"]
  node_markupgenerators["Markup Generators"]
  node_plugins["Generator Plugins"]
end

node_author(("Content Author"))
node_minecraft(("Minecraft Scripting"))

node_author -.->|"uses helpers"| node_gameplay
node_author -.->|"uses helpers"| node_mathvec
node_mathvec -->|"uses"| node_clamp
node_vectorwrap -->|"delegates to"| node_mathvec
node_aabb -->|"uses"| node_mathvec
node_minecraft -.->|"accepts vectors"| node_vectorwrap
node_fileloader -->|"logs with"| node_logger
node_fileloader -.->|"configured by"| node_context
node_release -->|"contains"| node_scriptmodel
node_release -->|"contains"| node_blockmodel
node_release -->|"contains"| node_commandmodel
node_release -->|"contains"| node_enginemodel
node_release -->|"contains data"| node_othermodules
node_enginemodel -->|"aliases"| node_afterevents
node_filters -->|"reads modules"| node_release
node_filters -->|"uses"| node_commandfilters
node_commandfilters -->|"reads modules"| node_release
node_filterindex -->|"imports"| node_fileloader
node_filterindex -->|"imports"| node_release
node_protocol -->|"reads release"| node_release
node_protocol -->|"uses schemas"| node_othermodules
node_context -->|"loads plugins"| node_plugins
node_context -->|"initializes generators"| node_markupgenerators

click node_gameplay "https://github.com/mojang/minecraft-scripting-libraries/blob/main/libraries/gameplay-utilities/src/events/eventPromise.ts"
click node_mathvec "https://github.com/mojang/minecraft-scripting-libraries/blob/main/libraries/math/src/vector3/coreHelpers.ts"
click node_vectorwrap "https://github.com/mojang/minecraft-scripting-libraries/blob/main/libraries/math/src/vector3/vectorWrapper.ts"
click node_aabb "https://github.com/mojang/minecraft-scripting-libraries/blob/main/libraries/math/src/aabb/coreHelpers.ts"
click node_clamp "https://github.com/mojang/minecraft-scripting-libraries/blob/main/libraries/math/src/general/clamp.ts"
click node_context "https://github.com/mojang/minecraft-scripting-libraries/blob/main/tools/api-docs-generator/src/Context.ts"
click node_fileloader "https://github.com/mojang/minecraft-scripting-libraries/blob/main/tools/api-docs-generator/src/FileLoader.ts"
click node_logger "https://github.com/mojang/minecraft-scripting-libraries/blob/main/tools/api-docs-generator/src/Logger.ts"
click node_release "https://github.com/mojang/minecraft-scripting-libraries/blob/main/tools/api-docs-generator/src/MinecraftRelease.ts"
click node_scriptmodel "https://github.com/mojang/minecraft-scripting-libraries/blob/main/tools/api-docs-generator/src/modules/MinecraftScriptModule.ts"
click node_blockmodel "https://github.com/mojang/minecraft-scripting-libraries/blob/main/tools/api-docs-generator/src/modules/MinecraftBlockModule.ts"
click node_commandmodel "https://github.com/mojang/minecraft-scripting-libraries/blob/main/tools/api-docs-generator/src/modules/MinecraftCommandModule.ts"
click node_enginemodel "https://github.com/mojang/minecraft-scripting-libraries/blob/main/tools/api-docs-generator/src/modules/MinecraftEngineDataModules.ts"
click node_afterevents "https://github.com/mojang/minecraft-scripting-libraries/blob/main/tools/api-docs-generator/src/modules/MinecraftAfterEventsOrderModule.ts"
click node_othermodules "https://github.com/mojang/minecraft-scripting-libraries/tree/main/tools/api-docs-generator/src/modules"
click node_protocol "https://github.com/mojang/minecraft-scripting-libraries/blob/main/tools/api-docs-generator/src/ProtocolChangelogGenerator.ts"
click node_filters "https://github.com/mojang/minecraft-scripting-libraries/blob/main/tools/api-docs-generator/src/filters/CommonFilters.ts"
click node_commandfilters "https://github.com/mojang/minecraft-scripting-libraries/blob/main/tools/api-docs-generator/src/filters/CommandFilters.ts"
click node_filterindex "https://github.com/mojang/minecraft-scripting-libraries/blob/main/tools/api-docs-generator/src/filters/Filters.ts"
click node_markupgenerators "https://github.com/mojang/minecraft-scripting-libraries/tree/main/tools/markup-generators-plugin/src/generators"
click node_plugins "https://github.com/mojang/minecraft-scripting-libraries/tree/main/tools/api-docs-generator/src/plugins"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_gameplay,node_mathvec,node_vectorwrap,node_aabb,node_clamp toneBlue
class node_context,node_fileloader,node_logger toneAmber
class node_release,node_scriptmodel,node_blockmodel,node_commandmodel,node_enginemodel,node_afterevents,node_othermodules,node_protocol toneMint
class node_filters,node_commandfilters,node_filterindex,node_markupgenerators,node_plugins toneRose
class node_author,node_minecraft toneIndigo
```

## Components

### Scripting Libraries

- [Gameplay Utilities](https://github.com/mojang/minecraft-scripting-libraries/blob/main/libraries/gameplay-utilities/src/events/eventPromise.ts): `libraries/gameplay-utilities/src/events/eventPromise.ts`
- [Vector Helpers](https://github.com/mojang/minecraft-scripting-libraries/blob/main/libraries/math/src/vector3/coreHelpers.ts): `libraries/math/src/vector3/coreHelpers.ts`
- [Vector Wrappers](https://github.com/mojang/minecraft-scripting-libraries/blob/main/libraries/math/src/vector3/vectorWrapper.ts): `libraries/math/src/vector3/vectorWrapper.ts`
- [AABB Helpers](https://github.com/mojang/minecraft-scripting-libraries/blob/main/libraries/math/src/aabb/coreHelpers.ts): `libraries/math/src/aabb/coreHelpers.ts`
- [Clamp Utility](https://github.com/mojang/minecraft-scripting-libraries/blob/main/libraries/math/src/general/clamp.ts): `libraries/math/src/general/clamp.ts`

### API Documentation Generator

- [Generator Context](https://github.com/mojang/minecraft-scripting-libraries/blob/main/tools/api-docs-generator/src/Context.ts): `tools/api-docs-generator/src/Context.ts`
- [File Loader](https://github.com/mojang/minecraft-scripting-libraries/blob/main/tools/api-docs-generator/src/FileLoader.ts): `tools/api-docs-generator/src/FileLoader.ts`
- [Logger](https://github.com/mojang/minecraft-scripting-libraries/blob/main/tools/api-docs-generator/src/Logger.ts): `tools/api-docs-generator/src/Logger.ts`

### Release Data Models

- [Release Model](https://github.com/mojang/minecraft-scripting-libraries/blob/main/tools/api-docs-generator/src/MinecraftRelease.ts): `tools/api-docs-generator/src/MinecraftRelease.ts`
- [Script Module](https://github.com/mojang/minecraft-scripting-libraries/blob/main/tools/api-docs-generator/src/modules/MinecraftScriptModule.ts): `tools/api-docs-generator/src/modules/MinecraftScriptModule.ts`
- [Block Module](https://github.com/mojang/minecraft-scripting-libraries/blob/main/tools/api-docs-generator/src/modules/MinecraftBlockModule.ts): `tools/api-docs-generator/src/modules/MinecraftBlockModule.ts`
- [Command Module](https://github.com/mojang/minecraft-scripting-libraries/blob/main/tools/api-docs-generator/src/modules/MinecraftCommandModule.ts): `tools/api-docs-generator/src/modules/MinecraftCommandModule.ts`
- [Engine Data Module](https://github.com/mojang/minecraft-scripting-libraries/blob/main/tools/api-docs-generator/src/modules/MinecraftEngineDataModules.ts): `tools/api-docs-generator/src/modules/MinecraftEngineDataModules.ts`
- [Event Ordering](https://github.com/mojang/minecraft-scripting-libraries/blob/main/tools/api-docs-generator/src/modules/MinecraftAfterEventsOrderModule.ts): `tools/api-docs-generator/src/modules/MinecraftAfterEventsOrderModule.ts`
- [Other Data Modules](https://github.com/mojang/minecraft-scripting-libraries/tree/main/tools/api-docs-generator/src/modules): `tools/api-docs-generator/src/modules`
- [Protocol Changelog](https://github.com/mojang/minecraft-scripting-libraries/blob/main/tools/api-docs-generator/src/ProtocolChangelogGenerator.ts): `tools/api-docs-generator/src/ProtocolChangelogGenerator.ts`

### Documentation Processing

- [Common Filters](https://github.com/mojang/minecraft-scripting-libraries/blob/main/tools/api-docs-generator/src/filters/CommonFilters.ts): `tools/api-docs-generator/src/filters/CommonFilters.ts`
- [Command Filters](https://github.com/mojang/minecraft-scripting-libraries/blob/main/tools/api-docs-generator/src/filters/CommandFilters.ts): `tools/api-docs-generator/src/filters/CommandFilters.ts`
- [Filter Registry](https://github.com/mojang/minecraft-scripting-libraries/blob/main/tools/api-docs-generator/src/filters/Filters.ts): `tools/api-docs-generator/src/filters/Filters.ts`
- [Markup Generators](https://github.com/mojang/minecraft-scripting-libraries/tree/main/tools/markup-generators-plugin/src/generators): `tools/markup-generators-plugin/src/generators`
- [Generator Plugins](https://github.com/mojang/minecraft-scripting-libraries/tree/main/tools/api-docs-generator/src/plugins): `tools/api-docs-generator/src/plugins`

### Other components

- **Content Author**
- **Minecraft Scripting**

## Connections

- Content Author → Gameplay Utilities: uses helpers (evidence: `README.md`)
- Content Author → Vector Helpers: uses helpers (evidence: `README.md`)
- Vector Helpers → Clamp Utility: uses (evidence: `libraries/math/src/vector3/coreHelpers.ts`)
- Vector Wrappers → Vector Helpers: delegates to (evidence: `libraries/math/src/vector3/vectorWrapper.ts`)
- AABB Helpers → Vector Helpers: uses (evidence: `libraries/math/src/aabb/coreHelpers.ts`)
- Minecraft Scripting → Vector Wrappers: accepts vectors (evidence: `libraries/math/src/vector3/vectorWrapper.ts`)
- File Loader → Logger: logs with (evidence: `tools/api-docs-generator/src/FileLoader.ts`)
- File Loader → Generator Context: configured by (evidence: `tools/api-docs-generator/src/Context.ts`)
- Release Model → Script Module: contains (evidence: `tools/api-docs-generator/src/MinecraftRelease.ts`)
- Release Model → Block Module: contains (evidence: `tools/api-docs-generator/src/MinecraftRelease.ts`)
- Release Model → Command Module: contains (evidence: `tools/api-docs-generator/src/MinecraftRelease.ts`)
- Release Model → Engine Data Module: contains (evidence: `tools/api-docs-generator/src/MinecraftRelease.ts`)
- Release Model → Other Data Modules: contains data (evidence: `tools/api-docs-generator/src/MinecraftRelease.ts`)
- Engine Data Module → Event Ordering: aliases (evidence: `tools/api-docs-generator/src/modules/MinecraftEngineDataModules.ts`)
- Common Filters → Release Model: reads modules (evidence: `tools/api-docs-generator/src/filters/CommonFilters.ts`)
- Common Filters → Command Filters: uses (evidence: `tools/api-docs-generator/src/filters/CommonFilters.ts`)
- Command Filters → Release Model: reads modules (evidence: `tools/api-docs-generator/src/filters/CommandFilters.ts`)
- Filter Registry → File Loader: imports (evidence: `tools/api-docs-generator/src/filters/Filters.ts`)
- Filter Registry → Release Model: imports (evidence: `tools/api-docs-generator/src/filters/Filters.ts`)
- Protocol Changelog → Release Model: reads release (evidence: `tools/api-docs-generator/src/ProtocolChangelogGenerator.ts`)
- Protocol Changelog → Other Data Modules: uses schemas (evidence: `tools/api-docs-generator/src/ProtocolChangelogGenerator.ts`)
- Generator Context → Generator Plugins: loads plugins (evidence: `tools/api-docs-generator/src/Context.ts`)
- Generator Context → Markup Generators: initializes generators (evidence: `tools/api-docs-generator/src/Context.ts`)
