A downloadable tool

Download NowName your own price

Level Buddy

Level Buddy is a CSG level modeling workflow add on for Blender 3D. It takes inspiration from old school editors like UnrealEd and DoomED. Level Buddy reduces iteration time while letting you test out ideas quickly and easily.

  • Easy to use tools and interface.
  • Auto texture/UV unwrap in world space.
  • CSG modeling techniques including additive and subtractive inspired work flow.
  • NOT BSP, you are work with poly meshes at all times. When you build the map you get a static poly mesh not a BSP tree of faces.
  • Build and export your map to FBX with 1 button, great if you are working with Unity or any external game engine.
  • Blender 2.79 now supported. Level Buddy now works with the new version of Blender 2.79.

***Update Version 1.3

- added support for Blender 2.79

- added the ability set floating point precision when rounding vertex positions for CSG operations.

- TextureBuddy is now automatically enabled when LevelBuddy is enabled.

- fixed bug when trying to auto texture a map that had no textures.

- fixed bug of trying to execute TextureBuddy if the addon was not installed/enabled

***Update Version 1.2

- added FBX export options. This is great if you are using Unity or any other external game engine. Build and export with 1 button click.

- added remove material feature that will remove faces with a specific material applied when the map is built.

- added auto UV mapping as an option.

- added option to flip map normals when the map is built.

- added the ability to build the map while in edit mode.

- added in the ability to tag sectors and brushes to a layer (A or B) to fix boolean operation orders where they had problems generating proper openings/connections when the map would be built.

- hid the light setting properties for the time being as they were dependant upon material node setups that were specific to a personal project I was doing. If you still need them you can jump into the code and uncomment out that code in the draw panel function. But in the long run I will be moving them out of this script and into another script.

- added support for Blender 2.78

note: Addon is still in development so there might be a few bugs here and there.

Version 1.0 is still available to download below.


Download NowName your own price

Click download now to get access to the following files:

LevelBuddy 1.3 9 kB
LevelBuddy 1.2 9 kB
LevelBuddy 1.0 8 kB


Log in with your itch.io account to leave a comment.

(Edited 1 time)

Great tool, but the current version does not appear to work with Blender 2.79. It doesn't show up in the Add-Ons when I import it. A fix would be nice!

Sorry to hear you are having issues.  I have not had any issues with it using Blender 2.79.  I have done a small update to fix some annoying bugs such as auto enabling the TextureBuddy addon that comes with LevelBuddy.  If you do not see it when you install it from the zip filet try using the search tool in the addon panel of blender and it should show up there.

Hey Matt -- it was actually an issue on my end. Still, thanks for the followup! Great addon!

(Edited 1 time)

Sorry If I sound like That guy but is there a tutorial some were? I tried to use it and it seems to be a bit finicky on my version of blender "v2.78".

P.s. The errors are as follows, If your interested 

Traceback (most recent call last):
  File "C:\Users\Samurai Studios\AppData\Roaming\Blender Foundation\Blender\2.78\scripts\addons\LevelBuddy.py", line 742, in execute
  File "C:\Users\Samurai Studios\AppData\Roaming\Blender Foundation\Blender\2.78\scripts\addons\LevelBuddy.py", line 235, in auto_texture
  File "D:\Blender 2.78\2.78\scripts\modules\bpy\ops.py", line 189, in __call__
    ret = op_call(self.idname_py(), None, kw)
AttributeError: Calling operator "bpy.ops.object.texture_buddy_uv" error, could not be found

location: <unknown location>:-1

the error you are getting is because you also need to install the level buddy addon and have it enabled too.  It is in the same zip file as level buddy .  Hope that helps.

Thank you so much, I Am exited to start using this tool "PROPERLY". Can't believe I didn't notice that was missing. 

P.s. Tanks again for replying, its a rarity to me.

(Edited 2 times)

sorry no tutorials yet.  I do want to do some.

I got the same error. I installed both level buddy and texture buddy.


I just fixed a bug caused by a material not having an active texture that might solve some of the issues you have had.  You could download the latest version 1.3 and see if that fixes your errors.  I also have installed and ran the tools on blender 2.79 without issues.

Been at this biz for a couple years more than you. But you and I share a primary influence. This is just amazing man. I think I need to finally learn me some blender haha.

this so helpful.

btw. how can you see through walls when you are editing?

In the shading panel enable 'Backface Culling' that lets you see through the back side of faces.

Wow, this is actually super helpful! thank you! might use this for another game someday.

Well where is a blender and where do you find it

how do i use it it wont open

It's an addon for Blender 3d so you install it through blender.

(Edited 3 times)

Thanks for the very handy tool!

I am using it to create old-school fps levels. So far the sectors work flawlessly but I had problems with the brushes. Something went wrong during build map so I had to reset the location, rotation and scale of every brush after finishing the layout. This way they did not get distorted during the build process. I leave this here in case somebody bumps into the same problem.

Edit: The problem came back so I looked into the python code. There are 2 functions which do some rounding. I changed both of them to round to 2 decimals instead of 1. This solved the geometry displacement for me.

Edit: I encountered another problem with substractive meshes. Sometimes they break the whole thing for some unknown reason. A simple substract window copy messed up the whole save file. I had to reload a previous state.

I get problems with the substractive mesh too. Did you check if the mesh normals of your substractive brush are pointing outward? Sometimes it solves the problem.


Normals should be okay by default. I suspect there is some limitation in blender or the plugin. Sometimes simple brushes connect in a way that breaks the script. Other times I get a very thin layer on one side of the substracted doorway for example and cannot place a floor under. With some tweaking they work. I will leave the rest for post-edit.

As for the window problem I do not know what was the cause but I remade the whole thing and now it works nicely. I have to admire the simplicity of creating free-form window sockets.

Do you have screenshots?

(Edited 1 time)

Well, I can supply one recent if you are still looking at this post:

I originally had a problem with the one brush selected but after going through all the parameters of neighbouring objects and hitting enter on them many of them broke during build. You can see the parameters on the left picture which should not be a problem.

PS: Of course the really interesting thing is that these were carbon copies from the other side which work just fine.

It sounds like an issue with the way the sectors are being combined.  Because I basically boolean everything together and booleans do not always give the best geo you can find strange issues like this.  Try changing the sector group to see if that helps.  Group A gets processed first and then group B so this is one way to get around these kinds of issues.  You might need to adjust a neighboring sector instead of the one that is having issues but it is at least one more thing to play around with.  I hope this helps and sorry to hear you are having issues.

Unfortunately the whole thing breaks too often for me. Been building a town with brushes but pretty often I end up breaking the build script so I have to hunt down the one part/intersection that causes it (usually one side of a window edge which consists of 4 parts connecting in 45 angles in the corners) and turn it off/remove it. I use incremental values like .25, .5, 1 or 2 for building so I had previously removed all rounding script from the plugin. Now I thought I will download the original once again but modify the digits to 3 to suit my values. Since then the build button crashes the whole program.

Other thing that I tried is to select all the parameters of all the objects near the one faulty and press enter, confirming them. After that a lot more of these brushes broke. So, for now I it would seem that Blender could not position brushes properly thus breaking this plugin. Should this plugin work with 3ds Max so I can abandon this utter garbage app?

I just added the ability to set the rounding level of the vertex positions.  Its called 'Map Precision' and can be found by the build map button.  This should let you adjust the rounding without having to crack open the script.  I have not heard about the build button crashing the whole program, if you can capture an error or shoot me an example blend file I'd love to dig into that and find the problem.  I also just fixed a few annoying errors that seemed to pop up a bunch so maybe the latest version is a bit more solid for you.  Since I don't work on this full time it gets hard for me to stay on top of it as much as I would like.

Thanks for the update and feedback! Finally got around trying out the new version. Precision update accuracy is a great addition, for me a value of 3 should be good enough. However I had 2 problems at the start:
1. The location precision update does not use the value which was given on the ui, only the cleanup vertex which means that my sectors get displaced because of the original 1 decimal accuracy.
2. For some reason a vertex Y coord of -4.25001 results in -4.251 after rounding. Also, I do not know why these odd values even exist.

1) I must have missed the sector placement precision cleanup,  easy fix.    Thanks for catching that and letting me know!

2) Floating point numbers are never precise which is why I had the rounding set so high.  It seems to get more inaccurate the longer the number is after the decimal point which throws off the Boolean operations and gives errors or incorrect unions.  In the old days of Doom they used integers for pretty much everything.  If you were able to get away with using only whole numbers I believe you would see fewer if any errors...but the scale of your map would be pretty big and chunky.

Very nice tool!

Updated WOOO!

Thank you for this update! This tool is really handy!