u/Ill-Oil-2027

An external mesh exporter for minetest/Luanti worlds!
▲ 18 r/Minetest+1 crossposts

An external mesh exporter for minetest/Luanti worlds!

heyo! I go by a few names but if anyone's seen someone by the name of two in the mod list that's me! I create random utility stuff that either peeves me doesn't exist or creating something new for the community to utilize if they want.

tl;dr: meshport mod has some issues and it's way to slow for the project I'm working on, so I created my own external version which just requires running a single command in minetest and then using the file made by said command to give the export script all the data it needs to properly export areas of the minetest/Luanti map, the export program is called Luanti-Mesh-Export (https://github.com/viper968/Luanti-Mesh-Export)

some context of why I made this before explaining what it is, I have a project called rendercore where I'm taking the saved map data from the NodeCore Community server and attempting to export it, showing progression of builds and showing how the server has changed, unfortunately the only mod that existed at the time was meshport, it works wonderfully for small areas (50^3 areas) but anything larger and a normal build of minetest crashes due to memory limits, utilizing a slightly modified build of minetest allows for much larger areas but it still takes 10-15 minutes to export a single 250^3 area along with the garbage cleanup not seeming to work properly and slowly exploding minetest's ram usage to over 100GB!

And now I've created a python program that allows someone to export a selection of mapblocks (defined by normal node coordinates) into a 3D mesh without minetest running the entire time the export is running, and with the capability of the export being multithreaded! its called Luanti-Mesh-Export (https://github.com/viper968/Luanti-Mesh-Export) or LME for short (yes I know, very creative name)

currently it supports most node types and supports texture modifiers which is something meshport doesn't support (as of April 10th 2026)! So far I haven't implemented multithreaded exports (will allow the exports to run much faster) nor chunked exports (will reduce ram usage to a fixed amount instead of increasing exponentially with linear increases to export size) but once I've ironed out the bugs with the rest of the node types I will definitely be adding both of those optimization features!

the steps on how to use it are listed near the bottom of the readme on the GitHub page but here's a quick rundown of how the system works:

  1. put the node_def mod into the mod folder for minetest and run the command /dumpnodes from the bundled node_def mod, this will create a file in the world folder containing a list of every node definition and said node's properties

  2. find the .minetest folder or wherever minetest game data is stored (same folder which has the mod folder) and input the paths into the python script command for what is required (textures aren't fully required but are highly recommended, running /dumpnodes is required though)

  3. run the export_map.py python script with the in-game node positions where you want it to export between and then wait (200^3 areas currently require at least 3GB of RAM free)

the export_map.py will create the following: obj file with a paired mtl file for materials and a directory containing textures (if you set it to create said directory), all that has to be done to view it is to enable the obj import addon in blender and import the obj file into blender (normal obj import not obj (legacy) import), and it's done! you now have the area of the map you selected imported into blender which can be viewed and modified fairly easily.

u/Ill-Oil-2027 — 11 days ago