Node Editor - Help with nodes

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.



image

1 Like

Instead of trying to come up with every node someone would use by just thinking about it, you should test around making random scripts, and seeing at what parts something is missing completely, or just would be more helpful if a certain one existed. Probably also hand it off to a handful of friends to widen the audience to make sure you don’t leave out edge cases because you make your scripts in a way that avoids them.
Also I’m not 100% sure this is the correct category, since there’s no actual issue and you are looking for ideas.