FaxLab3D - Spline Architect

Trailer Video

Documentation and examples

Example project

Trello Board

If you need any help, noticed bugs or want new features, comment here in the thread, thanks!

Works well and i really like it.
Finally, a plugin that allows you to build houses.

But i think there are few options that are not in the 5.5. version of the engine, but in the documentary.

That feels a bit odd :smiley:

And i cant figure out to create ceilings :stuck_out_tongue:

Hey, I’m in progress of updating the documentation, so sorry about any inconsistencies. I made a short video how to do ceiling/floor
You basically add a floor to the array and choose if you want to align it to Top (ceiling) or Bottom (floor)

Let me know if you need any more help.

By the way there’s small bug with the floor generation when the spline is not closed (missing first/last points), I will issue an update today to the marketplace

Thanks for your video!
It helps me to create the ceiling :slight_smile:

I has another question for the ā€œCustomPieceā€.
I added it and the piece influences all floors. I cant choose the floor.
Maybe i use the tool in the wrong way?

Hello. CustomPiece goes along all floors by design. If you’d like it to be only on one of the floors, you have to add a new SplineArchitectWall with the multiple floors on top of the one with the Custom Piece.

Floors are copied on top so all CustomPieces will be copied too. Here’s what I mean:

1 Like

As FaxLab3D mentioned, currently the intention is to add another spline, making a sandwich of floors.

But I’ll admit, this is legitimately the first thing I made an issue about as well :grinning_face_with_smiling_eyes: (super early adopter here, paid full price) I think SA would really benefit from letting users specify which floor (could be just a single integer or comma seperated integers with the floor numbers).

Still, SA is one of my favorite tools and FaxLab3D is the man. Love seeing this be developed.

1 Like

Thanks for the support! I thought you were the same guy, but it seems like this feature should really be implemented if its such a common question. I’ve actually tried to do it once, but the way I have it now makes it very difficult. I will try to rewrite some logic and see if that works in the coming days.
Thanks for the input guys!

1 Like

Workflow tip: Auto snapping all spline points to an uneven landscape.

  • Outliner: Select SplineArchitectWall. Move it slightly above the landscape..
  • Details Panel: Spline component :right_arrow: Select All Spline Points button
  • Viewport: Right Click on spline :right_arrow: Snap To Floor

Saves a lot of time vs snapping individually with END key.

1 Like

While we’re on the topic of the Custom Pieces..

Would really love a ā€œreverseā€ or ā€œhorizontal flipā€ for Custom Pieces without flipping the whole Wall.

My doors and gates are not symmetrical. I currently work around this with 2 seperate actors.

Fantastic, thanks for sharing. I need to include this into the documentation as I’ve received a request for such functionality, but it’s already there!

There’s also this method where you can draw spline points onto existing geometry using Draw Spline tool (see video)

As to your request for flipping Custom Pieces, it makes sense and I will implement it in some way.
I am currently on a bit of a vacation so it is very hard to find time to work, so please bear with me for a bit. Thanks.

1 Like

It’s awesome when there’s a native solution powered by docs :slightly_smiling_face:

Yet another workflow thing I should mention..

  • I almost always use Level Decorator alongside Spline Architect. …why? to force consistent bottom centered pivot points! (Level Decorator is pure BP. Another plugin with similar idea but C++: Easy Pivot Tool)
  • FAB assets often have nonsense pivots (..or bottom left pivots) see first half of this video) Could be real helpful to have a ā€œset center bottom pivotā€ button inside Spline Architect itself- since that’s what it uses by default.

Centering pivots on Static Meshes are pretty important to using Spline Architect with anything from FAB.

PS: if there’s an easier way, let me know.

Could really use Overlap Pieces By – but for corners only.

Corner meshes (ex: roman pillars, fancy moulding in house interiors) usually have little bits hanging off that specifically need an overlap to remove air gaps.

Just a "Overlap Corners By" input in the same style would be perfect.

1 Like

Thanks, this is a great suggestion, once again. I’ve added it to my Trello board and will implement it for the next update. Cheers!

1 Like

Hey all. I’ve just put up new update for Spline Architect on FAB. Here’s the changelog:

SplineArchitect v4.3

New Features

  • Pivot adjustment utilities – editor utilities to shift or re‑orient mesh pivots without re‑exporting assets.

  • KeepFlat wall mode – new KeepFlat option for WallZHandling that ignores spline elevation and maintains a constant wall height.

  • Corner pre‑baking & per‑wall angle control – ā€œPre-Bake Cornersā€ button plus a per‑wall ā€œCorner Angle Incrementā€ override (0 falls back to Project Settings).

  • Floor-specific custom pieces – allow Custom Pieces to appear only on designated floors.

  • Corner overlap option – ā€œOverlap Corners Byā€ value in WallPreset to intentionally offset corners, useful for decorative elements.

  • Reverse generation controls – ability to reverse a single wall’s segment order or flip Custom Piece placement without modifying spline points.

Improvements

  • Nanite meshes are now correctly handled when baking into new StaticMesh assets.

  • Utility Destruction tab – added a dedicated tab in the Utility Widget for all Destruction-related tools to avoid accidentally destroying something.

I’ll go over new features below:

Pivot tool

Added a Blueprint Utility that can change pivots for StaticMeshes. Many of the FAB Marketplace assets have different pivot origins. Spline Architect is designed to be used with pivots that are on the center of the mesh and on the floor with mesh orientation going in X axis.
With this new tool it is easy to setup any StaticMesh pivot so it’s compatible with Spline Architect, completely ditching the need to export/reimport meshes. Tool will save all LOD/Nanite settings and it can either overwrite or create new asset with specified suffix.

Let’s say we have a mesh with wrong pivot. We need to select this StaticMesh asset, press right mouse button, go Scripted Actions>SplineArchitect>PivotTool

In this example StaticMesh has its pivot somewhere in the center on Z axis, it’s aligned horizontally on Y axis and horizontally its pivot is on the edge of the mesh rather than center. We need to rotate such mesh by 90 degrees, set its pivot Z axis to be Min and on X axis, we need pivot to be on the center. Here’s how we would need to configure PivotTool

After we hit ā€œOKā€ we have a correct pivot point and a newly generated StaticMesh asset with ā€˜_pivot’ suffix

KeepFlat wall mode

Newly added KeepFlat option in WallZHandling parameter in the WallPreset.

When this option is selected, wall will ignore any Spline Z height difference and layout walls flat. This is useful when the ground is sloped, and we want to align a wall to the ground but keep upper walls straight.
With this option we don’t have to create two separate Spline walls, we can use same Spline for both type of walls.

Corner pre‑baking & per‑wall angle control

I added PreBake Corners button on SplineArchitectWall for scenarios where we want to speed up wall generation process and avoid generating corners on-the-fly if, for example, we have a dense Nanite mesh which takes long to be modified into a corner.
When all corners are pre-baked, Spline Architect will find them in appropriate folders and use them, skipping dynamic generation, making generation much faster, especially with Nanite meshes.
I also added Corner Angle Increment on SplineArchitect wall for configurations where we need a specific increment (by default Corner Angle Increment is taken from Project Settings)



Floor-specific custom pieces

This much requested feature that allows CustomPieces to target specific floors on the SplineArchitectWall, ditching the need to create new walls if, for example we need CustomPiece of a door only on first floor of the building.
Which floors the CustomPiece is added on is controlled with ā€œFloorsā€ string on the CustomPiece. We can specify specific floor, multiple floors or a range of floors to add CustomPieces on.

Corner overlap option

OverlapCornersBy parameter on WallPreset allows corners to have specific overlap, for example, where some elements of the corner are protruding and we need to push them into Wall Meshes more to close any gaps.

Reverse generation controls

TreatSplineReversed bool on WallPreset now can force wall to be built in reverse direction if, for example, we want only one of our stacked walls to go in reverse direction. Previously this was impossible and would’ve required reversing Spline direction which would’ve reversed all walls in the stack.

CustomPiece now also have ReverseOrientation option to allow flipping, if needed

Note: I am having some issues with updating the plugin on Epic Games Launcher, I’ve already issued a Support Ticket. Hopefully this either doesn’t affects only me or if not, it will get resolved soon.

Thanks for the support and please don’t hesitate if you have any questions, tips or ideas!

Have a nice day

2 Likes

As a heavy Spline Architect user, this is a killer update to one of the best design tools available on FAB.

Fax Lab has been tenaciously and thoughtfully designing, refining and adding extremely helpful workflow improvements to an already solid tool.

Love seeing this be developed- would give it 6 stars if I could. I’m floored that Unreal Engine has it and an amazing creator to support it!

1 Like

I have a heavy light leaking problem. I know its a common problem in ue, but is there a tipp to prevent it?
I dont use lumen and the walls are 70 thick and have doublesided material.

Hey, you can try playing with ā€œInsetā€ on your ceilings FloorData struct. But that would be viable if your building is interior only.
Another option is to use baked lighing or virtual shadow maps. Also if you’re on regular shadow maps, you could try increase resolution of those in the Project Settings
Is this structure baked? Might try baking in Components mode rather than Instanced

I will try to increase the resolution.

The structure is not backed, i thought instanced is better for performance than baked/merged.

Also a optional question, is it possible to apply physics material to the floor/roof?
So that i can detect it for my footstep system.

Baking in Spline Architect means that your placed and generated meshes are saved into the Level, so baking is necessary for your buildings to appear in the game. Baking might change some properties for shadows too, so that’s something to try out.
You are right, Instanced is far more better for performance, but having walls baked into StaticMeshComponents instead of InstancedStaticMeshComponents might change how shadows are calculated, worth a try baking with these two baking methods.
Great question about PhysicalMaterial. Right now there’s no way to do that automatically, however when you bake your wall, you can select the floor mesh and set the PhysicalMaterial there (double click on the floormesh to select that Component). I will add an option for the future version to do that from the WallPreset, thanks.
By the way, you can set PhysicalMaterial on your MaterialInstance you use for your floors. That might do the trick, actually. Let me know if it works.