This folder contains documentation for project-level configuration files used by the Minecraft Bedrock Language Server.
The language server uses special configuration files to customize behavior for individual projects. These files allow you to:
- Configure diagnostics and validation settings
- Define custom entities, tags, and objectives
- Exclude files and folders from analysis
- Customize file templates
The .mcattributes file stores project settings and attributes.
Key features:
- Enable/disable diagnostics for different file types
- Configure Education Edition support
- Set template preferences
- Override default plugin settings
Example:
diagnose=true
diagnose.mcfunctions=true
education.enable=falseThe .mcdefinitions file specifies custom definitions that exist in your project but may not be easily detected by the language server.
Key features:
- Define custom tags
- Declare objectives
- Specify entity names
- List entity families
- Exclude unwanted definitions
Example:
# Tags used in the map
tag=initialized
tag=enemy
# Objectives
objective=coins
objective=healthThe .mcignore file uses glob patterns to exclude files and folders from the project, similar to .gitignore.
Key features:
- Exclude template files
- Ignore test data
- Skip auto-generated files
- Support for negation patterns
Example:
# Ignore template folders
Template/
**/templates/
# But include specific files
!Template/settings.jsonThe .mclint file provides a configurable linting system, inspired by ESLint, allowing you to enforce naming and formatting rules for your project.
Key features:
- Validate identity string format (
namespace:name) - Allow-list or deny-list namespaces
- Enforce naming patterns for animations, animation states, and bones
- Enforce naming conventions for MoLang variables
- Per-rule severity control (
error,warn,off)
Example:
{
"rules": {
"identity.format": "error",
"namespace.allow": ["error", ["myns", "shared"]],
"animation.naming": ["warn", "^animation\\.myns\\."],
"molang.variable.naming": ["warn", "^[a-z][a-z0-9_]*$"]
}
}These configuration files should be placed in the root of your Minecraft project:
my-project/
├── .mcattributes
├── .mcdefinitions
├── .mcignore
├── .mclint
├── behavior_packs/
└── resource_packs/
- The language server searches for these files when opening a project
- Settings are applied at the project level
- If no configuration files exist, default settings are used
- Changes to configuration files are detected automatically
- Start simple - Add configuration only when needed
- Use comments - Document why settings are configured a certain way
- Share configurations - Include these files in version control
- Test thoroughly - Verify that exclusions and definitions work as expected
- Commands - Commands for creating project files
- Templates - Template configuration and variables
- Style Guide - General coding and documentation style
If configuration changes aren't taking effect:
- Check for syntax errors in your configuration files
- Reload the VSCode window
- Verify file names are exactly
.mcattributes,.mcdefinitions,.mcignore, or.mclint - Check the language server output for error messages
For more help, see the Debugging guide or open an issue on GitHub.