Compatibility
Minecraft: Java Edition
Platforms
Supported environments
Tags
Creators
Details
⨠VRRW ANIMATION ā OBJ ANIM šØ In-Game OBJ Animation & Modeling Framework Import OBJ models, animate them with keyframes, replace entities and blocks, edit models in-game, add behaviors and sounds, and build animated 3D content directly inside Minecraft. Import. Animate. Edit. Replace. Build.
šæ BUILT TO COMPLEMENT VRRW OVERWORLD
OBJ Anim can be used as its own modeling and animation framework, but it is also the required companion for VRRW Overworld. Overworld uses the OBJ Anim tool/model pipeline, and both mods are designed to work together across models, Smooth Terrain / Surface Net, rendering and shading.
| š VRRW.online ā Project hub & ecosystem |
š£ Twitch ā Livestreams & community |
š Kick ā Livestreams & community |
ā¶ļø YouTube ā Videos & showcases |
||||||||
| š„ļø Kinetic Hosting ā Server hosting ⢠Code VRRW |
š Offers ā Long-term quizzes & programs |
ā Reddit Q&A ā Questions & discussion |
š Patreon ā Support development |
## ā¶ļø WATCH OBJ ANIM IN ACTION ### š¬ See OBJ Anim, VRRW Overworld and the wider VRRW visual systems in action before diving into the details.
š“ VRRW LIVE EVENTS & COMMUNITY ACTIONS š
During selected VRRW Live Events, VRRW Texture Pack gifts may be available completely free.
š£ WATCH VRREALISTICWORLDS LIVE ON TWITCH ā
š WATCH VRREALISTICWORLDS LIVE ON KICK ā
š“ OPEN VRRW COMMUNITY LIVE ACTIONS ā
Special community actions and live activities take place through the VRRW Community Live Actions page.
š LIVE ACTIONS & GIFTS: Check the Live Actions page for current community activities. Livestreams themselves can be watched on Twitch or Kick.
š£ TWITCH COMMUNITY
TWITCH COMMUNITY, CHANNEL RECOMMENDATIONS & LIVE WIDGET ā
Twitch is shown as the default livestream option inside the VRRW Minecraft mod, with a toggle bar that lets you choose between Twitch and Kick.
- šŗ Twitch community information
- ā Twitch channel recommendations
- š Integrated livestream schedule widget
- š® Minecraft streams, showcases and live development
- š¬ Q&A, community feedback and votes
š Livestream dates and times are displayed directly inside the Twitch community page through its widget.
š KICK COMMUNITY
KICK COMMUNITY, CHANNEL RECOMMENDATIONS & LIVE WIDGET ā
Kick remains available as an additional livestream and community platform.
- šŗ Kick community information
- ā Kick channel recommendations
- š Integrated livestream schedule widget
- š® Live development and showcases
- š¬ Q&A, community feedback and votes
š Livestream dates and times are displayed directly inside the Kick community page through its widget.
š³ļø COMMUNITY ENGAGEMENT ā HELP SHAPE VRRW
VRRW is not only something you watch ā the community can actively help shape what comes next.
During livestreams and community activities, viewers may be invited to take part in:
- š³ļø Live polls ā vote on selected ideas, priorities or community questions during streams.
- š” Feature suggestion rounds ā share ideas for AI Reborn, VRRW projects and future improvements.
- ā” Blitz Reactions ā quick community reaction rounds for new concepts, features, changes or live decisions.
- š¬ Direct feedback ā tell us what works, what should change and what you want to see next.
- š® Stream participation ā selected streams can include community questions, votes and interactive decisions.
- š VRRW.online participation ā use the available voting, suggestion and community tools outside the livestreams as well.
š§ COMMUNITY-DRIVEN DEVELOPMENT: Community feedback can influence ideas, priorities, features and future VRRW activities. Some decisions may be opened directly to community voting or rapid feedback rounds.
š£ JOIN THE TWITCH COMMUNITY ā
š JOIN THE KICK COMMUNITY ā
š“ TAKE PART IN VRRW LIVE ACTIONS ā
## š REALISTIC SURFACE NET & NEW COLLISION SYSTEM OBJAnim now also includes the Realistic Surface Net / Smooth Terrain system. The goal is to move beyond purely cubic-looking terrain and create smoother, more natural surfaces together with a new collision approach. > ā ļø **Version 2.0.0+ change:** > The older in-game `M` mode toggle is no longer available in the same way because the new collision system is integrated into the newer terrain implementation. --- š„ WHAT OBJANIM CAN DO š Load Wavefront OBJ + MTL models from the OBJAnim import folders š§ Replace or render entities with custom 3D OBJ models š§± Use OBJ models for blocks and animated world objects š”ļø Use custom OBJ models for items šļø Create animations with an in-game keyframe timeline š§ Configure behaviors such as sleeping, eating, drinking, wandering, aggression, emotions and following š ļø Edit models with the Model Workbench šØ Edit UVs, meshes and textures in-game š Assign custom `.ogg` sounds to animations and activities š¼ļø Generate model thumbnails and configure texture overrides š¾ Export animation snapshots as JSON š Reload and apply imported models with commands š Use the integrated Realistic Surface Net / Smooth Terrain system š§© Integrate OBJAnim into other mods through its model APIs ---
š WANT THE FULL VRRW MULTIPLAYER EXPERIENCE? š¤ NATIONS & VILLAGERS ā AI REBORN ā OBJAnim is part of the wider VRRW project ecosystem. Nations & Villagers ā AI Reborn adds the connected civilization and multiplayer systems used across many VRRW experiences, including AI citizens, nations, economy, diplomacy, public-server gameplay and supported community events. ā¬ļø DOWNLOAD AI REBORN ON MODRINTH ā
š COMPLETE OBJANIM GUIDE Everything below is organized into expandable sections so you can open only the part you need.
š Core Features ā What Does This Mod Do?
OBJ Entity Animator OBJ Entity Animator provides an in-game animation, modeling and behavior framework for OBJ content. Core features include: Loading Wavefront OBJ + MTL files from `config/objanim/import/...` Replacing entities, blocks and items with custom 3D models In-game timeline-based keyframe animation Per-part position, rotation and scale editing Activity-based animations such as idle, walk, attack, sleep, eat and drink Behavior configuration Animated OBJ world blocks In-game model import and export UV editing Texture painting Mesh editing Custom sound support Model thumbnail generation Animation JSON export APIs for integration with other mods The workflow is designed so that much of the model setup, animation and editing can happen directly inside Minecraft.š Realistic Surface Net ā Smooth Terrain & Collision
Smooth Terrain Integration OBJAnim includes the Realistic Surface Net / Smooth Terrain system. This system is intended to create smoother and more natural terrain surfaces instead of relying only on the traditional cubic appearance. Version 2.0.0+ Behavior Older versions exposed terrain modes through the `M` hotkey. With the newer 2.0.0+ collision system, the old mode toggle is no longer available in the same way. > **Current concept:** smoother terrain rendering together with a newer collision implementation. The terrain system and OBJ animation framework can be seen together in the main showcase video at the top of this page.š Installation & Import Folder Structure
Installation Install the supported NeoForge version for Minecraft 1.21.x. Place the OBJAnim `.jar` file into your Minecraft `mods/` folder. Launch the game once. OBJAnim creates its configuration and import folders. Add your OBJ/MTL files to the appropriate import category. Reload the models in-game when needed. Import Folders The mod uses folders under: `config/objanim/` Typical structure: `import/entity` ā models for entities and mobs `import/block` ā block models `import/item` ā item and handheld models `import/custommodels` ā miscellaneous models, props, tools and Steve-style rigs `export` ā exported OBJ files and textures `customsound` ā custom `.ogg` files `UIelements` ā generated GUI/model thumbnails Additional JSON configuration files can control behavior, video/render settings, debugging and unified configuration. OBJAnim scans the import directories and builds an internal model index.š§ Entity Animator & Behavior System
Open the Entity Editor Default keybind: `O` Inside the editor you can: Select an entity Load a model manually Create activities Build animations on a timeline Add keyframes to individual parts Change rotation Change position Change scale Preview animations Save animation data Assign custom sounds Example Activities Idle Walk Attack Sleep Eat Drink Custom activities Behavior Configuration The BehaviorConfig system can configure behaviors such as: Nightly sleeping Lying/sleep poses Eating Drinking Aggression Attack behavior Idle emotions Following Wandering Vanilla behavior preservation can be configured with: `preserveVanillaBehaviors = true` This allows OBJAnim behavior systems to coexist with supported vanilla AI behavior instead of simply removing it.š§± Animated OBJ Block
OBJAnim includes an Animated OBJ Block for placing animated 3D models directly into the world. Registered objects include: Block: `animated_obj_block` BlockEntity: `animated_obj_block` Item: `animated_obj_block` Possible Uses Decorations Animated signs Displays Machines Moving parts Animated statues Props Custom world objects Get the Block ```mcfunction /give @p objanim:animated_obj_block ``` Basic Workflow Place the block. Open the block editor. Select an OBJ model. Select/configure animations. Configure orientation. Configure scale and other settings. Tune performance if required. Video/render-related options can be stored in: `config/objanim/video/objanim_video.json`š ļø Model Workbench ā In-Game 3D Editing
OBJAnim includes a Model Workbench accessed through the `model_editor` item. Get the Editor ```mcfunction /give @p objanim:model_editor ``` The workbench can provide tools for: OBJ import OBJ export Mesh editing Vertex editing Transform gizmos UV editing Texture painting Creating PNG textures Editing model geometry Exporting finished results Example Steve models are included under: `assets/objanim/models/steve` Typical Workflow Open the Model Workbench. Import a model from the OBJAnim import folders. Edit geometry or transforms. Adjust UV coordinates. Paint or create textures. Export the result to the export folder.š¼ļø Thumbnails, Textures & Custom Sounds
GUI Thumbnails OBJAnim can generate model thumbnails for use inside its user interfaces. Thumbnails are stored in: `UIelements/` Possible options include: Automatically generated model previews Optional inventory icon overrides Per-category settings for items, blocks and entities Texture Overrides Imported models can use their own textures and category-specific texture configuration. Custom Sounds Place `.ogg` sound files inside: `config/objanim/customsound` Inside the animator you can: Open the custom sound selection screen. Preview available sounds. Select a sound. Assign it to an animation or activity. This allows animated creatures, machines and props to have their own synchronized audio.š Model Replacement & Commands
OBJAnim can map imported models to supported entities, blocks and items. Reload Imported Models ```mcfunction /objanim reload ``` Reloads imported model content. Apply a Specific Model ```mcfunction /objanim apply <modelName> ``` Applies a selected model to matching targets. Apply Imported Models in Bulk ```mcfunction /objanim apply-all ``` Applies all supported imported model mappings. These commands are useful while developing models because you can update imported files and reload them without rebuilding the entire mod.š® Player Manual ā Quick Workflows
Add Your Own Models Place model files into the correct category: Entities ā `import/entity` Blocks ā `import/block` Items ā `import/item` Miscellaneous models ā `import/custommodels` Then reload: ```mcfunction /objanim reload ``` Animate an Entity Press `O`. Select an entity or model. Create an activity. Open the part animator. Select model parts. Add keyframes. Adjust rotation, position and scale. Save. Preview the animation. Configure behavior if needed. Assign sounds if desired. Use the Animated OBJ Block ```mcfunction /give @p objanim:animated_obj_block ``` Then: Place the block. Open its editor. Select an OBJ model. Select animations. Adjust orientation and scale. Save the configuration. Use the Model Workbench ```mcfunction /give @p objanim:model_editor ``` Use the editor to import, modify and export OBJ content, textures, UVs and meshes. Add Custom Sounds Add `.ogg` files to `customsound/`. Open the animator. Select a sound. Preview it. Assign it to an activity or keyframe.š§© Modder Documentation ā Dependency & Model API
OBJAnim can also be used as a framework by other mods. Example Dependency Example `mods.toml` configuration: ```toml [[dependencies.yourmod]] modId="objanim" type="required" versionRange="[0.2.0,)" ordering="NONE" side="CLIENT" ``` For an optional integration, use: ```toml type="optional" ``` ModModelAPI Load a model: ```java OBJModel model = ModModelAPI.loadModel("entity/sheep_custom"); ``` List entity models: ```java var lists = ModModelAPI.listModels(ModModelRegistry.ModelCategory.ENTITY); ``` Search models: ```java var dragons = ModModelAPI.findModels("dragon"); ``` Preload a model: ```java ModModelAPI.preloadModel("entity/sheep_custom"); ``` Possible uses include: Custom renderers Automatic model loading Large model repositories Preloading frequently used contentš§© Modder Documentation ā Registry, Entity State & Item Display API
ModModelRegistry ```java ModModelRegistry registry = ModModelRegistry.getInstance(); registry.initialize();var meta = registry.getModelMetadata("entity/sheep_custom"); OBJModel model = registry.getModel("entity/sheep_custom");
The registry can be used for lower-level model metadata and cache handling.
OBJEntityManager
```java
OBJEntityData data = OBJEntityManager.getOrCreate(entity);
OBJModel current = data.getCurrentModel();
String activity = data.getCurrentActivity();
int tick = data.getAnimationTick();
Possible uses: Reading current animation state Triggering particles Context-based effects Reacting to entity activities ItemDisplayAPI
String path = ItemDisplayAPI.getObjModelPath(stack);
if (path != null) {
OBJModel model = ModModelAPI.loadModel(path);
}
Possible uses: Custom item renderers Consistent OBJ model loading Integrating imported item models with another renderer


