UMI References
Reference landing page for UMI (Unified Modding Interface) for content pack creation, with API in four frontend languages. Choose what you want to build today!
Language pre-picker (optional)
Here is a language picker that you can toggle to set your preferred language. You can always change it later in actual API documentation.
- JSON
- JavaScript
- WebAssembly
- Lua
JSON is the simplest way to create content packs but you will face some limitations.
JavaScript is the original thought of content pack system.
WebAssembly is the way to create large and complex content packs or base libraries with high performance.
Lua is mostly an industry-compatible way to create content packs but is generally not recommended.
Game Content
Block
Register the fundamental unit of the world.
Entity
Register the fundamental unit of the world which can move.
Structure
Register a collection of blocks, entities and other structures to manage them as a whole.
Locality
Manage the invisible data of specific areas in the world, such as biomes.
Global State
Manage the global data of the world.
World Generation
Create world generation algorithms, fill blocks, biomes and place structures.
Player Interaction
Text
Manage text and localize your content pack.
Texture
Register texture and use them in a dynamic way.
Particle
Register 2D sprites or 3D models and spawn them as visual effects.
Sound
Integrate audio effects and music to the game.
Shader
Use a custom language to write shaders and change the way the world looks like.
Input
Register custom input events to trigger your content pack features.
GUI
Compose your own GUI with widgets and layouts.
Command
Add custom behaviors to an intrinsic GUI called `:chat`.
Utility
Component
Register components so you can actually store anything in the world.
Tag
Register and use tags (not-stored components) to categorize and maintain compatibility between content packs.
Template
Master the power of templates to create content quickly and robustly. No more copy-paste!
Debug
Gadgets for debugging your content pack.
Permission-based Features
The features listed here require the user to explicitly grant permission to the content pack.
Request
A separated and customizable network channel for your content pack to surf the internet.
File I/O
A way to read and write files on the user's computer. I hope they are all genuine files...
User Location
I don't know why you would need this, but it's here.
Multimedia
Access the camera and/or microphone for proximity chat or identity theft. Use it wisely.
Higher (or Lower?) Level APIs
The features listed here require the user to explicitly grant permission to the content pack, and their APIs are only exposed to the WebAssembly frontend for performance and security reasons.
Proxy
Intercept and modify network packets to achieve features that are otherwise impossible.
Low-level Rendering
Bring your own rendering engine to the game and rewrite the way players see the world.
Paid Creator Features
Account
Validate if the user has access to your paid content pack.