{ "name" : "Number Variable", "attributes": [ { "name": "Get Value", "type": "Number", "connection": "Input", "editable": true }, { "name": "Save Value", "type": "Number", "connection": "Input", "editable": true }, { "name": "Value", "type": "Number", "connection": "Output", "editable": true }, { "name": "Init Value", "type": "Number", "connection": "None", "value": 0, "editable": true }, { "name": "Variable Name", "type": "Text", "value": "qwe", "connection": "None", "editable": true }, { "name": "Storage", "type": "Dropdown", "value": { "default": "kSet", "options": { "Global Sttings": "kSet", "This Entity": "kEnt" } }, "connection": "None", "editable": true }, { "name": "Get on Save", "type": "Boolean", "connection": "None", "value": false, "editable": true } ], "script": "//by Smart Penguins https://www.youtube.com/c/smartpenguins let storage; let variableName; let getOnSave; function init() { variableName = this.attribute('Variable Name'); getOnSave = this.attribute('Get on Save'); let storageType = this.attribute('Storage'); if(storageType == 'kEnt'){ storage = this.entity(); }else if(storageType == 'kSet'){ storage = Settings; } } function signal(name, value) { if (name == 'Get Value' && value) { if(storage[variableName]===undefined){ storage[variableName] = this.attribute('Init Value'); } this.emitSignal('Value', storage[variableName]); }else if(name == 'Save Value'){ storage[variableName] = value; if(getOnSave){ this.emitSignal('Value', storage[variableName]); } } }" }