The visual scripting plugin | EventBlocks! [Most popular!]

Oooo this is really cool, are you also going to add metatables? I’d also like to see the ability to use coroutines. Currently it’s difficult for a script to change a descendant of the object that the script is inside (same also goes for ancestors) Some other useful things that should be added: Raycasting, Spatial Query, I couldn’t find an “if-else block” and also no “if-elseif block” so those would be great too, CFrame and being able to do operations on them, Lerping, a “for index = x, y, z do” loop so you can keep track of the index instead of using a repeat block and making another variable and keeping track of the index that way. Also, module scripts!

I know those are lot of feature requests but they are very useful. I am very bad at scripting with visual blocks compared to text based coding but I still like this plugin!

Module scripts might be complicated to make because of “return” but they are also pretty important when making games. A “return-block” isn’t possible in scratch but if you change the way blocks work a little then it might work. Let’s say that I add 3 to some value that i want from a function and then set a variable to the sum of that. I would do: SetValue(MyValueName, ( 3 + run(MyFunctionName) ) ). MyValueName is just the name of the value i want to set and MyFunctionName is the name of the function i want to run. “run” could be a new code block that fires a new “function-block” and then returns some value, just like normal lua. If the function has parameters then it would look like this: SetValue(MyValueName, ( 3 + run(MyFunctionName, SomeParameter, SomeParameter, …) ) ). I know that broadcast message exists but it doesn’t have parameters.

1 Like

Marketplace Update 2!

If you want to see these blocks, you need to remove(if already added) and add marketplace category to your script!
To remove a category, click on the category you’ve already added!

I’ve added ways to check if the player actually bought/owns things.

This screenshot id from the documentation, feel free to read.
These blocks were highly requested and now I’ve added them.

4 Likes

Now this seems great, I wonder why Roblox didn’t already have this as a feature of Roblox Studio.

There already exists “Blockly” by Google that translates to Lua and a few other languages.

Now I have a few good suggestions if it isn’t a thing already.

  • Type-safety / type-locking.
  • Option to create a template module script that uses metatables to create a Lua class.
    (Optionally: a way to inherit from existing metatable objects.)
    Great for reusability so you don’t end up copy-pasting scripts into models and parts.
4 Likes

How are you supposed to debug code with this? Just asking.

2 Likes

Well that’s the downside. I haven’t figure out a good way for debugging yet. But if you have any ideas, it would be appreciated!

2 Likes

Maybe you could add scratch’s custom block feature.

Keep up the good work!

1 Like

After trying some things out in this plugin, I’ve stumbled upon some things.

  • It’s not immediately clear how to create something as simple as a local variable.
    I had to use the Lua block to write local x = 5.

  • Clicking a different object and then selecting a script again sometimes deletes all contents of said script.

  • Plugin is limited to scripts and local scripts, no way to require() module scripts either.

  • No easy/straight forward way to access object properties?
    Not expecting a auto-correct or anything but being able to access a part’s color, size, position would be neat.

  • Can’t make functions unless it’s tied to an event?

  • There is currently no way to open a script not made with this plugin, although this is understandable as you’d have to “decompile” Lua into blocks.

Decompiling/translating Lua into blocks will probably be very tricky, but if you want to implement this I have a little tip perhaps.

For lines of Lua code that cannot be translated to blocks yet
(e.g. doesn’t recognize things as valid blocks or blocks don’t exist yet)
you could have it translate to custom Lua blocks instead until the missing features have been implemented.

I’d love to be able to open existing scripts in block format, this will probably also help newbies with understanding free model scripts.

I may expand this list if I find more things about the plugin that I’d like to make notes on.
So far I think it’s great though and I’d love to see it develop further.
It kinda reminds me of Unreal Engine’s blueprints which allow for easily scripting in a visual way.

3 Likes

Small update!

Hello!
I’ve made a very small update, it’s just a remove button to make it clear how to remove.
When you are dragging a block a little remove icon appears:

If you hover over it while dragging your block and you release it, the block will get removed.

That’s it! I hope I can add new blocks soon.
Have a great day!

4 Likes

Bug fix

I’ve fixed two bugs.
There was a bug with the object block when selecting workspace from a local script.
I’ve fixed documentation not working with block that are in the script.

2 Likes

Update!

Closable block palette!
Normal mode:


Small mode:

Good for smaller displays and for bigger scripts.
Have a great day, hope you like it!

4 Likes

Small update!

2 new blocks in ‘Actions’!
image
They are documented, also they are pretty straight forward.

Have a great day!

5 Likes

Even though I wouldn’t use it myself, I think this is a great way for beginners to start making their own games!

This is a pretty beginner-friendly way for making simple games and it’s really easy to use!

This is great for beginners to learn how to program. Thanks for the contribution to the community.

Rough Product Currently

The UI doesn’t often update correctly via having for example my string value ‘BrickColor’ hidden behind my object when entered beforehand.

Now I also encountered a larger problem of my own, I attempted to do the random BrickColor activated when Humanoid (i.e. me) touches the ball. This doesn’t happen; however, my print(“Script Activated”) still works. The error occurs when “Unable to assign property BrickColor. BrickColor expected, got number”. I’m fairly certain this isn’t the expected result from your Plugin.
Edit: I’ve tried multiple other ways around this, like simply trying to set the color3 to a nonrandom number; and I’ve also just tried to use a simple string/value and call it ‘Red’. None of these worked either.

V The Script Generated V

coroutine.wrap(function()
EB_touchingHumanoid = nil
if script.Parent:IsA("BasePart") then
	script.Parent.Touched:Connect(function(EB_part)
	EB_touchingPart = EB_part
	local player = game.Players:GetPlayerFromCharacter(EB_part.Parent)
	if player then
		EB_touchingHumanoid = EB_part.Parent
		print((tostring([[Script Activated]])))
while true do
task.wait()
if script.Parent then
	script.Parent[(tostring([[BrickColor]]))] = Color3.fromRGB(tonumber(math.random(tonumber((tonumber(0))), tonumber((tonumber(255))))), tonumber(math.random(tonumber((tonumber(0))), tonumber((tonumber(255))))), tonumber(math.random(tonumber((tonumber(0))), tonumber((tonumber(255))))))
end
task.wait(tonumber((tonumber(0.1))))

end

	end
end)
end
end)()

But the concept of this plugin is great, it is very intuitive and will certainly help in paving the way for new developers. I just hope that the bugs and kinks can be ironed out.

1 Like

Yeah, there are no BrickColors at the moment. Just change the Color proprty to a color 3 value.
About the visual bugs, I’m fixing them time to time but I focus on main features first.

6 Likes

The plugin looks great, although sometimes buggy. I would only recommend this as a temporary tool to get introduced to programming, and the great part is that it is only 50 robux. It gets updated very regularly too. I would only consider this temporary as a learning tool though as it does have many limitations and the plugin still has a long way to go to being finished.

One thing I would not recommend is joining the Discord server as the owner cherry picks punishments, I got timed out for 7 days with the reason being that I was “rude” or something, yet he continuously lets under 13’s on his Discord server (knowingly) and also allows N@zi videos, along with a bunch of smaller things like spamming. (I censored out all the symbols as I’m not sure whether or not I can allow images of this sort)
image

1 Like

Hello!
Yeah, the plugin is in a very early stage and has some limitations. I’m working hard on it and doing my best to make it suitable for everyone.

I’m punishing people who brake the rules.

You’ve got timed out for being disrespectful. I’ve banned all people who are under 13 I don’t know what are you talking about.

Sorry for not moderating the server 24/7. Just report things like that and I’ll make sure it gets removed and the person gets punished.

2 Likes

Only recently, I remember sending a screenshot of a user admitting that he is under 13 around a month ago, yet he stayed in the server up until I sent the report.