Luau Visual Scripting App DevLog 2

v0.0.1-beta
Check out the previous DevLog here.

A lot of progress in the last 2 days. First I updated the design of the nodes a little bit and added node selection so clicking on a node selects it.

image

You’ll also notice nodes can now have a blue input & output. This is called a trigger node and it allows you to control the flow at which things execute rather than leaving the app to guess.

image

I also made the properties pane on the sidebar so you can view properties for a selected node. Some inputs can be edited here while others can’t. For example, a number input can be directly set but a player cannot and must be passed in from another node (such as a PlayerAdded event node).

image

Something else worth noting is that I implemented recursive state propagation. What this means is that the state of outputs & inputs will flow from connections across nodes at run time so you can see values change as you edit.

image

While these new features are nice I’ve hit a bit of a roadblock. Originally I was going to recreate the entire Roblox API in JS by hand. For example:

class Instance {
    this.Archivable = true;
    this.Name = '';
    ...
}

class Player extends Instance {
    ...
}

These classes could then be used to dynamically generate nodes for their properties & methods. This was such an awful idea I can’t believe I ever thought it would work. I massively underestimated the size of the Roblox API. That said I’m now using this endpoint that provides the entire API in a JSON format. There are pros and cons to this:

  • Pros
    • I never have to update the API.
    • I save myself a week of writing the API out in JS.
  • Cons
    • The app is no longer as lightweight as originally intended since the API is much larger than expected.
    • An internet connection is now required to use the app.

I’m still working on making sense of this massive data dump into a usable state so that’s all I really have for now! If you would like to support the project and offer feedback or suggestions you can join the discord.

7 Likes

Amazing! The UIs look so good.

Is anything interactive yet? And are you going to add the script editor with the export feature like I requested?

1 Like

Yep the script editor is a planned feature for the full release although don’t expect to see it in the open beta. The export feature has always been planned and will be available upon the release of the open beta.

1 Like

I have another suggestion: User-made tutorials. Like in Lua Learning by boatbomber. Users can make tutorials, then publish them for moderator approval.

1 Like

I don’t believe in practical lua visual scripting (it’s already very straightforward and dumbing it down more won’t be useful) but I do like the idea.
This is a very interesting project and you should keep working on it.

If you want an idea on how to manage instances and functions, you should take a look at how blender manages their nodes.

They have a bunch of input and output values that you can stick into more nodes

Here’s my really bad mockup of what I think it could look like
image

1 Like

Even if the cons are a bit depressing, I believe it isn’t as bad as writing out the entire API yourself, so that’s a plus! I love the work you are doing, and it is going super smoothly by the looks of things. Good luck for the future!

1 Like

I honestly agree with you I don’t really think it’s practical but nevertheless it’s a really fun project. Also yeah my main inspiration has been from UE4 & Unity’s Bolt but Blender is good too. I had this experimental Get Property node I made that I was fidgeting around with a bit similar to how you described properties should work:

image

It’s not connected to the Roblox API yet but this is probably the route I’ll take. As for events right now they’re each their own separate node but I’ll consider having something like a Get Event node which will reduce clutter. Same for class methods. The Roblox API endpoint I’m using separates between everything really nicely. For example here’s the data for the workspace:

Notice the different MemberType attributes. There’a also one called Event that isn’t shown here but it’s all pretty well formatted. Thanks for the feedback though appreciate it.

2 Likes

~1-2 months depends on the pace I keep with development and any obstacles I run in to

1 Like