QuickWall Plugin: Wall and building generation via a 2D CSG system

TL;DR: New plugin, who dis? Stravant - QuickWall - Roblox

CoverImage

Introducing: QuickWall [Link]

What does QuickWall accomplish?

The purpose of the QuickWall plugin is to eliminate the busywork that builders are currently subjected to when they want to create the walls for a structure. This takes a lot of manual work lining up all the joints at the corners of walls, especially in the case where your structure has non-grid-aligned sections.

How does QuickWall accomplish that?

This is done through a 2D CSG system where you define the area to make walls around in terms of positive and negative volumes. The positive and negative volumes are manipulated via a set of custom draggers that make placing them easy. The draggers don’t snap the positive and negative volumes to eachother so that they don’t get in the way, and ignore the generated content so that it’s easy to manipulate the volumes without the content getting in the way.

How do I use QuickWall?

  1. Open the plugin and place positive and negative parts from the toolbar. Positive parts intersect to define the area that walls should be generated around, and negative parts subtract away from that area:
    image

  2. Add content which “cuts into” the wall. Any model dragged against the wall will be “sunk into” it and cut out a section of the wall. This lets you quickly place any sort of window or door prefabs into the wall to cut into it. This can be as simple as a transparent Part to form a window, or as complex as a full window casement:

  3. Modify settings for the model. The settings are stored in the model, so if you come back and edit it later, the same settings will apply for that model. Settings exposed include:
    Floor and ceiling generation: Should a top / bottom “cap” be made that can serve as a floor and ceiling for the set of walls?
    Split color: Should the walls be generated in two “layers” so that the inside and outside can be colored differently, or should only one layer be used for smaller part count?
    Roof generation: Should a roof be automatically generated over the walls?
    image

  4. Deselect the plugin and do other things. When you deselect the plugin the editable regions will be stored and remembered inside the model’s GeneratedContent folder. You can select the plugin again later to continue editing the where you left off!

Feedback

Seeing as this plugin is very complex, I’m looking for a ton of ideas and feedback on how to make the UX work better. Please try it out and make suggestions!

50 Likes

I’m not sure I completely understand the plugin, but isn’t this literally CSG?

Does “sunk into” mean the entire model gets a cutout in the wall?

This creates CSG surfaces rather than CSG volumes.

The Studio CSG system is basically useless for making walls like this, because you have to do way too much busywork creating inner / outer cuts.

This system is built to specifically generate stuff (walls) at the edges of the volumes, and has custom draggers specifically designed for setting up walls.

4 Likes

This plugin is Awesome! It dramatically speeds up the workflow for creating buildings.

Suggestions:

  • Let users make their own doors and windows
  • Let users define the default parent of objects that are dragged in

In terms of UX, it seems the plugin forgets that a wall is a wall after a while.
image

It’d be nice to have it always remember using Tags or Attributes.

Didn’t EndorsedModel make a script for this awhile back?

Either way, nice plugin!

Do you have a link? I haven’t seen it.

Looking at it, I don’t think it does angled walls like yours does.

I don’t know why but u won’t let me purchase the plugun although it’s free

Edit: nice work on the plugin BTW it like one of those ue4 procedural buildings and world map generation :ok_hand:t6:

All the stuff in “Packages” is third party dependencies that I didn’t write myself (though there are quite a few minor edits to DraggerSchemaCore), so they’re just in whatever format the original author decided to put them in, not up to me.

As far as the “Components” folder, those are Roact components that I’m planning to reuse in updating some of my other plugins, so they have to be separate.

Beyond that there’s really not that many packages. Most of the meat of things is in:

  • PolygonOperation → Raw math for polygon intersection / difference
  • UnionManager → Figures out what parts to apply polygon math to and when
  • FloorGenerator / WallGenerator → Generate the content when the UnionManager tells them to
8 Likes

Really not something worth complaining about. It’s a cool plugin, just leave it at that.

2 Likes

Sample door and window doesn’t work for me?

Can you share the place file that’s not working?

Would be cool if we could add our own doors & decorations with this plugin like a special toolbar

I have good news, there’s nothing special about the door / window provided: You can drag whatever model you want and the draggers will figure out how to sink it into the wall.

I could make it so that the plugin looks in a folder under ServerStorage or something for additional models to show in the toolbar, is that what you’re thinking?

Yeah something like that for easier access
I mean, it probably sounds lazy and you would be right
But y’know, ease of access… saving time… :blush:

Just got a chance to try this out and it’s great! I could see it being a great workflow option for me.

I am having a slight issue with taller structures; they don’t seem to like model cutting much;

size; 20, 13, 24
image

size; 20, 26, 24; the door cutting no longer works
image

Thanks a ton for sharing your work :slight_smile:

I have a question about this plugin does it use Unions/UnionOperations? Those tend to cause lag thats why im curious.

Yeah, the way it currently works it searches for stuff to cut by in the middle of the walls. Do you think it would work better to search a fixed distance from the bottom?

It uses a single Union for each of the floor / ceiling. If you’re only using it for walls then it won’t and otherwise it’s a minimal cost, building the floor / ceiling out of individual parts would be more expensive in many cases and the textures wouldn’t line up in every case.

Hey, sorry for necroposting but I had a question.

Is there currently any implementation of how to create interior walls simply, also, how could I go about creating a two-story house, without all walls being two-stories?