this is my project template, or framework if you're into fancy terms. It has a custom variable system and a rendered-output. Its main goal is to make project creation extremely easy. feel free to take everything in the project [[ documentation ]]: general caveats: since this project uses a single list for variables, if you're making an input system where the user can set a variable, the variable's value could interfere with how the project gets the value of other variable's (say a variable named "abc" equal to 123 and a variable of any other name having a value of "abc"; this variable would interfere with indexing the actual variable "abc") this can be solved by joining an extraneous string of characters to that player's input. function [i ( type )] ? type = "-": restores the value of [i] ? type = [any number]: sets [i] to the number and aliases it. ? type = "+": increases the value of [i] by 1. function [var (name) (value) (meta)] ? meta = "+": var is now equal to itself + value ? meta = "new": a new variable with the given name has been created with the given value. ? meta = "" [none]: sets the value of the given variable. ? meta = "..": joins the variable's value with the given value. (literally just the (join ()()) block) ? meta = "del": deletes the variable. ? meta = ":": sets the variable if it exists, if it doesn't, create the variable (not super good for performance) ? meta = "get": returns the variable's value. Feel free to change this functionality ? meta = "{}": nothing. I haven't made a list system yet. function [args (string)] how to write: "variableName, givenValue;" if items are separated with a COMMA then it adds the variable of that name to the list {args} if separated with a SEMICOLON it simply adds the value to {args} "as-given" example: var(variableName, qwerty, new) args( hello world; hi gang; variableName,) print(args) -> [ hello world hi gang qwerty ] btw its incorrect to write [args(abc; 123)] you have to have a comma or semicolon at the end! function ret transfers values from {args} to {ret}. Idk why i made this