From b1ec23e3579b1528e6e7eb12f5c9f89793b5390e Mon Sep 17 00:00:00 2001 From: alyx Date: Tue, 31 May 2022 15:15:17 +0000 Subject: moved some stuff around, updated circuitsv2.json, linked the grapher from the searcher --- .replit | 52 + README.md | 2 +- chipBehavior.js | 82 - chips.css | 218 --- chips.js | 95 -- circuitsv2.json | 4406 ++++++++++++++++++++++++++++++++++++--------------- grapher/index.html | 20 +- index.html | 155 +- lib/chipBehavior.js | 82 + lib/chips.css | 218 +++ lib/chips.js | 95 ++ lib/util.js | 5 + replit.nix | 6 + script.js | 267 ---- searcher/index.html | 150 ++ searcher/script.js | 270 ++++ searcher/style.css | 237 +++ style.css | 237 --- util.js | 5 - 19 files changed, 4290 insertions(+), 2312 deletions(-) create mode 100644 .replit delete mode 100644 chipBehavior.js delete mode 100644 chips.css delete mode 100644 chips.js create mode 100644 lib/chipBehavior.js create mode 100644 lib/chips.css create mode 100644 lib/chips.js create mode 100644 lib/util.js create mode 100644 replit.nix delete mode 100644 script.js create mode 100644 searcher/index.html create mode 100644 searcher/script.js create mode 100644 searcher/style.css delete mode 100644 style.css delete mode 100644 util.js diff --git a/.replit b/.replit new file mode 100644 index 0000000..2a1258e --- /dev/null +++ b/.replit @@ -0,0 +1,52 @@ +hidden=[".config"] + +[nix] +channel = "stable-21_11" + +[languages.html] +pattern = "**/*.html" + [languages.html.languageServer] + start = ["vscode-html-language-server", "--stdio"] + [languages.html.languageServer.initializationOptions] + provideFormatter = true + [languages.html.languageServer.configuration.html] + customData = [ ] + autoCreateQuotes = true + autoClosingTags = true + mirrorCursorOnMatchingTag = false + + [languages.html.languageServer.configuration.html.completion] + attributeDefaultValue = "doublequotes" + + [languages.html.languageServer.configuration.html.format] + enable = true + wrapLineLength = 120 + unformatted = "wbr" + contentUnformatted = "pre,code,textarea" + indentInnerHtml = false + preserveNewLines = true + indentHandlebars = false + endWithNewline = false + extraLiners = "head, body, /html" + wrapAttributes = "auto" + templating = false + unformattedContentDelimiter = "" + + [languages.html.languageServer.configuration.html.suggest] + html5 = true + + [languages.html.languageServer.configuration.html.validate] + scripts = true + styles = true + + [languages.html.languageServer.configuration.html.hover] + documentation = true + references = true + + [languages.html.languageServer.configuration.html.trace] + server = "off" + +[languages.javascript] +pattern = "**/{*.js,*.jsx,*.ts,*.tsx,*.mjs,*.cjs}" + [languages.javascript.languageServer] + start = ["typescript-language-server", "--stdio"] \ No newline at end of file diff --git a/README.md b/README.md index f3ddf65..a7eef03 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # CV2 Utilities -## by `@✨Aleteoryx, Keeper of Names✨#1027`/@winrg +## by `@✨Aleteoryx, Keeper of Names✨#1027` / [@winrg](https://rec.net/user/winrg) I get bored sometimes, so I've been making these little tools for CV2 creators and people in #circuits-v2-help. diff --git a/chipBehavior.js b/chipBehavior.js deleted file mode 100644 index 04c500b..0000000 --- a/chipBehavior.js +++ /dev/null @@ -1,82 +0,0 @@ -/* - Big object of code for each stateless chip. Each takes in (array<{type: String, value:any}>, {String:String}) - ^Ports^ ^typeoverrides^ - and returns an array or false. - int: bigint - float: number - bool: boolean - string: string - vector3: {x:number,y:number,z:number} - Player: Object ----------| These two have no meaning right now. null and undefined are invalid, everything else is valid. - Rec Room Object: Object -| -*/ -function dtr (n) {return n / 360 * Math.PI * 2} -function rtd (n) {return n / (Math.PI * 2) * 360} -const SchipBehaviors = { - //basic maths - "98b99011-9be8-43b3-89cc-1e9d55bd8b51": ([{value}], {T}) => { //abs - switch (T) { - case 'float': - return [Math.abs(value)] - break; - case 'int': - return [value < 0 ? value * -1n : value] - break; - default: - return false; - break; - } - }, - "0ccb153c-dd08-4f22-80fd-9d8c5940928c": (values, {T}) => { //add - switch(T) { - case 'int': - case 'float': - return [values.reduce((a,b) => a+b, 0)]; - break; - case 'Vector3': - return [values.reduce((a,b) => ({x:a.x+b.x,y:a.y+b.y,y:a.z+b.z}), {x:0,y:0,z:0})] - break; - default: - return false; - break; - } - }, - - //logic - "3fb9fd93-8d45-4395-b9a3-63a99a14442b": (values) => [values.reduce((a,{value:b}) => a && b, true)], //and - "b5dcded0-eb2b-468d-a4b9-ffb1054f6214": (values) => [values.reduce((a,{value:b}) => a || b, false)], //or - "ff551243-beb4-470e-ab48-9d616818d5e4": ([{value}]) => [!value], //not - "3663225d-e18d-40e6-a234-ef10378528be": ([{value:a},{value:b}]) => [a==b], //equals - "110c29b1-ac90-4a71-b3c0-53372aa134bc": ([{value:a},{value:b}]) => [a>b], //greater - "a10e7788-f016-4390-a68e-87d93b47edb1": ([{value:a},{value:b}]) => [a>=b], //greater equal - "7e58b3f4-2694-4ced-b3a8-0fe23f48f60f": ([{value:a},{value:b}]) => [a [a<=b], //less equal - - //trig - "46ce50b8-0a20-43d2-9646-484ce2a6752c": ([{value}]) => [rtd(Math.acos(dtr(value)))], - "aaa4e58f-16df-426a-b7a7-a654eab97037": ([{value}]) => [rtd(Math.asin(dtr(value)))], - "02d62908-550d-4f8b-8bc7-0960fb1b547f": ([{value:a},{value:b}]) => [rtd(Math.atan2(dtr(a),dtr(b)))], - "84646ed2-015e-4a8b-9d37-5115cb9ebadc": ([{value}]) => [rtd(Math.atan(dtr(value)))], - - //string - "77afc9dd-baa9-4312-b8b8-7ef479c840e6": ([{value:fmt}, ...props]) => - [props.reduce((p, {value:c}, i) => - p.replaceAll(`{${i}}`, c), - fmt)], - "aa24edab-c707-4cff-8c73-07e479b4cd07": ([{value:str}, {value:seq}]) => [Boolean(str.search(seq) != -1)], - "dcde9345-00f2-41fb-9a2d-5a938f39bfb5": ([{value:str}]) => [str.length], - "ad169649-1050-48c5-a540-f03a2059bcdb": ([{value:str}, {value:del}]) => [str.split(del)], - "6b92c345-e6bc-40d9-aae9-4754e634777c": ([{value:str}, {value:idx}]) => [[str.slice(0, idx), str.slice(idx)]], - "1af21999-38f8-4231-9de9-26b43f47fe0d": ([{value:str}, {value:seq}]) => [str.search(seq)], - "678f6d33-1e94-4be6-b959-0212c1a2207f": ([{value:str}]) => [str.toLowerCase()], - "8f5995c7-5af0-4064-9cb7-2b80d75d157f": ([{value:str}]) => [str.toUpperCase()], -} - -/* - Big object of code for each stateful(exec-having) chip. - "ReadonlyName": "String -*/ -const EchipBehaviors = { - -} -module.exports = SchipBehaviors; \ No newline at end of file diff --git a/chips.css b/chips.css deleted file mode 100644 index 12a3704..0000000 --- a/chips.css +++ /dev/null @@ -1,218 +0,0 @@ -/* -Hello! This is a big fat CSS file for rendering CV2 chips, maintained -by Aleteoryx. If you need help, ask around for me in the #circuits-v2 -discord channel, or just ping me if you want. (Not too much!) - -To render a chip, create a .chip
. Inside it, put -.chipheader, .input, and .output divs. In the header, simply put -your chip's name. Then, in the input and output divs, add divs -with your chip's ports and types. -.bool, .int, .float, .string, .exec, and .special are all supported. - -A finished chip should look something like this: - -
-
If
-
-
-
Condition
-
-
-
Then
-
Else
-
-
- -Currently, only regular chips are supported, though this will change -soon! -*/ -@import url('https://fonts.googleapis.com/css2?family=Roboto&display=swap'); - -@media (orientation: portrait) { - body { - --chip-scale: 6vw; - } -} -@media (orientation: landscape) { - body { - --chip-scale: 2rem; - } -} - -body { - /*chip bit colors*/ - --color-top: hsl(300,1%,32%); - --color-bottom: hsl(300,0%,50%); - - /*port colors*/ - --color-float: hsl(215, 80%, 48%); - --color-int: hsl(133,73%,23%); - --color-exec: hsl(18,92%,53%); - --color-string: hsl(290,33%,39%); - --color-bool: hsl(349,82%,55%); - --color-any: hsl(26,44%,94%); - --color-special: hsl(47,91%,54%); - - - --chipOffsetX: 0; - --chipOffsetY: 0; -} - -/*apply colors to classes*/ -.input > .float::before, .output > .float::after { - background-color: var(--color-float); -} -.input > .int::before, .output > .int::after { - background-color: var(--color-int); -} -.input > .exec::before, .output > .exec::after { - background-color: var(--color-exec); -} -.input > .string::before, .output > .string::after { - background-color: var(--color-string); -} -.input > .bool::before, .output > .bool::after { - background-color: var(--color-bool); -} -.input > .any::before, .output > .any::after { - background-color: var(--color-any); -} -.input > .special::before, .output > .special::after { - background-color: var(--color-special); -} - -.chip { - font-size: calc(var(--chip-scale) * .5); - font-family: 'Roboto', sans-serif; - color: white; - background-color: var(--color-bottom); - - position: relative; - display: inline-grid; - overflow: visible; - - grid-template-areas: "header header" "input output"; - - grid-gap: calc(var(--chip-scale) * .5); - margin: calc(var(--chip-scale) * 0.8); - padding: calc(var(--chip-scale) / 3); - border-radius: calc(var(--chip-scale) / 4); - min-width: 0; -} - -.input, .output { - display: inline-block; - margin-right: calc(var(--chip-scale) / 3); - margin-top: calc(var(--chip-scale) / -2); - margin-bottom: calc(var(--chip-scale) / -5); -} - -.chipheader { - margin: calc(var(--chip-scale) / -3); - margin-bottom: 0; - - padding: calc(var(--chip-scale) / 2); - text-align: center; - background-color: var(--color-top); - - border-top-left-radius: calc(var(--chip-scale) / 4); - border-top-right-radius: calc(var(--chip-scale) / 4); - - grid-area: header; - - font-size: calc(var(--chip-scale) * 0.75); - - -ms-high-contrast: white-on-black; -} - -.input { - grid-area: input; -} - -.output { - grid-area: output; - text-align: right; -} - -.type { - color: #fff0; - background-color: #0000; - position: fixed; - padding: calc(var(--chip-scale) * 0.1); - border: 0 solid #aaa0; - top: 0; - left: 0; - white-space: nowrap; -} - -:is(.exec, .float, .int, .bool, .string, .special, .any):hover + .type { - color: #fff; - background-color: #000; - border: calc(var(--chip-scale) * 0.1) solid #aaa; - z-index: 99; - top: calc(var(--mouse-y) + 10px - (var(--chipOffsetY) * 1px)); - left: calc(var(--mouse-x) + 10px - (var(--chipOffsetX) * 1px)); -} - -.input > .exec::before, -.output > .exec::after { - height: calc(.75 * var(--chip-scale)); - width: calc(1 * var(--chip-scale)); - background-color: var(--color-exec); - - clip-path: polygon(0 0, 62.5% 0, 100% 50%, 62.5% 100%, 0 100%); - top: calc(var(--chip-scale) * -0.075); -} - -:is(.exec, .float, .int, .bool, .string, .special, .any) { - margin-top: calc(var(--chip-scale) * 0.3); - margin-bottom: calc(var(--chip-scale) * 0.3); - position: relative; - clip-path: none; - overflow: visible; -} - -.input > :is(.exec, .float, .int, .bool, .string, .special, .any) { - margin-left: calc(var(--chip-scale) * 0.5); -} -.output > :is(.exec, .float, .int, .bool, .string, .special, .any) { - margin-right: calc(var(--chip-scale) * -0.05); -} - -.input > :is(.exec, .float, .int, .bool, .string, .special, .any)::before, -.output > :is(.exec, .float, .int, .bool, .string, .special, .any)::after { - position: absolute; - content: ""; - overflow: visible; -} - -.input > :is(.float, .int, .bool, .string, .special, .any)::before { - left: calc(var(--chip-scale) * -1.1); -} -.output > :is(.float, .int, .bool, .string, .special, .any)::after { - right: calc(var(--chip-scale) * -0.9); -} - -.input > .exec::before { - left: calc(var(--chip-scale) * -1.2); -} -.output > .exec::after { - right: calc(var(--chip-scale) * -1.2); -} - -.input > .list::before, -.output > .list::after { - color: black; - content: "[ ]"; - font-size: calc(var(--chip-scale) * 0.3); - display: flex; - align-content: center; - justify-content: center; -} - -.input > :is(.float, .int, .bool, .string, .special, .any)::before, -.output > :is(.float, .int, .bool, .string, .special, .any)::after { - height: calc(.5 * var(--chip-scale)); - width: calc(0.625 * var(--chip-scale)); - top: 1px; -} \ No newline at end of file diff --git a/chips.js b/chips.js deleted file mode 100644 index 0ba542e..0000000 --- a/chips.js +++ /dev/null @@ -1,95 +0,0 @@ -let root = document.documentElement; - -if (window.location.pathname != '/grapher/') - root.addEventListener("mousemove", e => { - root.style.setProperty('--mouse-x', e.clientX + "px"); - root.style.setProperty('--mouse-y', e.clientY + "px"); - }); - - -const portColors = { - float: '#186adc', - int: '#0f6522', - exec: '#f55b18', - string: '#794284', - bool: '#ea2e50', - any: '#f6eee8', - special: '#f4c61e' -} -const typeRegex = /(?:^|(?<=<))(?:int|float|bool|string|exec)(?:$|(?=>))/; -const unionRegex = /^T\d*$|(?<=List<)T\d*(?=>)/; - -function computeType(Type, TypeParams, to) { - let t = Type; - if (to) for (const o of Object.keys(to)) t = t.replace(o, to[o]); - let tc = "special" - if (typeRegex.test(t)) { - tc = t; - } else if (unionRegex.test(t)) { - let tn = t.match(unionRegex)[0]; - let ut = TypeParams[tn]; - t = t.replace(unionRegex, `${tn}: ${ut}`) - - tc = "any"; - } - return {typeclass: tc, type: t}; -} - -function generateChipHTML(NodeDescs, typeoverride = undefined) { - for (let cur of NodeDescs) { - let ins = cur.Inputs; - let outs = cur.Outputs; - - const root = newEl('div', 'chip'); - const header = newEl('div', 'chipheader'); - header.innerText = cur.Name; - const input = newEl('div', 'input'); - const output = newEl('div', 'output'); - root.append(header, input, output); - - for (const inp of ins) { - //work out the type - let {typeclass, type} = computeType(inp.ReadonlyType, cur.ReadonlyTypeParams, typeoverride); - - const port = newEl('div', typeclass); - port.innerHTML = inp.Name + " "; - if (type.includes("List")) port.classList.add("list"); - - const tooltip = newEl('div', 'type'); - tooltip.innerText = type; - - input.append(port, tooltip); - } - - for (const out of outs) { - //work out the type - let {typeclass, type} = computeType(out.ReadonlyType, cur.ReadonlyTypeParams, typeoverride); - - const port = newEl('div', typeclass); - port.innerHTML = out.Name + " "; - if (type.includes("List")) port.classList.add("list"); - - const tooltip = newEl('div', 'type'); - tooltip.innerText = type; - - output.append(port, tooltip); - } - - return root; - } - -} - -function ListAllTypes(Nodes) { - let m = new Set(); - for (const n of Object.values(Nodes)) { - for (const desc of n.NodeDescs) { - for (const td of Object.values(desc.ReadonlyTypeParams)) - if (/^[A-Za-z0-9 ]+$/.test(td)) m.add(td); - for (const port of [...desc.Inputs, ...desc.Outputs]) - if (/^[A-Za-z0-9 ]+$/.test(port.ReadonlyType) && !/^[A-Za-z]\d*$/.test(port.ReadonlyType)) m.add(port.ReadonlyType); - } - } - m.delete('any'); - return Array.from(m); -} \ No newline at end of file diff --git a/circuitsv2.json b/circuitsv2.json index eca7882..7c4e479 100644 --- a/circuitsv2.json +++ b/circuitsv2.json @@ -1,11 +1,13 @@ { "Nodes": { "98b99011-9be8-43b3-89cc-1e9d55bd8b51": { - "ReadonlyName": "Absolute Value", + "ReadonlyPaletteName": "Absolute Value", + "ReadonlyChipName": "Absolute Value", "Description": "Outputs the magnitude of the number. Is always positive.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Absolute Value", @@ -38,11 +40,13 @@ ] }, "46ce50b8-0a20-43d2-9646-484ce2a6752c": { - "ReadonlyName": "Acos", + "ReadonlyPaletteName": "Acos", + "ReadonlyChipName": "Acos", "Description": "Computes the arccosine of a number.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Acos", @@ -73,11 +77,13 @@ ] }, "d7ea08ab-aee6-43d0-99e1-54478ac3db7f": { - "ReadonlyName": "Consumable Activate", + "ReadonlyPaletteName": "Consumable Activate", + "ReadonlyChipName": "Consumable Activate", "Description": "Sets the input consumable to active. Use this to confirm a consumable used event. Can also be used independently. Displays the consumable as active in the backback and decreases the number of comsumables the player owns.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Consumable Activate", @@ -120,11 +126,13 @@ ] }, "03461631-734f-491b-ab86-6bdf66947556": { - "ReadonlyName": "Add Currency", + "ReadonlyPaletteName": "Add Currency", + "ReadonlyChipName": "Add Currency", "Description": "Adds some amount to the Player's balance of one room currency. Configure this chip to set the affected currency.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Add Currency", @@ -187,11 +195,13 @@ ] }, "0ccb153c-dd08-4f22-80fd-9d8c5940928c": { - "ReadonlyName": "Add", + "ReadonlyPaletteName": "Add", + "ReadonlyChipName": "Add", "Description": "Computes the sum of two or more inputs.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Add", @@ -230,11 +240,13 @@ ] }, "3edc785f-46ef-4f30-b101-a07126d3a370": { - "ReadonlyName": "AI Get Line of Sight Parameters", + "ReadonlyPaletteName": "AI Get Line of Sight Parameters", + "ReadonlyChipName": "AI Get Line of Sight Parameters", "Description": "Outputs the current line of sight parameters from the input AI.", "IsBetaChip": true, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "AI Get Line of Sight Parameters", @@ -280,11 +292,13 @@ ] }, "1637b250-e497-4f4a-9d5e-64206488391c": { - "ReadonlyName": "AI Get Target", + "ReadonlyPaletteName": "AI Get Target", + "ReadonlyChipName": "AI Get Target", "Description": "Outputs the current combat target of an inputted AI.", "IsBetaChip": true, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "AI Get Target", @@ -315,11 +329,13 @@ ] }, "5858a52e-54fb-4bb2-80a0-ec5fce88b3ef": { - "ReadonlyName": "AI Has Line of Sight To Target", + "ReadonlyPaletteName": "AI Has Line of Sight To Target", + "ReadonlyChipName": "AI Has Line of Sight To Target", "Description": "Outputs if the input AI has line of sight to the input target.", "IsBetaChip": true, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "AI Has Line of Sight To Target", @@ -357,11 +373,13 @@ ] }, "b5badf49-acfe-4a42-80e2-5262878e2d89": { - "ReadonlyName": "AI Look At", + "ReadonlyPaletteName": "AI Look At", + "ReadonlyChipName": "AI Look At", "Description": "Command an AI to look at the input target. If you want the AI to look in a passed in vector as a direction, set the “Look Target Is Direction” parameter to True. To make an AI stop looking, use the AI Stop Looking node.", "IsBetaChip": true, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "AI Look At", @@ -409,14 +427,16 @@ ] }, "0e92a7fb-fb38-418c-af39-9afec92112ee": { - "ReadonlyName": "AI Variable", + "ReadonlyPaletteName": "AI Variable", + "ReadonlyChipName": "AI Variable", "Description": "", "IsBetaChip": true, - "DeprecationStage": 0, - "NameSource": 1, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "Code", "NodeDescs": [ { - "Name": "Variable (AI)", + "Name": "AI Variable", "ReadonlyTypeParams": {}, "Inputs": [ { @@ -460,11 +480,13 @@ ] }, "7b05df01-d4c8-490c-9442-55aa3b4975fa": { - "ReadonlyName": "AI Path To", + "ReadonlyPaletteName": "AI Path To", + "ReadonlyChipName": "AI Path To", "Description": "Commands the AI to path to the input target destination.", "IsBetaChip": true, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "AI Path To", @@ -507,11 +529,13 @@ ] }, "c2cb2ea2-f663-4aa6-9394-3b741f6b9064": { - "ReadonlyName": "AI Rotate", + "ReadonlyPaletteName": "AI Rotate", + "ReadonlyChipName": "AI Rotate", "Description": "Commands an AI to turn an inputted number of degrees. To command the AI to back to default rotating behavior, use the AI Stop Looking node.", "IsBetaChip": true, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "AI Rotate", @@ -554,11 +578,13 @@ ] }, "02557d1f-2265-4b6d-8177-92f1802dc106": { - "ReadonlyName": "AI Set Line of Sight Parameters", + "ReadonlyPaletteName": "AI Set Line of Sight Parameters", + "ReadonlyChipName": "AI Set Line of Sight Parameters", "Description": "Sets an AI’s various LoS paramters. The “Cone” setting acts like a vision cone that sits in front of AIs like eyes, where the “Circle” setting acts like a radius around the AI. The Require LoS For Targetting parameter defines if AIs can see you through walls.", "IsBetaChip": true, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "AI Set Line of Sight Parameters", @@ -619,11 +645,13 @@ ] }, "cd85a0c7-789b-41a2-aeda-40925b73738c": { - "ReadonlyName": "AI Set Pathing Speed", + "ReadonlyPaletteName": "AI Set Pathing Speed", + "ReadonlyChipName": "AI Set Pathing Speed", "Description": "Sets the speed for an inputted AI. This same setting can be determined by configuring the AI itself.", "IsBetaChip": true, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "AI Set Pathing Speed", @@ -664,11 +692,13 @@ ] }, "6370b8d9-8c72-4e6b-a623-acb7202a3110": { - "ReadonlyName": "AI Set Patrol Point", + "ReadonlyPaletteName": "AI Set Patrol Point", + "ReadonlyChipName": "AI Set Patrol Point", "Description": "Set an AIs Path Point.", "IsBetaChip": true, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "AI Set Patrol Point", @@ -709,11 +739,13 @@ ] }, "73652899-2656-4aa4-a1b0-4de8d8e56095": { - "ReadonlyName": "AI Set Target", + "ReadonlyPaletteName": "AI Set Target", + "ReadonlyChipName": "AI Set Target", "Description": "Sets the input AI’s current target.", "IsBetaChip": true, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "AI Set Target", @@ -754,11 +786,13 @@ ] }, "b169c26e-3c2c-4058-bae7-dbbc3ee856a4": { - "ReadonlyName": "AI Start Combat Behavior", + "ReadonlyPaletteName": "AI Start Combat Behavior", + "ReadonlyChipName": "AI Start Combat Behavior", "Description": "RRO Quest AI black box. This node tells the input AI to start their C# defined combat behavior. Note: this behavior varies per AI.", "IsBetaChip": true, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "AI Start Combat Behavior", @@ -794,11 +828,13 @@ ] }, "6e244bf2-cf71-4baa-912d-3e61c7fcd1be": { - "ReadonlyName": "AI Stop Combat Behavior", + "ReadonlyPaletteName": "AI Stop Combat Behavior", + "ReadonlyChipName": "AI Stop Combat Behavior", "Description": "Tells the input AI to stop its C# defined combat behavior.", "IsBetaChip": true, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "AI Stop Combat Behavior", @@ -834,11 +870,13 @@ ] }, "f211a503-a237-41bc-875e-ae3ef62d745b": { - "ReadonlyName": "AI Stop Looking", + "ReadonlyPaletteName": "AI Stop Looking", + "ReadonlyChipName": "AI Stop Looking", "Description": "Command the input AI to cancel its current Rotate and Look At commands. Call this before telling an AI to path after having it Rotate/Look At so it rotates properly while moving again.", "IsBetaChip": true, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "AI Stop Looking", @@ -874,11 +912,13 @@ ] }, "3fb9fd93-8d45-4395-b9a3-63a99a14442b": { - "ReadonlyName": "And", + "ReadonlyPaletteName": "And", + "ReadonlyChipName": "And", "Description": "Outputs True when all inputs are True. If any input is False, it outputs False.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "And", @@ -909,14 +949,16 @@ ] }, "87f6886f-fa2b-4961-b0ed-c8014aadc56b": { - "ReadonlyName": "Angular Velocity Add", + "ReadonlyPaletteName": "Angular Velocity Add (Deprecated)", + "ReadonlyChipName": "Angular Velocity Add (Deprecated)", "Description": "", "IsBetaChip": true, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Deprecated", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { - "Name": "Angular Velocity Add", + "Name": "Angular Velocity Add (Deprecated)", "ReadonlyTypeParams": { "T": "(Vector3 | Quaternion)" }, @@ -964,15 +1006,72 @@ } ] }, + "956ccd66-4406-42a3-b08c-78d3efdd5fec": { + "ReadonlyPaletteName": "Angular Velocity Add", + "ReadonlyChipName": "Angular Velocity Add", + "Description": "Add angular velocity to an object. The Angular Velocity vector should lie along the axis of the rotation being added, with a magnitude that (once multiplied by the speed multiplier) represents the clockwise rotation speed in deg/s. Once the new angular velocity has been computed, its speed will be capped by the Max Angular Speed.", + "IsBetaChip": true, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", + "NodeDescs": [ + { + "Name": "Angular Velocity Add", + "ReadonlyTypeParams": {}, + "Inputs": [ + { + "Name": "Add Velocity", + "ReadonlyType": "exec", + "Description": "" + }, + { + "Name": "Target", + "ReadonlyType": "Rec Room Object", + "Description": "" + }, + { + "Name": "Angular Velocity", + "ReadonlyType": "Vector3", + "Description": "" + }, + { + "Name": "Speed Multiplier", + "ReadonlyType": "float", + "Description": "" + }, + { + "Name": "Max Angular Speed (deg/s)", + "ReadonlyType": "float", + "Description": "" + } + ], + "Outputs": [ + { + "Name": "", + "ReadonlyType": "exec", + "Description": "" + }, + { + "Name": "Success", + "ReadonlyType": "bool", + "Description": "" + } + ] + } + ], + "NodeFilters": [] + }, "98b24bc7-32d8-4386-9348-d44ad00d7702": { - "ReadonlyName": "Angular Velocity Set", + "ReadonlyPaletteName": "Angular Velocity Set (Deprecated)", + "ReadonlyChipName": "Angular Velocity Set (Deprecated)", "Description": "", "IsBetaChip": true, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Deprecated", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { - "Name": "Angular Velocity Set", + "Name": "Angular Velocity Set (Deprecated)", "ReadonlyTypeParams": { "T": "(Vector3 | Quaternion)" }, @@ -1015,12 +1114,64 @@ } ] }, + "85dbc1d1-759a-4d08-b129-bf9372188348": { + "ReadonlyPaletteName": "Angular Velocity Set", + "ReadonlyChipName": "Angular Velocity Set", + "Description": "Sets the angular velocity of an object. The Angular Velocity vector should lie along the axis of rotation, with a magnitude that (once multiplied by the speed multiplier) represents the clockwise rotation speed in deg/s.", + "IsBetaChip": true, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", + "NodeDescs": [ + { + "Name": "Angular Velocity Set", + "ReadonlyTypeParams": {}, + "Inputs": [ + { + "Name": "Set Velocity", + "ReadonlyType": "exec", + "Description": "" + }, + { + "Name": "Target", + "ReadonlyType": "Rec Room Object", + "Description": "" + }, + { + "Name": "Angular Velocity", + "ReadonlyType": "Vector3", + "Description": "" + }, + { + "Name": "Speed Multiplier", + "ReadonlyType": "float", + "Description": "" + } + ], + "Outputs": [ + { + "Name": "", + "ReadonlyType": "exec", + "Description": "" + }, + { + "Name": "Success", + "ReadonlyType": "bool", + "Description": "" + } + ] + } + ], + "NodeFilters": [] + }, "aaa4e58f-16df-426a-b7a7-a654eab97037": { - "ReadonlyName": "Asin", + "ReadonlyPaletteName": "Asin", + "ReadonlyChipName": "Asin", "Description": "Computes the arcsine of a number.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Asin", @@ -1051,11 +1202,13 @@ ] }, "02d62908-550d-4f8b-8bc7-0960fb1b547f": { - "ReadonlyName": "Atan2", + "ReadonlyPaletteName": "Atan2", + "ReadonlyChipName": "Atan2", "Description": "Computes the 2-argument arctangent of a number.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Atan2", @@ -1091,11 +1244,13 @@ ] }, "84646ed2-015e-4a8b-9d37-5115cb9ebadc": { - "ReadonlyName": "Atan", + "ReadonlyPaletteName": "Atan", + "ReadonlyChipName": "Atan", "Description": "Computes the arctangent of a number.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Atan", @@ -1125,32 +1280,34 @@ } ] }, - "28a95bc3-ab08-48ae-b0c0-16b41168bf47": { - "ReadonlyName": "Bit And", - "Description": "Computes a bitwise AND. The result has a bit set for every bit that is set in both of the inputs.", - "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "e6391f35-dd8b-4e99-a0f9-7dc44b6c1893": { + "ReadonlyPaletteName": "Audio Player Pause", + "ReadonlyChipName": "Audio Player Pause", + "Description": "", + "IsBetaChip": true, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { - "Name": "Bit And", + "Name": "Audio Player Pause", "ReadonlyTypeParams": {}, "Inputs": [ { - "Name": "", - "ReadonlyType": "int", + "Name": "Pause", + "ReadonlyType": "exec", "Description": "" }, { - "Name": "", - "ReadonlyType": "int", + "Name": "Target", + "ReadonlyType": "Audio Player", "Description": "" } ], "Outputs": [ { - "Name": "Result", - "ReadonlyType": "int", + "Name": "", + "ReadonlyType": "exec", "Description": "" } ] @@ -1159,33 +1316,45 @@ "NodeFilters": [ { "FilterPath": [ - "Math", - "Bitwise" + "Audio", + "Player" ] } ] }, - "d6e62624-06b0-416e-8e3c-ca058efd3c46": { - "ReadonlyName": "Bit Leading Zeros", - "Description": "Counts the number of zeros at the beginning (most significant side) of the binary representation of an integer.", - "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "38f16370-7224-40d0-a551-665bb9fb6f8b": { + "ReadonlyPaletteName": "Audio Player Play", + "ReadonlyChipName": "Audio Player Play", + "Description": "", + "IsBetaChip": true, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { - "Name": "Bit Leading Zeros", + "Name": "Audio Player Play", "ReadonlyTypeParams": {}, "Inputs": [ { - "Name": "Value", - "ReadonlyType": "int", + "Name": "Play", + "ReadonlyType": "exec", + "Description": "" + }, + { + "Name": "Target", + "ReadonlyType": "Audio Player", + "Description": "" + }, + { + "Name": "Media", + "ReadonlyType": "Audio", "Description": "" } ], "Outputs": [ { - "Name": "Leading Zeros", - "ReadonlyType": "int", + "Name": "", + "ReadonlyType": "exec", "Description": "" } ] @@ -1194,38 +1363,45 @@ "NodeFilters": [ { "FilterPath": [ - "Math", - "Bitwise" + "Audio", + "Player" ] } ] }, - "05305e33-a809-4751-b928-2c8a5bbc6dc9": { - "ReadonlyName": "Bit Nand", - "Description": "Computes a bitwise NAND. (NOT AND) The result has a bit set for every bit that is not set in either of the inputs.", - "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "a59e93b4-f949-47b4-af73-fb6e110392fa": { + "ReadonlyPaletteName": "Audio Player Set Speed", + "ReadonlyChipName": "Audio Player Set Speed", + "Description": "", + "IsBetaChip": true, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { - "Name": "Bit Nand", + "Name": "Audio Player Set Speed", "ReadonlyTypeParams": {}, "Inputs": [ { - "Name": "", - "ReadonlyType": "int", + "Name": "Set Speed", + "ReadonlyType": "exec", "Description": "" }, { - "Name": "", - "ReadonlyType": "int", + "Name": "Target", + "ReadonlyType": "Audio Player", + "Description": "" + }, + { + "Name": "Speed", + "ReadonlyType": "float", "Description": "" } ], "Outputs": [ { - "Name": "Result", - "ReadonlyType": "int", + "Name": "", + "ReadonlyType": "exec", "Description": "" } ] @@ -1234,33 +1410,45 @@ "NodeFilters": [ { "FilterPath": [ - "Math", - "Bitwise" + "Audio", + "Player" ] } ] }, - "ec74ea41-24e5-491c-8919-a502638583f9": { - "ReadonlyName": "Bit Not", - "Description": "Computes a bitwise NOT. The result has a bit set for every bit that is not set in the input.", - "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "cdedf5fe-9d4f-4811-9883-160b04695657": { + "ReadonlyPaletteName": "Audio Player Set Volume", + "ReadonlyChipName": "Audio Player Set Volume", + "Description": "", + "IsBetaChip": true, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { - "Name": "Bit Not", + "Name": "Audio Player Set Volume", "ReadonlyTypeParams": {}, "Inputs": [ { - "Name": "", - "ReadonlyType": "int", + "Name": "Set Volume", + "ReadonlyType": "exec", + "Description": "" + }, + { + "Name": "Target", + "ReadonlyType": "Audio Player", + "Description": "" + }, + { + "Name": "Volume", + "ReadonlyType": "float", "Description": "" } ], "Outputs": [ { - "Name": "Result", - "ReadonlyType": "int", + "Name": "", + "ReadonlyType": "exec", "Description": "" } ] @@ -1269,38 +1457,40 @@ "NodeFilters": [ { "FilterPath": [ - "Math", - "Bitwise" + "Audio", + "Player" ] } ] }, - "2c24bc11-9543-4738-8c6c-0c5e3fadd944": { - "ReadonlyName": "Bit Or", - "Description": "Computes a bitwise OR. The result has a bit set for every bit that is set in either of the inputs.", - "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "f6c546cc-becd-44cc-999b-bf2031b5f737": { + "ReadonlyPaletteName": "Audio Player Stop", + "ReadonlyChipName": "Audio Player Stop", + "Description": "", + "IsBetaChip": true, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { - "Name": "Bit Or", + "Name": "Audio Player Stop", "ReadonlyTypeParams": {}, "Inputs": [ { - "Name": "", - "ReadonlyType": "int", + "Name": "Stop", + "ReadonlyType": "exec", "Description": "" }, { - "Name": "", - "ReadonlyType": "int", + "Name": "Target", + "ReadonlyType": "Audio Player", "Description": "" } ], "Outputs": [ { - "Name": "Result", - "ReadonlyType": "int", + "Name": "", + "ReadonlyType": "exec", "Description": "" } ] @@ -1309,33 +1499,35 @@ "NodeFilters": [ { "FilterPath": [ - "Math", - "Bitwise" + "Audio", + "Player" ] } ] }, - "6982e235-5814-4c5a-8bc8-fdbcc9a73eb8": { - "ReadonlyName": "Bit Pop Count", - "Description": "Counts the number of set bits in the binary representation of an integer.", - "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "61e8293d-5d5a-4dbc-9505-0a13faf8b4cc": { + "ReadonlyPaletteName": "Audio Player Time Stamp", + "ReadonlyChipName": "Audio Player Time Stamp", + "Description": "", + "IsBetaChip": true, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { - "Name": "Bit Pop Count", + "Name": "Audio Player Time Stamp", "ReadonlyTypeParams": {}, "Inputs": [ { - "Name": "Value", - "ReadonlyType": "int", + "Name": "Target", + "ReadonlyType": "Audio Player", "Description": "" } ], "Outputs": [ { - "Name": "Population", - "ReadonlyType": "int", + "Name": "Time Stamp", + "ReadonlyType": "float", "Description": "" } ] @@ -1344,32 +1536,34 @@ "NodeFilters": [ { "FilterPath": [ - "Math", - "Bitwise" + "Audio", + "Player" ] } ] }, - "bd013fe7-3799-46b5-b1f3-66a3f5add5ed": { - "ReadonlyName": "Bit Rotate Left", - "Description": "Rotates digits in the binary representation of an integer to the left. As the leftmost bits fall off, they are used to fill the rightmost bits.", + "28a95bc3-ab08-48ae-b0c0-16b41168bf47": { + "ReadonlyPaletteName": "Bit And", + "ReadonlyChipName": "Bit And", + "Description": "Computes a bitwise AND. The result has a bit set for every bit that is set in both of the inputs.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { - "Name": "Bit Rotate Left", + "Name": "Bit And", "ReadonlyTypeParams": {}, "Inputs": [ { - "Name": "Value", + "Name": "", "ReadonlyType": "int", "Description": "" }, { - "Name": "Shift", + "Name": "", "ReadonlyType": "int", - "Description": "Number of bits to rotate" + "Description": "" } ], "Outputs": [ @@ -1390,31 +1584,28 @@ } ] }, - "b5f36fdf-0a2e-489a-bbdf-f17c50974cc1": { - "ReadonlyName": "Bit Rotate Right", - "Description": "Rotates digits in the binary representation of an integer to the right. As the rightmost bits fall off, they are used to fill the leftmost bits.", + "d6e62624-06b0-416e-8e3c-ca058efd3c46": { + "ReadonlyPaletteName": "Bit Leading Zeros", + "ReadonlyChipName": "Bit Leading Zeros", + "Description": "Counts the number of zeros at the beginning (most significant side) of the binary representation of an integer.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { - "Name": "Bit Rotate Right", + "Name": "Bit Leading Zeros", "ReadonlyTypeParams": {}, "Inputs": [ { "Name": "Value", "ReadonlyType": "int", "Description": "" - }, - { - "Name": "Shift", - "ReadonlyType": "int", - "Description": "Number of bits to rotate" } ], "Outputs": [ { - "Name": "Result", + "Name": "Leading Zeros", "ReadonlyType": "int", "Description": "" } @@ -1430,26 +1621,28 @@ } ] }, - "0a7b4058-b1da-442f-8341-81df66979663": { - "ReadonlyName": "Bit Shift Left", - "Description": "Shifts a value left by a number of bits. Leftmost bits are discarded, and rightmost bits are filled with zeros.", + "05305e33-a809-4751-b928-2c8a5bbc6dc9": { + "ReadonlyPaletteName": "Bit Nand", + "ReadonlyChipName": "Bit Nand", + "Description": "Computes a bitwise NAND. (NOT AND) The result has a bit set for every bit that is not set in either of the inputs.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { - "Name": "Bit Shift Left", + "Name": "Bit Nand", "ReadonlyTypeParams": {}, "Inputs": [ { - "Name": "Value", + "Name": "", "ReadonlyType": "int", "Description": "" }, { - "Name": "Shift", + "Name": "", "ReadonlyType": "int", - "Description": "Shift count. The actual shift performed will be this value mod 32." + "Description": "" } ], "Outputs": [ @@ -1470,24 +1663,268 @@ } ] }, - "4024b483-ab3d-4fa0-b399-b3350b800081": { - "ReadonlyName": "Bit Shift Right", - "Description": "Shifts a value right by a number of bits. Rightmost bits are discarded, and leftmost bits are filled with zeros. (Logical shift)", + "ec74ea41-24e5-491c-8919-a502638583f9": { + "ReadonlyPaletteName": "Bit Not", + "ReadonlyChipName": "Bit Not", + "Description": "Computes a bitwise NOT. The result has a bit set for every bit that is not set in the input.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { - "Name": "Bit Shift Right", + "Name": "Bit Not", "ReadonlyTypeParams": {}, "Inputs": [ { - "Name": "Value", + "Name": "", "ReadonlyType": "int", "Description": "" - }, - { - "Name": "Shift", + } + ], + "Outputs": [ + { + "Name": "Result", + "ReadonlyType": "int", + "Description": "" + } + ] + } + ], + "NodeFilters": [ + { + "FilterPath": [ + "Math", + "Bitwise" + ] + } + ] + }, + "2c24bc11-9543-4738-8c6c-0c5e3fadd944": { + "ReadonlyPaletteName": "Bit Or", + "ReadonlyChipName": "Bit Or", + "Description": "Computes a bitwise OR. The result has a bit set for every bit that is set in either of the inputs.", + "IsBetaChip": false, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", + "NodeDescs": [ + { + "Name": "Bit Or", + "ReadonlyTypeParams": {}, + "Inputs": [ + { + "Name": "", + "ReadonlyType": "int", + "Description": "" + }, + { + "Name": "", + "ReadonlyType": "int", + "Description": "" + } + ], + "Outputs": [ + { + "Name": "Result", + "ReadonlyType": "int", + "Description": "" + } + ] + } + ], + "NodeFilters": [ + { + "FilterPath": [ + "Math", + "Bitwise" + ] + } + ] + }, + "6982e235-5814-4c5a-8bc8-fdbcc9a73eb8": { + "ReadonlyPaletteName": "Bit Pop Count", + "ReadonlyChipName": "Bit Pop Count", + "Description": "Counts the number of set bits in the binary representation of an integer.", + "IsBetaChip": false, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", + "NodeDescs": [ + { + "Name": "Bit Pop Count", + "ReadonlyTypeParams": {}, + "Inputs": [ + { + "Name": "Value", + "ReadonlyType": "int", + "Description": "" + } + ], + "Outputs": [ + { + "Name": "Population", + "ReadonlyType": "int", + "Description": "" + } + ] + } + ], + "NodeFilters": [ + { + "FilterPath": [ + "Math", + "Bitwise" + ] + } + ] + }, + "bd013fe7-3799-46b5-b1f3-66a3f5add5ed": { + "ReadonlyPaletteName": "Bit Rotate Left", + "ReadonlyChipName": "Bit Rotate Left", + "Description": "Rotates digits in the binary representation of an integer to the left. As the leftmost bits fall off, they are used to fill the rightmost bits.", + "IsBetaChip": false, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", + "NodeDescs": [ + { + "Name": "Bit Rotate Left", + "ReadonlyTypeParams": {}, + "Inputs": [ + { + "Name": "Value", + "ReadonlyType": "int", + "Description": "" + }, + { + "Name": "Shift", + "ReadonlyType": "int", + "Description": "Number of bits to rotate" + } + ], + "Outputs": [ + { + "Name": "Result", + "ReadonlyType": "int", + "Description": "" + } + ] + } + ], + "NodeFilters": [ + { + "FilterPath": [ + "Math", + "Bitwise" + ] + } + ] + }, + "b5f36fdf-0a2e-489a-bbdf-f17c50974cc1": { + "ReadonlyPaletteName": "Bit Rotate Right", + "ReadonlyChipName": "Bit Rotate Right", + "Description": "Rotates digits in the binary representation of an integer to the right. As the rightmost bits fall off, they are used to fill the leftmost bits.", + "IsBetaChip": false, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", + "NodeDescs": [ + { + "Name": "Bit Rotate Right", + "ReadonlyTypeParams": {}, + "Inputs": [ + { + "Name": "Value", + "ReadonlyType": "int", + "Description": "" + }, + { + "Name": "Shift", + "ReadonlyType": "int", + "Description": "Number of bits to rotate" + } + ], + "Outputs": [ + { + "Name": "Result", + "ReadonlyType": "int", + "Description": "" + } + ] + } + ], + "NodeFilters": [ + { + "FilterPath": [ + "Math", + "Bitwise" + ] + } + ] + }, + "0a7b4058-b1da-442f-8341-81df66979663": { + "ReadonlyPaletteName": "Bit Shift Left", + "ReadonlyChipName": "Bit Shift Left", + "Description": "Shifts a value left by a number of bits. Leftmost bits are discarded, and rightmost bits are filled with zeros.", + "IsBetaChip": false, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", + "NodeDescs": [ + { + "Name": "Bit Shift Left", + "ReadonlyTypeParams": {}, + "Inputs": [ + { + "Name": "Value", + "ReadonlyType": "int", + "Description": "" + }, + { + "Name": "Shift", + "ReadonlyType": "int", + "Description": "Shift count. The actual shift performed will be this value mod 32." + } + ], + "Outputs": [ + { + "Name": "Result", + "ReadonlyType": "int", + "Description": "" + } + ] + } + ], + "NodeFilters": [ + { + "FilterPath": [ + "Math", + "Bitwise" + ] + } + ] + }, + "4024b483-ab3d-4fa0-b399-b3350b800081": { + "ReadonlyPaletteName": "Bit Shift Right", + "ReadonlyChipName": "Bit Shift Right", + "Description": "Shifts a value right by a number of bits. Rightmost bits are discarded, and leftmost bits are filled with zeros. (Logical shift)", + "IsBetaChip": false, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", + "NodeDescs": [ + { + "Name": "Bit Shift Right", + "ReadonlyTypeParams": {}, + "Inputs": [ + { + "Name": "Value", + "ReadonlyType": "int", + "Description": "" + }, + { + "Name": "Shift", "ReadonlyType": "int", "Description": "Shift count. The actual shift performed will be this value mod 32." } @@ -1511,11 +1948,13 @@ ] }, "773d361e-3761-497b-9dec-b5e5313a5a2c": { - "ReadonlyName": "Bit Trailing Zeros", + "ReadonlyPaletteName": "Bit Trailing Zeros", + "ReadonlyChipName": "Bit Trailing Zeros", "Description": "Counts the number of zeros at the end (least significant side) of the binary representation of an integer.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Bit Trailing Zeros", @@ -1546,11 +1985,13 @@ ] }, "a3899394-1ed9-4d41-a836-22fffaf4e90d": { - "ReadonlyName": "Bit Xor", + "ReadonlyPaletteName": "Bit Xor", + "ReadonlyChipName": "Bit Xor", "Description": "Computes a bitwise XOR. The result has a bit set for every bit that is set in exactly one of the inputs.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Bit Xor", @@ -1586,14 +2027,16 @@ ] }, "80955588-7f7a-4f7c-b46f-6d1e9057fba0": { - "ReadonlyName": "bool Variable", + "ReadonlyPaletteName": "bool Variable", + "ReadonlyChipName": "bool Variable", "Description": "", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 1, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "Code", "NodeDescs": [ { - "Name": "Variable (bool)", + "Name": "bool Variable", "ReadonlyTypeParams": {}, "Inputs": [ { @@ -1637,11 +2080,13 @@ ] }, "7adc6ab1-fcab-4746-aec6-006352e29cdc": { - "ReadonlyName": "If", + "ReadonlyPaletteName": "If", + "ReadonlyChipName": "If", "Description": "Takes a boolean condition as an input. If True, the \"Then\" exec pin fires. If False, the \"Else\" exec pin fires.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "If", @@ -1692,11 +2137,13 @@ ] }, "9478334a-451d-4802-bab1-4b05f00d45e4": { - "ReadonlyName": "Break Tuple", + "ReadonlyPaletteName": "Break Tuple", + "ReadonlyChipName": "Break Tuple", "Description": "", "IsBetaChip": true, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Break Tuple", @@ -1734,11 +2181,13 @@ ] }, "fe32ba92-9018-4575-92e2-3b0d82c9419b": { - "ReadonlyName": "Button Get Is Pressed", + "ReadonlyPaletteName": "Button Get Is Pressed", + "ReadonlyChipName": "Button Get Is Pressed", "Description": "Outputs a target Button's Pressed property.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Button Get Is Pressed", @@ -1769,11 +2218,13 @@ ] }, "70e7663d-a5fd-435d-8995-942b4babc262": { - "ReadonlyName": "Button Get Text", + "ReadonlyPaletteName": "Button Get Text", + "ReadonlyChipName": "Button Get Text", "Description": "Outputs a target Button's Text property.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Button Get Text", @@ -1804,11 +2255,13 @@ ] }, "21bbaa09-6bcf-435c-86da-e853a78bc27b": { - "ReadonlyName": "Button Set Text", + "ReadonlyPaletteName": "Button Set Text", + "ReadonlyChipName": "Button Set Text", "Description": "Sets an input Button's Text property.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Button Set Text", @@ -1849,11 +2302,13 @@ ] }, "f4cbc476-bc98-4cbf-bf47-de4baedddf79": { - "ReadonlyName": "Ceil", + "ReadonlyPaletteName": "Ceil", + "ReadonlyChipName": "Ceil", "Description": "Returns the least integral value greater than or equal to the input value.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Ceil", @@ -1884,11 +2339,13 @@ ] }, "38b502dc-dd35-4083-a2b0-8a8e5f69a958": { - "ReadonlyName": "Ceil to Int", + "ReadonlyPaletteName": "Ceil to Int", + "ReadonlyChipName": "Ceil to Int", "Description": "Returns the smallest integer value greater than or equal to the input value.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Ceil to Int", @@ -1924,11 +2381,13 @@ ] }, "14ebde7a-76c0-47df-b0dd-01b1daa50821": { - "ReadonlyName": "Circuit Board", + "ReadonlyPaletteName": "Circuit Board", + "ReadonlyChipName": "Circuit Board", "Description": "Use as a way to encapsulate your logic. You can have as many inputs and outputs as you like. Use the Edit tool to open up the Circuit Board and add nodes inside it to encapsulate the logic. Hit done editing on your Maker Pen to leave the Circuit Board context.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 1, + "DeprecationStage": "Active", + "PaletteNameSource": "Code", + "ChipNameSource": "Code", "NodeDescs": [], "NodeFilters": [ { @@ -1939,11 +2398,13 @@ ] }, "a542e800-22c8-4e0b-ac4d-ea712875a5f8": { - "ReadonlyName": "Clear Current Subtitle", + "ReadonlyPaletteName": "Clear Current Subtitle", + "ReadonlyChipName": "Clear Current Subtitle", "Description": "Clears any subtitle which is currently being displayed.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Clear Current Subtitle", @@ -1979,11 +2440,13 @@ ] }, "87a8e178-b15c-4c38-9da0-95ba74f9f4ec": { - "ReadonlyName": "Color Constant", + "ReadonlyPaletteName": "Color Constant", + "ReadonlyChipName": "Color Constant", "Description": "", "IsBetaChip": true, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Color Constant", @@ -2007,11 +2470,13 @@ ] }, "3d2fd0b5-eeac-45cc-a622-1701710f0792": { - "ReadonlyName": "Color Variable", + "ReadonlyPaletteName": "Color Variable", + "ReadonlyChipName": "Color Variable", "Description": "", "IsBetaChip": true, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "Code", "NodeDescs": [ { "Name": "Color Variable", @@ -2052,11 +2517,13 @@ ] }, "8e412141-635d-435c-a900-f40d8a261906": { - "ReadonlyName": "Color To Int", + "ReadonlyPaletteName": "Color To Int", + "ReadonlyChipName": "Color To Int", "Description": "", "IsBetaChip": true, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Color To Int", @@ -2086,11 +2553,13 @@ ] }, "c0ee02f4-bbab-40ea-88a0-7441d7e7094c": { - "ReadonlyName": "Combatant Get Ground Position", + "ReadonlyPaletteName": "Combatant Get Ground Position", + "ReadonlyChipName": "Combatant Get Ground Position", "Description": "Outputs the ground position of an input combatant.", "IsBetaChip": true, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Combatant Get Ground Position", @@ -2123,11 +2592,13 @@ ] }, "3967a8ad-4237-4ae7-8cbf-850d8e24fe30": { - "ReadonlyName": "Combatant Get Health", + "ReadonlyPaletteName": "Combatant Get Health", + "ReadonlyChipName": "Combatant Get Health", "Description": "Outputs the Health property of the input combatant.", "IsBetaChip": true, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Combatant Get Health", @@ -2170,11 +2641,13 @@ ] }, "2a12c389-c3c6-4484-8c63-21cdaf0fac6c": { - "ReadonlyName": "Combatant Get Is Alive", + "ReadonlyPaletteName": "Combatant Get Is Alive", + "ReadonlyChipName": "Combatant Get Is Alive", "Description": "Outputs True if the input combatant is alive.", "IsBetaChip": true, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Combatant Get Is Alive", @@ -2207,11 +2680,13 @@ ] }, "b4eadbfa-cdbe-42e6-9481-5197de58e272": { - "ReadonlyName": "Combatant Get Velocity", + "ReadonlyPaletteName": "Combatant Get Velocity", + "ReadonlyChipName": "Combatant Get Velocity", "Description": "Outputs the input combatant's current velocity and speed.", "IsBetaChip": true, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Combatant Get Velocity", @@ -2249,14 +2724,16 @@ ] }, "cfd8e246-8682-4707-a0ae-da55bacfbf72": { - "ReadonlyName": "Combatant Variable", + "ReadonlyPaletteName": "Combatant Variable", + "ReadonlyChipName": "Combatant Variable", "Description": "", "IsBetaChip": true, - "DeprecationStage": 0, - "NameSource": 1, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "Code", "NodeDescs": [ { - "Name": "Variable (Combatant)", + "Name": "Combatant Variable", "ReadonlyTypeParams": {}, "Inputs": [ { @@ -2300,11 +2777,13 @@ ] }, "67aca89c-f753-4f94-87df-1ce1d4fcb8b0": { - "ReadonlyName": "Combatant Receive Damage", + "ReadonlyPaletteName": "Combatant Receive Damage", + "ReadonlyChipName": "Combatant Receive Damage", "Description": "Deals damage to the given target combatant with various parameters.", "IsBetaChip": true, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Combatant Receive Damage", @@ -2358,11 +2837,13 @@ ] }, "3dc4807f-2acd-446d-928f-5d301d0795d6": { - "ReadonlyName": "Combatant Set Health", + "ReadonlyPaletteName": "Combatant Set Health", + "ReadonlyChipName": "Combatant Set Health", "Description": "Sets the Health property of an input combatant.", "IsBetaChip": true, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Combatant Set Health", @@ -2405,11 +2886,13 @@ ] }, "82f71bcc-5e83-4825-8306-6a2bb2a296dd": { - "ReadonlyName": "Combatant Set Max Health", + "ReadonlyPaletteName": "Combatant Set Max Health", + "ReadonlyChipName": "Combatant Set Max Health", "Description": "Sets the Max Health property of the input combatant.", "IsBetaChip": true, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Combatant Set Max Health", @@ -2452,11 +2935,13 @@ ] }, "81b08e44-0a1e-40da-b8a1-79f416691dcf": { - "ReadonlyName": "Combatant Split", + "ReadonlyPaletteName": "Combatant Split", + "ReadonlyChipName": "Combatant Split", "Description": "Splits the input Combatant into Player and AI types. Use this off of Combatant outputs to directly access the Player or AI.", "IsBetaChip": true, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Combatant Split", @@ -2496,12 +2981,43 @@ } ] }, + "83623f53-86b2-477d-bb2f-fe68f68ba617": { + "ReadonlyPaletteName": "Comment", + "ReadonlyChipName": "i", + "Description": "Put a comment next to your circuits to explain what they're doing.", + "IsBetaChip": true, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "Code", + "NodeDescs": [ + { + "Name": "Comment", + "ReadonlyTypeParams": {}, + "Inputs": [], + "Outputs": [] + } + ], + "NodeFilters": [ + { + "FilterPath": [ + "Commonly Used" + ] + }, + { + "FilterPath": [ + "Utilities" + ] + } + ] + }, "3dc63876-39a9-4828-9967-67821e620cb1": { - "ReadonlyName": "Consumable Constant", + "ReadonlyPaletteName": "Consumable Constant", + "ReadonlyChipName": "Consumable Constant", "Description": "", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Consumable Constant", @@ -2538,11 +3054,13 @@ ] }, "e8659a59-9e11-4403-8bbc-f4a3961cbf21": { - "ReadonlyName": "Cos", + "ReadonlyPaletteName": "Cos", + "ReadonlyChipName": "Cos", "Description": "Computes the cosine of a number.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Cos", @@ -2573,11 +3091,13 @@ ] }, "1f57e165-dee2-470d-9ab2-9c836aeccccf": { - "ReadonlyName": "Costume Equip", + "ReadonlyPaletteName": "Costume Equip", + "ReadonlyChipName": "Costume Equip", "Description": "Equip a Player with a costume.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Costume Equip", @@ -2618,11 +3138,13 @@ ] }, "f28d1a5e-a08c-471b-89e6-5ee6372d9897": { - "ReadonlyName": "Costume Get Wearer", + "ReadonlyPaletteName": "Costume Get Wearer", + "ReadonlyChipName": "Costume Get Wearer", "Description": "Get Player wearing a costume.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Costume Get Wearer", @@ -2653,11 +3175,13 @@ ] }, "d5070b89-da23-4e4b-848c-07bb22c0420e": { - "ReadonlyName": "Costume Unequip", + "ReadonlyPaletteName": "Costume Unequip", + "ReadonlyChipName": "Costume Unequip", "Description": "Unequip a costume.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Costume Unequip", @@ -2698,11 +3222,13 @@ ] }, "953fb21b-c9f0-46fc-a0f1-ee1a937854f8": { - "ReadonlyName": "Rec Room Object Add Tag", + "ReadonlyPaletteName": "Rec Room Object Add Tag", + "ReadonlyChipName": "Rec Room Object Add Tag", "Description": "Adds a tag to an object.", "IsBetaChip": true, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Rec Room Object Add Tag", @@ -2743,11 +3269,13 @@ ] }, "81939b0e-428f-481c-9fba-453b4c84f01e": { - "ReadonlyName": "Rec Room Object Add Tags", + "ReadonlyPaletteName": "Rec Room Object Add Tags", + "ReadonlyChipName": "Rec Room Object Add Tags", "Description": "Adds tags to the input object.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Rec Room Object Add Tags", @@ -2788,11 +3316,13 @@ ] }, "02d69553-ae96-4c2d-8477-59ada6a66783": { - "ReadonlyName": "Rec Room Object Get All with Tag", + "ReadonlyPaletteName": "Rec Room Object Get All with Tag", + "ReadonlyChipName": "Rec Room Object Get All with Tag", "Description": "Searches the room for all objects with a specified tag. Outputs all objects with the input tag as a list.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Rec Room Object Get All with Tag", @@ -2823,11 +3353,13 @@ ] }, "9e51fcdc-87b4-4eee-a7b1-8d6f86a5fa6b": { - "ReadonlyName": "Rec Room Object Get Authority", + "ReadonlyPaletteName": "Rec Room Object Get Authority", + "ReadonlyChipName": "Rec Room Object Get Authority", "Description": "Outputs the authority Player of the input object.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Rec Room Object Get Authority", @@ -2863,11 +3395,13 @@ ] }, "cb909206-8627-4c66-ac8d-47b1a046ef8b": { - "ReadonlyName": "Rec Room Object Get First Tag", + "ReadonlyPaletteName": "Rec Room Object Get First Tag", + "ReadonlyChipName": "Rec Room Object Get First Tag", "Description": "Gets the first tag of an object.", "IsBetaChip": true, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Rec Room Object Get First Tag", @@ -2898,11 +3432,13 @@ ] }, "43ff2d3c-c3aa-45bc-a7b7-01587c8a61f6": { - "ReadonlyName": "Rec Room Object Get First with Tag", + "ReadonlyPaletteName": "Rec Room Object Get First with Tag", + "ReadonlyChipName": "Rec Room Object Get First with Tag", "Description": "Gets the first object with a tag.", - "IsBetaChip": true, - "DeprecationStage": 0, - "NameSource": 0, + "IsBetaChip": false, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Rec Room Object Get First with Tag", @@ -2933,11 +3469,13 @@ ] }, "b0497de0-3dd3-470d-a421-8f0d321bfc3e": { - "ReadonlyName": "Rec Room Object Get Is Local Player Authority", + "ReadonlyPaletteName": "Rec Room Object Get Is Local Player Authority", + "ReadonlyChipName": "Rec Room Object Get Is Local Player Authority", "Description": "Outputs True on the player's machine who has authority of the input.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Rec Room Object Get Is Local Player Authority", @@ -2973,11 +3511,13 @@ ] }, "a76a9898-4add-4765-9f5b-f366b586e51c": { - "ReadonlyName": "Rec Room Object Get Last Equipping Player", + "ReadonlyPaletteName": "Rec Room Object Get Last Equipping Player", + "ReadonlyChipName": "Rec Room Object Get Last Equipping Player", "Description": "Returns the player who last held an object.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Rec Room Object Get Last Equipping Player", @@ -3019,11 +3559,13 @@ ] }, "e67cfcb7-03e8-4152-ba41-af8ca61d93fb": { - "ReadonlyName": "Rec Room Object Get Tags", + "ReadonlyPaletteName": "Rec Room Object Get Tags", + "ReadonlyChipName": "Rec Room Object Get Tags", "Description": "Outputs list of tags the input object has.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Rec Room Object Get Tags", @@ -3054,11 +3596,13 @@ ] }, "bc3011d2-c085-490e-a450-195ff3a27009": { - "ReadonlyName": "Rec Room Object Has Tag", + "ReadonlyPaletteName": "Rec Room Object Has Tag", + "ReadonlyChipName": "Rec Room Object Has Tag", "Description": "Outputs True if the input object has the input tag.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Rec Room Object Has Tag", @@ -3094,14 +3638,16 @@ ] }, "7077d139-9876-495e-9756-58150fef9f3b": { - "ReadonlyName": "Rec Room Object Variable", + "ReadonlyPaletteName": "Rec Room Object Variable", + "ReadonlyChipName": "Rec Room Object Variable", "Description": "", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 1, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "Code", "NodeDescs": [ { - "Name": "Variable (RecRoomObject)", + "Name": "Rec Room Object Variable", "ReadonlyTypeParams": {}, "Inputs": [ { @@ -3145,11 +3691,13 @@ ] }, "207c6721-b242-4dc2-857d-ebd1ff7c8624": { - "ReadonlyName": "Rec Room Object Remove Tag", + "ReadonlyPaletteName": "Rec Room Object Remove Tag", + "ReadonlyChipName": "Rec Room Object Remove Tag", "Description": "Removes a tag from the object.", "IsBetaChip": true, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Rec Room Object Remove Tag", @@ -3190,11 +3738,13 @@ ] }, "fb368814-daaf-475f-ae08-1d01b9d63b8e": { - "ReadonlyName": "Rec Room Object Remove Tags", + "ReadonlyPaletteName": "Rec Room Object Remove Tags", + "ReadonlyChipName": "Rec Room Object Remove Tags", "Description": "Removes the input list of tags from the input object.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Rec Room Object Remove Tags", @@ -3235,11 +3785,13 @@ ] }, "6809978a-e1fc-403a-a41a-d4e94f22281f": { - "ReadonlyName": "Consumable Deactivate", + "ReadonlyPaletteName": "Consumable Deactivate", + "ReadonlyChipName": "Consumable Deactivate", "Description": "Sets the input consumable to inactive. Displays the consumable as not active in the backback and allow using another one.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Consumable Deactivate", @@ -3282,11 +3834,13 @@ ] }, "cefee2a5-d4a8-4dff-8c4e-bad684ca8d34": { - "ReadonlyName": "Delay", + "ReadonlyPaletteName": "Delay", + "ReadonlyChipName": "Delay", "Description": "Fires outputs based on the inputted time to delay. The Run exec fires as soon as the node is executed. The After Delay exec fires once the input delay duration has completed. After Canceled fires after the delay node’s Cancel exec has been fired. Cancel cancels all current delays running from this node, except for delays scheduled for the next tick.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Delay", @@ -3346,11 +3900,13 @@ ] }, "c1fdc4fa-fcb4-4ea4-b505-7b1d15fb8117": { - "ReadonlyName": "Dice Get Player Rolled", + "ReadonlyPaletteName": "Dice Get Player Rolled", + "ReadonlyChipName": "Dice Get Player Rolled", "Description": "Returns the player who rolled the dice.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Dice Get Player Rolled", @@ -3381,11 +3937,13 @@ ] }, "c80e2979-c672-4e7a-81fb-0ed1964e3ea6": { - "ReadonlyName": "Dice Get Result", + "ReadonlyPaletteName": "Dice Get Result", + "ReadonlyChipName": "Dice Get Result", "Description": "Returns the result of the dice.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Dice Get Result", @@ -3416,11 +3974,13 @@ ] }, "b8735ad9-cd89-4d81-ab9b-be3eb50e3b5a": { - "ReadonlyName": "Dice Get Roll finished", + "ReadonlyPaletteName": "Dice Get Roll finished", + "ReadonlyChipName": "Dice Get Roll finished", "Description": "Outputs an exec when the dice finished rolling.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Dice Get Roll finished", @@ -3451,11 +4011,13 @@ ] }, "182e1ae2-1183-4741-af6e-f307b788a857": { - "ReadonlyName": "Distance", + "ReadonlyPaletteName": "Distance", + "ReadonlyChipName": "Distance", "Description": "Outputs the distance between the input objects.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Distance", @@ -3499,11 +4061,13 @@ ] }, "f2eafd78-5f23-44c9-a271-8ff2f0762e71": { - "ReadonlyName": "Divide", + "ReadonlyPaletteName": "Divide", + "ReadonlyChipName": "Divide", "Description": "Find how many times a value contains another.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Divide", @@ -3542,11 +4106,13 @@ ] }, "15e42063-cbae-40f9-a9e4-8226e83217ec": { - "ReadonlyName": "Emitter Set Color", + "ReadonlyPaletteName": "Emitter Set Color", + "ReadonlyChipName": "Emitter Set Color", "Description": "Sets the color for the particles emitted.", "IsBetaChip": false, - "DeprecationStage": 1, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Emitter Set Color", @@ -3587,11 +4153,13 @@ ] }, "4263768a-035b-4d8b-b17c-1a7bb0b9b96d": { - "ReadonlyName": "Emitter Set Color V2", - "Description": "Sets the color for the particles emitted", + "ReadonlyPaletteName": "Emitter Set Color V2", + "ReadonlyChipName": "Emitter Set Color V2", + "Description": "Sets the color for the particles emitted.", "IsBetaChip": true, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Emitter Set Color V2", @@ -3608,7 +4176,7 @@ "Description": "" }, { - "Name": "Value", + "Name": "Color", "ReadonlyType": "Color", "Description": "" } @@ -3632,11 +4200,13 @@ ] }, "36881bd0-7da0-44a7-b6ef-8cd3770fed78": { - "ReadonlyName": "Emitter Set Looping", + "ReadonlyPaletteName": "Emitter Set Looping", + "ReadonlyChipName": "Emitter Set Looping", "Description": "Makes the emitter emit continuously or not.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Emitter Set Looping", @@ -3677,11 +4247,13 @@ ] }, "1fdf4bab-c868-4ffb-8bfc-b2e360450495": { - "ReadonlyName": "Emitter Set Size", + "ReadonlyPaletteName": "Emitter Set Size", + "ReadonlyChipName": "Emitter Set Size", "Description": "Sets the size of the particles emitted.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Emitter Set Size", @@ -3722,11 +4294,13 @@ ] }, "12446960-d971-475f-b64e-b5c7bb422eca": { - "ReadonlyName": "Emitter Set Speed", + "ReadonlyPaletteName": "Emitter Set Speed", + "ReadonlyChipName": "Emitter Set Speed", "Description": "Sets the speed particles are emitted.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Emitter Set Speed", @@ -3767,11 +4341,13 @@ ] }, "56ebaa0b-256a-40ed-a066-f5663dfa2b59": { - "ReadonlyName": "Emitter Start", + "ReadonlyPaletteName": "Emitter Start", + "ReadonlyChipName": "Emitter Start", "Description": "Starts emitting particles.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Emitter Start", @@ -3807,11 +4383,13 @@ ] }, "23b278c4-5d3d-439d-afa3-ff30c949df97": { - "ReadonlyName": "Emitter Stop", + "ReadonlyPaletteName": "Emitter Stop", + "ReadonlyChipName": "Emitter Stop", "Description": "Stops emitting particles.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Emitter Stop", @@ -3847,11 +4425,13 @@ ] }, "3663225d-e18d-40e6-a234-ef10378528be": { - "ReadonlyName": "Equals", + "ReadonlyPaletteName": "Equals", + "ReadonlyChipName": "Equals", "Description": "Compares the two input values and outputs True if they are the same. False if they are different.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Equals", @@ -3894,11 +4474,13 @@ ] }, "7d72a1fa-a434-4437-a73a-51f306a3f55f": { - "ReadonlyName": "Event Definition", + "ReadonlyPaletteName": "Event Definition", + "ReadonlyChipName": "Event Definition", "Description": "", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 1, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "Code", "NodeDescs": [ { "Name": "Event Definition", @@ -3921,11 +4503,13 @@ ] }, "8b533ccb-643a-491d-982c-94417ce99954": { - "ReadonlyName": "Event Receiver", + "ReadonlyPaletteName": "Event Receiver", + "ReadonlyChipName": "Event Receiver", "Description": "Events are the entry points for all circuit graphs. Events are execution hooks for things like a player loading into the room, or knowing when a Button is pressed. After creating this chip, make sure to use the configure tool to choose the event you want to listen for. You can use the Event Defintion chip to create your own events to add to this list and use with the Event Sender chip.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 1, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "Code", "NodeDescs": [ { "Name": "Event Receiver", @@ -3954,11 +4538,13 @@ ] }, "96a8fe50-bc37-458b-bac9-582d45314779": { - "ReadonlyName": "Event Sender", + "ReadonlyPaletteName": "Event Sender", + "ReadonlyChipName": "Event Sender", "Description": "Use the Event Sender to fire your custom events defined in Event Defintions. After creating this chip, make sure to use the configure tool to change the event that you want to fire. You can also change who you want to send the event to from the config menu.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 1, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "Code", "NodeDescs": [ { "Name": "Event Sender", @@ -3993,14 +4579,16 @@ ] }, "04a31ca5-91d2-4a69-bf3d-484d18411cc0": { - "ReadonlyName": "float Variable", + "ReadonlyPaletteName": "float Variable", + "ReadonlyChipName": "float Variable", "Description": "", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 1, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "Code", "NodeDescs": [ { - "Name": "Variable (float)", + "Name": "float Variable", "ReadonlyTypeParams": {}, "Inputs": [ { @@ -4044,11 +4632,13 @@ ] }, "c90d9339-cdce-4d22-a885-f142fd5567ab": { - "ReadonlyName": "Floor", + "ReadonlyPaletteName": "Floor", + "ReadonlyChipName": "Floor", "Description": "Returns the smallest integral value less than or equal to the input value.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Floor", @@ -4079,11 +4669,13 @@ ] }, "bc451cab-2292-4e60-832d-31060eb82bd0": { - "ReadonlyName": "Floor to Int", + "ReadonlyPaletteName": "Floor to Int", + "ReadonlyChipName": "Floor to Int", "Description": "Returns the smallest integer value less than or equal to the input value.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Floor to Int", @@ -4119,11 +4711,13 @@ ] }, "744e5311-6cc7-4130-962e-fe050a475d43": { - "ReadonlyName": "For Each", + "ReadonlyPaletteName": "For Each", + "ReadonlyChipName": "For Each", "Description": "Iterates over the input list. The loop exec fires for each element in the list. The Done exec fires once the end of the list has been reached.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "For Each", @@ -4170,11 +4764,13 @@ ] }, "8f945c22-988b-45d2-b7f2-409ba304fef4": { - "ReadonlyName": "For", + "ReadonlyPaletteName": "For", + "ReadonlyChipName": "For", "Description": "Iterates over the \"From\" pin (inclusive) to the \"To\" pin (exclusive).", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "For", @@ -4224,11 +4820,13 @@ ] }, "7ff685a6-f59c-4c6c-b559-f343d81ea1d4": { - "ReadonlyName": "From Rec Room Object", + "ReadonlyPaletteName": "From Rec Room Object", + "ReadonlyChipName": "From Rec Room Object", "Description": "Converts the input Rec Room Object to the object's subtype.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "From Rec Room Object", @@ -4266,11 +4864,13 @@ ] }, "09b0bf5b-95df-474b-b81a-4e8e2c78ed0a": { - "ReadonlyName": "Get All Players", + "ReadonlyPaletteName": "Get All Players", + "ReadonlyChipName": "Get All Players", "Description": "Outputs a list of all the players in the room currently.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Get All Players", @@ -4295,11 +4895,13 @@ ] }, "eaf712f8-3257-4415-9f88-ae94e308396e": { - "ReadonlyName": "Get Authority", + "ReadonlyPaletteName": "Get Authority", + "ReadonlyChipName": "Get Authority", "Description": "Gets the authority player of the chip's current context.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Get Authority", @@ -4323,11 +4925,13 @@ ] }, "a4b0c860-e7f0-4abf-ad7c-9be1805c3d01": { - "ReadonlyName": "Get Currency Balance", + "ReadonlyPaletteName": "Get Currency Balance", + "ReadonlyChipName": "Get Currency Balance", "Description": "Returns the local players balance of one room currency. Configure this chip to selecht which currency to use.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Get Currency Balance", @@ -4385,11 +4989,13 @@ ] }, "78f5a9f2-4e3d-4534-aada-4af3a551a953": { - "ReadonlyName": "Get Broadcasting Attendance", + "ReadonlyPaletteName": "Get Broadcasting Attendance", + "ReadonlyChipName": "Get Broadcasting Attendance", "Description": "Outputs player counts if you're in an event that's actively broadcasting.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Get Broadcasting Attendance", @@ -4417,11 +5023,13 @@ "NodeFilters": [] }, "e8c5082f-0a75-4025-9679-293bc8d72989": { - "ReadonlyName": "List Get Element", + "ReadonlyPaletteName": "List Get Element", + "ReadonlyChipName": "List Get Element", "Description": "Gets a specified element from the input list. The \"Index\" is the location of the element in the list. The first element in the list is at index 0, the second element is at index 1.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "List Get Element", @@ -4459,11 +5067,13 @@ ] }, "d46f6fdc-480c-41e6-9a27-87fadb0ab0fc": { - "ReadonlyName": "Time Get Universal Seconds", - "Description": "Gets the number of seconds since 1970. Uses local player's system clock. This is not synchronized between players!", + "ReadonlyPaletteName": "Time Get Universal Seconds", + "ReadonlyChipName": "Time Get Universal Seconds", + "Description": "Gets the number of seconds since 1970. Uses local player's system clock. This is not synchronized between players! This is also not guaranteed to be continuous. To measure time, use Time Get Precise Seconds instead.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Time Get Universal Seconds", @@ -4487,11 +5097,13 @@ ] }, "a924cac0-0245-4846-862d-df4092c5e1c2": { - "ReadonlyName": "Get Any Player with Role", + "ReadonlyPaletteName": "Get Any Player with Role", + "ReadonlyChipName": "Get Any Player with Role", "Description": "Gets a player with the role. Returns invalid player if no player has the role.", "IsBetaChip": true, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Get Any Player with Role", @@ -4522,11 +5134,13 @@ ] }, "88f95338-d1a6-4fad-8424-d714d651f6ac": { - "ReadonlyName": "Get Forward Vector", - "Description": "Gets the forward direction of a target, output as a vector3.", + "ReadonlyPaletteName": "Get Forward Vector", + "ReadonlyChipName": "Get Forward Vector", + "Description": "Gets the forward direction of a target, output as a vector.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Get Forward Vector", @@ -4569,11 +5183,13 @@ ] }, "0493204d-9815-49a9-8c87-4dedf5ccf7e8": { - "ReadonlyName": "List Get Count", + "ReadonlyPaletteName": "List Get Count", + "ReadonlyChipName": "List Get Count", "Description": "Outputs the number of elements inside the input list.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "List Get Count", @@ -4606,11 +5222,13 @@ ] }, "70c830bb-223a-4a7c-b0ae-df240c6f1f33": { - "ReadonlyName": "Get Local Camera Forward", + "ReadonlyPaletteName": "Get Local Camera Forward", + "ReadonlyChipName": "Get Local Camera Forward", "Description": "Gets the direction your avatar is looking, output as a vector3.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Get Local Camera Forward", @@ -4640,11 +5258,13 @@ ] }, "912f0e1b-267d-4424-8002-3f82a2d835fe": { - "ReadonlyName": "Get Local Camera Rotation", + "ReadonlyPaletteName": "Get Local Camera Rotation", + "ReadonlyChipName": "Get Local Camera Rotation", "Description": "Gets the rotation of your avatar's view, output as a quaternion.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Get Local Camera Rotation", @@ -4674,11 +5294,13 @@ ] }, "5d9da95f-a64f-4660-a11f-bf0855769659": { - "ReadonlyName": "Get Local Camera Up", + "ReadonlyPaletteName": "Get Local Camera Up", + "ReadonlyChipName": "Get Local Camera Up", "Description": "Gets the up direction from the local player's camera, output as a vector3.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Get Local Camera Up", @@ -4708,14 +5330,16 @@ ] }, "12cf9781-1e1b-4e59-a783-c7214b66be8a": { - "ReadonlyName": "Get Local Player Leaderboard Stat", + "ReadonlyPaletteName": "Leaderboard Get Local Player Stat", + "ReadonlyChipName": "Leaderboard Get Local Player Stat", "Description": "Get leaderboard stat for local player on stat channel 1, 2 or 3.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { - "Name": "Get Local Player Leaderboard Stat", + "Name": "Leaderboard Get Local Player Stat", "ReadonlyTypeParams": {}, "Inputs": [ { @@ -4758,11 +5382,13 @@ ] }, "fdf733a8-bdd6-4800-b1d4-95b06b3d6f02": { - "ReadonlyName": "Get Local Player", + "ReadonlyPaletteName": "Get Local Player", + "ReadonlyChipName": "Get Local Player", "Description": "Outputs the player running this chip on their machine.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Get Local Player", @@ -4792,11 +5418,13 @@ ] }, "975fde92-136c-4ce5-b749-bf149b817695": { - "ReadonlyName": "Get New Line", + "ReadonlyPaletteName": "Get New Line", + "ReadonlyChipName": "Get New Line", "Description": "Returns a new line string.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Get New Line", @@ -4820,11 +5448,13 @@ ] }, "c453fa47-d0db-4c4a-a6a1-dac4ebad0aca": { - "ReadonlyName": "Get Rotation", + "ReadonlyPaletteName": "Get Rotation", + "ReadonlyChipName": "Get Rotation", "Description": "Outputs the rotation of the target as a quaternion.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Get Rotation", @@ -4868,11 +5498,13 @@ ] }, "dcbd4d6a-8f42-48ef-ad66-e1f245228d84": { - "ReadonlyName": "Get Party Of Player", + "ReadonlyPaletteName": "Get Party Of Player", + "ReadonlyChipName": "Get Party Of Player", "Description": "Returns the party of the input player as List. If the player is not in a party, it will return a list containing only that player.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Get Party Of Player", @@ -4903,11 +5535,13 @@ ] }, "6141ff64-412b-452f-beb0-f338eb6abfb5": { - "ReadonlyName": "Get Player Account Name", + "ReadonlyPaletteName": "Get Player Account Name", + "ReadonlyChipName": "Get Player Account Name", "Description": "Outputs the player's Account name (e.g Coach) in a form of a string. To get a display name, use To String.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Get Player Account Name", @@ -4938,11 +5572,13 @@ ] }, "2ee5a268-9d44-4326-8a34-ad126a3218f2": { - "ReadonlyName": "Get Player By Account Name", + "ReadonlyPaletteName": "Get Player By Account Name", + "ReadonlyChipName": "Get Player By Account Name", "Description": "Gets a Player based on an Account Name. (E.g. my account name is @Coach and if I input the string \"Coach\", the output would be my Player object.) Outputs an invalid Player if nobody in the room has the given account name.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Get Player By Account Name", @@ -4973,11 +5609,13 @@ ] }, "637e07e4-9b93-44b6-bba3-68966080d064": { - "ReadonlyName": "Get Player By Display Name", + "ReadonlyPaletteName": "Get Player By Display Name", + "ReadonlyChipName": "Get Player By Display Name", "Description": "Gets a Player based on a display name. (E.g. my display name is Coach and if I input a string \"Coach\", the output would be my Player object.) Outputs an invalid Player if nobody in the room has the given display name.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Get Player By Display Name", @@ -5007,47 +5645,81 @@ } ] }, - "1c0a6bd4-bcac-40a9-8bae-fceff7ff7cff": { - "ReadonlyName": "Get All Players With Role", - "Description": "Outpus List that continues every player with the specified role.", + "288083ac-338d-410f-9395-fbd7c6e41207": { + "ReadonlyPaletteName": "Get Player Season League Name", + "ReadonlyChipName": "Get Player Season League Name", + "Description": "", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { - "Name": "Get All Players With Role", + "Name": "Get Player Season League Name", "ReadonlyTypeParams": {}, "Inputs": [ { - "Name": "Role Name", - "ReadonlyType": "string", + "Name": "Player", + "ReadonlyType": "Player", "Description": "" } ], "Outputs": [ { - "Name": "Players", - "ReadonlyType": "List", + "Name": "Season League Name", + "ReadonlyType": "string", "Description": "" } ] } ], - "NodeFilters": [ - { - "FilterPath": [ - "Player", + "NodeFilters": [] + }, + "1c0a6bd4-bcac-40a9-8bae-fceff7ff7cff": { + "ReadonlyPaletteName": "Get All Players With Role", + "ReadonlyChipName": "Get All Players With Role", + "Description": "Outpus List that continues every player with the specified role.", + "IsBetaChip": false, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", + "NodeDescs": [ + { + "Name": "Get All Players With Role", + "ReadonlyTypeParams": {}, + "Inputs": [ + { + "Name": "Role Name", + "ReadonlyType": "string", + "Description": "" + } + ], + "Outputs": [ + { + "Name": "Players", + "ReadonlyType": "List", + "Description": "" + } + ] + } + ], + "NodeFilters": [ + { + "FilterPath": [ + "Player", "Role" ] } ] }, "a8c52ef2-17bf-47e6-9084-3e5623584b48": { - "ReadonlyName": "Get Position", + "ReadonlyPaletteName": "Get Position", + "ReadonlyChipName": "Get Position", "Description": "Outputs the position of the input object as a vector3.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Get Position", @@ -5091,11 +5763,13 @@ ] }, "8722445f-e552-4d4a-bced-8afa63bbf70b": { - "ReadonlyName": "Time Get Precise Seconds", + "ReadonlyPaletteName": "Time Get Precise Seconds", + "ReadonlyChipName": "Time Get Precise Seconds", "Description": "Gets the amount of seconds since a player launched Rec Room.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Time Get Precise Seconds", @@ -5119,11 +5793,13 @@ ] }, "d7557465-963e-4451-a55a-dea2050e9b74": { - "ReadonlyName": "Get Room Authority", + "ReadonlyPaletteName": "Get Room Authority", + "ReadonlyChipName": "Get Room Authority", "Description": "Returns the player who is the room authority.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Get Room Authority", @@ -5147,11 +5823,13 @@ ] }, "830f781d-2522-4ec0-9d6f-ecfc0bf695f6": { - "ReadonlyName": "Get Up Vector", + "ReadonlyPaletteName": "Get Up Vector", + "ReadonlyChipName": "Get Up Vector", "Description": "Outputs the up direction of the input target, output as a vector3.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Get Up Vector", @@ -5195,11 +5873,13 @@ ] }, "f33e3fb6-79f1-43da-93c1-553d022b9f37": { - "ReadonlyName": "Time Get Universal Time", - "Description": "Gets the UTC time. Uses local player's system clock. This is not synchronized between players! This is also not guaranteed to be continuous. To measure time, use Time Get Precise Seconds instead.", + "ReadonlyPaletteName": "Time Get Universal Time", + "ReadonlyChipName": "Time Get Universal Time", + "Description": "Gets the UTC time. Uses local player's system clock. This is not synchronized between players!", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Time Get Universal Time", @@ -5248,11 +5928,13 @@ ] }, "e9c65fbe-9d0f-4373-bd45-fe620de801b4": { - "ReadonlyName": "Get Velocity", + "ReadonlyPaletteName": "Get Velocity", + "ReadonlyChipName": "Get Velocity", "Description": "Returns the velocity of a Player or a Rec Room Object.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Get Velocity", @@ -5296,11 +5978,13 @@ ] }, "110c29b1-ac90-4a71-b3c0-53372aa134bc": { - "ReadonlyName": "Greater Than", + "ReadonlyPaletteName": "Greater Than", + "ReadonlyChipName": "Greater Than", "Description": "Returns True if input A is greater than input B.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Greater Than", @@ -5338,11 +6022,13 @@ ] }, "a10e7788-f016-4390-a68e-87d93b47edb1": { - "ReadonlyName": "Greater or Equal", + "ReadonlyPaletteName": "Greater or Equal", + "ReadonlyChipName": "Greater or Equal", "Description": "Returns True if input A is greater than or equal to input B.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Greater or Equal", @@ -5380,11 +6066,13 @@ ] }, "dc78ca9e-29c4-4cba-a6cb-3ea87ffbe780": { - "ReadonlyName": "Ground Vehicle Add Boost Fuel", + "ReadonlyPaletteName": "Ground Vehicle Add Boost Fuel", + "ReadonlyChipName": "Ground Vehicle Add Boost Fuel", "Description": "", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Ground Vehicle Add Boost Fuel", @@ -5425,11 +6113,13 @@ ] }, "29dd429b-81e5-40c7-b3b6-8d03bcc1eec3": { - "ReadonlyName": "Ground Vehicle Apply Boost", + "ReadonlyPaletteName": "Ground Vehicle Apply Boost", + "ReadonlyChipName": "Ground Vehicle Apply Boost", "Description": "", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Ground Vehicle Apply Boost", @@ -5470,11 +6160,13 @@ ] }, "76d46244-7b8e-43de-bd8c-55375411ffe1": { - "ReadonlyName": "Ground Vehicle Get Boost Fuel", + "ReadonlyPaletteName": "Ground Vehicle Get Boost Fuel", + "ReadonlyChipName": "Ground Vehicle Get Boost Fuel", "Description": "", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Ground Vehicle Get Boost Fuel", @@ -5505,11 +6197,13 @@ ] }, "f41ae49a-dbf3-4b4b-87dc-68614da242cc": { - "ReadonlyName": "Ground Vehicle Get Driving Enabled", + "ReadonlyPaletteName": "Ground Vehicle Get Driving Enabled", + "ReadonlyChipName": "Ground Vehicle Get Driving Enabled", "Description": "", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Ground Vehicle Get Driving Enabled", @@ -5540,11 +6234,13 @@ ] }, "390257d5-e382-4416-81f7-40562d5473d3": { - "ReadonlyName": "Ground Vehicle Get Engine Torque Multiplier", + "ReadonlyPaletteName": "Ground Vehicle Get Engine Torque Multiplier", + "ReadonlyChipName": "Ground Vehicle Get Engine Torque Multiplier", "Description": "", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Ground Vehicle Get Engine Torque Multiplier", @@ -5575,11 +6271,13 @@ ] }, "d150c8fa-91fd-4483-a8b5-ca6c62f2c648": { - "ReadonlyName": "Ground Vehicle Get Seated Player", + "ReadonlyPaletteName": "Ground Vehicle Get Seated Player", + "ReadonlyChipName": "Ground Vehicle Get Seated Player", "Description": "", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Ground Vehicle Get Seated Player", @@ -5615,11 +6313,13 @@ ] }, "0fcc3c15-5ee0-4af9-a4de-94627fbba6ec": { - "ReadonlyName": "Ground Vehicle Get Wheel Friction Multiplier", + "ReadonlyPaletteName": "Ground Vehicle Get Wheel Friction Multiplier", + "ReadonlyChipName": "Ground Vehicle Get Wheel Friction Multiplier", "Description": "", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Ground Vehicle Get Wheel Friction Multiplier", @@ -5650,11 +6350,13 @@ ] }, "6c7a86cc-2145-404c-b029-31d22f9811e7": { - "ReadonlyName": "Ground Vehicle Set Driving Enabled", + "ReadonlyPaletteName": "Ground Vehicle Set Driving Enabled", + "ReadonlyChipName": "Ground Vehicle Set Driving Enabled", "Description": "", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Ground Vehicle Set Driving Enabled", @@ -5695,11 +6397,13 @@ ] }, "128116c8-591f-44bc-97cd-f787d660cfb5": { - "ReadonlyName": "Ground Vehicle Set Engine Torque Multiplier", + "ReadonlyPaletteName": "Ground Vehicle Set Engine Torque Multiplier", + "ReadonlyChipName": "Ground Vehicle Set Engine Torque Multiplier", "Description": "", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Ground Vehicle Set Engine Torque Multiplier", @@ -5740,11 +6444,13 @@ ] }, "50458d97-a7cf-45e3-892b-fb67c0fbe64b": { - "ReadonlyName": "Ground Vehicle Set Seated Player", + "ReadonlyPaletteName": "Ground Vehicle Set Seated Player", + "ReadonlyChipName": "Ground Vehicle Set Seated Player", "Description": "", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Ground Vehicle Set Seated Player", @@ -5795,11 +6501,13 @@ ] }, "d00aed86-97ac-4717-872e-ca6646ee266d": { - "ReadonlyName": "Ground Vehicle Set Wheel Friction Multiplier", + "ReadonlyPaletteName": "Ground Vehicle Set Wheel Friction Multiplier", + "ReadonlyChipName": "Ground Vehicle Set Wheel Friction Multiplier", "Description": "Wheel Friction affects how good the wheels are at gripping the ground - lower values decrease traction and make the wheels slip more and higher values can increase traction and make the wheels slip less. 1 is the default value for Wheel Friction.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Ground Vehicle Set Wheel Friction Multiplier", @@ -5840,11 +6548,13 @@ ] }, "4bb12ec4-780e-4186-a597-36bdc5c67b43": { - "ReadonlyName": "Ground Vehicle Unseat Player From Seat", + "ReadonlyPaletteName": "Ground Vehicle Unseat Player From Seat", + "ReadonlyChipName": "Ground Vehicle Unseat Player From Seat", "Description": "", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Ground Vehicle Unseat Player From Seat", @@ -5890,11 +6600,13 @@ ] }, "5815406b-a3f2-471e-88ec-dffc212293be": { - "ReadonlyName": "Ground Vehicle Unseat Player", + "ReadonlyPaletteName": "Ground Vehicle Unseat Player", + "ReadonlyChipName": "Ground Vehicle Unseat Player", "Description": "", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Ground Vehicle Unseat Player", @@ -5940,11 +6652,13 @@ ] }, "a4f8a9a1-fd7b-4702-8345-93ae4d57f333": { - "ReadonlyName": "If Expression", + "ReadonlyPaletteName": "If Expression", + "ReadonlyChipName": "If Expression", "Description": "Outputs one input value based on the input condition. Outputs the \"Then\" input if the input condition is True. Outputs the \"Else\" input if the input condition is False. Only reads one of the inputs, not both.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "If Expression", @@ -5992,11 +6706,13 @@ ] }, "b8b667b9-7b55-4b8d-b116-abef220777e2": { - "ReadonlyName": "If Local Player Is Authority", + "ReadonlyPaletteName": "If Local Player Is Authority", + "ReadonlyChipName": "If Local Player Is Authority", "Description": "I'm Authority exec fires on the player's machine who has authority in the current context. At the room level, this is room authority, inside an object board, this is object authority. I'm Not Authority exec fires for everyone else.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "If Local Player Is Authority", @@ -6031,11 +6747,13 @@ ] }, "5e28057f-214b-4ff8-81bc-512be207c9d7": { - "ReadonlyName": "If Local Player Is Room Authority", + "ReadonlyPaletteName": "If Local Player Is Room Authority", + "ReadonlyChipName": "If Local Player Is Room Authority", "Description": "I'm Authority exec fires on the player's machine who has authority over the room. I'm Not Authority exec fires for everyone else.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "If Local Player Is Room Authority", @@ -6070,11 +6788,13 @@ ] }, "6d69bee8-0d77-4d5f-bf35-9794eaaabe81": { - "ReadonlyName": "If Local Player Should Run", + "ReadonlyPaletteName": "If Local Player Should Run", + "ReadonlyChipName": "If Local Player Should Run", "Description": "The \"Should Run\" port will exec a) if the input player is local or b) if input player is invalid and the local player has authority of the current context.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "If Local Player Should Run", @@ -6114,11 +6834,13 @@ ] }, "c7643011-f320-4155-89b8-d693730c1935": { - "ReadonlyName": "If Player Is Local", + "ReadonlyPaletteName": "If Player Is Local", + "ReadonlyChipName": "If Player Is Local", "Description": "Outputs if a player is the local player or not.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "If Player Is Local", @@ -6158,11 +6880,13 @@ ] }, "1b5eca75-0e7e-4aff-8adc-c5e043cac29e": { - "ReadonlyName": "Velocity Add", + "ReadonlyPaletteName": "Velocity Add", + "ReadonlyChipName": "Velocity Add", "Description": "Adds velocity to the input target. The input velocity will be multiplied by the magnitude of the vector provided in the input direction.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Velocity Add", @@ -6226,11 +6950,13 @@ ] }, "f0137efc-b3b7-4217-ba8b-1d2e78d451bd": { - "ReadonlyName": "Velocity Reflect", + "ReadonlyPaletteName": "Velocity Reflect", + "ReadonlyChipName": "Velocity Reflect", "Description": "The input target's velocity parallel to the input direction vector is reflected along the input direction and velocities perpendicular to it, are maintained. The input velocity will be multiplied by the magnitude of the vector provided in the input direction.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Velocity Reflect", @@ -6299,11 +7025,13 @@ ] }, "f97c530d-03bf-498c-8854-33e814d2600b": { - "ReadonlyName": "Velocity Set", + "ReadonlyPaletteName": "Velocity Set", + "ReadonlyChipName": "Velocity Set", "Description": "Momentarily sets the velocity of the input target in the input direction. The input velocity will be multiplied by the magnitude of the vector provided in the input direction.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Velocity Set", @@ -6362,11 +7090,13 @@ ] }, "0c351297-db4d-43e7-81a3-95dc5ddde401": { - "ReadonlyName": "Interaction Volume Get Interaction Prompt", + "ReadonlyPaletteName": "Interaction Volume Get Interaction Prompt", + "ReadonlyChipName": "Interaction Volume Get Interaction Prompt", "Description": "Gets the interaction promt of an Interaction Volume.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Interaction Volume Get Interaction Prompt", @@ -6397,11 +7127,13 @@ ] }, "c536089c-e2c3-4a6a-a4fa-aba8dca6b810": { - "ReadonlyName": "Interaction Volume Get Is Locked", + "ReadonlyPaletteName": "Interaction Volume Get Is Locked", + "ReadonlyChipName": "Interaction Volume Get Is Locked", "Description": "Returns False if the Interaction Volume is enabled, and True if it is locked.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Interaction Volume Get Is Locked", @@ -6432,11 +7164,13 @@ ] }, "380d8467-bdfa-4724-a62c-1955831f994a": { - "ReadonlyName": "Interaction Volume Set Interaction Prompt", + "ReadonlyPaletteName": "Interaction Volume Set Interaction Prompt", + "ReadonlyChipName": "Interaction Volume Set Interaction Prompt", "Description": "Sets the interaction promt of an Interaction Volume.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Interaction Volume Set Interaction Prompt", @@ -6477,11 +7211,13 @@ ] }, "a1e57113-f0b5-45c5-b1e0-95163674daa4": { - "ReadonlyName": "Interaction Volume Set Locked", + "ReadonlyPaletteName": "Interaction Volume Set Locked", + "ReadonlyChipName": "Interaction Volume Set Locked", "Description": "Disables or enables an Interaction Volume (but reversed).", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Interaction Volume Set Locked", @@ -6522,14 +7258,16 @@ ] }, "33224907-68ff-4102-802e-7c3eed481d37": { - "ReadonlyName": "int Variable", + "ReadonlyPaletteName": "int Variable", + "ReadonlyChipName": "int Variable", "Description": "", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 1, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "Code", "NodeDescs": [ { - "Name": "Int Variable", + "Name": "int Variable", "ReadonlyTypeParams": {}, "Inputs": [ { @@ -6573,11 +7311,13 @@ ] }, "65cfba8a-b5dc-4946-b824-e6efc5719f3a": { - "ReadonlyName": "Int to Float", + "ReadonlyPaletteName": "Int to Float", + "ReadonlyChipName": "Int to Float", "Description": "Converts the input int to a float.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Int to Float", @@ -6613,11 +7353,13 @@ ] }, "24a1be50-ef1b-4e54-836b-4a2a95780b4e": { - "ReadonlyName": "Is Valid", + "ReadonlyPaletteName": "Is Valid", + "ReadonlyChipName": "Is Valid", "Description": "Returns True if the input variable is not null. Certain variable types must be set before use because they can't have a default value. A Rec Room Object variable that isn't set isn't going to be valid.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Is Valid", @@ -6649,11 +7391,13 @@ ] }, "91b0ffa8-4eb1-4a30-aaf3-7a049071cb42": { - "ReadonlyName": "Lerp", + "ReadonlyPaletteName": "Lerp", + "ReadonlyChipName": "Lerp", "Description": "Computes a linear interpolation.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Lerp", @@ -6708,11 +7452,13 @@ ] }, "7e58b3f4-2694-4ced-b3a8-0fe23f48f60f": { - "ReadonlyName": "Less Than", + "ReadonlyPaletteName": "Less Than", + "ReadonlyChipName": "Less Than", "Description": "Returns True if input A is less than input B.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Less Than", @@ -6750,11 +7496,13 @@ ] }, "a027073f-9189-457f-a53d-8562e8829daf": { - "ReadonlyName": "Less or Equal", + "ReadonlyPaletteName": "Less or Equal", + "ReadonlyChipName": "Less or Equal", "Description": "Returns True if input A is less than or equal to input B.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Less or Equal", @@ -6792,11 +7540,13 @@ ] }, "873d8765-9dc7-41ea-87ef-dd6e32119af8": { - "ReadonlyName": "Light Set Angle", + "ReadonlyPaletteName": "Light Set Angle", + "ReadonlyChipName": "Light Set Angle", "Description": "Sets the angle of the spotlight's cone.", "IsBetaChip": false, - "DeprecationStage": 2, - "NameSource": 0, + "DeprecationStage": "Deprecated", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Light Set Angle", @@ -6837,11 +7587,13 @@ ] }, "494ceaa7-3520-4f5b-87e0-7dd08334730c": { - "ReadonlyName": "Light Set Angle", + "ReadonlyPaletteName": "Light Set Angle", + "ReadonlyChipName": "Light Set Angle", "Description": "Sets the angle of the spotlight's cone.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Light Set Angle", @@ -6882,11 +7634,13 @@ ] }, "2b6d9368-2ddc-41fb-ac14-b1a3561b19fc": { - "ReadonlyName": "Light Set Color", + "ReadonlyPaletteName": "Light Set Color", + "ReadonlyChipName": "Light Set Color", "Description": "Sets the color for a point light or a spotlight.", "IsBetaChip": false, - "DeprecationStage": 1, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Light Set Color", @@ -6927,11 +7681,13 @@ ] }, "b2698906-68bd-4ea3-be98-35a23615b522": { - "ReadonlyName": "Light Set Color V2", - "Description": "Sets the color for a point light or a spotlight", + "ReadonlyPaletteName": "Light Set Color V2", + "ReadonlyChipName": "Light Set Color V2", + "Description": "Sets the color for a point light or a spotlight.", "IsBetaChip": true, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Light Set Color V2", @@ -6972,11 +7728,13 @@ ] }, "902a47c8-3834-4858-bbae-5357281a507d": { - "ReadonlyName": "Light Set Intensity", + "ReadonlyPaletteName": "Light Set Intensity", + "ReadonlyChipName": "Light Set Intensity", "Description": "Sets the brightness level for a point light or a spotlight.", "IsBetaChip": false, - "DeprecationStage": 2, - "NameSource": 0, + "DeprecationStage": "Deprecated", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Light Set Intensity", @@ -7017,11 +7775,13 @@ ] }, "aa6dc013-3f5b-45f4-87a2-8aa4d16cc375": { - "ReadonlyName": "Light Set Intensity", + "ReadonlyPaletteName": "Light Set Intensity", + "ReadonlyChipName": "Light Set Intensity", "Description": "Sets the brightness level for a point light or a spotlight.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Light Set Intensity", @@ -7062,11 +7822,13 @@ ] }, "c3d0ef1f-921c-4602-a6eb-b03ed46d556f": { - "ReadonlyName": "Light Set Range", + "ReadonlyPaletteName": "Light Set Range", + "ReadonlyChipName": "Light Set Range", "Description": "Sets the range of a point light or a spotlight.", "IsBetaChip": false, - "DeprecationStage": 2, - "NameSource": 0, + "DeprecationStage": "Deprecated", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Light Set Range", @@ -7107,11 +7869,13 @@ ] }, "214bb1b7-f808-4a36-9c10-113045b4fe44": { - "ReadonlyName": "Light Set Range", + "ReadonlyPaletteName": "Light Set Range", + "ReadonlyChipName": "Light Set Range", "Description": "Sets the range of a point light or a spotlight.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Light Set Range", @@ -7152,11 +7916,13 @@ ] }, "0f96406e-af69-4f6c-a430-c6b004457ef4": { - "ReadonlyName": "Light Turn Off", + "ReadonlyPaletteName": "Light Turn Off", + "ReadonlyChipName": "Light Turn Off", "Description": "Turns off the point light or the spotlight.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Light Turn Off", @@ -7192,11 +7958,13 @@ ] }, "5452c480-62f9-4d4e-b615-0f59e645d8db": { - "ReadonlyName": "Light Turn On", + "ReadonlyPaletteName": "Light Turn On", + "ReadonlyChipName": "Light Turn On", "Description": "Turns on the point light or the spotlight.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Light Turn On", @@ -7232,11 +8000,13 @@ ] }, "f716c3f3-0c7c-42a4-bf55-12b7e1cd9040": { - "ReadonlyName": "List Add", + "ReadonlyPaletteName": "List Add", + "ReadonlyChipName": "List Add", "Description": "Adds a new element to the end of the target list containing the input value.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "List Add", @@ -7279,11 +8049,13 @@ ] }, "7d474bd7-ee53-4e6d-a45f-cd64fce1c0dc": { - "ReadonlyName": "List All True", + "ReadonlyPaletteName": "List All True", + "ReadonlyChipName": "List All True", "Description": "If all of the bool values in the list are True then return ture.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "List All True", @@ -7320,11 +8092,13 @@ ] }, "f9589495-685e-4e14-af2e-5cd45f860021": { - "ReadonlyName": "List Any True", + "ReadonlyPaletteName": "List Any True", + "ReadonlyChipName": "List Any True", "Description": "If any bool value in the list is True then return True.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "List Any True", @@ -7361,14 +8135,16 @@ ] }, "e0ef8c83-e5a6-4272-a102-07bfc0a40fd5": { - "ReadonlyName": "List Variable", + "ReadonlyPaletteName": "List Variable", + "ReadonlyChipName": "List Variable", "Description": "", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 1, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "Code", "NodeDescs": [ { - "Name": "Variable (List)", + "Name": "List Variable", "ReadonlyTypeParams": {}, "Inputs": [ { @@ -7432,11 +8208,13 @@ ] }, "9216dded-da74-49a7-a327-5750f4809787": { - "ReadonlyName": "List Variable", + "ReadonlyPaletteName": "List Variable", + "ReadonlyChipName": "List Variable", "Description": "", "IsBetaChip": true, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "Code", "NodeDescs": [ { "Name": "List Variable", @@ -7485,11 +8263,13 @@ ] }, "0e2f21e0-bc71-423a-a983-72e27193ca8b": { - "ReadonlyName": "List Concat", + "ReadonlyPaletteName": "List Concat", + "ReadonlyChipName": "List Concat", "Description": "Combine lists together into one list.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "List Concat", @@ -7527,11 +8307,13 @@ ] }, "73f261e2-d65d-4607-858d-3f4c37c76963": { - "ReadonlyName": "List Contains", + "ReadonlyPaletteName": "List Contains", + "ReadonlyChipName": "List Contains", "Description": "Outputs True if the target list contains the input value.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "List Contains", @@ -7569,14 +8351,16 @@ ] }, "536e376c-087d-4909-9412-3fcee5d6f52b": { - "ReadonlyName": "List Variable", + "ReadonlyPaletteName": "List Variable", + "ReadonlyChipName": "List Variable", "Description": "", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 1, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "Code", "NodeDescs": [ { - "Name": "Variable (List)", + "Name": "List Variable", "ReadonlyTypeParams": {}, "Inputs": [ { @@ -7628,11 +8412,13 @@ ] }, "7e5af908-533d-4d42-b3c9-0159e2b5fd55": { - "ReadonlyName": "List Divide", + "ReadonlyPaletteName": "List Divide", + "ReadonlyChipName": "List Divide", "Description": "Divides each element in the list by the next element.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "List Divide", @@ -7671,14 +8457,16 @@ ] }, "9bcd36e6-c293-432a-8d90-f6391fe06c62": { - "ReadonlyName": "List Variable", + "ReadonlyPaletteName": "List Variable", + "ReadonlyChipName": "List Variable", "Description": "", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 1, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "Code", "NodeDescs": [ { - "Name": "Variable (List)", + "Name": "List Variable", "ReadonlyTypeParams": {}, "Inputs": [ { @@ -7730,11 +8518,13 @@ ] }, "09066fc7-c88e-49f2-992c-5ed10f4ee682": { - "ReadonlyName": "List Get All Indices Of", + "ReadonlyPaletteName": "List Get All Indices Of", + "ReadonlyChipName": "List Get All Indices Of", "Description": "Returns list of all indices of input item in target list if that list contains one or more instances of the item. Otherwise returns an empty list.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "List Get All Indices Of", @@ -7772,11 +8562,13 @@ ] }, "d8926108-6c7d-4c78-8fbd-baac2b210e03": { - "ReadonlyName": "List Get First Index Of", + "ReadonlyPaletteName": "List Get First Index Of", + "ReadonlyChipName": "List Get First Index Of", "Description": "Returns first index of the item in target list if that list contains it. Otherwise returns -1.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "List Get First Index Of", @@ -7814,11 +8606,13 @@ ] }, "592c8aab-9489-492f-a4aa-1e558e6a8ce7": { - "ReadonlyName": "List Insert", + "ReadonlyPaletteName": "List Insert", + "ReadonlyChipName": "List Insert", "Description": "Insert a new element into the target list at the input index. The new element contains the input value.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "List Insert", @@ -7866,14 +8660,16 @@ ] }, "fe2f9c12-d213-4234-a387-9d2ec1ad7fc1": { - "ReadonlyName": "List Variable", + "ReadonlyPaletteName": "List Variable", + "ReadonlyChipName": "List Variable", "Description": "", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 1, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "Code", "NodeDescs": [ { - "Name": "Variable (List)", + "Name": "List Variable", "ReadonlyTypeParams": {}, "Inputs": [ { @@ -7925,11 +8721,13 @@ ] }, "47428133-4492-422a-aeab-82c21667543e": { - "ReadonlyName": "List Max", + "ReadonlyPaletteName": "List Max", + "ReadonlyChipName": "List Max", "Description": "Outputs the highest value in the target list.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "List Max", @@ -7968,11 +8766,13 @@ ] }, "73e9cc79-66cc-4526-8ed7-87500e208c6b": { - "ReadonlyName": "List Min", + "ReadonlyPaletteName": "List Min", + "ReadonlyChipName": "List Min", "Description": "Outputs the lowest value in the target list.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "List Min", @@ -8011,11 +8811,13 @@ ] }, "585aebe5-5df3-423a-8bc4-66b4e2b8bc5b": { - "ReadonlyName": "List Multiply", + "ReadonlyPaletteName": "List Multiply", + "ReadonlyChipName": "List Multiply", "Description": "Multiplies each element in the list by the next element.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "List Multiply", @@ -8054,14 +8856,16 @@ ] }, "32837e14-12de-465f-89dc-ceddb64cdd6c": { - "ReadonlyName": "List Variable", + "ReadonlyPaletteName": "List Variable", + "ReadonlyChipName": "List Variable", "Description": "", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 1, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "Code", "NodeDescs": [ { - "Name": "Variable (List)", + "Name": "List Variable", "ReadonlyTypeParams": {}, "Inputs": [ { @@ -8113,14 +8917,16 @@ ] }, "e8cfde19-33a4-4826-a032-4b9bd50aa171": { - "ReadonlyName": "List Variable", + "ReadonlyPaletteName": "List Variable", + "ReadonlyChipName": "List Variable", "Description": "", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 1, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "Code", "NodeDescs": [ { - "Name": "Variable (List)", + "Name": "List Variable", "ReadonlyTypeParams": {}, "Inputs": [ { @@ -8172,11 +8978,13 @@ ] }, "02774487-d41a-4b59-9aa9-2aeb0aad9e37": { - "ReadonlyName": "List Remove At", + "ReadonlyPaletteName": "List Remove At", + "ReadonlyChipName": "List Remove At", "Description": "Remove an element in the target list at the input index.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "List Remove At", @@ -8219,11 +9027,13 @@ ] }, "2687fb17-96ea-4106-94d7-be8854cfa978": { - "ReadonlyName": "List Remove Last", + "ReadonlyPaletteName": "List Remove Last", + "ReadonlyChipName": "List Remove Last", "Description": "Removes the last element in a list.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "List Remove Last", @@ -8261,14 +9071,16 @@ ] }, "94fb596f-6b3f-4981-bc2d-1bb693c45ae6": { - "ReadonlyName": "List Variable", + "ReadonlyPaletteName": "List Variable", + "ReadonlyChipName": "List Variable", "Description": "", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 1, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "Code", "NodeDescs": [ { - "Name": "Variable (List)", + "Name": "List Variable", "ReadonlyTypeParams": {}, "Inputs": [ { @@ -8314,11 +9126,13 @@ ] }, "20f069cb-30e5-4df8-8e2f-d91f322a83dd": { - "ReadonlyName": "List Subtract", + "ReadonlyPaletteName": "List Subtract", + "ReadonlyChipName": "List Subtract", "Description": "Subtracts each element in the list by the next element.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "List Subtract", @@ -8357,11 +9171,13 @@ ] }, "d080c9af-402f-4eb9-91d6-9eee945bf734": { - "ReadonlyName": "List Sum", + "ReadonlyPaletteName": "List Sum", + "ReadonlyChipName": "List Sum", "Description": "Adds each element in the list by the next element.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "List Sum", @@ -8400,14 +9216,16 @@ ] }, "35f84cfc-b10e-451e-832e-c6ad8d99685d": { - "ReadonlyName": "List Variable", + "ReadonlyPaletteName": "List Variable", + "ReadonlyChipName": "List Variable", "Description": "", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 1, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "Code", "NodeDescs": [ { - "Name": "Variable (List)", + "Name": "List Variable", "ReadonlyTypeParams": {}, "Inputs": [ { @@ -8459,11 +9277,13 @@ ] }, "28a105ab-a947-4493-a51d-ced76a9601ee": { - "ReadonlyName": "Logarithm", + "ReadonlyPaletteName": "Logarithm", + "ReadonlyChipName": "Logarithm", "Description": "Computes a logarithm.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Logarithm", @@ -8499,11 +9319,13 @@ ] }, "4047a8cc-3dcc-4fa8-85a7-41d569b8e547": { - "ReadonlyName": "Log String", + "ReadonlyPaletteName": "Log String", + "ReadonlyChipName": "Log String", "Description": "Logs a string to the logging tab of your palette.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Log String", @@ -8543,11 +9365,13 @@ ] }, "542d3256-0d51-4c33-a2a1-fbc44b7e1f07": { - "ReadonlyName": "List Create", + "ReadonlyPaletteName": "List Create", + "ReadonlyChipName": "List Create", "Description": "Creates a list from input values. Add more inputs by using the configure tool on the node and press \"Add Input\". All items in a list must be of the same type.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "List Create", @@ -8580,11 +9404,13 @@ ] }, "bee72c1d-266b-4ea4-b185-7500618030c6": { - "ReadonlyName": "Make Tuple", + "ReadonlyPaletteName": "Make Tuple", + "ReadonlyChipName": "Make Tuple", "Description": "", "IsBetaChip": true, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Make Tuple", @@ -8622,11 +9448,13 @@ ] }, "1cb807b1-85e7-4c14-b3ae-5775b7873b7d": { - "ReadonlyName": "Max", + "ReadonlyPaletteName": "Max", + "ReadonlyChipName": "Max", "Description": "Returns largest of two or more values.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Max", @@ -8659,11 +9487,13 @@ ] }, "bfb1ad17-5ade-4bd8-9c31-6d4b1e47dae3": { - "ReadonlyName": "Min", + "ReadonlyPaletteName": "Min", + "ReadonlyChipName": "Min", "Description": "Returns smallest of two or more values.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Min", @@ -8696,11 +9526,13 @@ ] }, "fe462e79-9e9f-4234-b594-7b6c0a69329b": { - "ReadonlyName": "Modulo", + "ReadonlyPaletteName": "Modulo", + "ReadonlyChipName": "Modulo", "Description": "Outputs the remainder of the first value is divided by the second.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Modulo", @@ -8733,11 +9565,13 @@ ] }, "4738d696-d05a-42ee-a182-7641c429ae06": { - "ReadonlyName": "Multiply", + "ReadonlyPaletteName": "Multiply", + "ReadonlyChipName": "Multiply", "Description": "Multiplies the two or more input values and outputs the result.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Multiply", @@ -8782,11 +9616,13 @@ ] }, "502e86d1-5b3a-4213-97e2-df25836ffcc4": { - "ReadonlyName": "Nand", + "ReadonlyPaletteName": "Nand", + "ReadonlyChipName": "Nand", "Description": "Outputs False only when all inputs are True. If any input is False, it outputs True.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Nand", @@ -8817,11 +9653,13 @@ ] }, "2891bcb4-a6ab-4a2e-a08d-dd2a55f1cf66": { - "ReadonlyName": "Nor", + "ReadonlyPaletteName": "Nor", + "ReadonlyChipName": "Nor", "Description": "Outputs True when all inputs are False. Otherwise, outputs False.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Nor", @@ -8852,11 +9690,13 @@ ] }, "ff551243-beb4-470e-ab48-9d616818d5e4": { - "ReadonlyName": "Not", + "ReadonlyPaletteName": "Not", + "ReadonlyChipName": "Not", "Description": "Outputs the opposite of the input boolean.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Not", @@ -8887,11 +9727,13 @@ ] }, "b5dcded0-eb2b-468d-a4b9-ffb1054f6214": { - "ReadonlyName": "Or", + "ReadonlyPaletteName": "Or", + "ReadonlyChipName": "Or", "Description": "Outputs True if any input is True. Otherwise outputs False.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Or", @@ -8922,11 +9764,13 @@ ] }, "92c05ebc-1967-49a4-94b5-2d01fe1e6b85": { - "ReadonlyName": "Parse Bool", + "ReadonlyPaletteName": "Parse Bool", + "ReadonlyChipName": "Parse Bool", "Description": "Converts the input string to a bool if able.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Parse Bool", @@ -8966,11 +9810,13 @@ ] }, "5e25f40a-2b8c-4327-a89c-7a749838da7d": { - "ReadonlyName": "Parse Float", + "ReadonlyPaletteName": "Parse Float", + "ReadonlyChipName": "Parse Float", "Description": "Converts the input string to a float if able.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Parse Float", @@ -9010,11 +9856,13 @@ ] }, "00b49995-a322-47a3-a32b-5530f2ba7fed": { - "ReadonlyName": "Parse Int", + "ReadonlyPaletteName": "Parse Int", + "ReadonlyChipName": "Parse Int", "Description": "Converts the input string to a integer if able.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Parse Int", @@ -9054,11 +9902,13 @@ ] }, "5e002bc3-c667-441c-8098-4df2f956de5b": { - "ReadonlyName": "Piston Get Acceleration", + "ReadonlyPaletteName": "Piston Get Acceleration", + "ReadonlyChipName": "Piston Get Acceleration", "Description": "Gets the acceleration of a piston.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Piston Get Acceleration", @@ -9089,11 +9939,13 @@ ] }, "e503b0e4-d295-48cc-bf95-1f1a8127a009": { - "ReadonlyName": "Piston Get Distance", + "ReadonlyPaletteName": "Piston Get Distance", + "ReadonlyChipName": "Piston Get Distance", "Description": "Outputs the current distance of the target Piston.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Piston Get Distance", @@ -9124,11 +9976,13 @@ ] }, "639a360e-aeb1-4c5d-8bc1-96bfaea8aef2": { - "ReadonlyName": "Piston Get Target Distance", + "ReadonlyPaletteName": "Piston Get Target Distance", + "ReadonlyChipName": "Piston Get Target Distance", "Description": "Outputs the set distance of the Marker on a target Piston.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Piston Get Target Distance", @@ -9159,11 +10013,13 @@ ] }, "bb702e97-9f40-45cb-b35d-3a2193ab6800": { - "ReadonlyName": "Piston Get Max Distance", + "ReadonlyPaletteName": "Piston Get Max Distance", + "ReadonlyChipName": "Piston Get Max Distance", "Description": "Outputs the max distance of the target Piston.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Piston Get Max Distance", @@ -9194,11 +10050,13 @@ ] }, "1d989cd3-d6ae-4503-b80e-5e630ec3f308": { - "ReadonlyName": "Piston Get Speed", + "ReadonlyPaletteName": "Piston Get Speed", + "ReadonlyChipName": "Piston Get Speed", "Description": "Returns the speed of a piston.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Piston Get Speed", @@ -9229,11 +10087,13 @@ ] }, "07c316df-cfa1-4ef8-ac3b-d7e9c4795812": { - "ReadonlyName": "Piston Set Acceleration", + "ReadonlyPaletteName": "Piston Set Acceleration", + "ReadonlyChipName": "Piston Set Acceleration", "Description": "Sets the acceleration of the target Piston.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Piston Set Acceleration", @@ -9274,11 +10134,13 @@ ] }, "283cb154-76e8-4d60-9899-2a50b6e4c093": { - "ReadonlyName": "Piston Set Distance", + "ReadonlyPaletteName": "Piston Set Distance", + "ReadonlyChipName": "Piston Set Distance", "Description": "Moves the target piston to the input distance.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Piston Set Distance", @@ -9319,11 +10181,13 @@ ] }, "bf25fab6-14ef-4815-a7db-92d99fc627d3": { - "ReadonlyName": "Piston Set Target Distance", + "ReadonlyPaletteName": "Piston Set Target Distance", + "ReadonlyChipName": "Piston Set Target Distance", "Description": "Sets the Marker distance of a target Piston.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Piston Set Target Distance", @@ -9364,11 +10228,13 @@ ] }, "95431866-97f3-43b4-91f3-4bd3574b2b02": { - "ReadonlyName": "Piston Set Max Distance", + "ReadonlyPaletteName": "Piston Set Max Distance", + "ReadonlyChipName": "Piston Set Max Distance", "Description": "Sets the max distance of a target Piston.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Piston Set Max Distance", @@ -9409,11 +10275,13 @@ ] }, "419d2d2f-18f8-4223-b2f7-a7d1450c242c": { - "ReadonlyName": "Piston Set Speed", + "ReadonlyPaletteName": "Piston Set Speed", + "ReadonlyChipName": "Piston Set Speed", "Description": "Sets the speed of a target Piston.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Piston Set Speed", @@ -9454,11 +10322,13 @@ ] }, "7b725036-4996-441d-ac54-91ac2c23d6b3": { - "ReadonlyName": "Player Add Role", + "ReadonlyPaletteName": "Player Add Role", + "ReadonlyChipName": "Player Add Role", "Description": "Adds a Role to a Player.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Player Add Role", @@ -9499,11 +10369,13 @@ ] }, "4c9e7840-0721-4d1c-b334-167f79d3bf40": { - "ReadonlyName": "Player Definition Board", + "ReadonlyPaletteName": "Player Definition Board", + "ReadonlyChipName": "Player Definition Board", "Description": "This is very similar to an object board that you would find on any object, except this is for all players! After placing, make sure to configure it and make sure it is active. Edit into this board and add any other chips you'd like and know that each player will have the same logic on them when you hit done editing.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 1, + "DeprecationStage": "Active", + "PaletteNameSource": "Code", + "ChipNameSource": "Code", "NodeDescs": [], "NodeFilters": [ { @@ -9520,11 +10392,13 @@ ] }, "f0827a17-7d21-45ba-b302-c2b068bd50ca": { - "ReadonlyName": "Player Get Equipped Objects", + "ReadonlyPaletteName": "Player Get Equipped Objects", + "ReadonlyChipName": "Player Get Equipped Objects", "Description": "Gets equipped objects from a player.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Player Get Equipped Objects", @@ -9575,11 +10449,13 @@ ] }, "4646dbed-e616-470e-8e0c-eb446b91838b": { - "ReadonlyName": "Player Get Is Local", + "ReadonlyPaletteName": "Player Get Is Local", + "ReadonlyChipName": "Player Get Is Local", "Description": "Outputs True if the input player is the local player executing the chip on their machine.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Player Get Is Local", @@ -9615,11 +10491,13 @@ ] }, "9b39ed47-e9a5-4f04-b4cd-80f5bbaff2f7": { - "ReadonlyName": "Player Has Role", + "ReadonlyPaletteName": "Player Has Role", + "ReadonlyChipName": "Player Has Role", "Description": "Outputs True if the input player has the input role.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Player Has Role", @@ -9655,11 +10533,13 @@ ] }, "c35fe6fe-d231-4ee5-80ff-9e69f24eb29e": { - "ReadonlyName": "Player Get Is Authority Of", + "ReadonlyPaletteName": "Player Get Is Authority Of", + "ReadonlyChipName": "Player Get Is Authority Of", "Description": "Outputs if a Player is authority of the input object.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Player Get Is Authority Of", @@ -9700,11 +10580,13 @@ ] }, "58c5cab7-ddf7-4de8-86c8-25f3d3c19d98": { - "ReadonlyName": "Player Get Is Room Owner", + "ReadonlyPaletteName": "Player Get Is Room Owner", + "ReadonlyChipName": "Player Get Is Room Owner", "Description": "Outputs True if the input Player is one of the current room's owners.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Player Get Is Room Owner", @@ -9735,11 +10617,13 @@ ] }, "6b5c4b0b-be26-4055-b26f-1e5f061c63ca": { - "ReadonlyName": "Player Left Hand Finger Direction", + "ReadonlyPaletteName": "Player Left Hand Finger Direction", + "ReadonlyChipName": "Player Left Hand Finger Direction", "Description": "Outputs the direction of a Player's left hand finger.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Player Left Hand Finger Direction", @@ -9770,11 +10654,13 @@ ] }, "17e61429-059f-4b29-b8b8-f0bf3179f580": { - "ReadonlyName": "Player Left Hand Rotation", + "ReadonlyPaletteName": "Player Left Hand Rotation", + "ReadonlyChipName": "Player Left Hand Rotation", "Description": "Outputs the rotation of a Player's left hand.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Player Left Hand Rotation", @@ -9805,11 +10691,13 @@ ] }, "619b3bc8-bcb9-4812-86f5-f6442cdbb557": { - "ReadonlyName": "Player Left Hand Position", + "ReadonlyPaletteName": "Player Left Hand Position", + "ReadonlyChipName": "Player Left Hand Position", "Description": "Outputs the postion of a Player's left hand in world space.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Player Left Hand Position", @@ -9840,11 +10728,13 @@ ] }, "fc2a0141-4997-422c-bdd3-f7ecd7d4c996": { - "ReadonlyName": "Player Left Hand Thumb Direction", + "ReadonlyPaletteName": "Player Left Hand Thumb Direction", + "ReadonlyChipName": "Player Left Hand Thumb Direction", "Description": "Outputs the direction of a Player's left hand thumb.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Player Left Hand Thumb Direction", @@ -9875,11 +10765,13 @@ ] }, "2607a0fe-f200-4f29-83ae-446db4b8e8ce": { - "ReadonlyName": "Player Left Hand Velocity", + "ReadonlyPaletteName": "Player Left Hand Velocity", + "ReadonlyChipName": "Player Left Hand Velocity", "Description": "Outputs the velocity of a Player's left hand.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Player Left Hand Velocity", @@ -9910,14 +10802,16 @@ ] }, "1094590a-ca33-4ca0-8e6b-66d784f4b5d7": { - "ReadonlyName": "Player Variable", + "ReadonlyPaletteName": "Player Variable", + "ReadonlyChipName": "Player Variable", "Description": "", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 1, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "Code", "NodeDescs": [ { - "Name": "Variable (Player)", + "Name": "Player Variable", "ReadonlyTypeParams": {}, "Inputs": [ { @@ -9954,43 +10848,469 @@ }, { "FilterPath": [ - "Player", - "Variable" + "Player", + "Variable" + ] + } + ] + }, + "89981fe2-2e27-4b92-b8c2-c0159b62bccc": { + "ReadonlyPaletteName": "Player Remove Role", + "ReadonlyChipName": "Player Remove Role", + "Description": "Removes the input role from a target player.", + "IsBetaChip": false, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", + "NodeDescs": [ + { + "Name": "Player Remove Role", + "ReadonlyTypeParams": {}, + "Inputs": [ + { + "Name": "", + "ReadonlyType": "exec", + "Description": "" + }, + { + "Name": "Target", + "ReadonlyType": "Player", + "Description": "" + }, + { + "Name": "Value", + "ReadonlyType": "string", + "Description": "" + } + ], + "Outputs": [ + { + "Name": "", + "ReadonlyType": "exec", + "Description": "" + } + ] + } + ], + "NodeFilters": [ + { + "FilterPath": [ + "Player", + "Role" + ] + } + ] + }, + "646ff790-c930-4565-ae38-99a798271a50": { + "ReadonlyPaletteName": "Player Right Hand Finger Direction", + "ReadonlyChipName": "Player Right Hand Finger Direction", + "Description": "Outputs the direction of a Player's right hand finger.", + "IsBetaChip": false, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", + "NodeDescs": [ + { + "Name": "Player Right Hand Finger Direction", + "ReadonlyTypeParams": {}, + "Inputs": [ + { + "Name": "Target", + "ReadonlyType": "Player", + "Description": "" + } + ], + "Outputs": [ + { + "Name": "Vector", + "ReadonlyType": "Vector3", + "Description": "" + } + ] + } + ], + "NodeFilters": [ + { + "FilterPath": [ + "Player", + "Physics" + ] + } + ] + }, + "0afab661-0870-42bb-9256-891f1a876b3b": { + "ReadonlyPaletteName": "Player Right Hand Rotation", + "ReadonlyChipName": "Player Right Hand Rotation", + "Description": "Outputs the rotation of a Player's right hand.", + "IsBetaChip": false, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", + "NodeDescs": [ + { + "Name": "Player Right Hand Rotation", + "ReadonlyTypeParams": {}, + "Inputs": [ + { + "Name": "Target", + "ReadonlyType": "Player", + "Description": "" + } + ], + "Outputs": [ + { + "Name": "Result", + "ReadonlyType": "Quaternion", + "Description": "" + } + ] + } + ], + "NodeFilters": [ + { + "FilterPath": [ + "Player", + "Physics" + ] + } + ] + }, + "e9d3330d-c290-41d5-aa37-cc5e43198836": { + "ReadonlyPaletteName": "Player Right Hand Position", + "ReadonlyChipName": "Player Right Hand Position", + "Description": "Outputs the postion of a Player's right hand in world space.", + "IsBetaChip": false, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", + "NodeDescs": [ + { + "Name": "Player Right Hand Position", + "ReadonlyTypeParams": {}, + "Inputs": [ + { + "Name": "Target", + "ReadonlyType": "Player", + "Description": "" + } + ], + "Outputs": [ + { + "Name": "Vector", + "ReadonlyType": "Vector3", + "Description": "" + } + ] + } + ], + "NodeFilters": [ + { + "FilterPath": [ + "Player", + "Physics" + ] + } + ] + }, + "86e8581c-ddf9-4302-a06f-c451b5055a98": { + "ReadonlyPaletteName": "Player Right Hand Thumb Direction", + "ReadonlyChipName": "Player Right Hand Thumb Direction", + "Description": "Outputs the direction of a Player's right hand thumb.", + "IsBetaChip": false, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", + "NodeDescs": [ + { + "Name": "Player Right Hand Thumb Direction", + "ReadonlyTypeParams": {}, + "Inputs": [ + { + "Name": "Target", + "ReadonlyType": "Player", + "Description": "" + } + ], + "Outputs": [ + { + "Name": "Vector", + "ReadonlyType": "Vector3", + "Description": "" + } + ] + } + ], + "NodeFilters": [ + { + "FilterPath": [ + "Player", + "Physics" + ] + } + ] + }, + "aba06411-9c8c-477a-bc7f-76ab5605c85d": { + "ReadonlyPaletteName": "Player Right Hand Velocity", + "ReadonlyChipName": "Player Right Hand Velocity", + "Description": "Outputs the velocity of a Player's right hand.", + "IsBetaChip": false, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", + "NodeDescs": [ + { + "Name": "Player Right Hand Velocity", + "ReadonlyTypeParams": {}, + "Inputs": [ + { + "Name": "Target", + "ReadonlyType": "Player", + "Description": "" + } + ], + "Outputs": [ + { + "Name": "Vector", + "ReadonlyType": "Vector3", + "Description": "" + } + ] + } + ], + "NodeFilters": [ + { + "FilterPath": [ + "Player", + "Physics" + ] + } + ] + }, + "7e321d9b-4500-4917-9361-a32e1463401c": { + "ReadonlyPaletteName": "Player Subscribes To Room Owner", + "ReadonlyChipName": "Player Subscribes To Room Owner", + "Description": "Outputs True if the input Player subscribes to one of the current room's owners.", + "IsBetaChip": false, + "DeprecationStage": "Deprecated", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", + "NodeDescs": [ + { + "Name": "Player Subscribes To Room Owner", + "ReadonlyTypeParams": {}, + "Inputs": [ + { + "Name": "Target", + "ReadonlyType": "Player", + "Description": "" + } + ], + "Outputs": [ + { + "Name": "Result", + "ReadonlyType": "bool", + "Description": "" + }, + { + "Name": "Seconds Until Enabled", + "ReadonlyType": "int", + "Description": "" + } + ] + } + ], + "NodeFilters": [ + { + "FilterPath": [ + "Player", + "Utilities" + ] + } + ] + }, + "288d4e89-ebed-41ed-a522-4c79bd48471a": { + "ReadonlyPaletteName": "Power", + "ReadonlyChipName": "Power", + "Description": "Multiplies a value by itself an input number of times.", + "IsBetaChip": false, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", + "NodeDescs": [ + { + "Name": "Power", + "ReadonlyTypeParams": { + "T": "(int | float)" + }, + "Inputs": [ + { + "Name": "Value", + "ReadonlyType": "T", + "Description": "" + } + ], + "Outputs": [ + { + "Name": "Result", + "ReadonlyType": "T", + "Description": "" + } + ] + } + ], + "NodeFilters": [ + { + "FilterPath": [ + "Math", + "Scalar" + ] + } + ] + }, + "27e235ea-7305-4f3e-a426-04a887cbde6d": { + "ReadonlyPaletteName": "Projectile Launcher Fire Projectile", + "ReadonlyChipName": "Projectile Launcher Fire Projectile", + "Description": "", + "IsBetaChip": true, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", + "NodeDescs": [ + { + "Name": "Projectile Launcher Fire Projectile", + "ReadonlyTypeParams": {}, + "Inputs": [ + { + "Name": "", + "ReadonlyType": "exec", + "Description": "" + }, + { + "Name": "Target", + "ReadonlyType": "Projectile Launcher", + "Description": "" + }, + { + "Name": "Direction", + "ReadonlyType": "Vector3", + "Description": "" + } + ], + "Outputs": [ + { + "Name": "", + "ReadonlyType": "exec", + "Description": "" + } + ] + } + ], + "NodeFilters": [ + { + "FilterPath": [ + "Object", + "Projectile Launcher" + ] + } + ] + }, + "29005ae6-2611-4ed3-9bed-e256749b487a": { + "ReadonlyPaletteName": "Projectile Launcher Get Projectile Color", + "ReadonlyChipName": "Projectile Launcher Get Projectile Color", + "Description": "", + "IsBetaChip": true, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", + "NodeDescs": [ + { + "Name": "Projectile Launcher Get Projectile Color", + "ReadonlyTypeParams": {}, + "Inputs": [ + { + "Name": "Target", + "ReadonlyType": "Projectile Launcher", + "Description": "" + } + ], + "Outputs": [ + { + "Name": "Color", + "ReadonlyType": "Color", + "Description": "" + } + ] + } + ], + "NodeFilters": [ + { + "FilterPath": [ + "Object", + "Projectile Launcher" + ] + } + ] + }, + "ed1f109d-bc85-4e4b-8f15-d33363aed7dd": { + "ReadonlyPaletteName": "Projectile Launcher Get Hand Damage", + "ReadonlyChipName": "Projectile Launcher Get Hand Damage", + "Description": "", + "IsBetaChip": true, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", + "NodeDescs": [ + { + "Name": "Projectile Launcher Get Hand Damage", + "ReadonlyTypeParams": {}, + "Inputs": [ + { + "Name": "Target", + "ReadonlyType": "Projectile Launcher", + "Description": "" + } + ], + "Outputs": [ + { + "Name": "Damage", + "ReadonlyType": "int", + "Description": "" + } + ] + } + ], + "NodeFilters": [ + { + "FilterPath": [ + "Object", + "Projectile Launcher" ] } ] }, - "89981fe2-2e27-4b92-b8c2-c0159b62bccc": { - "ReadonlyName": "Player Remove Role", - "Description": "Removes the input role from a target player.", - "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "7aa59933-c380-428e-aca9-2de2875cb38d": { + "ReadonlyPaletteName": "Projectile Launcher Get Head Damage", + "ReadonlyChipName": "Projectile Launcher Get Head Damage", + "Description": "", + "IsBetaChip": true, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { - "Name": "Player Remove Role", + "Name": "Projectile Launcher Get Head Damage", "ReadonlyTypeParams": {}, "Inputs": [ - { - "Name": "", - "ReadonlyType": "exec", - "Description": "" - }, { "Name": "Target", - "ReadonlyType": "Player", - "Description": "" - }, - { - "Name": "Value", - "ReadonlyType": "string", + "ReadonlyType": "Projectile Launcher", "Description": "" } ], "Outputs": [ { - "Name": "", - "ReadonlyType": "exec", + "Name": "Damage", + "ReadonlyType": "int", "Description": "" } ] @@ -9999,33 +11319,35 @@ "NodeFilters": [ { "FilterPath": [ - "Player", - "Role" + "Object", + "Projectile Launcher" ] } ] }, - "646ff790-c930-4565-ae38-99a798271a50": { - "ReadonlyName": "Player Right Hand Finger Direction", - "Description": "Outputs the direction of a Player's right hand finger.", - "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "1803843e-4e3b-4422-ada9-5f8959337ee5": { + "ReadonlyPaletteName": "Projectile Launcher Get Projectile Speed", + "ReadonlyChipName": "Projectile Launcher Get Projectile Speed", + "Description": "", + "IsBetaChip": true, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { - "Name": "Player Right Hand Finger Direction", + "Name": "Projectile Launcher Get Projectile Speed", "ReadonlyTypeParams": {}, "Inputs": [ { "Name": "Target", - "ReadonlyType": "Player", + "ReadonlyType": "Projectile Launcher", "Description": "" } ], "Outputs": [ { - "Name": "Vector", - "ReadonlyType": "Vector3", + "Name": "Speed", + "ReadonlyType": "float", "Description": "" } ] @@ -10034,33 +11356,35 @@ "NodeFilters": [ { "FilterPath": [ - "Player", - "Physics" + "Object", + "Projectile Launcher" ] } ] }, - "0afab661-0870-42bb-9256-891f1a876b3b": { - "ReadonlyName": "Player Right Hand Rotation", - "Description": "Outputs the rotation of a Player's right hand.", - "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "0da5a0be-9c01-4fcc-83a4-a660971c8644": { + "ReadonlyPaletteName": "Projectile Launcher Get Torso Damage", + "ReadonlyChipName": "Projectile Launcher Get Torso Damage", + "Description": "", + "IsBetaChip": true, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { - "Name": "Player Right Hand Rotation", + "Name": "Projectile Launcher Get Torso Damage", "ReadonlyTypeParams": {}, "Inputs": [ { "Name": "Target", - "ReadonlyType": "Player", + "ReadonlyType": "Projectile Launcher", "Description": "" } ], "Outputs": [ { - "Name": "Result", - "ReadonlyType": "Quaternion", + "Name": "Damage", + "ReadonlyType": "int", "Description": "" } ] @@ -10069,33 +11393,45 @@ "NodeFilters": [ { "FilterPath": [ - "Player", - "Physics" + "Object", + "Projectile Launcher" ] } ] }, - "e9d3330d-c290-41d5-aa37-cc5e43198836": { - "ReadonlyName": "Player Right Hand Position", - "Description": "Outputs the postion of a Player's right hand in world space.", - "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "3a253a6e-fc0f-4ae2-b669-0418c09fc553": { + "ReadonlyPaletteName": "Projectile Launcher Set Projectile Color", + "ReadonlyChipName": "Projectile Launcher Set Projectile Color", + "Description": "", + "IsBetaChip": true, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { - "Name": "Player Right Hand Position", + "Name": "Projectile Launcher Set Projectile Color", "ReadonlyTypeParams": {}, "Inputs": [ + { + "Name": "", + "ReadonlyType": "exec", + "Description": "" + }, { "Name": "Target", - "ReadonlyType": "Player", + "ReadonlyType": "Projectile Launcher", + "Description": "" + }, + { + "Name": "Color", + "ReadonlyType": "Color", "Description": "" } ], "Outputs": [ { - "Name": "Vector", - "ReadonlyType": "Vector3", + "Name": "", + "ReadonlyType": "exec", "Description": "" } ] @@ -10104,33 +11440,45 @@ "NodeFilters": [ { "FilterPath": [ - "Player", - "Physics" + "Object", + "Projectile Launcher" ] } ] }, - "86e8581c-ddf9-4302-a06f-c451b5055a98": { - "ReadonlyName": "Player Right Hand Thumb Direction", - "Description": "Outputs the direction of a Player's right hand thumb.", - "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "3dd1fa27-a800-4d05-8b47-16ad48311135": { + "ReadonlyPaletteName": "Projectile Launcher Set Hand Damage", + "ReadonlyChipName": "Projectile Launcher Set Hand Damage", + "Description": "", + "IsBetaChip": true, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { - "Name": "Player Right Hand Thumb Direction", + "Name": "Projectile Launcher Set Hand Damage", "ReadonlyTypeParams": {}, "Inputs": [ + { + "Name": "", + "ReadonlyType": "exec", + "Description": "" + }, { "Name": "Target", - "ReadonlyType": "Player", + "ReadonlyType": "Projectile Launcher", + "Description": "" + }, + { + "Name": "Damage", + "ReadonlyType": "int", "Description": "" } ], "Outputs": [ { - "Name": "Vector", - "ReadonlyType": "Vector3", + "Name": "", + "ReadonlyType": "exec", "Description": "" } ] @@ -10139,33 +11487,45 @@ "NodeFilters": [ { "FilterPath": [ - "Player", - "Physics" + "Object", + "Projectile Launcher" ] } ] }, - "aba06411-9c8c-477a-bc7f-76ab5605c85d": { - "ReadonlyName": "Player Right Hand Velocity", - "Description": "Outputs the velocity of a Player's right hand.", - "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "f9eeb1b4-5721-4d30-82d4-3bfdea0b8617": { + "ReadonlyPaletteName": "Projectile Launcher Set Head Damage", + "ReadonlyChipName": "Projectile Launcher Set Head Damage", + "Description": "", + "IsBetaChip": true, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { - "Name": "Player Right Hand Velocity", + "Name": "Projectile Launcher Set Head Damage", "ReadonlyTypeParams": {}, "Inputs": [ + { + "Name": "", + "ReadonlyType": "exec", + "Description": "" + }, { "Name": "Target", - "ReadonlyType": "Player", + "ReadonlyType": "Projectile Launcher", + "Description": "" + }, + { + "Name": "Damage", + "ReadonlyType": "int", "Description": "" } ], "Outputs": [ { - "Name": "Vector", - "ReadonlyType": "Vector3", + "Name": "", + "ReadonlyType": "exec", "Description": "" } ] @@ -10174,38 +11534,45 @@ "NodeFilters": [ { "FilterPath": [ - "Player", - "Physics" + "Object", + "Projectile Launcher" ] } ] }, - "7e321d9b-4500-4917-9361-a32e1463401c": { - "ReadonlyName": "Player Subscribes To Room Owner", - "Description": "Outputs True if the input Player subscribes to one of the current room's owners.", - "IsBetaChip": false, - "DeprecationStage": 2, - "NameSource": 0, + "01cf75ba-b056-4226-b646-84fee1b7c9aa": { + "ReadonlyPaletteName": "Projectile Launcher Set Projectile Speed", + "ReadonlyChipName": "Projectile Launcher Set Projectile Speed", + "Description": "", + "IsBetaChip": true, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { - "Name": "Player Subscribes To Room Owner", + "Name": "Projectile Launcher Set Projectile Speed", "ReadonlyTypeParams": {}, "Inputs": [ + { + "Name": "", + "ReadonlyType": "exec", + "Description": "" + }, { "Name": "Target", - "ReadonlyType": "Player", + "ReadonlyType": "Projectile Launcher", + "Description": "" + }, + { + "Name": "Speed", + "ReadonlyType": "float", "Description": "" } ], "Outputs": [ { - "Name": "Result", - "ReadonlyType": "bool", - "Description": "" - }, - { - "Name": "Seconds Until Enabled", - "ReadonlyType": "int", + "Name": "", + "ReadonlyType": "exec", "Description": "" } ] @@ -10214,35 +11581,45 @@ "NodeFilters": [ { "FilterPath": [ - "Player", - "Utilities" + "Object", + "Projectile Launcher" ] } ] }, - "288d4e89-ebed-41ed-a522-4c79bd48471a": { - "ReadonlyName": "Power", - "Description": "Multiplies a value by itself an input number of times.", - "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "531dc709-286e-429c-9d51-537a63d74f76": { + "ReadonlyPaletteName": "Projectile Launcher Set Torso Damage", + "ReadonlyChipName": "Projectile Launcher Set Torso Damage", + "Description": "", + "IsBetaChip": true, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { - "Name": "Power", - "ReadonlyTypeParams": { - "T": "(int | float)" - }, + "Name": "Projectile Launcher Set Torso Damage", + "ReadonlyTypeParams": {}, "Inputs": [ { - "Name": "Value", - "ReadonlyType": "T", + "Name": "", + "ReadonlyType": "exec", + "Description": "" + }, + { + "Name": "Target", + "ReadonlyType": "Projectile Launcher", + "Description": "" + }, + { + "Name": "Damage", + "ReadonlyType": "int", "Description": "" } ], "Outputs": [ { - "Name": "Result", - "ReadonlyType": "T", + "Name": "", + "ReadonlyType": "exec", "Description": "" } ] @@ -10251,18 +11628,20 @@ "NodeFilters": [ { "FilterPath": [ - "Math", - "Scalar" + "Object", + "Projectile Launcher" ] } ] }, "46e6b40e-2416-4078-b7dc-a0ecc2c2aa20": { - "ReadonlyName": "Prompt Local Player", + "ReadonlyPaletteName": "Prompt Local Player", + "ReadonlyChipName": "Prompt Local Player", "Description": "Sends a watch notification to a player. The player which it sends a notification to depends on who's machine fires the exec pin. Once this watch notification is opened, the player can type responses into the text box and send back responses. You can define the prompt title and the prompt itself via inputs, and can also receive the player’s response via an output pin.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Prompt Local Player", @@ -10318,11 +11697,13 @@ ] }, "d9096fb3-50c6-42f9-93bb-fc6df63d86a8": { - "ReadonlyName": "Quaternion Create Angle Axis", + "ReadonlyPaletteName": "Quaternion Create Angle Axis", + "ReadonlyChipName": "Quaternion Create Angle Axis", "Description": "Creates a rotation which rotates \"Angle\" degrees around \"Axis\".", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Quaternion Create Angle Axis", @@ -10358,11 +11739,13 @@ ] }, "e320278c-13f0-4fe3-b838-7e671bdd9b49": { - "ReadonlyName": "Quaternion Create Euler Angles", + "ReadonlyPaletteName": "Quaternion Create Euler Angles", + "ReadonlyChipName": "Quaternion Create Euler Angles", "Description": "Creates a quaternion from an input Vector3.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Quaternion Create Euler Angles", @@ -10393,11 +11776,13 @@ ] }, "1069c5de-c7e3-40e0-bd90-52135873b36d": { - "ReadonlyName": "Quaternion Create From To", + "ReadonlyPaletteName": "Quaternion Create From To", + "ReadonlyChipName": "Quaternion Create From To", "Description": "Creates a rotation which rotates from \"From\" to \"To\".", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Quaternion Create From To", @@ -10433,11 +11818,13 @@ ] }, "b28f369d-6758-4afc-80e2-8f09ea1df125": { - "ReadonlyName": "Quaternion Create Look", + "ReadonlyPaletteName": "Quaternion Create Look", + "ReadonlyChipName": "Quaternion Create Look", "Description": "Creates a rotation with the specified forward and upwards directions.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Quaternion Create Look", @@ -10473,11 +11860,13 @@ ] }, "cff17d2a-4333-41da-81ac-2825f25bf819": { - "ReadonlyName": "Quaternion Create", + "ReadonlyPaletteName": "Quaternion Create", + "ReadonlyChipName": "Quaternion Create", "Description": "Manually create a quaternion. Congratulations, you have reached peak math.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Quaternion Create", @@ -10523,11 +11912,13 @@ ] }, "268d931e-172b-48e8-8eb8-8ec2a9614f0d": { - "ReadonlyName": "Quaternion Dot", + "ReadonlyPaletteName": "Quaternion Dot", + "ReadonlyChipName": "Quaternion Dot", "Description": "The dot product between two rotations.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Quaternion Dot", @@ -10563,11 +11954,13 @@ ] }, "81048ea5-2778-4816-99c5-1c50faad8a87": { - "ReadonlyName": "Quaternion Euler Angles", + "ReadonlyPaletteName": "Quaternion Euler Angles", + "ReadonlyChipName": "Quaternion Euler Angles", "Description": "Outputs the input quaternion as a vector3.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Quaternion Euler Angles", @@ -10598,11 +11991,13 @@ ] }, "b415c3ce-5f9f-472b-8d70-daeb728b7c2d": { - "ReadonlyName": "Quaternion Get Angle Axis", + "ReadonlyPaletteName": "Quaternion Get Angle Axis", + "ReadonlyChipName": "Quaternion Get Angle Axis", "Description": "Gets the rotation which rotates angle degrees around axis.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Quaternion Get Angle Axis", @@ -10638,11 +12033,13 @@ ] }, "2097bef3-9ed1-4601-ab5d-f620654bd1c4": { - "ReadonlyName": "Quaternion Inverse", + "ReadonlyPaletteName": "Quaternion Inverse", + "ReadonlyChipName": "Quaternion Inverse", "Description": "Outputs the Inverse of rotation.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Quaternion Inverse", @@ -10673,14 +12070,16 @@ ] }, "18a980ff-9a46-472c-b658-96bf42eb61c2": { - "ReadonlyName": "Quaternion Variable", + "ReadonlyPaletteName": "Quaternion Variable", + "ReadonlyChipName": "Quaternion Variable", "Description": "", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 1, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "Code", "NodeDescs": [ { - "Name": "Variable (Quaternion)", + "Name": "Quaternion Variable", "ReadonlyTypeParams": {}, "Inputs": [ { @@ -10724,11 +12123,13 @@ ] }, "8157b896-fce8-45fc-957a-4407f0d6c42a": { - "ReadonlyName": "Quaternion Normalize", + "ReadonlyPaletteName": "Quaternion Normalize", + "ReadonlyChipName": "Quaternion Normalize", "Description": "Outputs the input quaternion with the same rotation but with a magnitude of 1.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Quaternion Normalize", @@ -10759,11 +12160,13 @@ ] }, "edfe7cbb-6973-4489-9b7a-75746243dd6d": { - "ReadonlyName": "Quaternion Rotate Towards", + "ReadonlyPaletteName": "Quaternion Rotate Towards", + "ReadonlyChipName": "Quaternion Rotate Towards", "Description": "Rotates a rotation from \"From\" towards \"To\".", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Quaternion Rotate Towards", @@ -10804,11 +12207,13 @@ ] }, "02c4048a-5f67-47ea-9f00-692f51c66e65": { - "ReadonlyName": "Rotate Vector", + "ReadonlyPaletteName": "Rotate Vector", + "ReadonlyChipName": "Rotate Vector", "Description": "Rotate a Vector3 with a Quaternion.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Rotate Vector", @@ -10844,11 +12249,13 @@ ] }, "8d5f0586-1ecf-42ba-a34f-c6ccbb0eadb9": { - "ReadonlyName": "Quaternion Slerp", + "ReadonlyPaletteName": "Quaternion Slerp", + "ReadonlyChipName": "Quaternion Slerp", "Description": "Spherically interpolates between quaternions \"Start\" and \"End\". Progress is 0 to 1. Also a rare, but refreshing beverage.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Quaternion Slerp", @@ -10889,11 +12296,13 @@ ] }, "1d2a37e1-428e-4385-bc96-4ad5adff0a05": { - "ReadonlyName": "Quaternion Split", + "ReadonlyPaletteName": "Quaternion Split", + "ReadonlyChipName": "Quaternion Split", "Description": "Split a quaternion into its four float components: x, y, z, and w. Congratulations, you have reached peak math.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Quaternion Split", @@ -10939,11 +12348,13 @@ ] }, "4ecbf247-ab14-4f9e-8094-e40a45d283e6": { - "ReadonlyName": "Random Float", + "ReadonlyPaletteName": "Random Float", + "ReadonlyChipName": "Random Float", "Description": "Generates a random float from [\"Min\" to \"Max\"]. \"Min\" is inclusive, and \"Max\" is also inclusive. For example with a \"Min\" of 0 and a \"Max\" of 1, both 0 and 1 have the possibility of getting output because they are both included in the range.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Random Float", @@ -10989,11 +12400,62 @@ ] }, "0b18cef3-0ea5-4e3c-a0d5-c460f03dbe8c": { - "ReadonlyName": "Random From List", + "ReadonlyPaletteName": "Random From List (Deprecated)", + "ReadonlyChipName": "Random From List (Deprecated)", + "Description": "Outputs a random value from a target list.", + "IsBetaChip": false, + "DeprecationStage": "Deprecated", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", + "NodeDescs": [ + { + "Name": "Random From List (Deprecated)", + "ReadonlyTypeParams": { + "T": "any" + }, + "Inputs": [ + { + "Name": "", + "ReadonlyType": "exec", + "Description": "" + }, + { + "Name": "List", + "ReadonlyType": "List", + "Description": "" + } + ], + "Outputs": [ + { + "Name": "", + "ReadonlyType": "exec", + "Description": "" + }, + { + "Name": "Value", + "ReadonlyType": "T", + "Description": "" + } + ] + } + ], + "NodeFilters": [ + { + "FilterPath": [ + "List", + "Utilities" + ] + } + ] + }, + "d253cef6-dd99-4357-b98a-e09a0c23bad7": { + "ReadonlyPaletteName": "Random From List", + "ReadonlyChipName": "Random From List", "Description": "Outputs a random value from a target list.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Random From List", @@ -11036,11 +12498,13 @@ ] }, "fb2645f0-4042-4ef1-b988-af2f80e651ec": { - "ReadonlyName": "Random Int", + "ReadonlyPaletteName": "Random Int", + "ReadonlyChipName": "Random Int", "Description": "Generates a random integer from [\"Min\" to \"Max\"]. \"Min\" is inclusive, and \"Max\" is also inclusive. For example with a \"Min\" of 0 and a \"Max\" of 1, 0 and 1 will have a chance of being output.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Random Int", @@ -11086,11 +12550,13 @@ ] }, "af203a1f-f3c9-479b-86f0-72224b094179": { - "ReadonlyName": "Raycast", + "ReadonlyPaletteName": "Raycast", + "ReadonlyChipName": "Raycast", "Description": "Fires an invisible ray from the \"Start Position\", in the \"Direction\" specified. Returns True if any object or player is hit within the target \"Max Distance\". Otherwise, returns False. You can configure the chip itself to ignore players or objects specifically.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Raycast", @@ -11155,11 +12621,13 @@ ] }, "f8db4ba2-7380-49a0-a0ba-bcdca11fec96": { - "ReadonlyName": "Reroute", + "ReadonlyPaletteName": "Reroute", + "ReadonlyChipName": "Reroute", "Description": "Used to remove spaghetti from your creations. Consumes additional CPU heat.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 1, + "DeprecationStage": "Active", + "PaletteNameSource": "Code", + "ChipNameSource": "Code", "NodeDescs": [ { "Name": "", @@ -11196,11 +12664,13 @@ ] }, "6ba175cf-493a-4790-b916-57259f94cd98": { - "ReadonlyName": "Rec Room Object Reset", + "ReadonlyPaletteName": "Rec Room Object Reset", + "ReadonlyChipName": "Rec Room Object Reset", "Description": "Resets an object.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Rec Room Object Reset", @@ -11229,46 +12699,131 @@ "NodeFilters": [ { "FilterPath": [ - "Object", - "Rec Room Object" + "Object", + "Rec Room Object" + ] + } + ] + }, + "e921b08d-10c2-4be4-86fe-b8c7155cb97b": { + "ReadonlyPaletteName": "Reset Room", + "ReadonlyChipName": "Reset Room", + "Description": "Resets the Room.", + "IsBetaChip": false, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", + "NodeDescs": [ + { + "Name": "Reset Room", + "ReadonlyTypeParams": {}, + "Inputs": [ + { + "Name": "", + "ReadonlyType": "exec", + "Description": "" + } + ], + "Outputs": [] + } + ], + "NodeFilters": [ + { + "FilterPath": [ + "Utilities" ] } ] }, - "e921b08d-10c2-4be4-86fe-b8c7155cb97b": { - "ReadonlyName": "Reset Room", - "Description": "Resets the Room.", + "5898c7f7-cb5d-4344-a194-bd09260b12dd": { + "ReadonlyPaletteName": "Respawn (Deprecated)", + "ReadonlyChipName": "Respawn (Deprecated)", + "Description": "Sets the position and rotation of the target player or object. Players will rotate about the vertical axis only. Will fail in the following cases: If the target object is currently held, selected/frozen by the maker pen, or is the child of a gizmo. Will also fail on players that are seated.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Deprecated", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { - "Name": "Reset Room", - "ReadonlyTypeParams": {}, + "Name": "Respawn (Deprecated)", + "ReadonlyTypeParams": { + "T": "(Player | Rec Room Object)", + "U": "(Vector3 | Quaternion)" + }, "Inputs": [ { "Name": "", "ReadonlyType": "exec", "Description": "" + }, + { + "Name": "Target", + "ReadonlyType": "T", + "Description": "" + }, + { + "Name": "Position", + "ReadonlyType": "Vector3", + "Description": "" + }, + { + "Name": "Rotation", + "ReadonlyType": "U", + "Description": "" + }, + { + "Name": "Spawn Radius", + "ReadonlyType": "float", + "Description": "" + }, + { + "Name": "Clear Velocity", + "ReadonlyType": "bool", + "Description": "" + }, + { + "Name": "Use Rez Effects", + "ReadonlyType": "bool", + "Description": "" } ], - "Outputs": [] + "Outputs": [ + { + "Name": "", + "ReadonlyType": "exec", + "Description": "" + }, + { + "Name": "Failed", + "ReadonlyType": "exec", + "Description": "" + } + ] } ], "NodeFilters": [ { "FilterPath": [ - "Utilities" + "Player", + "Physics" + ] + }, + { + "FilterPath": [ + "Object", + "Physics" ] } ] }, - "5898c7f7-cb5d-4344-a194-bd09260b12dd": { - "ReadonlyName": "Respawn", - "Description": "Sets the position and rotation of the target player or object. Will fail in the following cases: If the target object is currently held, selected/frozen by the maker pen, or is the child of a gizmo. Will also fail on players that are seated.", - "IsBetaChip": true, - "DeprecationStage": 0, - "NameSource": 0, + "950368dc-fbdd-4627-a0e3-157fd2955276": { + "ReadonlyPaletteName": "Respawn", + "ReadonlyChipName": "Respawn", + "Description": "Sets the position and rotation of the target player or object. Players will rotate about the vertical axis only. Will fail in the following cases: If the target object is currently held, selected/frozen by the maker pen, or is the child of a gizmo. Will also fail on players that are seated.", + "IsBetaChip": false, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Respawn", @@ -11320,8 +12875,8 @@ "Description": "" }, { - "Name": "Failed", - "ReadonlyType": "exec", + "Name": "Success", + "ReadonlyType": "bool", "Description": "" } ] @@ -11343,11 +12898,13 @@ ] }, "117b8c83-5ada-4665-a0c6-2c6ffdec98b9": { - "ReadonlyName": "Rotator Get Target Rotation", + "ReadonlyPaletteName": "Rotator Get Target Rotation", + "ReadonlyChipName": "Rotator Get Target Rotation", "Description": "Outputs the rotation of the Marker on the target Rotator.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Rotator Get Target Rotation", @@ -11378,11 +12935,13 @@ ] }, "2d96da47-4d37-4463-a3bd-8f8cd2ab0c58": { - "ReadonlyName": "Rotator Get Rotation Acceleration", + "ReadonlyPaletteName": "Rotator Get Rotation Acceleration", + "ReadonlyChipName": "Rotator Get Rotation Acceleration", "Description": "Outputs the acceleration of a target Rotator.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Rotator Get Rotation Acceleration", @@ -11413,11 +12972,13 @@ ] }, "30fe0829-2f08-4bd2-b4b1-9a41764e5a76": { - "ReadonlyName": "Rotator Get Rotation", + "ReadonlyPaletteName": "Rotator Get Rotation", + "ReadonlyChipName": "Rotator Get Rotation", "Description": "Outputs the rotation of a target Rotator in degrees.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Rotator Get Rotation", @@ -11448,11 +13009,13 @@ ] }, "be834de9-91cb-4588-8988-3a6abfd56573": { - "ReadonlyName": "Rotator Get Rotation Speed", + "ReadonlyPaletteName": "Rotator Get Rotation Speed", + "ReadonlyChipName": "Rotator Get Rotation Speed", "Description": "Outputs the speed of a target Rotator.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Rotator Get Rotation Speed", @@ -11483,11 +13046,13 @@ ] }, "0f9da436-0752-422d-8323-fa445a9ca06b": { - "ReadonlyName": "Rotator Set Target Rotation", + "ReadonlyPaletteName": "Rotator Set Target Rotation", + "ReadonlyChipName": "Rotator Set Target Rotation", "Description": "Sets the rotation of the Marker on a target Rotator.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Rotator Set Target Rotation", @@ -11528,11 +13093,13 @@ ] }, "db29fd41-9fb5-4c2a-8c72-c8d327b0f23f": { - "ReadonlyName": "Rotator Set Rotation Acceleration", + "ReadonlyPaletteName": "Rotator Set Rotation Acceleration", + "ReadonlyChipName": "Rotator Set Rotation Acceleration", "Description": "Sets the acceleration of a target Rotator.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Rotator Set Rotation Acceleration", @@ -11573,11 +13140,13 @@ ] }, "07ae26b8-e0d7-49c0-bb2c-25d66d31fe3c": { - "ReadonlyName": "Rotator Set Rotation", + "ReadonlyPaletteName": "Rotator Set Rotation", + "ReadonlyChipName": "Rotator Set Rotation", "Description": "Sets the rotation of a target Rotator.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Rotator Set Rotation", @@ -11618,11 +13187,13 @@ ] }, "9d0e3cf5-581d-4fb5-8346-c9e7d9877b3f": { - "ReadonlyName": "Rotator Set Rotation Speed", + "ReadonlyPaletteName": "Rotator Set Rotation Speed", + "ReadonlyChipName": "Rotator Set Rotation Speed", "Description": "Sets the speed of a target Rotator.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Rotator Set Rotation Speed", @@ -11663,11 +13234,13 @@ ] }, "c6cfe49a-4ffb-4714-9564-8ddda0300676": { - "ReadonlyName": "Round", + "ReadonlyPaletteName": "Round", + "ReadonlyChipName": "Round", "Description": "Rounds the input float to the nearest integral value.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Round", @@ -11698,11 +13271,13 @@ ] }, "0d2a4771-0694-4b84-8e07-2080c26aae22": { - "ReadonlyName": "Round to Int", + "ReadonlyPaletteName": "Round to Int", + "ReadonlyChipName": "Round to Int", "Description": "Rounds an input value to the nearest integer.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Round to Int", @@ -11737,12 +13312,38 @@ } ] }, + "2cb45825-f385-414f-9a65-2425963fa720": { + "ReadonlyPaletteName": "Sample Audio", + "ReadonlyChipName": "Sample Audio", + "Description": "", + "IsBetaChip": true, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", + "NodeDescs": [ + { + "Name": "Sample Audio", + "ReadonlyTypeParams": {}, + "Inputs": [], + "Outputs": [ + { + "Name": "Audio", + "ReadonlyType": "Audio", + "Description": "" + } + ] + } + ], + "NodeFilters": [] + }, "7fc01b3a-3f44-4cf1-ad2d-d5898fb35f4d": { - "ReadonlyName": "Seat Get Seated Player", + "ReadonlyPaletteName": "Seat Get Seated Player", + "ReadonlyChipName": "Seat Get Seated Player", "Description": "Outputs the currently seated player of a target Seat.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Seat Get Seated Player", @@ -11773,11 +13374,13 @@ ] }, "af071963-a0df-422e-8372-e561336921db": { - "ReadonlyName": "Seat Set Lock Players In", + "ReadonlyPaletteName": "Seat Set Lock Players In", + "ReadonlyChipName": "Seat Set Lock Players In", "Description": "Prevents a Seated player from unseating themselves on a target Seat. Use circuits to unseat or unlock.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Seat Set Lock Players In", @@ -11818,11 +13421,13 @@ ] }, "face947c-8ac1-4d8e-8318-e7ec98bf466d": { - "ReadonlyName": "Seat Set Lock Players Out", + "ReadonlyPaletteName": "Seat Set Lock Players Out", + "ReadonlyChipName": "Seat Set Lock Players Out", "Description": "Prevents players from sitting in a target seat.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Seat Set Lock Players Out", @@ -11863,11 +13468,13 @@ ] }, "d652ebe5-1367-44ed-a352-1e5ab84c32b0": { - "ReadonlyName": "Seat Set Seated Player", + "ReadonlyPaletteName": "Seat Set Seated Player", + "ReadonlyChipName": "Seat Set Seated Player", "Description": "Seats an input player on a target Seat.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Seat Set Seated Player", @@ -11913,11 +13520,13 @@ ] }, "70b682f5-5744-4a6a-beaa-a9dcd40066b6": { - "ReadonlyName": "Seat Unseat Player", + "ReadonlyPaletteName": "Seat Unseat Player", + "ReadonlyChipName": "Seat Unseat Player", "Description": "Unseats a currently seated player on a target Seat.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Seat Unseat Player", @@ -11953,11 +13562,13 @@ ] }, "3d7d40d6-885a-4fa5-bbaa-b19057291ddb": { - "ReadonlyName": "Self", + "ReadonlyPaletteName": "Self", + "ReadonlyChipName": "Self", "Description": "Outputs the object of the current context. For example, a self node inside a light outputs that specific light of the light type. This can only be placed inside an object board of a specific object or a player or object definition board.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Self", @@ -11981,11 +13592,13 @@ ] }, "88daacc5-7652-4d3a-b505-ba256ce3fd9d": { - "ReadonlyName": "List Set Element", + "ReadonlyPaletteName": "List Set Element", + "ReadonlyChipName": "List Set Element", "Description": "Sets a value at a location in a list.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "List Set Element", @@ -12033,11 +13646,13 @@ ] }, "57a1553a-ba24-4422-903a-e610a03e7994": { - "ReadonlyName": "Leaderboard Set Local Player Stat", + "ReadonlyPaletteName": "Leaderboard Set Local Player Stat", + "ReadonlyChipName": "Leaderboard Set Local Player Stat", "Description": "Set leaderboard stat for the local player on stat channel 1, 2 or 3.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Leaderboard Set Local Player Stat", @@ -12078,14 +13693,16 @@ ] }, "ff1c2a15-4099-4aaa-afe3-c217b2fca15b": { - "ReadonlyName": "Set Position", + "ReadonlyPaletteName": "Set Position (Deprecated)", + "ReadonlyChipName": "Set Position (Deprecated)", "Description": "Sets the position of the target player or object. Will fail in the following cases: If the target object is currently held, select/frozen by the maker pen, or is the child of a gizmo. Will also fail on players that are seated.", - "IsBetaChip": true, - "DeprecationStage": 0, - "NameSource": 0, + "IsBetaChip": false, + "DeprecationStage": "Deprecated", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { - "Name": "Set Position", + "Name": "Set Position (Deprecated)", "ReadonlyTypeParams": { "T": "(Player | Rec Room Object)" }, @@ -12135,12 +13752,201 @@ } ] }, + "6e68ede8-32de-455f-9449-83951b4e4f73": { + "ReadonlyPaletteName": "Set Position", + "ReadonlyChipName": "Set Position", + "Description": "Sets the position of the target player or object. Will fail in the following cases: If the target object is currently held, select/frozen by the maker pen, or is the child of a gizmo. Will also fail on players that are seated.", + "IsBetaChip": false, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", + "NodeDescs": [ + { + "Name": "Set Position", + "ReadonlyTypeParams": { + "T": "(Player | Rec Room Object)" + }, + "Inputs": [ + { + "Name": "", + "ReadonlyType": "exec", + "Description": "" + }, + { + "Name": "Target", + "ReadonlyType": "T", + "Description": "" + }, + { + "Name": "Position", + "ReadonlyType": "Vector3", + "Description": "" + } + ], + "Outputs": [ + { + "Name": "", + "ReadonlyType": "exec", + "Description": "" + }, + { + "Name": "Success", + "ReadonlyType": "bool", + "Description": "" + } + ] + } + ], + "NodeFilters": [ + { + "FilterPath": [ + "Player", + "Physics" + ] + }, + { + "FilterPath": [ + "Object", + "Physics" + ] + } + ] + }, + "0a6f6078-8075-43c7-bbb2-32b63ae48e92": { + "ReadonlyPaletteName": "Set Rotation", + "ReadonlyChipName": "Set Rotation", + "Description": "Sets the rotation of the target player or object. Players will rotate about the vertical axis only. Will fail in the following cases: If the target object is currently held, select/frozen by the maker pen, or is the child of a gizmo. Will also fail on players that are seated.", + "IsBetaChip": true, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", + "NodeDescs": [ + { + "Name": "Set Rotation", + "ReadonlyTypeParams": { + "T": "(Player | Rec Room Object)", + "U": "(Vector3 | Quaternion)" + }, + "Inputs": [ + { + "Name": "", + "ReadonlyType": "exec", + "Description": "" + }, + { + "Name": "Target", + "ReadonlyType": "T", + "Description": "" + }, + { + "Name": "Rotation", + "ReadonlyType": "U", + "Description": "" + } + ], + "Outputs": [ + { + "Name": "", + "ReadonlyType": "exec", + "Description": "" + }, + { + "Name": "Success", + "ReadonlyType": "bool", + "Description": "" + } + ] + } + ], + "NodeFilters": [ + { + "FilterPath": [ + "Player", + "Physics" + ] + }, + { + "FilterPath": [ + "Object", + "Physics" + ] + } + ] + }, + "6873f341-1ae8-4ddd-9f8c-892a977ef974": { + "ReadonlyPaletteName": "Set Transform", + "ReadonlyChipName": "Set Transform", + "Description": "Sets the transform (position and rotation) of the target player or object. Players will rotate about the vertical axis only. Will fail in the following cases: If the target object is currently held, select/frozen by the maker pen, or is the child of a gizmo. Will also fail on players that are seated.", + "IsBetaChip": true, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", + "NodeDescs": [ + { + "Name": "Set Transform", + "ReadonlyTypeParams": { + "T": "(Player | Rec Room Object)", + "U": "(Vector3 | Quaternion)" + }, + "Inputs": [ + { + "Name": "", + "ReadonlyType": "exec", + "Description": "" + }, + { + "Name": "Target", + "ReadonlyType": "T", + "Description": "" + }, + { + "Name": "Position", + "ReadonlyType": "Vector3", + "Description": "" + }, + { + "Name": "Rotation", + "ReadonlyType": "U", + "Description": "" + } + ], + "Outputs": [ + { + "Name": "", + "ReadonlyType": "exec", + "Description": "" + }, + { + "Name": "Success", + "ReadonlyType": "bool", + "Description": "" + } + ] + } + ], + "NodeFilters": [ + { + "FilterPath": [ + "Player", + "Physics" + ] + }, + { + "FilterPath": [ + "Object", + "Physics" + ] + } + ] + }, "aaf39143-c5dc-47cd-ad85-c659c3035cab": { - "ReadonlyName": "SFX Get Volume", + "ReadonlyPaletteName": "SFX Get Volume", + "ReadonlyChipName": "SFX Get Volume", "Description": "Outputs the volume of an SFX object.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "SFX Get Volume", @@ -12171,11 +13977,13 @@ ] }, "a0a17fe1-bdb0-4687-81de-141ce97710ed": { - "ReadonlyName": "SFX Get Is Playing", + "ReadonlyPaletteName": "SFX Get Is Playing", + "ReadonlyChipName": "SFX Get Is Playing", "Description": "", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "SFX Get Is Playing", @@ -12206,11 +14014,13 @@ ] }, "5f8991bb-d1b8-4c74-a54a-86e7033b53a0": { - "ReadonlyName": "SFX Play", + "ReadonlyPaletteName": "SFX Play", + "ReadonlyChipName": "SFX Play", "Description": "Plays a sound from an SFX object.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "SFX Play", @@ -12246,11 +14056,13 @@ ] }, "d2df4993-d858-4df1-aca2-fc0e7f479668": { - "ReadonlyName": "SFX Set Volume", + "ReadonlyPaletteName": "SFX Set Volume", + "ReadonlyChipName": "SFX Set Volume", "Description": "Sets the volume for an SFX object.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "SFX Set Volume", @@ -12291,11 +14103,13 @@ ] }, "3ad57fda-1fab-4b00-81b3-71d61af37c65": { - "ReadonlyName": "SFX Stop", + "ReadonlyPaletteName": "SFX Stop", + "ReadonlyChipName": "SFX Stop", "Description": "Stops the sound currently playing from an SFX object.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "SFX Stop", @@ -12331,11 +14145,13 @@ ] }, "61bc2310-69f5-4dfa-b43c-12ae98dd05ab": { - "ReadonlyName": "Show Notification", + "ReadonlyPaletteName": "Show Notification", + "ReadonlyChipName": "Show Notification", "Description": "Prints the input notification to a player's screen if the node is run on a player's machine.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Show Notification", @@ -12373,11 +14189,13 @@ ] }, "abaae687-e943-4534-bb78-2c8d7e17c425": { - "ReadonlyName": "Show Local Subtitle", + "ReadonlyPaletteName": "Show Local Subtitle", + "ReadonlyChipName": "Show Local Subtitle", "Description": "Displays a subtitle for a specified duration. If there is already a subtitle showing, it will be replaced only if this subtitle has an equal or higher priority. If the string is more than 200 characters, it will be displayed in multiple subtitles, each lasting a fraction of the total duration. Escape characters are ignored.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Show Local Subtitle", @@ -12423,11 +14241,13 @@ ] }, "ea824326-5061-411d-980c-30031511c821": { - "ReadonlyName": "Sin", + "ReadonlyPaletteName": "Sin", + "ReadonlyChipName": "Sin", "Description": "Computes the sine of a number.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Sin", @@ -12458,11 +14278,13 @@ ] }, "6a669e6e-4ebf-434c-9c23-d2b769d49b47": { - "ReadonlyName": "Spawner Reset", + "ReadonlyPaletteName": "Spawner Reset", + "ReadonlyChipName": "Spawner Reset", "Description": "", "IsBetaChip": true, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Spawner Reset", @@ -12498,11 +14320,13 @@ ] }, "fb6a63b1-3f55-4dcf-9bf0-6ef82e3296d5": { - "ReadonlyName": "Spawner Internal Start Spawning", + "ReadonlyPaletteName": "Spawner Internal Start Spawning", + "ReadonlyChipName": "Spawner Internal Start Spawning", "Description": "", "IsBetaChip": true, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Spawner Internal Start Spawning", @@ -12553,11 +14377,13 @@ ] }, "0ea23792-e987-459e-8cd7-c0c60f667e08": { - "ReadonlyName": "Spherecast", + "ReadonlyPaletteName": "Spherecast", + "ReadonlyChipName": "Spherecast", "Description": "Fires an invisible sphere of the specified Radius from the Start Position, in the Direction specified. Returns true if any object or player is hit within the target Max Distance. Otherwise, returns false. You can configure the chip itself to ignore players or objects specifically.", "IsBetaChip": true, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Spherecast", @@ -12627,11 +14453,13 @@ ] }, "aa24edab-c707-4cff-8c73-07e479b4cd07": { - "ReadonlyName": "String Contains", + "ReadonlyPaletteName": "String Contains", + "ReadonlyChipName": "String Contains", "Description": "Outputs True if the target string contains the input value.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "String Contains", @@ -12666,11 +14494,13 @@ ] }, "77afc9dd-baa9-4312-b8b8-7ef479c840e6": { - "ReadonlyName": "String Format", + "ReadonlyPaletteName": "String Format", + "ReadonlyChipName": "String Format", "Description": "Use this chip to combine multiple strings together into a single string output. The \"Format\" input is part of final string output and can include other string inputs by using this syntax: {input pin # starting at 0}. For example, a \"Format\" input with a default value of “Hello, {0}!” with a single additional input pin with the value \"World\" is fully output as \"Hello, World!\". If you had another input pin you would use {1} to denote the 2nd pin. You can add more string inputs by configuring the chip and pressing \"Add Input\".", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "String Format", @@ -12710,11 +14540,13 @@ ] }, "dcde9345-00f2-41fb-9a2d-5a938f39bfb5": { - "ReadonlyName": "String Length", + "ReadonlyPaletteName": "String Length", + "ReadonlyChipName": "String Length", "Description": "Outputs the length of a target string in UTF-16 characters.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "String Length", @@ -12744,14 +14576,16 @@ ] }, "66b6ea20-9a00-4f80-9636-2cfb676b3965": { - "ReadonlyName": "string Variable", + "ReadonlyPaletteName": "string Variable", + "ReadonlyChipName": "string Variable", "Description": "", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 1, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "Code", "NodeDescs": [ { - "Name": "Variable (string)", + "Name": "string Variable", "ReadonlyTypeParams": {}, "Inputs": [ { @@ -12794,11 +14628,13 @@ ] }, "ad169649-1050-48c5-a540-f03a2059bcdb": { - "ReadonlyName": "String Split", + "ReadonlyPaletteName": "String Split", + "ReadonlyChipName": "String Split", "Description": "Splits the target string at the input character.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "String Split", @@ -12833,11 +14669,13 @@ ] }, "6b92c345-e6bc-40d9-aae9-4754e634777c": { - "ReadonlyName": "String Split At Index", + "ReadonlyPaletteName": "String Split At Index", + "ReadonlyChipName": "String Split At Index", "Description": "Splits the target string in two at the input index.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "String Split At Index", @@ -12872,11 +14710,13 @@ ] }, "1af21999-38f8-4231-9de9-26b43f47fe0d": { - "ReadonlyName": "String Index Of", + "ReadonlyPaletteName": "String Index Of", + "ReadonlyChipName": "String Index Of", "Description": "Outputs the index where the substring starts in the target string.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "String Index Of", @@ -12911,11 +14751,13 @@ ] }, "678f6d33-1e94-4be6-b959-0212c1a2207f": { - "ReadonlyName": "String To Lower", + "ReadonlyPaletteName": "String To Lower", + "ReadonlyChipName": "String To Lower", "Description": "Outputs the target string in lower case.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "String To Lower", @@ -12945,11 +14787,13 @@ ] }, "8f5995c7-5af0-4064-9cb7-2b80d75d157f": { - "ReadonlyName": "String To Upper", + "ReadonlyPaletteName": "String To Upper", + "ReadonlyChipName": "String To Upper", "Description": "Outputs the target string in upper case.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "String To Upper", @@ -12979,11 +14823,13 @@ ] }, "226fafe2-1ea8-4ae8-861e-ae4b1bd10bfe": { - "ReadonlyName": "String Substring", + "ReadonlyPaletteName": "String Substring", + "ReadonlyChipName": "String Substring", "Description": "Allows you to extract individual parts from a string. You can think of this like a list of characters.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "String Substring", @@ -13023,11 +14869,13 @@ ] }, "1fbb364c-1af0-44bb-a82b-905caeb6819a": { - "ReadonlyName": "Subtract", + "ReadonlyPaletteName": "Subtract", + "ReadonlyChipName": "Subtract", "Description": "Takes one input value away from the other.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Subtract", @@ -13066,11 +14914,13 @@ ] }, "13dbbd78-11c0-4b4f-9098-1ef59e584324": { - "ReadonlyName": "Tan", + "ReadonlyPaletteName": "Tan", + "ReadonlyChipName": "Tan", "Description": "Computes the tangent of a number.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Tan", @@ -13101,11 +14951,13 @@ ] }, "3e8fbb88-3179-4a4c-9f8f-d9c2db35b9b5": { - "ReadonlyName": "Text Get Text", + "ReadonlyPaletteName": "Text Get Text", + "ReadonlyChipName": "Text Get Text", "Description": "Outputs the visible text for a Text object.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Text Get Text", @@ -13136,11 +14988,13 @@ ] }, "20b2528d-96a9-4be8-9782-aa75959f5232": { - "ReadonlyName": "Text Set Color", + "ReadonlyPaletteName": "Text Set Color", + "ReadonlyChipName": "Text Set Color", "Description": "Sets the color for a Text object.", "IsBetaChip": false, - "DeprecationStage": 1, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Text Set Color", @@ -13181,11 +15035,13 @@ ] }, "0bfaa337-46a1-472f-beac-12faa21867d4": { - "ReadonlyName": "Text Set Color V2", - "Description": "Sets the color for a Text Component", + "ReadonlyPaletteName": "Text Set Color V2", + "ReadonlyChipName": "Text Set Color V2", + "Description": "Sets the color for a Text object.", "IsBetaChip": true, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Text Set Color V2", @@ -13226,11 +15082,13 @@ ] }, "ef6fcf56-1b3f-42bc-af50-019ff0a9cfc5": { - "ReadonlyName": "Text Set Material", + "ReadonlyPaletteName": "Text Set Material", + "ReadonlyChipName": "Text Set Material", "Description": "Sets the material for a Text object.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Text Set Material", @@ -13271,11 +15129,13 @@ ] }, "c941f3a3-d3f6-49cc-a6a4-b7a4e95fd173": { - "ReadonlyName": "Text Set Text", + "ReadonlyPaletteName": "Text Set Text", + "ReadonlyChipName": "Text Set Text", "Description": "Set the visible text for a Text object.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Text Set Text", @@ -13316,11 +15176,13 @@ ] }, "75a3a9c2-da17-4762-b87b-1735b44af659": { - "ReadonlyName": "To Combatant", + "ReadonlyPaletteName": "To Combatant", + "ReadonlyChipName": "To Combatant", "Description": "Covert a player or an AI value into a Combatant value.", "IsBetaChip": true, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "To Combatant", @@ -13358,11 +15220,13 @@ ] }, "315a494e-84cc-4e3c-acff-389bb932b5d0": { - "ReadonlyName": "To Rec Room Object", + "ReadonlyPaletteName": "To Rec Room Object", + "ReadonlyChipName": "To Rec Room Object", "Description": "Casts a target specific object to a Rec Room Object.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "To Rec Room Object", @@ -13400,11 +15264,13 @@ ] }, "f8a9cb84-dcb1-4a12-ae29-4d7711e14506": { - "ReadonlyName": "Toggle Button Get Is Pressed", + "ReadonlyPaletteName": "Toggle Button Get Is Pressed", + "ReadonlyChipName": "Toggle Button Get Is Pressed", "Description": "Outputs True if the toggle button is pressed.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Toggle Button Get Is Pressed", @@ -13435,11 +15301,13 @@ ] }, "fdfb3857-3d13-4d66-9a05-f88586e9f821": { - "ReadonlyName": "Toggle Button Set Is Pressed", + "ReadonlyPaletteName": "Toggle Button Set Is Pressed", + "ReadonlyChipName": "Toggle Button Set Is Pressed", "Description": "Sets a Toggle Button state to pressed.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Toggle Button Set Is Pressed", @@ -13480,11 +15348,13 @@ ] }, "74e81edb-84bd-4e52-b2f3-a73a62a6b3aa": { - "ReadonlyName": "To String", + "ReadonlyPaletteName": "To String", + "ReadonlyChipName": "To String", "Description": "Converts the input value to the string type. Example: the integer input 10 would output \"10\" as a string. Helpful for debugging purposes.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "To String", @@ -13537,11 +15407,13 @@ ] }, "b309c032-1bcd-4ca1-83cf-b8871e65fb16": { - "ReadonlyName": "Trigger Handle Get Primary Action Held", + "ReadonlyPaletteName": "Trigger Handle Get Primary Action Held", + "ReadonlyChipName": "Trigger Handle Get Primary Action Held", "Description": "True if the primary action button is down; otherwise, False.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Trigger Handle Get Primary Action Held", @@ -13572,11 +15444,13 @@ ] }, "b49c4e16-93c5-45c3-b457-fb960c661bc5": { - "ReadonlyName": "Trigger Volume Get Filter Role", + "ReadonlyPaletteName": "Trigger Volume Get Filter Role", + "ReadonlyChipName": "Trigger Volume Get Filter Role", "Description": "Gets the role name that is being used as a filter for a Trigger Volume.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Trigger Volume Get Filter Role", @@ -13607,11 +15481,13 @@ ] }, "8f42f9b7-87fb-4f4b-9160-a45baf269650": { - "ReadonlyName": "Trigger Volume Get Filter Tags", + "ReadonlyPaletteName": "Trigger Volume Get Filter Tags", + "ReadonlyChipName": "Trigger Volume Get Filter Tags", "Description": "Gets the tags that are being used as a filter for a Trigger Volume.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Trigger Volume Get Filter Tags", @@ -13642,11 +15518,13 @@ ] }, "338c7e0a-fa55-49e1-91e8-1609d00f1fd0": { - "ReadonlyName": "Trigger Volume Get Object Count", + "ReadonlyPaletteName": "Trigger Volume Get Object Count", + "ReadonlyChipName": "Trigger Volume Get Object Count", "Description": "Gets the number of objects currently inside a Trigger Volume. This is not synchronized with the Trigger Volume's events!", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Trigger Volume Get Object Count", @@ -13677,11 +15555,13 @@ ] }, "4cbe661b-7053-4c19-9ccf-1600c7a41016": { - "ReadonlyName": "Trigger Volume Get Player Count", + "ReadonlyPaletteName": "Trigger Volume Get Player Count", + "ReadonlyChipName": "Trigger Volume Get Player Count", "Description": "Gets the number of players currently inside a Trigger Volume. This is not synchronized with the Trigger Volume's events!", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Trigger Volume Get Player Count", @@ -13712,11 +15592,13 @@ ] }, "530932a7-8781-4b09-a945-b33af6675809": { - "ReadonlyName": "Trigger Volume Get Objects", + "ReadonlyPaletteName": "Trigger Volume Get Objects", + "ReadonlyChipName": "Trigger Volume Get Objects", "Description": "Gets all of the objects currently inside a Trigger Volume. This is not synchronized with the Trigger Volume's events!", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Trigger Volume Get Objects", @@ -13747,11 +15629,13 @@ ] }, "4c23af85-e05c-4be7-a708-c2f0cc67ebec": { - "ReadonlyName": "Trigger Volume Get Players", + "ReadonlyPaletteName": "Trigger Volume Get Players", + "ReadonlyChipName": "Trigger Volume Get Players", "Description": "Gets all of the players currently inside a Trigger Volume. This is not synchronized with the Trigger Volume's events!", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Trigger Volume Get Players", @@ -13782,11 +15666,13 @@ ] }, "55cfecf9-2623-4aad-948c-6ca89f11911b": { - "ReadonlyName": "Trigger Volume Set Filter Role", + "ReadonlyPaletteName": "Trigger Volume Set Filter Role", + "ReadonlyChipName": "Trigger Volume Set Filter Role", "Description": "Sets the role name that is being used as a filter for a Trigger Volume.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Trigger Volume Set Filter Role", @@ -13827,11 +15713,13 @@ ] }, "6668fd38-076e-4d03-b9a1-02eca5edd0b7": { - "ReadonlyName": "Trigger Volume Set Filter Tags", + "ReadonlyPaletteName": "Trigger Volume Set Filter Tags", + "ReadonlyChipName": "Trigger Volume Set Filter Tags", "Description": "Sets the tags that are being used as a filter for a Trigger Volume. An object is considered by the Trigger Volume, if it has any of the tags in this list.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Trigger Volume Set Filter Tags", @@ -13872,11 +15760,13 @@ ] }, "6bd92538-6889-41f3-b819-9511e6f81944": { - "ReadonlyName": "Vector3 Cross", + "ReadonlyPaletteName": "Vector3 Cross", + "ReadonlyChipName": "Vector3 Cross", "Description": "The cross product of two vectors results in a third vector which is perpendicular to the two input vectors.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Vector3 Cross", @@ -13912,11 +15802,13 @@ ] }, "498c4e25-f73b-49a6-912e-ae148ed50dca": { - "ReadonlyName": "Vector3 Dot", + "ReadonlyPaletteName": "Vector3 Dot", + "ReadonlyChipName": "Vector3 Dot", "Description": "Computes the dot product. Commonly used to determine if the camera is facing a particular direction.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Vector3 Dot", @@ -13952,14 +15844,16 @@ ] }, "fba2accf-44e2-412d-a204-ae3bd04f7dfa": { - "ReadonlyName": "Vector3 Variable", + "ReadonlyPaletteName": "Vector3 Variable", + "ReadonlyChipName": "Vector3 Variable", "Description": "", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 1, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "Code", "NodeDescs": [ { - "Name": "Variable (Vector3)", + "Name": "Vector3 Variable", "ReadonlyTypeParams": {}, "Inputs": [ { @@ -14003,11 +15897,13 @@ ] }, "92ded211-17d6-4c73-b29c-71323c6a40ee": { - "ReadonlyName": "Vector3 Normalize", + "ReadonlyPaletteName": "Vector3 Normalize", + "ReadonlyChipName": "Vector3 Normalize", "Description": "Outputs the target vector, but its magnitude is 1.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Vector3 Normalize", @@ -14038,11 +15934,13 @@ ] }, "87aa17b1-7760-4b07-8c44-a2d530590597": { - "ReadonlyName": "Vector3 Scale", + "ReadonlyPaletteName": "Vector3 Scale", + "ReadonlyChipName": "Vector3 Scale", "Description": "Multiplies a vector by a scalar.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Vector3 Scale", @@ -14080,11 +15978,13 @@ ] }, "814e9337-7542-4851-9da0-c73885ab0b4f": { - "ReadonlyName": "Vector3 Create", + "ReadonlyPaletteName": "Vector3 Create", + "ReadonlyChipName": "Vector3 Create", "Description": "Creates a new vector from X, Y, Z values.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Vector3 Create", @@ -14125,11 +16025,13 @@ ] }, "74ba9189-2880-46fa-b4b0-3c9a7152489e": { - "ReadonlyName": "Vector Gadget Get Vector", + "ReadonlyPaletteName": "Vector Gadget Get Vector", + "ReadonlyChipName": "Vector Gadget Get Vector", "Description": "Gets the direction and magnitude of the Vector Gadget.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Vector Gadget Get Vector", @@ -14165,11 +16067,13 @@ ] }, "c3b9ba98-6c4a-44c2-9125-043314fba4a6": { - "ReadonlyName": "Vector Get Magnitude", + "ReadonlyPaletteName": "Vector Get Magnitude", + "ReadonlyChipName": "Vector Get Magnitude", "Description": "Outputs the length of the input vector.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Vector Get Magnitude", @@ -14200,11 +16104,13 @@ ] }, "2d677241-61b7-45d2-aec2-4a302e3483a0": { - "ReadonlyName": "Vector3 Split", + "ReadonlyPaletteName": "Vector3 Split", + "ReadonlyChipName": "Vector3 Split", "Description": "Breaks the X, Y, and Z values out of the input vector.", "IsBetaChip": false, - "DeprecationStage": 0, - "NameSource": 0, + "DeprecationStage": "Active", + "PaletteNameSource": "FirstNodeDesc", + "ChipNameSource": "FirstNodeDesc", "NodeDescs": [ { "Name": "Vector3 Split", diff --git a/grapher/index.html b/grapher/index.html index 51aea52..26e4af8 100644 --- a/grapher/index.html +++ b/grapher/index.html @@ -8,19 +8,19 @@ CV2 Node Graph Generator - + - - + + - - + + - - + + @@ -34,7 +34,7 @@
@@ -45,7 +45,7 @@

Permalinking Menu


-

Set your name below and click the button to get a permanent link to this graph.

+

Set your name below(optional) and click the button to get a permanent link to the current graph.


@@ -70,7 +70,7 @@

The chip grapher is a simple program. To get started, use the searcher sidebar to find a chip you want to add. - That sidebar is just an embedded version of the main searcher, and all + That sidebar is just an embedded version of the main searcher, and all behavior is the same. To learn more, press the '?' button on the sidebar. Once you've decided on a chip, press the '+' button next to it to add it to the graph.

diff --git a/index.html b/index.html index 6ff0181..9b24973 100644 --- a/index.html +++ b/index.html @@ -1,149 +1,10 @@ - - - - - - - CV2 Chip Searcher - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
- Options -
- - - - - - - - -
-
-
-

Fuzzy Finder:

- - - - - - -
-
-
-

Search By:

- - - - -
-
-
- - -
-
-
-
-
- - - Showing page 0/0. - - -
-
-
-

Maintained by @winrg/@✨Aleteoryx, Keeper of Names✨#1027

-
- ? -
- -

The Basics

-
-

The chip searcher is a simple program. - To get started, simply type the name of the chip you'd like to know about into the top box. - By default, the searcher will automatically refresh the results as you type.

-

Different types of chips

-
-
    -
  • Beta Chips are indicated by a β symbol.
  • -
  • Soon-to-be deprecated Chips are indicated by yellow text, as well as a warning.
  • -
  • Deprecated Chips are indicated by red text, as well as a warning.
  • -
-

Neither form of deprecated chip will display by default.

-

Options

-
-

The chip searcher supports the following configuration - options, contained in the fold-out menu below the search bar.

-

Toggles

-
-
    -
  • Auto Refresh: Automatically update search results as you type. - When disabled, hit Enter to refresh.
  • -
  • Show Beta Chips: When enabled, beta chips will be included in the search.
  • -
  • Show Deprecated Chips: When enabled, deprecated chips will be included in the search.
  • -
  • Enable Filter Suggestions: When enabled, filters will be displayed as autocomplete options.
  • -
-

Fuzzy Finder

-
-
    -
  • Exact Match: What is typed must appear identically in the results.
  • -
  • Small Typos: Small errors are ignored, though larger ones will still affect the results.
  • -
  • Loose Match: Really only useful if you can't spell.
  • -
-

Search By

-
-
    -
  • Name: Search for what is typed in the chip name.
  • -
  • Description: Search for what is typed in the chip description
  • -
-

Items Per Page

-
-

Configures the number of items that will appear in each page. Defaults to 12.

-
-
- + + + Placeholder + + + Chip Searcher + Chip Grapher + \ No newline at end of file diff --git a/lib/chipBehavior.js b/lib/chipBehavior.js new file mode 100644 index 0000000..04c500b --- /dev/null +++ b/lib/chipBehavior.js @@ -0,0 +1,82 @@ +/* + Big object of code for each stateless chip. Each takes in (array<{type: String, value:any}>, {String:String}) + ^Ports^ ^typeoverrides^ + and returns an array or false. + int: bigint + float: number + bool: boolean + string: string + vector3: {x:number,y:number,z:number} + Player: Object ----------| These two have no meaning right now. null and undefined are invalid, everything else is valid. + Rec Room Object: Object -| +*/ +function dtr (n) {return n / 360 * Math.PI * 2} +function rtd (n) {return n / (Math.PI * 2) * 360} +const SchipBehaviors = { + //basic maths + "98b99011-9be8-43b3-89cc-1e9d55bd8b51": ([{value}], {T}) => { //abs + switch (T) { + case 'float': + return [Math.abs(value)] + break; + case 'int': + return [value < 0 ? value * -1n : value] + break; + default: + return false; + break; + } + }, + "0ccb153c-dd08-4f22-80fd-9d8c5940928c": (values, {T}) => { //add + switch(T) { + case 'int': + case 'float': + return [values.reduce((a,b) => a+b, 0)]; + break; + case 'Vector3': + return [values.reduce((a,b) => ({x:a.x+b.x,y:a.y+b.y,y:a.z+b.z}), {x:0,y:0,z:0})] + break; + default: + return false; + break; + } + }, + + //logic + "3fb9fd93-8d45-4395-b9a3-63a99a14442b": (values) => [values.reduce((a,{value:b}) => a && b, true)], //and + "b5dcded0-eb2b-468d-a4b9-ffb1054f6214": (values) => [values.reduce((a,{value:b}) => a || b, false)], //or + "ff551243-beb4-470e-ab48-9d616818d5e4": ([{value}]) => [!value], //not + "3663225d-e18d-40e6-a234-ef10378528be": ([{value:a},{value:b}]) => [a==b], //equals + "110c29b1-ac90-4a71-b3c0-53372aa134bc": ([{value:a},{value:b}]) => [a>b], //greater + "a10e7788-f016-4390-a68e-87d93b47edb1": ([{value:a},{value:b}]) => [a>=b], //greater equal + "7e58b3f4-2694-4ced-b3a8-0fe23f48f60f": ([{value:a},{value:b}]) => [a [a<=b], //less equal + + //trig + "46ce50b8-0a20-43d2-9646-484ce2a6752c": ([{value}]) => [rtd(Math.acos(dtr(value)))], + "aaa4e58f-16df-426a-b7a7-a654eab97037": ([{value}]) => [rtd(Math.asin(dtr(value)))], + "02d62908-550d-4f8b-8bc7-0960fb1b547f": ([{value:a},{value:b}]) => [rtd(Math.atan2(dtr(a),dtr(b)))], + "84646ed2-015e-4a8b-9d37-5115cb9ebadc": ([{value}]) => [rtd(Math.atan(dtr(value)))], + + //string + "77afc9dd-baa9-4312-b8b8-7ef479c840e6": ([{value:fmt}, ...props]) => + [props.reduce((p, {value:c}, i) => + p.replaceAll(`{${i}}`, c), + fmt)], + "aa24edab-c707-4cff-8c73-07e479b4cd07": ([{value:str}, {value:seq}]) => [Boolean(str.search(seq) != -1)], + "dcde9345-00f2-41fb-9a2d-5a938f39bfb5": ([{value:str}]) => [str.length], + "ad169649-1050-48c5-a540-f03a2059bcdb": ([{value:str}, {value:del}]) => [str.split(del)], + "6b92c345-e6bc-40d9-aae9-4754e634777c": ([{value:str}, {value:idx}]) => [[str.slice(0, idx), str.slice(idx)]], + "1af21999-38f8-4231-9de9-26b43f47fe0d": ([{value:str}, {value:seq}]) => [str.search(seq)], + "678f6d33-1e94-4be6-b959-0212c1a2207f": ([{value:str}]) => [str.toLowerCase()], + "8f5995c7-5af0-4064-9cb7-2b80d75d157f": ([{value:str}]) => [str.toUpperCase()], +} + +/* + Big object of code for each stateful(exec-having) chip. + "ReadonlyName": "String +*/ +const EchipBehaviors = { + +} +module.exports = SchipBehaviors; \ No newline at end of file diff --git a/lib/chips.css b/lib/chips.css new file mode 100644 index 0000000..12a3704 --- /dev/null +++ b/lib/chips.css @@ -0,0 +1,218 @@ +/* +Hello! This is a big fat CSS file for rendering CV2 chips, maintained +by Aleteoryx. If you need help, ask around for me in the #circuits-v2 +discord channel, or just ping me if you want. (Not too much!) + +To render a chip, create a .chip
. Inside it, put +.chipheader, .input, and .output divs. In the header, simply put +your chip's name. Then, in the input and output divs, add divs +with your chip's ports and types. +.bool, .int, .float, .string, .exec, and .special are all supported. + +A finished chip should look something like this: + +
+
If
+
+
+
Condition
+
+
+
Then
+
Else
+
+
+ +Currently, only regular chips are supported, though this will change +soon! +*/ +@import url('https://fonts.googleapis.com/css2?family=Roboto&display=swap'); + +@media (orientation: portrait) { + body { + --chip-scale: 6vw; + } +} +@media (orientation: landscape) { + body { + --chip-scale: 2rem; + } +} + +body { + /*chip bit colors*/ + --color-top: hsl(300,1%,32%); + --color-bottom: hsl(300,0%,50%); + + /*port colors*/ + --color-float: hsl(215, 80%, 48%); + --color-int: hsl(133,73%,23%); + --color-exec: hsl(18,92%,53%); + --color-string: hsl(290,33%,39%); + --color-bool: hsl(349,82%,55%); + --color-any: hsl(26,44%,94%); + --color-special: hsl(47,91%,54%); + + + --chipOffsetX: 0; + --chipOffsetY: 0; +} + +/*apply colors to classes*/ +.input > .float::before, .output > .float::after { + background-color: var(--color-float); +} +.input > .int::before, .output > .int::after { + background-color: var(--color-int); +} +.input > .exec::before, .output > .exec::after { + background-color: var(--color-exec); +} +.input > .string::before, .output > .string::after { + background-color: var(--color-string); +} +.input > .bool::before, .output > .bool::after { + background-color: var(--color-bool); +} +.input > .any::before, .output > .any::after { + background-color: var(--color-any); +} +.input > .special::before, .output > .special::after { + background-color: var(--color-special); +} + +.chip { + font-size: calc(var(--chip-scale) * .5); + font-family: 'Roboto', sans-serif; + color: white; + background-color: var(--color-bottom); + + position: relative; + display: inline-grid; + overflow: visible; + + grid-template-areas: "header header" "input output"; + + grid-gap: calc(var(--chip-scale) * .5); + margin: calc(var(--chip-scale) * 0.8); + padding: calc(var(--chip-scale) / 3); + border-radius: calc(var(--chip-scale) / 4); + min-width: 0; +} + +.input, .output { + display: inline-block; + margin-right: calc(var(--chip-scale) / 3); + margin-top: calc(var(--chip-scale) / -2); + margin-bottom: calc(var(--chip-scale) / -5); +} + +.chipheader { + margin: calc(var(--chip-scale) / -3); + margin-bottom: 0; + + padding: calc(var(--chip-scale) / 2); + text-align: center; + background-color: var(--color-top); + + border-top-left-radius: calc(var(--chip-scale) / 4); + border-top-right-radius: calc(var(--chip-scale) / 4); + + grid-area: header; + + font-size: calc(var(--chip-scale) * 0.75); + + -ms-high-contrast: white-on-black; +} + +.input { + grid-area: input; +} + +.output { + grid-area: output; + text-align: right; +} + +.type { + color: #fff0; + background-color: #0000; + position: fixed; + padding: calc(var(--chip-scale) * 0.1); + border: 0 solid #aaa0; + top: 0; + left: 0; + white-space: nowrap; +} + +:is(.exec, .float, .int, .bool, .string, .special, .any):hover + .type { + color: #fff; + background-color: #000; + border: calc(var(--chip-scale) * 0.1) solid #aaa; + z-index: 99; + top: calc(var(--mouse-y) + 10px - (var(--chipOffsetY) * 1px)); + left: calc(var(--mouse-x) + 10px - (var(--chipOffsetX) * 1px)); +} + +.input > .exec::before, +.output > .exec::after { + height: calc(.75 * var(--chip-scale)); + width: calc(1 * var(--chip-scale)); + background-color: var(--color-exec); + + clip-path: polygon(0 0, 62.5% 0, 100% 50%, 62.5% 100%, 0 100%); + top: calc(var(--chip-scale) * -0.075); +} + +:is(.exec, .float, .int, .bool, .string, .special, .any) { + margin-top: calc(var(--chip-scale) * 0.3); + margin-bottom: calc(var(--chip-scale) * 0.3); + position: relative; + clip-path: none; + overflow: visible; +} + +.input > :is(.exec, .float, .int, .bool, .string, .special, .any) { + margin-left: calc(var(--chip-scale) * 0.5); +} +.output > :is(.exec, .float, .int, .bool, .string, .special, .any) { + margin-right: calc(var(--chip-scale) * -0.05); +} + +.input > :is(.exec, .float, .int, .bool, .string, .special, .any)::before, +.output > :is(.exec, .float, .int, .bool, .string, .special, .any)::after { + position: absolute; + content: ""; + overflow: visible; +} + +.input > :is(.float, .int, .bool, .string, .special, .any)::before { + left: calc(var(--chip-scale) * -1.1); +} +.output > :is(.float, .int, .bool, .string, .special, .any)::after { + right: calc(var(--chip-scale) * -0.9); +} + +.input > .exec::before { + left: calc(var(--chip-scale) * -1.2); +} +.output > .exec::after { + right: calc(var(--chip-scale) * -1.2); +} + +.input > .list::before, +.output > .list::after { + color: black; + content: "[ ]"; + font-size: calc(var(--chip-scale) * 0.3); + display: flex; + align-content: center; + justify-content: center; +} + +.input > :is(.float, .int, .bool, .string, .special, .any)::before, +.output > :is(.float, .int, .bool, .string, .special, .any)::after { + height: calc(.5 * var(--chip-scale)); + width: calc(0.625 * var(--chip-scale)); + top: 1px; +} \ No newline at end of file diff --git a/lib/chips.js b/lib/chips.js new file mode 100644 index 0000000..0ba542e --- /dev/null +++ b/lib/chips.js @@ -0,0 +1,95 @@ +let root = document.documentElement; + +if (window.location.pathname != '/grapher/') + root.addEventListener("mousemove", e => { + root.style.setProperty('--mouse-x', e.clientX + "px"); + root.style.setProperty('--mouse-y', e.clientY + "px"); + }); + + +const portColors = { + float: '#186adc', + int: '#0f6522', + exec: '#f55b18', + string: '#794284', + bool: '#ea2e50', + any: '#f6eee8', + special: '#f4c61e' +} +const typeRegex = /(?:^|(?<=<))(?:int|float|bool|string|exec)(?:$|(?=>))/; +const unionRegex = /^T\d*$|(?<=List<)T\d*(?=>)/; + +function computeType(Type, TypeParams, to) { + let t = Type; + if (to) for (const o of Object.keys(to)) t = t.replace(o, to[o]); + let tc = "special" + if (typeRegex.test(t)) { + tc = t; + } else if (unionRegex.test(t)) { + let tn = t.match(unionRegex)[0]; + let ut = TypeParams[tn]; + t = t.replace(unionRegex, `${tn}: ${ut}`) + + tc = "any"; + } + return {typeclass: tc, type: t}; +} + +function generateChipHTML(NodeDescs, typeoverride = undefined) { + for (let cur of NodeDescs) { + let ins = cur.Inputs; + let outs = cur.Outputs; + + const root = newEl('div', 'chip'); + const header = newEl('div', 'chipheader'); + header.innerText = cur.Name; + const input = newEl('div', 'input'); + const output = newEl('div', 'output'); + root.append(header, input, output); + + for (const inp of ins) { + //work out the type + let {typeclass, type} = computeType(inp.ReadonlyType, cur.ReadonlyTypeParams, typeoverride); + + const port = newEl('div', typeclass); + port.innerHTML = inp.Name + " "; + if (type.includes("List")) port.classList.add("list"); + + const tooltip = newEl('div', 'type'); + tooltip.innerText = type; + + input.append(port, tooltip); + } + + for (const out of outs) { + //work out the type + let {typeclass, type} = computeType(out.ReadonlyType, cur.ReadonlyTypeParams, typeoverride); + + const port = newEl('div', typeclass); + port.innerHTML = out.Name + " "; + if (type.includes("List")) port.classList.add("list"); + + const tooltip = newEl('div', 'type'); + tooltip.innerText = type; + + output.append(port, tooltip); + } + + return root; + } + +} + +function ListAllTypes(Nodes) { + let m = new Set(); + for (const n of Object.values(Nodes)) { + for (const desc of n.NodeDescs) { + for (const td of Object.values(desc.ReadonlyTypeParams)) + if (/^[A-Za-z0-9 ]+$/.test(td)) m.add(td); + for (const port of [...desc.Inputs, ...desc.Outputs]) + if (/^[A-Za-z0-9 ]+$/.test(port.ReadonlyType) && !/^[A-Za-z]\d*$/.test(port.ReadonlyType)) m.add(port.ReadonlyType); + } + } + m.delete('any'); + return Array.from(m); +} \ No newline at end of file diff --git a/lib/util.js b/lib/util.js new file mode 100644 index 0000000..fe9e5b7 --- /dev/null +++ b/lib/util.js @@ -0,0 +1,5 @@ +function newEl(name, Class) { + ret = document.createElement(name); + if (Class) ret.classList.add(Class); + return ret; +} \ No newline at end of file diff --git a/replit.nix b/replit.nix new file mode 100644 index 0000000..82dea6f --- /dev/null +++ b/replit.nix @@ -0,0 +1,6 @@ +{ pkgs }: { + deps = [ + pkgs.nodePackages.vscode-langservers-extracted + pkgs.nodePackages.typescript-language-server + ]; +} \ No newline at end of file diff --git a/script.js b/script.js deleted file mode 100644 index 5a9c0ff..0000000 --- a/script.js +++ /dev/null @@ -1,267 +0,0 @@ -const isNested = Boolean(window.parent != window); - -const deprecationStrings = [ - {Text: "", Class: "hide"}, - {Text: "Warning! This chip is being deprecated. It will be broken in the near future, and should not be used.", Class: "depwarn"}, - {Text: "Warning! This chip is currently deprecated. It is no longer in the palette, and likely does not work.", Class: "depbad"} -]; -const fusenameopts = { - isCaseSensitive: false, - minMatchCharLength: 1, - ignoreLocation: true, - threshold: 0, - keys: ["ReadonlyName"], - includeScore: true -}; -const fusedescopts = { - isCaseSensitive: false, - minMatchCharLength: 1, - ignoreLocation: true, - threshold: 0, - keys: ["Description"], - includeScore: true -}; - -function genExplanation(name) { - return name; -} - -function genSearchPath(path, name) { - const ret = document.createElement("li"); - ret.classList.add("searchpath"); - ret.innerText = path.join("/") + "/" + name; - return ret; -} - -function getChipAddListener(GUID) { - return function(e) { - window.parent.postMessage( - { - type: 'newChip', - GUID: GUID - } - ); - } -} - -var searchresults = []; -var page = 0 - -window.addEventListener("load", async (e) => { - const search = document.getElementById("search"); - const form = document.getElementById("form"); - const suggestions = document.getElementById("paletteSearch"); - - if (localStorage.length) { - form.depr.checked = localStorage.getItem("depr"); - form.beta.checked = localStorage.getItem("beta"); - form.ReadonlyName.checked = localStorage.getItem("ReadonlyName"); - form.Description.checked = localStorage.getItem("Description"); - form.refresh.checked = localStorage.getItem("refresh"); - form.fuzziness.value = localStorage.getItem("fuzz"); - form.items.value = localStorage.getItem("items"); - form.filterSug.checked = localStorage.getItem("fsug"); - } - - let v2pr = fetch(/*"https://raw.githubusercontent.com/tyleo-rec/CircuitsV2Resources/master/misc/circuitsv2.json"/*/"circuitsv2.json") - .then(res => res.json()); - let termspr = fetch("./terms.json") - .then(res => res.json()); - - [v2json, termsjson] = await Promise.all([v2pr, termspr]); - //console.log(v2json, termsjson); - - - //GUID needs to be in the same object now, because we convert to an array - const searchable = Object.entries(v2json.Nodes) - .map(pair => {return {GUID: pair[0], ...pair[1]}}) - searchable.sort((a, b) => (a.ReadonlyName.toLowerCase() > b.ReadonlyName.toLowerCase()) ? 1 : -1); - - const fuses = [new Fuse(searchable, fusenameopts), - new Fuse(searchable, fusedescopts)]; - - const filterTree = {nodes: searchable}; - searchable.forEach(chip => { - chip.NodeFilters.forEach(filter => { - var currentNode = filterTree; - filter.FilterPath.forEach(path => { - if (!currentNode[path.toUpperCase()]) currentNode[path.toUpperCase()] = {nodes: []}; - currentNode = currentNode[path.toUpperCase()] - if (!currentNode.nodes.includes(chip))currentNode.nodes.push(chip); - currentNode.actualname = path; - }) - }) - }) - - //console.log(filterTree); - - const redraw = targ => { - const fuseinuse = fuses.filter(fuse => form[fuse.options.keys[0]].checked); - - start = performance.now(); - - localStorage.setItem("depr", form.depr.checked ? "set" : ""); - localStorage.setItem("beta", form.beta.checked ? "set" : ""); - localStorage.setItem("ReadonlyName", form.ReadonlyName.checked ? "set" : ""); - localStorage.setItem("Description", form.Description.checked ? "set" : ""); - localStorage.setItem("refresh", form.refresh.checked ? "set" : ""); - localStorage.setItem("fsug", form.filterSug.checked ? "set" : ""); - localStorage.setItem("fuzz", form.fuzziness.value); - localStorage.setItem("items", form.items.value); - - suggestions.id = form.filterSug.checked ? "paletteSearch" : "" - - var content2 = filterTree; - - const fullPath = targ.value.replace(/\\+|\/+/, "/") - .split("/"); - const startOfPath = fullPath.slice(0, -1); - const endOfPath = fullPath.at(-1); - const startOfSuggestion = startOfPath.join('/'); - - startOfPath.forEach(path => { - try { - content2 = content2[path.toUpperCase()] - } catch (e) {} - }); - - if (!content2) content2 = {nodes: []}; - - suggestions.innerText = ''; - suggestions.append(...Object.keys(content2) - .filter(i => i.toUpperCase() == i) - .sort((a, b) => (a > b) ? 1 : -1) - .map(i => { - var e = document.createElement('option'); - e.value = startOfSuggestion + (startOfSuggestion ? '/' : '') + content2[i].actualname + '/'; - return e; - }) - ) - - - fuseinuse.forEach(fuse => { - fuse.options.minMatchCharLength = Math.floor(endOfPath.length * JSON.parse(form.fuzziness.value).nummod); - fuse.options.threshold = JSON.parse(form.fuzziness.value).thresh; - fuse.setCollection(content2.nodes); - }); - - var content = endOfPath ? (() => { - let m = fuseinuse.map(fuse => fuse.search(endOfPath)).flat() - m.sort((a,b) => a.score - b.score); - m = Array.from(new Set(m.map(e => e.item))); - return m; - })() : content2.nodes; - //console.log(content2.nodes) - - content = content.map(el => { - if ((form.depr.checked || el.DeprecationStage == 0) && (form.beta.checked || !el.IsBetaChip)) { - const ret = newEl("details", "returnedchip"); - if (el.IsBetaChip) ret.classList.add("betaChip"); - - const iret = newEl("div", "infocontainer"); - - const name = document.createElement("summary"); - name.innerText = el.ReadonlyName; - - const deprinfo = deprecationStrings[el.DeprecationStage]; - const depr = newEl("div", deprinfo.Class); - depr.innerText = deprinfo.Text; - - const desc = newEl("p", "chipdesc") - desc.innerText = el.Description == "" ? "No Description!" : el.Description; - - const filters = newEl("ul", "filters") - filters.append(...Object.values(el.NodeFilters).map(val => genSearchPath(val.FilterPath, el.ReadonlyName))); - - iret.append(desc, filters); - - const addBtn = newEl('button', 'addBtn'); - addBtn.innerText = "+"; - addBtn.setAttribute('title', 'Add to graph'); - addBtn.onclick = getChipAddListener(el.GUID); - if (isNested) name.append(addBtn); - - let m = generateChipHTML(el.NodeDescs); - - ret.append(depr, name, iret, m); - - return ret; - } - }).filter(e => e != undefined); - var perfstring = `returned in ${parseInt(performance.now() - start)} ms.` - display(perfstring, content); - }; - - const redrawHandler = e => redraw(search); - - form.addEventListener("submit", e => {console.log(e); e.preventDefault()}); - search.addEventListener("change", redrawHandler); - form.addEventListener("input", redrawHandler); - - form.refresh.addEventListener("change", e => { - if (e.target.checked) { - form.addEventListener("input", redrawHandler); - } else { - form.removeEventListener("input", redrawHandler); - } - }); - - try { - redraw(search); - } catch (error) { - setTimeout(() => redraw(search), 1000); - } -}); - -function display(perf, content) { - searchresults = content; - page = 0; - update(); -} - -function first() { - page = 0; - update(); -} -function prev() { - page = Math.max(page - 1, 0); - update(); -} - -function next() { - const pagesize = parseInt(document.getElementById("cfgitems").value); - - page = (((page + 1) * pagesize) > searchresults.length) ? page : (page + 1); - update(); -} - -function last() { - const pagesize = parseInt(document.getElementById("cfgitems").value); - - page = Math.max(parseInt((searchresults.length - 1) / pagesize), 0); - update(); -} - - -function update() { - const ndisplay = document.getElementById("pagen"); - const ofdisplay = document.getElementById("of"); - const output = document.getElementById("resultslist"); - const pagesel = document.getElementById("cfgitems"); - - //pagesel.value = ; - - const pagesize = pagesel.value == "" ? 1 : Math.max(parseInt(pagesel.value), 1); - - const start = page * pagesize; - const end = Math.min(searchresults.length, start + pagesize); - - ndisplay.innerText = page + 1; - ofdisplay.innerText = parseInt((searchresults.length - 1) / pagesize) + 1; - - //console.log(start, end); - - output.innerHTML = ""; - output.append(...searchresults.slice(start, end)); -} - diff --git a/searcher/index.html b/searcher/index.html new file mode 100644 index 0000000..f6ae0a1 --- /dev/null +++ b/searcher/index.html @@ -0,0 +1,150 @@ + + + + + + + + CV2 Chip Searcher + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ Options +
+ + + + + + + + +
+
+
+

Fuzzy Finder:

+ + + + + + +
+
+
+

Search By:

+ + + + +
+
+
+ + +
+
+
+
+
+ + + Showing page 0/0. + + +
+
+
+ +

Maintained by @winrg/@✨Aleteoryx, Keeper of Names✨#1027

+
+ ? +
+ +

The Basics

+
+

The chip searcher is a simple program. + To get started, simply type the name of the chip you'd like to know about into the top box. + By default, the searcher will automatically refresh the results as you type.

+

Different types of chips

+
+
    +
  • Beta Chips are indicated by a β symbol.
  • +
  • Soon-to-be deprecated Chips are indicated by yellow text, as well as a warning.
  • +
  • Deprecated Chips are indicated by red text, as well as a warning.
  • +
+

Neither form of deprecated chip will display by default.

+

Options

+
+

The chip searcher supports the following configuration + options, contained in the fold-out menu below the search bar.

+

Toggles

+
+
    +
  • Auto Refresh: Automatically update search results as you type. + When disabled, hit Enter to refresh.
  • +
  • Show Beta Chips: When enabled, beta chips will be included in the search.
  • +
  • Show Deprecated Chips: When enabled, deprecated chips will be included in the search.
  • +
  • Enable Filter Suggestions: When enabled, filters will be displayed as autocomplete options.
  • +
+

Fuzzy Finder

+
+
    +
  • Exact Match: What is typed must appear identically in the results.
  • +
  • Small Typos: Small errors are ignored, though larger ones will still affect the results.
  • +
  • Loose Match: Really only useful if you can't spell.
  • +
+

Search By

+
+
    +
  • Name: Search for what is typed in the chip name.
  • +
  • Description: Search for what is typed in the chip description
  • +
+

Items Per Page

+
+

Configures the number of items that will appear in each page. Defaults to 12.

+
+
+ + \ No newline at end of file diff --git a/searcher/script.js b/searcher/script.js new file mode 100644 index 0000000..d80cd8f --- /dev/null +++ b/searcher/script.js @@ -0,0 +1,270 @@ +const isNested = Boolean(window.parent != window); + +const deprecationStrings = { + "Active": {Text: "", Class: "hide"}, + "": {Text: "Warning! This chip is being deprecated. It will be broken in the near future, and should not be used.", Class: "depwarn"}, + "Deprecated": {Text: "Warning! This chip is currently deprecated. It is no longer in the palette, and likely does not work.", Class: "depbad"} +}; +const fusenameopts = { + isCaseSensitive: false, + minMatchCharLength: 1, + ignoreLocation: true, + threshold: 0, + keys: ["ReadonlyPaletteName", "ReadonlyChipName"], + includeScore: true +}; +const fusedescopts = { + isCaseSensitive: false, + minMatchCharLength: 1, + ignoreLocation: true, + threshold: 0, + keys: ["Description"], + includeScore: true +}; + +function genExplanation(name) { + return name; +} + +function genSearchPath(path, name) { + const ret = document.createElement("li"); + ret.classList.add("searchpath"); + ret.innerText = path.join("/") + "/" + name; + return ret; +} + +function getChipAddListener(GUID) { + return function(e) { + window.parent.postMessage( + { + type: 'newChip', + GUID: GUID + } + ); + } +} + +var searchresults = []; +var page = 0 + +window.addEventListener("load", async (e) => { + const search = document.getElementById("search"); + const form = document.getElementById("form"); + const suggestions = document.getElementById("paletteSearch"); + + if (isNested) document.getElementById("grapherlink").remove(); + + if (localStorage.length) { + form.depr.checked = localStorage.getItem("depr"); + form.beta.checked = localStorage.getItem("beta"); + form.ReadonlyPaletteName.checked = localStorage.getItem("ReadonlyPaletteName"); + form.Description.checked = localStorage.getItem("Description"); + form.refresh.checked = localStorage.getItem("refresh"); + form.fuzziness.value = localStorage.getItem("fuzz"); + form.items.value = localStorage.getItem("items"); + form.filterSug.checked = localStorage.getItem("fsug"); + } + + let v2pr = fetch(/*"https://raw.githubusercontent.com/tyleo-rec/CircuitsV2Resources/master/misc/circuitsv2.json"/*/"/circuitsv2.json") + .then(res => res.json()); + let termspr = fetch("/terms.json") + .then(res => res.json()); + + [v2json, termsjson] = await Promise.all([v2pr, termspr]); + //console.log(v2json, termsjson); + + + //GUID needs to be in the same object now, because we convert to an array + const searchable = Object.entries(v2json.Nodes) + .map(pair => {return {GUID: pair[0], ...pair[1]}}) + searchable.sort((a, b) => (a.ReadonlyPaletteName.toLowerCase() > b.ReadonlyPaletteName.toLowerCase()) ? 1 : -1); + + const fuses = [new Fuse(searchable, fusenameopts), + new Fuse(searchable, fusedescopts)]; + + const filterTree = {nodes: searchable}; + searchable.forEach(chip => { + chip.NodeFilters.forEach(filter => { + var currentNode = filterTree; + filter.FilterPath.forEach(path => { + if (!currentNode[path.toUpperCase()]) currentNode[path.toUpperCase()] = {nodes: []}; + currentNode = currentNode[path.toUpperCase()] + if (!currentNode.nodes.includes(chip))currentNode.nodes.push(chip); + currentNode.actualname = path; + }) + }) + }) + + //console.log(filterTree); + + const redraw = targ => { + const fuseinuse = fuses.filter(fuse => form[fuse.options.keys[0]].checked); + + start = performance.now(); + + localStorage.setItem("depr", form.depr.checked ? "set" : ""); + localStorage.setItem("beta", form.beta.checked ? "set" : ""); + localStorage.setItem("ReadonlyPaletteName", form.ReadonlyPaletteName.checked ? "set" : ""); + localStorage.setItem("Description", form.Description.checked ? "set" : ""); + localStorage.setItem("refresh", form.refresh.checked ? "set" : ""); + localStorage.setItem("fsug", form.filterSug.checked ? "set" : ""); + localStorage.setItem("fuzz", form.fuzziness.value); + localStorage.setItem("items", form.items.value); + + suggestions.id = form.filterSug.checked ? "paletteSearch" : "" + + var content2 = filterTree; + + const fullPath = targ.value.replace(/\\+|\/+/, "/") + .split("/"); + const startOfPath = fullPath.slice(0, -1); + const endOfPath = fullPath.at(-1); + const startOfSuggestion = startOfPath.join('/'); + + startOfPath.forEach(path => { + try { + content2 = content2[path.toUpperCase()] + } catch (e) {} + }); + + if (!content2) content2 = {nodes: []}; + + suggestions.innerText = ''; + suggestions.append(...Object.keys(content2) + .filter(i => i.toUpperCase() == i) + .sort((a, b) => (a > b) ? 1 : -1) + .map(i => { + var e = document.createElement('option'); + e.value = startOfSuggestion + (startOfSuggestion ? '/' : '') + content2[i].actualname + '/'; + return e; + }) + ) + + + fuseinuse.forEach(fuse => { + fuse.options.minMatchCharLength = Math.floor(endOfPath.length * JSON.parse(form.fuzziness.value).nummod); + fuse.options.threshold = JSON.parse(form.fuzziness.value).thresh; + fuse.setCollection(content2.nodes); + }); + + var content = endOfPath ? (() => { + let m = fuseinuse.map(fuse => fuse.search(endOfPath)).flat() + m.sort((a,b) => a.score - b.score); + m = Array.from(new Set(m.map(e => e.item))); + return m; + })() : content2.nodes; + //console.log(content2.nodes) + + content = content.map(el => { + if ((form.depr.checked || el.DeprecationStage == 0) && (form.beta.checked || !el.IsBetaChip)) { + const ret = newEl("details", "returnedchip"); + if (el.IsBetaChip) ret.classList.add("betaChip"); + + const iret = newEl("div", "infocontainer"); + + const name = document.createElement("summary"); + name.innerText = el.ReadonlyPaletteName + + ((el.ReadonlyPaletteName == el.ReadonlyChipName) ? "" : ` - aka "${el.ReadonlyChipName}"`); + + const deprinfo = deprecationStrings[el.DeprecationStage]; + const depr = newEl("div", deprinfo.Class); + depr.innerText = deprinfo.Text; + + const desc = newEl("p", "chipdesc") + desc.innerText = el.Description == "" ? "No Description!" : el.Description; + + const filters = newEl("ul", "filters") + filters.append(...Object.values(el.NodeFilters).map(val => genSearchPath(val.FilterPath, el.ReadonlyPaletteName))); + + iret.append(desc, filters); + + const addBtn = newEl('button', 'addBtn'); + addBtn.innerText = "+"; + addBtn.setAttribute('title', 'Add to graph'); + addBtn.onclick = getChipAddListener(el.GUID); + if (isNested) name.append(addBtn); + + let m = generateChipHTML(el.NodeDescs); + + ret.append(depr, name, iret, m); + + return ret; + } + }).filter(e => e != undefined); + var perfstring = `returned in ${parseInt(performance.now() - start)} ms.` + display(perfstring, content); + }; + + const redrawHandler = e => redraw(search); + + form.addEventListener("submit", e => {console.log(e); e.preventDefault()}); + search.addEventListener("change", redrawHandler); + form.addEventListener("input", redrawHandler); + + form.refresh.addEventListener("change", e => { + if (e.target.checked) { + form.addEventListener("input", redrawHandler); + } else { + form.removeEventListener("input", redrawHandler); + } + }); + + try { + redraw(search); + } catch (error) { + setTimeout(() => redraw(search), 1000); + } +}); + +function display(perf, content) { + searchresults = content; + page = 0; + update(); +} + +function first() { + page = 0; + update(); +} +function prev() { + page = Math.max(page - 1, 0); + update(); +} + +function next() { + const pagesize = parseInt(document.getElementById("cfgitems").value); + + page = (((page + 1) * pagesize) > searchresults.length) ? page : (page + 1); + update(); +} + +function last() { + const pagesize = parseInt(document.getElementById("cfgitems").value); + + page = Math.max(parseInt((searchresults.length - 1) / pagesize), 0); + update(); +} + + +function update() { + const ndisplay = document.getElementById("pagen"); + const ofdisplay = document.getElementById("of"); + const output = document.getElementById("resultslist"); + const pagesel = document.getElementById("cfgitems"); + + //pagesel.value = ; + + const pagesize = pagesel.value == "" ? 1 : Math.max(parseInt(pagesel.value), 1); + + const start = page * pagesize; + const end = Math.min(searchresults.length, start + pagesize); + + ndisplay.innerText = page + 1; + ofdisplay.innerText = parseInt((searchresults.length - 1) / pagesize) + 1; + + //console.log(start, end); + + output.innerHTML = ""; + output.append(...searchresults.slice(start, end)); +} + diff --git a/searcher/style.css b/searcher/style.css new file mode 100644 index 0000000..d45a04a --- /dev/null +++ b/searcher/style.css @@ -0,0 +1,237 @@ +@import url('https://fonts.googleapis.com/css2?family=Raleway&display=swap'); + +body { +} +html { + --foreforeground: #3788ae; + --foreground: #082f41; + --background: #03141c; + color: white; + background: var(--background); + /*padding: 1cm;*/ + font-size: 12pt; + font-family: 'Raleway', sans-serif; + height: 100%; +} + +hr { + border: 0.5mm solid var(--foreforeground); + background: var(--foreforeground); + width: 100%; + height: 0%; + +} + +.filters::before { + content: "Pallette Search paths:"; +} + +.hide {display: none;} + +input, button, details{ + color: white; + background: var(--foreground); + padding: 1rem; + + border: none; + border-radius: 0.5cm; + font-size: 13pt; + margin: 0.5rem; +} + +input::placeholder { + color: var(--foreforeground); +} + +details :is(input, button) { + background: var(--background); +} + +/*input[type=checkbox] { + display: none; +} + +input[type=checkbox] + label { + position: relative; + padding-left: 2.5rem; + padding-right: .5rem; +} + +input[type=checkbox] + label::before { + background: var(--foreground); + width: 1.5rem; + height: 1.5rem; + margin: auto; + content: ""; + position: absolute; + left: 0; + top: -0.33rem; + border-radius: 0.25rem; + border: 0.25rem var(--foreforeground) solid; +} + + +input[type=checkbox]:checked + label::before { + border-color: var(--foreground); + background: var(--foreforeground); + color: var(--foreground); + font-size: 16pt; + /*content: "✓";* / + align-content: center; +}*/ + +details { + padding: 1rem; + background: var(--foreground); +} + +details.betaChip > summary::before { + content: "β "; + color: paleturquoise; +} + +.returnedchip > summary { + position: relative; +} + +.returnedchip > summary > button.addBtn { + padding: 0rem; + margin: 0; + height: 2rem; + width: 2rem; + position: absolute; + top: calc(50% - 1rem); + right: 0; + left: calc(100% - 2rem); + bottom: calc(50% - 1rem); + text-align: center; + background: #0000; + font-size: 2rem; +} + +details[open] > summary { + border-bottom: 1mm var(--foreforeground) solid; + margin-bottom: 0.5rem; +} + +body { + display: flex; + flex-flow: column; + height: calc(100% - 2cm); + margin: 1cm; +} + +#resultslist { + overflow: auto; +} + +#listcontrols { + display: flex; + flex-flow: row; + align-items: center; +} + + +#helpbox > summary { + height: 1.5cm; + width: 1.5cm; + display: flex; + background: #0000; + border: #fff7 solid 0.9mm; + color: #fff7; + border-radius: 1.5cm; + padding: 0; + font-size: 1.5cm; + align-items: center; + justify-content: center; + float: left; + position: absolute; + bottom: 0; + right: 0; + user-select: none; +} +#helpbox[open] > summary { + margin-bottom: 0; + background: #fff7; + border: #0000 solid 0.9mm; + color: #fff; +} + +#helpbox { + position: fixed; + bottom: 2rem; + right: 2rem; + background: #0000; + border-radius: 0; +} + +#helpbox > div { + background: var(--foreground); + border-radius: 0.5cm; + height: 60vh; + width: 10cm; + overflow-x: auto; + padding: 1rem; + position: relative; + bottom: 2cm; + box-shadow: black 1mm 1mm 3mm +} +a:link { + color: white; +} +a:visited { + color: var(--foreforeground); +} + +.depbad, .depbad + summary { + color: palevioletred; +} +.depwarn, .depwarn + summary { + color: palegoldenrod; +} + +kbd { + background: white; + color: black; + padding: 0.5mm; + border-radius: 1mm; + box-shadow: inset black -0.25mm -0.25mm 1mm; +} + +input:not(:checked).selecttab + .tab { + display: none; +} + +.tab { + position: absolute; + top: 2rem; +} + +summary, +button, +:is(input[type=radio], input[type=checkbox]), +:is(input[type=radio], input[type=checkbox]) + label { + cursor: pointer; +} + + +@media (orientation: portrait) { + #listcontrols { + justify-content: space-between; + } + #form > details { + overflow: auto; + max-height: 20vh; + } + label::after { + content: "\a"; + white-space: pre; + } + input[type=text] { + width: calc(100vw - 3.25cm); + } + #helpbox > div { + width: calc(100vw - 3.5cm); + height: 60vh; + } +} \ No newline at end of file diff --git a/style.css b/style.css deleted file mode 100644 index d45a04a..0000000 --- a/style.css +++ /dev/null @@ -1,237 +0,0 @@ -@import url('https://fonts.googleapis.com/css2?family=Raleway&display=swap'); - -body { -} -html { - --foreforeground: #3788ae; - --foreground: #082f41; - --background: #03141c; - color: white; - background: var(--background); - /*padding: 1cm;*/ - font-size: 12pt; - font-family: 'Raleway', sans-serif; - height: 100%; -} - -hr { - border: 0.5mm solid var(--foreforeground); - background: var(--foreforeground); - width: 100%; - height: 0%; - -} - -.filters::before { - content: "Pallette Search paths:"; -} - -.hide {display: none;} - -input, button, details{ - color: white; - background: var(--foreground); - padding: 1rem; - - border: none; - border-radius: 0.5cm; - font-size: 13pt; - margin: 0.5rem; -} - -input::placeholder { - color: var(--foreforeground); -} - -details :is(input, button) { - background: var(--background); -} - -/*input[type=checkbox] { - display: none; -} - -input[type=checkbox] + label { - position: relative; - padding-left: 2.5rem; - padding-right: .5rem; -} - -input[type=checkbox] + label::before { - background: var(--foreground); - width: 1.5rem; - height: 1.5rem; - margin: auto; - content: ""; - position: absolute; - left: 0; - top: -0.33rem; - border-radius: 0.25rem; - border: 0.25rem var(--foreforeground) solid; -} - - -input[type=checkbox]:checked + label::before { - border-color: var(--foreground); - background: var(--foreforeground); - color: var(--foreground); - font-size: 16pt; - /*content: "✓";* / - align-content: center; -}*/ - -details { - padding: 1rem; - background: var(--foreground); -} - -details.betaChip > summary::before { - content: "β "; - color: paleturquoise; -} - -.returnedchip > summary { - position: relative; -} - -.returnedchip > summary > button.addBtn { - padding: 0rem; - margin: 0; - height: 2rem; - width: 2rem; - position: absolute; - top: calc(50% - 1rem); - right: 0; - left: calc(100% - 2rem); - bottom: calc(50% - 1rem); - text-align: center; - background: #0000; - font-size: 2rem; -} - -details[open] > summary { - border-bottom: 1mm var(--foreforeground) solid; - margin-bottom: 0.5rem; -} - -body { - display: flex; - flex-flow: column; - height: calc(100% - 2cm); - margin: 1cm; -} - -#resultslist { - overflow: auto; -} - -#listcontrols { - display: flex; - flex-flow: row; - align-items: center; -} - - -#helpbox > summary { - height: 1.5cm; - width: 1.5cm; - display: flex; - background: #0000; - border: #fff7 solid 0.9mm; - color: #fff7; - border-radius: 1.5cm; - padding: 0; - font-size: 1.5cm; - align-items: center; - justify-content: center; - float: left; - position: absolute; - bottom: 0; - right: 0; - user-select: none; -} -#helpbox[open] > summary { - margin-bottom: 0; - background: #fff7; - border: #0000 solid 0.9mm; - color: #fff; -} - -#helpbox { - position: fixed; - bottom: 2rem; - right: 2rem; - background: #0000; - border-radius: 0; -} - -#helpbox > div { - background: var(--foreground); - border-radius: 0.5cm; - height: 60vh; - width: 10cm; - overflow-x: auto; - padding: 1rem; - position: relative; - bottom: 2cm; - box-shadow: black 1mm 1mm 3mm -} -a:link { - color: white; -} -a:visited { - color: var(--foreforeground); -} - -.depbad, .depbad + summary { - color: palevioletred; -} -.depwarn, .depwarn + summary { - color: palegoldenrod; -} - -kbd { - background: white; - color: black; - padding: 0.5mm; - border-radius: 1mm; - box-shadow: inset black -0.25mm -0.25mm 1mm; -} - -input:not(:checked).selecttab + .tab { - display: none; -} - -.tab { - position: absolute; - top: 2rem; -} - -summary, -button, -:is(input[type=radio], input[type=checkbox]), -:is(input[type=radio], input[type=checkbox]) + label { - cursor: pointer; -} - - -@media (orientation: portrait) { - #listcontrols { - justify-content: space-between; - } - #form > details { - overflow: auto; - max-height: 20vh; - } - label::after { - content: "\a"; - white-space: pre; - } - input[type=text] { - width: calc(100vw - 3.25cm); - } - #helpbox > div { - width: calc(100vw - 3.5cm); - height: 60vh; - } -} \ No newline at end of file diff --git a/util.js b/util.js deleted file mode 100644 index fe9e5b7..0000000 --- a/util.js +++ /dev/null @@ -1,5 +0,0 @@ -function newEl(name, Class) { - ret = document.createElement(name); - if (Class) ret.classList.add(Class); - return ret; -} \ No newline at end of file -- cgit v1.2.3-70-g09d2