Hello developers,
Currently I’m working on a new plugin. It will be a visual scripter. The user can create script environments in which they can place nodes to create an end product.
The editor is fully done; however, now it’s time to add the nodes and of course I’m walking against an inspiration block.
Basic functionality such as “if”, “for”, “condition” nodes are already there. My question to you is, What nodes would you want in a visual scripter?
You can tell me what kind of node you would like or leave a NodeDescription like below. Under that script you will find the types required.
local TYPES = require(game.ReplicatedStorage.CustomNodes.TYPES.NODETYPES)
local NodeDescription : TYPES.NODEDESCRIPTION = {
id = "IF",
title = "If",
description = "If true else false",
categories = {
"All",
"Logic"
},
image = "rbxassetid://6035047377",
subtypes = nil,
color = Color3.fromRGB(255, 66, 66),
ins = {
["Boolean"] = {
["type"] = "Boolean",
["defaultValue"] = false
},
},
outs = {
},
pathsOut = {
"True",
"False"
},
PathInName = "In",
execute = function (self : TYPES.NODE)
if self:getInput("Boolean") then
return "True"
else
return "False"
end
end,
init = function (self : TYPES.NODE)
end,
}
return NodeDescription
export type PINDESCRIPTION = {
[string] : {
type : string,
defaultValue : any
} --- name, type
}
export type NODEDESCRIPTION = {
id : string, --- what id should your node have?
title : string, --- what display name should your node get?
description : string, --- what does the node do?
categories : {string}, --- wich categories does the node belong too?
subtypes : {string}?, --- wich subtypes are available?
image : string?, --- the icon to show on the node.
color : Color3,
ins : {PINDESCRIPTION},
outs: {PINDESCRIPTION},
pathsOut : {string},
PathInName : string?,
execute : (self : NODE) -> (),
init : (self : NODE) -> (), --- use to create objects etc.
}
export type NODE = {
continuePath : (self : NODE, name : string) -> (),
initObject : (self : NODE, name : string | Instance, id : string, parent : any) -> (Instance),
getInput : (self : NODE, name : string) -> (),
setOutput : (self : NODE, name : string, value : any) -> (),
getSubtype : (self : NODE) -> (string),
}
return true
Please understand I’m not asking for full scripts however you have the oppertunity to present your full creation. Only a simple text description of the node is also appreciated.
Here are some screenshots of the editor for people who are curious.
