Releases: Program132/BlueprintRobloxEditor
V1.2: Math, String, Booleans
Issues fixed
Math
math lib nodes added, source: Lua - Math Library
1 math.abs(x)
Returns the absolute value of x.
2 math.acos(x)
Returns the arc cosine of x (in radians).
3 math.asin(x)
Returns the arc sine of x (in radians).
4 math.atan(x)
Returns the arc tangent of x (in radians).
5 math.atan2(y, x)
Returns the arc tangent of y/x (in radians), but uses the signs of both parameters to find the quadrant of the result. (It also handles correctly the case of x being zero.)
6 math.ceil(x)
Returns the smallest integer larger than or equal to x.
7 math.cos(x)
Returns the cosine of x (assumed to be in radians).
8 math.cosh(x)
Returns the hyperbolic cosine of x.
9 math.deg(x)
Returns the angle x (given in radians) in degrees.
10 math.exp(x)
Returns the value e power x.
11 math.floor(x)
Returns the largest integer smaller than or equal to x.
12 math.fmod(x, y)
Returns the remainder of the division of x by y that rounds the quotient towards zero.
13 math.frexp(x)
Returns m and e such that x = m2e, e is an integer and the absolute value of m is in the range [0.5, 1) (or zero when x is zero).
14 math.huge
The value HUGE_VAL, a value larger than or equal to any other numerical value.
15 math.ldexp(m, e)
Returns m2e (e should be an integer).
16 math.log(x)
Returns the natural logarithm of x.
17 math.log10(x)
Returns the base-10 logarithm of x.
18 math.max(x, ...)
Returns the maximum value among its arguments.
19 math.min(x, ...)
Returns the minimum value among its arguments.
20 math.modf(x)
Returns two numbers, the integral part of x and the fractional part of x.
21 math.pi
The value of pi.
22 math.pow(x, y)
Returns xy. (You can also use the expression x^y to compute this value.)
23 math.rad(x)
Returns the angle x (given in degrees) in radians.
24 math.random([m [, n]])
When called without arguments, returns a uniform pseudo-random real number in the range [0,1). When called with an integer number m, returns a uniform pseudo-random integer in the range [1, m]. When called with two integer numbers m and n, returns a uniform pseudo-random integer in the range [m, n].
25 math.randomseed(x)
Sets x as the "seed" for the pseudo-random generator: equal seeds produce equal sequences of numbers.
26 math.sin(x)
Returns the sine of x (assumed to be in radians).
27 math.sinh(x)
Returns the hyperbolic sine of x.
28 math.sqrt(x)
Returns the square root of x. (You can also use the expression x^0.5 to compute this value.)
29 math.tan(x)
Returns the tangent of x (assumed to be in radians).
30 math.tanh(x)
Returns the hyperbolic tangent of x.
String
string lib nodes added, source: string | Documentation
1 string.byte(s, i, j)
Returns the internal numerical codes of the characters s[i], s[i+1], ..., s[j].
2 string.char(...)
Receives zero or more integers and returns a string with length equal to the number of arguments, where each character has the internal numerical code equal to its corresponding argument.
3 string.find(s, pattern, init, plain)
Searches for the first occurrence of the pattern in the string s and returns the start and end indices of the match.
4 string.format(formatstring, ...)
Returns a formatted version of its variable number of arguments following the description given in its first argument.
5 string.gsub(s, pattern, repl, n)
Returns a copy of s in which all (or the first n) occurrences of the pattern have been replaced by the given replacement.
6 string.len(s)
Returns the length of a string.
7 string.lower(s)
Returns a copy of a string in which all uppercase letters are changed to lowercase.
8 string.match(s, pattern, init)
Searches for the first match of the pattern in the string s. If it finds one, then match returns the captures from the pattern; otherwise it returns nil.
9 string.rep(s, n)
Returns a string that is the concatenation of n copies of the string s.
10 string.reverse(s)
Returns a string that is the string s reversed.
11 string.split(s, separator)
Splits a string into parts based on defined separator characters, returning an ordered table of results.
12 string.sub(s, i, j)
Returns the substring of s that starts at i and continues until j.
13 string.upper(s)
Returns a copy of a string in which all lowercase letters are changed to uppercase.
Boolean
boolean logic nodes added
1 A and B
Returns true if both A and B are true. If A is false, returns A; otherwise returns B.
2 A or B
Returns true if either A or B is true. If A is true, returns A; otherwise returns B.
3 not A
Returns the opposite boolean value of A. If A is true, returns false; if A is false, returns true.
4 A == B
Returns true if A is exactly equal to B.
5 A ~= B
Returns true if A is not equal to B.
6 A > B
Returns true if A is strictly greater than B.
7 A >= B
Returns true if A is greater than or equal to B.
8 A < B
Returns true if A is strictly less than B.
9 A <= B
Returns true if A is less than or equal to B.
Example

V1.1 : A new start !
BRE is a visual, blueprint-style programming environment (inspired by Unreal Engine) for Roblox. It allows you to create complex systems without writing a single line of code, while generating Luau code in the background.
Moving from a web application to a Studio plugin eliminates the friction between design and testing. Developers can now prototype their game mechanics in blueprints and see them run immediately in their game, all while benefiting from the power of Roblox's scripting engine.
NOTE: There are very few nodes... but you can create them yourself ;)
V1.0: For in ipairs/pairs, new events, Local Player and more !
News
New statement nodes:
For in pairsFor in ipairs
New nodes from Color3:
newfromHSVfromRGB
New nodes from BrickColor:
NewRandomTo RGB
New enums nodes:
EasingDirectionEasingStyle
New nodes for TweenService:
TweenInfo.newCreateCancelPlay
New nodes for Local Player & Humanoid:
Get Local PlayerGet CharacterGet HumanoidGet Humanoid StateHumanoid Take DamageGet Humanoid State
UDim2 nodes:
UDim2.newUDim2.fromScaleUDim2.fromOffset
New nodes for RemoteEvents:
FireClientFireServer
New events:
Died(Humanoid)HealthChanged(Humanoid)StateChanged(Humanoid)ChildAddedChildRemovedChanged(Instance, when a property is updated)OnServerEventOnServerInvoke
Example
For In
Color3
Tweens
Player & Humanoid
ChildAdded
Remote Events
Kill Brick Example
{
"version": "2.0",
"scripts": [
{
"id": "script-1763990649166",
"name": "Main",
"nodes": [
{
"id": "node-1763990657293",
"name": "touched",
"type": "EVENT",
"x": 49,
"y": 350.609,
"inputs": {}
},
{
"id": "node-1763990664191",
"name": "getproperty",
"type": "FUNCTION",
"x": -290,
"y": 528.609,
"inputs": {
"PropertyName": "Parent"
}
},
{
"id": "node-1763990677640",
"name": "isa",
"type": "FUNCTION",
"x": 50,
"y": 543.609,
"inputs": {
"className": "Player"
}
},
{
"id": "node-1763990729292",
"name": "if",
"type": "METHOD",
"x": 398,
"y": 353.609,
"inputs": {}
},
{
"id": "node-1763990762539",
"name": "start",
"type": "EVENT",
"x": -34,
"y": 45.609,
"inputs": {}
},
{
"id": "node-1763990772704",
"name": "set",
"type": "METHOD",
"x": 643.565,
"y": 60.063,
"inputs": {
"name": "part"
}
},
{
"id": "node-1763990776970",
"name": "get",
"type": "FUNCTION",
"x": -279.842,
"y": 382.291,
"inputs": {
"name": "part"
}
},
{
"id": "node-1763990789907",
"name": "getservice",
"type": "FUNCTION",
"x": -139,
"y": 183.609,
"inputs": {
"ServiceName": "Workspace"
}
},
{
"id": "node-1763990796596",
"name": "findfirstchild",
"type": "FUNCTION",
"x": 242,
"y": 164.609,
"inputs": {
"childName": "Part"
}
},
{
"id": "node-1763990843329",
"name": "takedamage",
"type": "METHOD",
"x": 901,
"y": 388.609,
"inputs": {
"damage": "100"
}
},
{
"id": "node-1763990869957",
"name": "set",
"type": "METHOD",
"x": 630.223,
"y": 367.379,
"inputs": {
"name": "plr"
}
},
{
"id": "node-1763990883426",
"name": "gethumanoid",
"type": "FUNCTION",
"x": 626,
"y": 697.609,
"inputs": {}
},
{
"id": "node-1763990901047",
"name": "getcharacter",
"type": "FUNCTION",
"x": 291,
"y": 697.609,
"inputs": {}
},
{
"id": "node-1763990918423",
"name": "get",
"type": "FUNCTION",
"x": -47.79,
"y": 696.487,
"inputs": {
"name": "plr"
}
},
{
"id": "node-1763991061488",
"name": "getproperty",
"type": "FUNCTION",
"x": 415,
"y": 559.609,
"inputs": {
"PropertyName": "Parent"
}
}
],
"connections": [
{
"fromNode": "node-1763990657293",
"fromPort": "otherPart",
"toNode": "node-1763990664191",
"toPort": "instance",
"type": "data"
},
{
"fromNode": "node-1763990664191",
"fromPort": "value",
"toNode": "node-1763990677640",
"toPort": "instance",
"type": "data"
},
{
"fromNode": "node-1763990677640",
"fromPort": "result",
"toNode": "node-1763990729292",
"toPort": "condition",
"type": "data"
},
{
"fromNode": "node-1763990657293",
"fromPort": "ExecOut",
"toNode": "node-1763990729292",
"toPort": "ExecIn",
"type": "exec"
},
{
"fromNode": "node-1763990762539",
"fromPort": "ExecOut",
"toNode": "node-1763990772704",
"toPort": "ExecIn",
"type": "exec"
},
{
"fromNode": "node-1763990776970",
"fromPort": "value",
"toNode": "node-1763990657293",
"toPort": "instance",
"type": "data"
},
{
"fromNode": "node-1763990789907",
"fromPort": "service",
"toNode": "node-1763990796596",
"toPort": "instance",
"type": "data"
},
{
"fromNode": "node-1763990796596",
"fromPort": "child",
"toNode": "node-1763990772704",
"toPort": "value",
"type": "data"
},
{
"fromNode": "node-176399072...V0.9: 3D Positioning, Enums & Game Loop
Issues Solved / Fixs
Enums - New type for nodes @Program132
News
New node type to create custom enums:
{
"type": "ENUM",
"title": "Enum title",
"color": [200,200,200],
"inputs": {
"input_name": {
"defaultValue": "default_input_value"
"values": [
"value1",
"value2",
"value3"
]
}
},
"outputs": [
"output_name"
]
}Enums added:
MaterialHumanoidStateType
Moreover, you can add a description to your nodes :
{
"type": "FUNCTION",
"title": "Node",
"description": "My description",
"inputs": {
"from": {
"defaultValue": ""
},
"to": {
"defaultValue": ""
}
},
"outputs": [
"Output 1"
]
}New nodes about Vector3 :
Builder: create an Vector3 from x,y,z.Add: addition of two vectorsSub: substraction of two vectorsMul: multiplication of two vectorsDiv: division of two vectorsGet Vector3 Components: Get x,y,z from a vec3
Added CFrame nodes:
- CFrame Builder (
CFrame.new) - CFrame Angles (
CFrame.Angles) - CFrame Look At (
CFrame.lookAt) - Ge CFrame Position (
cframe.Position)
Added async nodes:
task.waittask.defertask.delaytask.spawn
Added two events (from BasePart):
TouchedTouchEndedRenderSteppedfrom RunServiceHeartbeatfrom RunService
Example
Enum Type
Vector3
CFrame
Touched event

V0.8 : Instance, GetService, Find Child and more !
Issues / Fixs
Due to a lot of problem with String, I decided to remove the automatic detection of values type, it means now you have to put " yourself or you can use the String node.
News
New node "Instance New" : you can create instance from Roblox Studio like :
PartModel- etc.
Make sure to specify the classname (part, model etc.) and the parent.
New node "Get Service" : you can call services from Roblox like Workspace, ReplicatedStorage, ServerScriptService and more !
New nodes to get & set a property of an instance, like get / set the name of a part !
New nodes to find a child from an instance (FindFirstChild, FindFirstChildOfClass, FindFirstChildWhichIsA, WaitForChild), I added as well IsA which return a boolean.
New async nodes:
task.waittask.delaytask.defertask.spawn
New events :
InputBeganInputEnded
New enums:
KeyCodeUserInputType
Example

V0.7: Rework + new nodes !
I reworked the backend system to address new issues I was facing, such as handling multiple events and enabling the creation of custom functions.
By the way, you can now have more than one “script”/graph in your project!
News
Fixs / Issues solved
Rework backend + new elements about frontend @Program132
Format
Make sure to follow the format, now title is mandatory !
{
"type": "METHOD",
"title": "My Custom Node",
"inputs": {
"input_name": {
"defaultValue": "default_input_value"
}
},
"outputs": [
"output_name"
]
}You can set the color of you node by the way:
{
"type": "METHOD",
"title": "My Custom Node",
"color": [255,23,56],
"inputs": {
"input_name": {
"defaultValue": "default_input_value"
}
},
"outputs": [
"output_name"
]
}Table (Arrays + Dict)
You can create arrays using table nodes:
Construct Tablereturn an empty arrayTable Insertinsert the element given in the arrayTable Lengthreturn the length of the array
You can create dict using table nodes:
Construct Tablereturn an empty dictTable SETinsert the element given in the dict, with the key givenTable Lengthreturn the length of the dictTable GETreturn the value of the key given
Events
Two events got added:
PlayerAddedCharacterAdded(from PlayerAdded)
Variables
GET node got an update, now it's a FUNCTION node, not METHOD.
General
Added two more nodes:
warn: like print but for warningserror: like print but for errors
Values nodes (can use them to specifiy the real value if you want to simulate):
- string
- int
- number
- boolean
Example

V0.5 : If, while, for and much more :) !
News
New node "IF":
- Take one condition (as boolean) in inputs
- Return 3 EXEC output: when the conditon is true, when the condition is false (else) and when the "if node is over" (next to end)
New node "WHILE":
- Take one condition as input
- Return 2 EXEC: one about the loop body, last one once the condition is true (next to end)
New node "FOR" (Range):
- Take one variable (only the name, not a variable you created) as input
- Take number for start
- Take number for end
- Take number for step
New nodes to convert:
- tonumber
- tostring
New nodes about booleans:
andnot<=>===~=<>
New way to create custom statement (it's if definition):
{
"color": [200,200,200],
"type": "METHOD",
"inputs": {
"condition": {
"defaultValue": "true"
}
},
"outputs": [],
"exec": ["True", "False", "Continue"]
}Example
if
while
for (range)
Next updates
- Arrays & Dict
- Custom function
- Multiple scripts
- Custom events (from Roblox)
V0.2: Fixs and more nodes about math & string
Fixs
News
New Math nodes (from math lib):
- arctangent2
- ceiling
- degree
- extract mantissa & exponent
- floating point remainder
- floor
- load exponent
- log10
- min
- max
- modulo fractional
- pi
- positive infinity (highest value)
- power
- radians
- random seed
New String nodes (from string lib):
- concat
- upper
- lower
- length
- byte
- char
- reverse
- find
- repeat
- replace
New format, you can now set the "title" of the node:
{
"title": "sqrt",
"type": "FUNCTION",
"inputs": {
"a": {
"defaultValue": "0"
}
},
"outputs": ["result"]
}Example

V0.15: Fixs and more nodes !
Fixs
New
New nodes:
- Add renamed Addition
- Subtraction
- Multiplication
- Division
- Squareroot
- Logarithm
- Exponential
- Cos
- Sin
- Tan
- Cosh
- Sinh
- Tanh
- Arcos
- Arcsin
- Arctan
- Absolute (abs)
New format to follow to create your own nodes (color is not mandatory, you can remove it):
{
"color": [255,255,255],
"type": "METHOD",
"inputs": {
"node_name": {
"defaultValue": "<default value>"
}
},
"outputs": [
"output_name"
]
}Variables:
- Can be saved in you project file (.json) when you're clicking on the button "Save".
- Can be loaded from a .json file.
- SET node to update the value
- GET node to get the value
Example

V0.1 : BRE Start
The BRE project arrives with its first official version! Featuring a new system and new methods for programming in Blueprint, for "transforming" into Luau, and a very important element, an editor, in this case a web application.
Additions
- New method to convert from Blueprint to Luau
- Editor available on a website
- START node
- PRINT node
- ADD node
Removals
- Old backend system for coding in Blueprint, replaced by a simpler and more efficient one
- Nodes were not defined in JSON format
Upcoming Changes
- Addition of blocks for variables
- Basic blocks, such as those for math, strings, etc.


