Minecraft Bedrock Language Server Monorepo
December 11, 2025 ยท View on GitHub
Welcome to the Blockception Minecraft Bedrock Language Server monorepo! This repository contains all core packages, tools, and extensions for Minecraft Bedrock Edition development, including the language server, diagnostics, project helpers, and more.
Table of Contents
- About
- Monorepo Structure
- Getting Started
- Development Workflow
- Contributing
- Code Style & Linting
- Testing
- Documentation
- FAQ
- License
About
This monorepo is the home for all Blockception Minecraft Bedrock development tools, including:
- Language Server: Provides rich language features for Bedrock scripting and project files.
- Diagnostics: Advanced error checking and validation for Bedrock projects.
- Project Utilities: Helpers for managing, building, and validating Bedrock projects.
- VSCode Extensions: Editor integration for a seamless development experience.
Our goal is to provide a unified, modern, and extensible toolkit for Minecraft Bedrock creators.
Monorepo Structure
The repository is organized as a monorepo, containing multiple packages and tools:
/
โโโ packages/ # Core packages (commands, diagnoser, types, etc.)
โโโ ide/ # Editor integrations (VSCode, shared, base)
โโโ documentation/ # Guides, API docs, and tutorials
โโโ resources/ # Assets and shared resources
โโโ coverage/ # Test coverage reports
โโโ ... # Root configs, scripts, and meta files
Each package or tool is self-contained with its own package.json, source code, and tests.
Getting Started
Prerequisites
- Node.js (v18+ recommended)
- npm (v8+)
- Git
1. Clone the Repository
git clone https://github.com/Blockception/minecraft-bedrock-language-server.git
cd minecraft-bedrock-language-server
2. Install Dependencies
Install all dependencies for every package:
npm install
3. Build the Monorepo
Compile all TypeScript packages:
npm run build
4. (Optional) Run Tests
To verify everything is working:
npm test
Development Workflow
- All packages are managed together. Use root-level npm scripts to build, lint, and test all packages.
- Individual packages can be developed and tested in isolation (see their respective
README.mdfor details). - VSCode extension: Develop and debug from
ide/vscode.
Useful Commands
npm run buildโ Build all packagesnpm run lintโ Lint all codenpm testโ Run all testsnpm run cleanโ Clean build artifacts
Contributing
We welcome contributions! Please read our CONTRIBUTING.md and CODE_OF_CONDUCT.md before submitting issues or pull requests.
How to Contribute
- Fork the repo and create your branch from
main. - Make your changes, following the code style and commit guidelines.
- Add or update tests as needed.
- Run
npm run lintandnpm testto ensure code quality. - Submit a pull request with a clear description.
Code Style & Linting
- We use ESLint for code quality and style.
- Run
npm run lintbefore committing. - Follow the Style Guide for consistency.
Testing
- Each package contains its own tests (see
/testfolders). - Run all tests with
npm test. - Coverage reports are generated in
/coverage.
Documentation
Comprehensive documentation is available in the documentation/ folder. See the Documentation README for a complete guide.
Quick Links:
- Core Documentation: Commands, Debugging, JSON Validation, Style Guide
- Feature Guides: Completion, Implementation Guides
- Project Configuration: MCAttributes, MCDefinitions, MCIgnore
- Templates: Template System
FAQ
Q: Can I use a single package outside the monorepo?
A: Yes! Each package is published independently and can be used standalone.
Q: How do I add a new package?
A: Create a new folder in packages/, add a package.json, and follow the structure of existing packages.
Q: Who maintains this project?
A: Blockception and the open-source community. See CONTRIBUTING.md for details.
License
This project is licensed under the BSD 3-Clause License.
For any questions, suggestions, or support, please open an issue or join our community discussions!
Contributors
Special thanks to these awesome people for helping out these projects ๐
Minecraft Bedrock Language Server
Vscode plugin
Schemas
Made with contrib.rocks.