Export a Minecraft World to Unity for VRChat
Unity cannot open a Minecraft save as a finished scene. A conversion tool must first turn a selected region into mesh and texture files. Unity then needs a separate pass for scale, materials, collision, lighting, interaction, and performance.
Export geometry from a copy of the world. Do not experiment on the live server directory or the only copy of a save.
Prove one small Java Edition region before processing a large map.
- Stop the server if necessary and make a separate copy of the complete world folder.
- Use Mineways to select a bounded region and export it for rendering as OBJ, MTL, and texture files.
- Import the files into a clean Unity test scene and rebuild collision, materials, lighting, and interaction before expanding the region.
Blocks become visible mesh data. Minecraft entities, redstone behavior, inventories, commands, server plugins, portals, doors, and gameplay do not become VRChat systems automatically. Rebuild required behavior with supported Unity and VRChat SDK components.
Choose the Correct Tool
World conversion and mesh export are different operations.
| Tool | Input and output | Use it for |
|---|---|---|
| Mineways | Opens Java Edition worlds or supported schematics and exports formats including OBJ and USD | Selecting a region and producing mesh, material, and texture files |
| jMc2Obj | Opens a Java Edition world and exports OBJ and MTL data | An alternative Java-based OBJ exporter |
| Chunker | Converts supported Java and Bedrock world formats | Preparing a compatible world format before mesh export |
| MCprep | Processes Minecraft assets in Blender | Optional Blender material, texture, and rendering preparation |
Chunker does not produce a Unity-ready mesh. If the source is Bedrock Edition, use Chunker to create a compatible Java Edition working copy, inspect that converted world in Minecraft, and then use a mesh exporter.
Tool support changes with Minecraft versions and block data. Check the exporter's current documentation before converting a new release, modpack, custom resource pack, or add-on world.
Confirm You Can Use the Content
Before publishing a converted scene:
- Export a world you created or have permission to use.
- Confirm that collaborators and server owners approve the reuse.
- Check the licence for custom resource packs, models, textures, maps, mods, and add-ons.
- Review the current Minecraft Usage Guidelines when sharing a Minecraft-derived project.
- Do not present the VRChat world as an official Minecraft or Mojang product.
Minecraft's guidelines can change and do not replace permission from third-party asset creators. Keep records for custom content included in the conversion.
Make a Safe World Copy
Single-player world
Close Minecraft, locate the save folder, and copy the complete world directory into a separate working folder. Confirm the copy contains level.dat before opening it in the exporter.
Server world
- Notify users and stop the server cleanly.
- Wait for the server process to exit.
- Copy the complete world data required by that server configuration.
- Start the server again only after the copy finishes.
- Run export tools against the copy.
Copying region files while a server is writing them can produce an inconsistent working snapshot. Do not point the exporter at the active production directory.
Inspect Edition, Version, and Custom Blocks
Record:
- Java or Bedrock Edition.
- The Minecraft version that last saved the world.
- Dimensions and regions required for the VRChat scene.
- Resource packs used for the intended appearance.
- Mods, add-ons, custom blocks, or entities in the selected region.
Exporters commonly reproduce supported block geometry and textures, not the complete game state. Unsupported blocks may be missing, substituted, or exported incorrectly. Entities and animated or procedural behavior require separate review.
Open a converted Java/Bedrock world in Minecraft before mesh export. Confirm the landmark, block orientation, custom content, and dimension survived the world-format conversion.
Select a Controlled Region in Mineways
Mineways can open the normal Java save location through File > Open World. For a copied save elsewhere:
- Select File > Open.
- Browse to the working world's
level.dat. - Navigate to the required landmark.
- Set the upper and lower export heights.
- Drag a selection around the required region.
- Review the selected boundary and depth.
The selected three-dimensional box determines what is exported. Exclude:
- distant terrain outside the playable scene
- underground caves that will never be visited or seen
- unused dimensions
- hidden infrastructure and test builds
- large volumes included only because the selection was imprecise
Use Mineways culling and mesh-simplification options only after reading their descriptions and comparing an export. Keep the original world copy so another export can be generated with different settings.
Export OBJ, MTL, and Textures
With the region selected:
- Select File > Export for Rendering.
- Choose Wavefront OBJ.
- Save the export into a new, empty folder.
- Keep the generated
.obj,.mtl, texture images, and export settings together. - Preview the OBJ in a model viewer or Blender before importing it into Unity.
Mineways documents OBJ as its normal rendering export. The OBJ contains mesh data, the MTL describes materials, and the generated image files provide textures.
Check the preview for:
- missing blocks or faces
- incorrect rotation or vertical direction
- unwanted underground geometry
- transparent blocks and billboard plants
- material grouping
- an unexpectedly large mesh
If the selection is wrong, change the exporter settings and create a new export rather than repairing a fundamentally unsuitable region in Unity.
Use jMc2Obj as an Alternative
jMc2Obj provides another Java-based OBJ workflow:
- Download a release from the project's official site or repository.
- Open the copied Java Edition save folder.
- Load the world and select the required region.
- Review its export options and grouping.
- Export the OBJ and MTL files into a dedicated folder.
- Preview the result before Unity import.
Exporter output can differ in block support, material grouping, normals, and handling of custom resources. Test the same small region when comparing tools.
Optional Blender Cleanup
Use Blender between the exporter and Unity when the mesh requires structural work:
- delete unseen interiors or terrain
- separate playable and background sections
- repair normals
- reduce or reorganize material slots
- create cleaner pivots and origins
- build lightmap-ready UVs
- simplify geometry
- replace billboard or transparent foliage
- export a controlled FBX
MCprep can assist with Minecraft material and render preparation in Blender, but it does not automatically produce optimized VRChat collision, lighting, or interaction.
Keep the original OBJ and textures unchanged. Save Blender work as a new source file so the conversion can be repeated.
Import Into Unity
Create a dedicated folder such as:
Assets/Imported/Minecraft/RegionName/
Copy the model, material description, and textures into that folder. Unity 2022.3 includes import support for OBJ.
Select the imported model and review:
- Scale Factor and object dimensions.
- Mesh orientation and normals.
- Material import and remapping.
- Read/Write state.
- Mesh compression.
- Generate Lightmap UVs if the retained mesh will receive baked lighting.
- Automatically generated colliders.
Place the model in a blank scene with a known player or avatar-scale reference. Choose a scale, record it, and keep that scale consistent for every later export from the same source world.
Do not compensate for an incorrect conversion by applying different arbitrary Transform scales to many chunks.
Rebuild the Materials
The imported MTL may create materials that are useful for previewing but not suitable for the final world.
Review:
- missing texture assignments
- opaque, cutout, and transparent block groups
- water, glass, leaves, emissive blocks, and animated textures
- duplicate material assets
- unnecessary material slots
- shaders for Windows and Android targets
For sharp block textures, test Point filtering and appropriate compression in the Texture Importer. Use mipmaps for surfaces viewed across changing distances, then compare image stability in VR.
Animated Minecraft textures do not become Unity animation automatically. Rebuild only the animated effects the world actually needs.
Replace the Collision
Do not give an entire dense export one unrestricted Mesh Collider and assume it is ready.
Build collision around the playable route:
- box colliders for flat floors, walls, and simple block structures
- simplified collision meshes for irregular terrain
- no collision for distant or decorative detail
- separate colliders for stairs, ramps, boundaries, and interaction surfaces
- appropriate Unity layers for walkable and non-blocking objects
Test doorways, corners, one-block steps, narrow gaps, slopes, spawn, and world boundaries. Player movement should follow the intended route without matching every visible block face.
Rebuild Minecraft Behavior
The mesh is static scenery. Recreate required behavior explicitly:
| Minecraft feature | VRChat/Unity replacement work |
|---|---|
| Doors, levers, buttons, or traps | Animator plus supported Udon interaction |
| Redstone machines | New Udon logic designed for the required result |
| Chests and inventories | Custom UI and Udon data model |
| Mobs, armor stands, or entities | Imported or recreated models with supported animation and logic |
| Portals and teleporters | VRChat world components or Udon teleport behavior |
| Command blocks and server plugins | New Udon systems; server code is not converted |
| Minecraft lighting | Unity lights, baked lightmaps, light probes, and emissive materials |
Build and test one interaction at a time. Do not attempt to translate server logic mechanically without defining its VRChat behavior and networking.
Prepare Lighting and Visibility
The exported mesh does not include a finished Unity lighting solution.
- Separate static geometry into useful lighting and visibility sections.
- Generate or author secondary UVs for retained lightmapped meshes.
- Configure a skybox and environment lighting.
- Use baked lighting for static structures where appropriate.
- Add light probes for moving objects.
- Bake and inspect the result.
- Add LOD or occlusion culling only where the scene structure benefits.
One enormous mesh is difficult to cull and lightmap efficiently. Keep logical chunks that Unity can exclude when they are not visible, while avoiding thousands of unnecessary tiny renderers.
Optimize for VRChat Platforms
Use Run a VRChat World Optimization Pass after the first playable import.
Focus on:
- visible geometry and renderer count
- material slots and draw calls
- texture dimensions and platform compression
- transparent blocks and foliage
- collision complexity
- lightmap memory
- distant terrain
- optional effects and interactions
For Android and Quest, create a deliberate platform pass with lower geometry, simpler materials, smaller textures, baked lighting, and less transparency. Build and test on the target device.
The raw export is often best used as a reference. Rebuilding the important structures with modular Unity meshes can be faster and more efficient than repairing every part of a very large conversion.
Conversion Completion Checklist
- The original Minecraft world and the export working copy are separate.
- The selected region excludes unneeded terrain and underground geometry.
- OBJ, MTL, textures, and exporter settings are preserved together.
- The model has one recorded Unity scale and correct orientation.
- Materials and transparent block groups have been reviewed.
- Playable collision has been rebuilt and tested.
- Required lightmap UVs and lighting are prepared.
- Minecraft interactions have explicit VRChat replacements.
- The scene has been tested with VRChat Build & Test.
- Windows and Android variants are evaluated separately when both are supported.
- Minecraft, resource-pack, map, mod, and collaborator permissions have been checked.
Troubleshooting
Mineways cannot find the copied world
Use File > Open and select the copy's `level.dat`. Confirm the folder is a complete Java Edition world and was not copied while the source server was still writing data.
The Bedrock world does not open in the mesh exporter
Create a compatible Java Edition working copy with Chunker, open that copy in Minecraft to inspect the conversion, and then export its geometry. Chunker converts world formats; it does not create the Unity mesh.
Unity freezes or takes too long to import the OBJ
Cancel when safe, remove the attempted import, and export a smaller region or fewer vertical layers. Preview and clean the mesh in Blender before trying another isolated Unity import.
Blocks, entities, or modded content are missing
Check the exporter's supported Minecraft versions and block data. Entities and gameplay are not part of a normal OBJ export, while custom blocks may require resource-pack support, manual replacement, or another exporter.
The textures are blurry, transparent, or assigned incorrectly
Keep the OBJ, MTL, and texture paths together, then inspect material remapping and texture import settings. Separate opaque, cutout, and transparent materials and test Point filtering when preserving pixel edges.
Players catch on block edges or fall through the terrain
Replace raw mesh collision with simplified player-focused colliders. Check collider gaps, triggers, layers, stairs, slopes, and boundaries in VRChat Build & Test.
Continue Learning
- Import 3D Assets for VRChat Worlds
- Unity Layers and Tags for VRChat Worlds
- Optimize Texture Imports in Unity 2022.3
- VRChat Baked Lighting Tutorial
- Run a VRChat World Optimization Pass
- VRChat World Optimization Checklist
Official and Tool References
- Mineways documentation
- jMc2Obj official site
- jMc2Obj source repository
- Chunker world converter
- Microsoft Learn: Chunker overview
- MCprep source repository
- Minecraft Usage Guidelines
- Unity 2022.3: Model file formats
- Unity 2022.3: Built-in importers
- VRChat: Android content optimization
- VRChat: Cross-platform setup
Next Step
Export one small representative region, import it into a blank Unity scene, and complete the scale, material, collision, and performance checks before exporting additional chunks.