Beautiful Roads Plugin (Beta 0.4)

Update 0.4 Changelog: Beautiful Roads Plugin (Beta 0.4)

Some time in the past few months, I noticed that while many road plugins on Roblox exist, most are hard to use, inefficient, or not very versatile. I’ve been developing my own plugin over the past few days to help fix this!

My plugin features include:

  • a versatile node-based editor that allows you to easily manipulate the road
  • visual line editor with many common presets, as well as the ability to create your own custom lines
  • road types editor allows you to create your own road types using custom textures, materials, and colors
    • included presets are asphalt and concrete
  • customize the render by adjusting segment length, road thickness, and line thickness in the render config settings

Tutorial series:

The plugin:

Support Discord:

Features I plan for the future include

  • road marking tools
  • including road features such as sidewalks, curbs, highway walls
  • better road geometry tools for splitting segments, inserting nodes, etc.
  • multiple LODs based on user graphics settings (this will require some in scripts in game down the line)



Kind of cool that someone else made a road plugin, since there was one a couple years ago but it’s a bit buggy, but what you made is very smooth, easy to create and adjust! Nice job! :+1:


The UI is a bit clunky, but the smooth curves, even on an elevated slope, are exactly what I’ve been looking for for years. Thank you so much!

I would suggest moving the “lane creator” UI into its own widget that can be docked into the rest of the Studio UI instead of taking up viewport space, though.


If I would have to pay 1k+ robux for this, I would gladly pay because of just how useful this is thanks a lot for this plugin.


When I click render nothing actually happens, just get this output

My setup:

When I click it again I get the exact same output as before


Are you able to recreate this bug?
The plugin only renders lanes it’s detected changes in, but the first render always renders every lane. Reopening the place should fix it for now.

1 Like

Yeah, every time I click the button. I followed your tutorial and the render button did nothing. I’ll try again tomorrow. This was just in a base plate and not in an actual saved place.

1 Like

Out of interest, how are the curves calculated? Is it a quadratic bezier curve using the intercepts of the nodes?

Also, unrelated, but can this handle banking/cambers? If not, that would really male the plugin perfect.

Edit: another suggestion: you should make it possible to change the level of detail in triangles so that part count can be reduced

Not sure how practical this would be, due to the part count, but very cool!


Either one works, though having it be always open prevents unnecessary jumping around of interface components. When nothing is selected, perhaps the box could just show diagnostic info or something useful.


nicely made, but not very practical in it’s current stage.
i’d suggest some sort of option as to how many triangles/sections/segments you want, along with a way to make the road textureless and the thickness there of.
also with it being automatically put into a folder and seperated within that folder into more folders is quite difficult to work with.

otherwise it’s pretty good.


I’ve been looking for a road plugin for a few weeks now, and this pops up. Amazing! Can’t wait to see the future updates.


@Sublivion @Stomer332
I will definitely add settings for level of detail changes, as mentioned in the future features list. I will also likely add an option for your game to have different LODs based on distance to the player.

I’ll give LOD settings top priority since it seems to be the main interest (understandably).


Tomorrow I’ll try to get the UI in its own widget and add an options menu for level of detail/segment length. Then I’ll start work on the road settings window for custom texture/color/material/thickness. Thanks for the great feedback! I want to make a plugin that’s useful for everyone.


As many have already stated, options to reduce the part count of the roads created would be optimal for performance. That concern notwithstanding, this is an amazing idea that I plan to use once the LOD feature is released. Thank you!



All plugin UI has been moved into its own widget, and you can now adjust the level of detail by clicking the “render options” button.

The options are saved on a place-by-place basis, meaning that if you if you haven’t published your place yet, you might have to apply your settings once you do publish it.

I hope this eases some peoples’ concerns over part counts! 10 stud segments are now the default value (previously it was 4), and the plugin will make dashed lines as close to 10 studs long as possible depending on whatever value you give it. For example, if you set the segment length to 5 studs, each dashed line would take up 2 segments.


It worked, but when I tried it a second time it says it’s rendering but it dosen’t. And it says in the console:
16 lanes found
16 lane gruops made
0 lane groups remaining.


It only renders the lanes that have had changes made to them. Each time you open the place, the first render will render everything, but after that, changes and new lanes are tracked.
Is it not rendering new lanes you’re creating? Or are all the lanes there?

1 Like

Making a change to the render settings should also cause every lane to re-render.

1 Like

Great work! Keep it up :slight_smile: