Uniblocks - modular buildings constructor

Here is a youtube overview of new features:

UNIBLOCKS FREE v4 got update 1:

What's new:
  • Changed naming pattern for all building prefabs (now each building is the part of a design series). Annoying, but needed for the future compatibility with PRO version. After this update on original V4 there will be a mix of old and new building prefabs - each building will be duplicated under different new name. Sorry for this inconvenience! Manual clean-up will took a minute, though.
  • Fixed window glass glowing in some lighting scenarios.
  • On the “Demo_materials_FREE” map in the glass section added missing information about semi-transparent shadows from the glass.
  • Blueprint “Beam_decorative_FREE” renamed to “Beam_FREE”.
  • Fixed naming pattern missing for a ~10 textures in a “PolyHaven_CC0” folder (and removed “NEW” folder from there).

UNIBLOCKS PRO v6 got update 1:

What's new:
  • New building added - “LI_prefab_Contemporary_house_v1” (can be found on the prefabs demo map):
  • Changed naming pattern for all building prefabs (now each building is the part of a design series). After this update on original V6 there will be a mix of old and new building prefabs - each building will be duplicated under different new name. Sorry for this inconvenience! Manual clean-up will took a minute, though.
  • Fixed glass glowing in some lighting scenarios (except frosted glass - it still can glow in some cases, tweak it manually in case it’s way too bright)
  • On the “Demo_materials_PRO” map in the glass section added missing information about semi-transparent shadows from the glass
  • Blueprint “Beam_decorative_PRO” renamed to “Beam_PRO”
  • Fixed the wrong material on the wall inside the futuristic building (new name is “LI_prefab_RetroF_house_v1”)
  • Fixed an example material with a circle pattern on the gates in the documentation section
  • Fixed naming of ~10 texture files (those were missing “T_UB_” prefix and “_D”/“_N” suffix)

More news - now all building prefabs from PRO version are available on FAB:

Flash sale on FAB - 50% off for UNIBLOCKS PRO. As usual - this is called “flash” for a reason, a couple of days and it’s back to full price again (also, at the end of the summer price will rise substantially with the next V7 update - I plan to add 10-15 new building prefabs in contemporary and luxury/minimalism style, plus some extras… things going to be beefy )).

New building is available on FAB - Contemporary studio v1:

It will appear in next update for UNIBLOCKS PRO in August and introduce few new rim blocks (sloped rims - you can see those in clay color on the screenshot).

Unreal Engine 5.8.0 was released today, but it comes with the changes to the default scaling mode - now there is a new editor setting “Scale Type” for that and it’s set to a “Percentage based” instead of the previously hardcoded “Offset” mode. This change makes it impossible to work with anything UNIBLOCKS-based - usage of the scaling tool will lead to objects with off-grid sizes, if those objects were previously scaled.

Solution is to set parameter “Scale Type” back to “Offset” in “Editor settings” → “General” → “Gizmos”:

I will add this info to all released UNIBLOCKS packages and buildings, but this will take a few days.

All assets were updated with an info billboard about Unreal Engine 5.8+ new default off-grid scaling and how to deal with it; and that’s it for the most of the assets. But this unplanned update brings a bit more to the main packages:

What else is new in the UNIBLOCKS PRO v6 update 2
  • Added “Contemporary studio v1” building prefab, also there is unfinished mansion - both can be found on the “Demo_prefabs_PRO” map (inside DEVZONE).
  • “Case 1A extra 2mm” block was rotated 180C to match orientation of other blocks. Please check your builds, those blocks will have incorrect rotation and should be manually re-adjusted.
  • A few new rim blocks (sloped) - see for “NEW!” sign in the “Rims” section of the documentation map. This is unfinished set of rim blocks, but it can be useful to build facades like this:
What else is new in the UNIBLOCKS FREE v4 update 2
  • “Case 1A extra 2mm” block was rotated 180C to match orientation of other blocks. Please check your builds, those blocks will have incorrect rotation and should be manually re-adjusted.
  • A few new rim blocks (sloped) - see for “NEW!” sign in the “Rims” section of the documentation map. This is unfinished set of rim blocks, but it can be useful to build facades like this:

Is unlocking doors at runtime supported? I have a door that is saved into the level with Locked=True, and then I flip that to False in a Blueprint. But when I do so, the door does not function, and when I exit Play mode the log is full of error messages.

I haven’t tested that - so if it breaks this means this blueprint is not capable of handling that relatively trivial situation that I should have thought about. Will try to figure it out for next update.

Upd: I think quick fix is possible, if I make door sounds for open & locked states to be always loaded and ready for changes + remove deadbolt shift in locked state, for now.

UB Poolrooms vol1 [liminal pools and architecture] | Fab - new building available on the FAB, this time it is an underground complex in liminal/poolrooms style. Note that soon it will be added in UNIBLOCKS PRO package (hope in a next few hours, maybe days), with UV0 on blocks/rims/joints reworked for 10x10cm ceramic tiles. Here are some screenshots:

UNIBLOCKS PRO v6 update 3 is live on the FAB.

What's new in v6.3:

August 3, 2026

  • Now UNIBLOCKS PRO is ready for creation of a decent poolrooms-themed architecture.

  • Added “Poolrooms vol1” complex - liminal space, white tiles, creepy architecture details, all good stuff. Try it out on the “Demo_prefabs_PRO” map, entrance is near the spawn point.

  • Reworked UV0 on all joints, blocks and rims for the elegant look when used with 10x10cm ceramic tiles, needed for poolrooms. With blueprints it’s half done - stairs and railings (with 15cm monolith design) have their UVs reworked (phew!), pillars and perron blueprints are not yet.

  • Added adaptive UV0 mode in the main material shader. And there is a new folder “UV0_adaptive” inside the “Materials” folder to store those. More info about this can be found on a documentation map.

  • Added water shader for pools - relatively simple, but good placeholder. This is just a copy of a water from the free asset pack “African slate quarry”, made by Quixel.

  • Applied quick fix for all 4 doors blueprint, so now it is possible to add in-game locking/unlocking functionality without blueprint breaking. This is response on the issue from the couple of posts above.

  • Added some more new joint blocks, but this work is unfinished (you can check for “NEW!” sign in the Joints section of the docs map), so use it with caution - no matching cladding pieces for them, no chamfered versions of some blocks and so on.

Note that poolroom-ready UVs on blocks are not yet made it in to the UNIBLOCKS FREE - will do that with next big update for FREE version, so it’s an exclusive for PRO version for a month or so.

Love the free version, im going to buy the pro bersion. You mention a big update with V7, can i ask when that will be and what will be included?

Right now there is a toggle for text-friendly triplanar UVs.

I wanted to experiment with making the regular version text-friendly (oriented correctly).

Spoiler: I succeeded

Triplanar orientation

The ‘correct’ orientation

  • top left → black
  • right-> red
  • bottomleft-> green
  • bottomright → yellow

Picture shows front

This is showing reverse side

These are all correct in all orientation

In Uniblocks MF_UB_TriplanarUVsGen.

You can see it’s correct in the top, but not the sides. It’s wrong on all the other sides.

You can either enable the text-friendly version or make a small adjustment to existing cleaned up triplanar projection (I prefer the newer uniblocks cleaned up version)

The solution referencing the latest M_UB_main_v4 uniblocks

In the MF_UB_TriplanarUVsGen

Add a named reroute for projection signs.

Next we fix up the orientation based using this in the triplanar projections

We multiply by a few -1 based upon projection signs.

Now we can see the sample is now correct.

In my test case of carpet_squaresE_cold

This made it go from 377 instruction to 389 instruction. But those are mostly just the multiplier, so they are cheap instructions. (Remember not all instructions are the same)

Which is the same as the text-friendly triplanar version already available.
So nothing ‘major’ has really changed. Besides not having a completely different implementation for the text-friendly, but just a small modification

However one of the problems with this approach and the text-friendly version is ‘normals’ break with it

With this proposed solution

From the front the normals are looking consistent in both versions.

Original and FixedTriplanar (Note: I have disabled the ‘normal correction’ for now)

However on the opposite side

We can see the normals are slightly messed up.

But this is another easy fix with using ProjectionSigns fix up on the normals. to invert the direction. Since in this case it just looks like a +/- flip on the normals.

Will update soon for this fix up. But should be relatively simple. I think it might greatly reduce the overall normal fix up code then existed before.

Lastly bonus and unrelated:

We can save many wasted instructions in UB material by unchecking TangentSpaceNormal, since right now the existing solution was going from world->tangent->world for triplanar and tangent->world in UV. But if we uncheck it, we can drop the round tirp in triplanar, but we’d have to add the manual tangent->world in uv approach. Easy 1 node change at final normal stuff. And this is same instructions for uv, but saves 20+ for triplanar.

1 Like

It’s not that big after several incremental updates through the summer, but I think the main point of v7 PRO/v5 FEE will be breaking artificial/too perfect look & feel of the buildings. I have some ideas how to attack that. One of them is this: last winter I’ve seen smart trick in the “Dead Island 2” and they’re using some kind of decals on the edges of the concrete blocks to make it look natural (1, 2). There is a plug-in for UE on FAB for that, but I tried my own approach - by adding layer of polygons for all blocks with sharp angles and, with tricky edge wear material, it can kinda-sorta work in a similar fashion:

This edge wear option will be added for all building blocks with sharp enough angles and maybe for a couple of blueprints (stair steps, pillars, frame).

Beside worn edges there are more things to implement (adjustable decals for walls, coming from plinth blueprint for example) but I haven’t started those and can’t promise this will be done. Also hope to add random materials assignment for the cladding blueprint tiles, maybe with a bit of randomized rotation for each cladding piece to break too perfect look. Stuff like that.

And I have ideas, finally, how to rework Futuristic office, Brutalist house and Modern house 2 - will see about that, hope new versions will be better in the architectural aspect after those changes.

Thanks a ton, will try to implement it - sound improvements and optimizations. I’m jack of all trades, master of none so qualified advice can be quite helpful.

Just wanted to call it out. Since it might get overlooked as the p.s. in the above post

This is the default view. Pretty good.

I like green. But the tangent space change. Can make a lot of materials a bit brighter (less expensive).

2 changes to do this. Exact same result.

Drop the transform from MF_UB_TriplanarNormalsFix

Add the TangentSpace to WorldSpace for the non triplanar

And in the M_UB_main_v4 (and any others using the TriplanarNormalsFix)image

Uncheck TangentSpaceNormal

What that checkbox does is internally to the Normals connection is add a TangentSpace to WorldSpace conversion automatically and hidden. Most people are working in UV space and thus it auto converts normals from tangent to world.

However, since UB is predominantly triplanar and WorldSpace already.

It’s causing an unnecessary calculations that can’t be optimized away (explicit World->Tangent then implicit Tangent->World conversion.
But that does mean we now need to manually convert Tangent->World in uv space instead.

In UV mode, itll be same cost (but now with an explicit conversion instead of hidden implicit).

In Triplanar mode this should save at least 5 instructions.

This one is a far easier win to be had.

1 Like

It may be helpful to have a look on the origins of the “MF_UB_TriplanarUVsGen_text” - it is just a copy&paste from this tutorial, made by Visual Tech Art: https://youtu.be/Cq5H59G-DHI
Tutorial offers own fix for the triplanar normals. But there was an issue with the dithering - masking for the one of the projections (front or left) was not working right and textures were stretched instead of dithering to another projection, something like that - was not obvious from the first glance but appeared in practice on spotty materials and large dither spread, so it’s usefulness was limited by this issue.

P.S. A few “Magic numbers” in the “MF_UB_TriplanarUVsGen” are coming from attempt to force “Dither” input value to produce roughly the same dithering spread even when “MF_UB_TriplanarUVsGen_text” is used with a completely different dithering implementation.

Ah good to know. I’ll need to investigate more it then. Yeah I had seen that video before and what gave me some knowledge regarding it.

I haven’t looked at the curve assets too much and so haven’t focused too heavily on dithering needs.
I will look around at more curved assets and see if I can identify good reference ones of where the problem is more visible.

I had been looking into an alternative normal fix that was based more heavily on the vertex normals which I think did manage to produce better results at the near 45 degree angle.

I forget where I got this approach from, somewhere on the internet. But I’ve tweaked it slightly. And it leverages 3 projection masks from the MF UVsGen instead of the 2. It is ever slightly more expensive, but seemed to produce better results at the edges of the projection (45 degrees, near the dither). Though I can’t say how well it handled dithering at this time.

1 Like

In this post I will be tracking my daily progress - what’s being made for the upcoming V7 update for UNIBLOCKS PRO (and FREE v5 update will receive quite some of that, of course).

Here it is, with the most recent stuff on top:
  • 14 September - finished with stairs edges.
  • 13 September - started adding side edge wear meshes to the each of the 6 stair steps designs:
  • 12 September - and even more polish on the same stuff, figuring out small tricky things to be fixed.
  • 11 September - more polishing on the same shader & blueprint connection, few caveats found and fixed. Also, edge wear shader now takes mesh orientation and world position to randomize UV0 shift so no more duplicated edge wear texture details when used on blocks/rims/joints:
  • 10 September - yep, problem solved:

    How reliable this instancing data stuff - will see in future test, but so far it works and no crashing.
  • 9 September - blueprint updating is done, not perfect and full, but good enough in practical terms.
    Now back to adding edge wear option to the blueprints - run into a need to have UV0 offset to be different on each new instance of edge wear mesh to break repetitive look:

    Maybe there is a way to do that through usage of “Per-Instance Custom Data (PICD)” + appropriate modifications to edge wear material, will nibble on this topic tomorrow, it’s tricky.
  • 8 September - plan mini is done, but it took me ~15 days already so I guess spending one more day upgrading railings blueprint to add instancing feature to it… will be a right thing.
  • 7 September - shaped windows blueprint rework 70% done.
  • 6 September - finished BP_UB_Window_rect, now only shaped windows and window sill left to update.
  • 5 September - 2.5 blueprints left (BP_UB_Window_rect is quite a challenge to rewrite for this new unified offset & duplication mode, but at least I made it a bit better - now window frames built from four corners and four beams between them while before those beams in between were made by instancing 0.5m beam pieces).
  • 4 September - bit more progress, yet still 3 blueprints left to update…
  • 3 September - updated stairs, railings and separator blueptints. Stairs now have duplication option, but adding this feature to the railings blueprint will be a couple of working days or even more, so no duplication for railings in this update I guess, this detour is already too time consuming and still few blueprints to rework left…
  • 2 September - migraine is over, slowly picking up pase, hope to finish blueprints update tomorrow, finally.
  • 31 August - did nothing, just nursing headache… untreated diplopia prevents me from working more than 4-5 hours per day (act of just looking on something puts strain on my degrading eye muscles, so I’m rationing my eye sight, working with 10 minutes sessions + 10 minutes rest and so on. At least this is not a cancer/tumor (did contrast head MRI last year - all clear), just getting old in a ungraceful way.
  • 30 August - did nothing! But I forgot to mention shader speed-up improvement, proposed by @namrog84 - so, it was implemented some weeks ago and now main materials are 5-15% faster to render, sweet ^_=.
  • 29 August - blueprints work continues, ugh - unifying those options is a challenging task (spend half of a day to add those only for a couple of blueprints), no surprise I was pushing it in to the tech debt for a while…
  • 28 August - more blueprints have at least “Offset XYZ” option; also all lamps on a Poolrooms map now emitting electric humming sound.
  • 24-26 August - temporarily paused work on edge effects and started adding unified set of instancing and offset options for all blueprints, except doors and gates; 40% done. New options in the most of the blueprints will look like this - same set of parameters “Offset XYZ”, “Duplicate XYZ”, “Duplication Interval XYZ” and “Intervals Off-gird”:
  • 20-23 August - added edge wear option for the BP_UB_Frame blueprint (having this effect on door and window frames will be handy). Run into my own technical debt - to make frame work with edge effects for external corners (problem with the external corner is on the screenshot) there is a need to, at least, have ability to offset corner frame pieces on all 3 axes (XYZ) to fit rotated inner corner to work as external one plus off-grid position adjustments for nearby frame pieces… and duplication can be also useful and time saving here and there:
  • 7 - 20 August - added edge wear for all blocks with sharp edges. Still, there is some more work to polish shader for those edges - with distance Nanite makes geometry simplified and z-fighting begins (edge wear is just an additional mesh grid over corners and bends, with own material); very aggressive per mesh settings for Nanite were applied but this problem not yet fully solved. Seems that distance-based increase of per pixel depth offset may help, but this idea not tested yet.