Skip to content

Documentation map ​

Follow this development path to create a project and produce a datapack. The sidebar groups pages by development task and language feature.

Complete a project ​

  1. Create a project: choose an ordinary project or a Java MNI project.
  2. Develop in IDEA: edit, organize saved code, synchronize dependencies, and run tasks.
  3. Configure the project: select the Minecraft version, directories, and compiler options.
  4. Manage dependencies: add libraries and use lock files.
  5. Build and inspect IR: find the datapack and trace compilation.

Find a language feature ​

TaskGuide
Declare variables, constants, and type aliasesVariables and types
Convert numbers and understand as and assignmentConversions and type views
Define functions, default arguments, and extension syntaxFunctions, Defaults and extensions
Use callbacks, implicit it, and trailing lambdasLambdas and function types
Transform, select, and accumulate valuesCollection callbacks
Use read-only lists, NBT arrays, and integer rangesContainers and ranges
Read and write game scores and NBTScoreRef and NBTRef
Select entities, change identity and position, and access passengersEntities and contexts
Distinguish absent data from zero and read command resultsReading results
Define structured data and constructorsData templates
Control property accessProperties and operators
Name a fixed set of choicesEnumerations
Share singleton state and type-related behaviorSingletons and companion objects
Use inheritance, abstract methods, and multiple parentsInheritance
Write functions for several typesGeneric functions and type parameters
Select object field typesGeneric data templates
Supply fixed numeric configurationCompilation parameters and known values
Specify generic parameter directionin and out
Generate code for multiple Minecraft versionsVersion conditions

Learn MNI ​

Start with a complete project. Read these pages in order:

  1. Java MNI introduction: create a project and bind a Java method to an MCFPP function.
  2. Parameters and results: receive ordinary and compilation parameters, then return MCFPP values.
  3. Generate commands: produce operations that execute in the game.
  4. Gradle and Java tests: configure dependencies and tests.

For libraries that combine expressions, loops, or user callbacks, continue with MNI macro introduction. It starts with call preparation, then covers parameters, callbacks, Minecraft operations, and template processors.

Read the API reference for annotation fields and entry signatures. Read Troubleshooting for tool configuration and synchronization problems.