Platformer Generator v1.4

Instructions: • So it's fairly easy to make a very high-quality pen \n    platformer in this easy, fast, and efficient project! \n    First you want to click "generate" and that should \n    make you enter into a background where you see a \n    green tile, well that will be the ground, and to \n    change, and browse through the different types of \n    blocks simply scroll using your arrow keys. If you \n    are done, press space. if you want to load a code, \n    triple click the code given before, then paste it in the \n    box.\n\nGround types:\nRed- lava\ngreen- ground (regular)\nyellow- bounce pad\ngreen "s" block- represents the start.\npurple "f" block- represents the finish.\nwhite block- eraser, to erase any mistaken tiles placed.\n\n∞ All of the physics, art, and engines, are by me.\n\n• Propose to be featured: \n    https://scratch.mit.edu/studios/4228481\n\n\n

@Stage\n\nwhen flag clicked\nswitch backdrop to (backdrop1 v)\nwait (9) seconds\nforever\n    play sound [Sully - Zars v] until done\nend\n\nwhen I receive [create v]\nnext backdrop\n\n@Tile\n\nwhen flag clicked\nerase all\ndelete all of [level code v]\nshow list [level code v]\ndelete all of [bounce v]\ndelete all of [ground v]\ndelete all of [finish v]\ndelete all of [lava v]\nswitch costume to (ground v)\ndelete all of [start v]\nhide\n\nwhen I start as a clone\nwait until <not <<mouse down?> and <touching (mouse-pointer v)?>>>\nwait until <<mouse down?> and <touching (mouse-pointer v)?>>\ndelete this clone\n\nwhen I receive [delete all clones v]\nif <(costume [number v]) = [1]> then\n    add (join (x position) [.]) to [ground v]\n    add (join (y position) [.]) to [ground v]\nend\nif <(costume [number v]) = [2]> then\n    add (join (x position) [.]) to [lava v]\n    add (join (y position) [.]) to [lava v]\nend\nif <(costume [number v]) = [3]> then\n    add (join (x position) [.]) to [bounce v]\n    add (join (y position) [.]) to [bounce v]\nend\nif <(costume [number v]) = [4]> then\n    if <(length of [start v]) = [0]> then\n        add (join (x position) [.]) to [start v]\n        add (join (y position) [.]) to [start v]\n    else\n        delete this clone\n    end\nend\nif <(costume [number v]) = [5]> then\n    add (join (x position) [.]) to [finish v]\n    add (join (y position) [.]) to [finish v]\nend\ndelete this clone\n\nwhen I receive [create v]\nshow\nforever\n    go to x: ((25) * (round ((mouse x) / (25)))) y: ((25) * (round ((mouse y) / (25))))\n    if <mouse down?> then\n        if <not <(costume [number v]) = [6]>> then\n            create clone of (_myself_ v)\n        end\n        wait until <not <mouse down?>>\n    end\n    if <key (left arrow v) pressed?> then\n        switch costume to ((costume [number v]) - (1))\n        wait until <not <key (left arrow v) pressed?>>\n    end\n    if <key (right arrow v) pressed?> then\n        next costume\n        wait until <not <key (right arrow v) pressed?>>\n    end\n    if <key (space v) pressed?> then\n        broadcast (Delete all clones v)\n        wait (0.3) seconds\n        add [] to [level code v]\n        replace item (1) of [level code v] with (join (item (1) of [start v]) (item (2) of [start v]))\n        replace item (1) of [level code v] with (join (item (1) of [level code v]) [/])\n        set [codegencontrol v] to [1]\n        repeat (length of [ground v])\n            replace item (1) of [level code v] with (join (item (1) of [level code v]) (item (codeGenControl) of [ground v]))\n            change [codegencontrol v] by (1)\n        end\n        replace item (1) of [level code v] with (join (item (1) of [level code v]) [/])\n        set [codegencontrol v] to [1]\n        repeat (length of [lava v])\n            replace item (1) of [level code v] with (join (item (1) of [level code v]) (item (codeGenControl) of [lava v]))\n            change [codegencontrol v] by (1)\n        end\n        replace item (1) of [level code v] with (join (item (1) of [level code v]) [/])\n        set [codegencontrol v] to [1]\n        repeat (length of [bounce v])\n            replace item (1) of [level code v] with (join (item (1) of [level code v]) (item (codeGenControl) of [bounce v]))\n            change [codegencontrol v] by (1)\n        end\n        replace item (1) of [level code v] with (join (item (1) of [level code v]) [/])\n        set [codegencontrol v] to [1]\n        repeat (length of [finish v])\n            replace item (1) of [level code v] with (join (item (1) of [level code v]) (item (codeGenControl) of [finish v]))\n            change [codegencontrol v] by (1)\n        end\n        replace item (1) of [level code v] with (join (item (1) of [level code v]) [/])\n        add [Click 3x to copy!] to [level code v]\n        wait (2.4) seconds\n        hide list [level code v]\n        stop [this script v]\n    end\nend\n\nwhen I receive [level v]\nwait (1) seconds\nGen Level\n\ndefine Gen Level\nwait (2.3) seconds\nask [Paste Level Save Code Below. \(press enter or click check to dismiss.\)] and wait\nadd (answer) to [level code v]\nset [codegencontrol v] to [1]\nset [coderuncontrol v] to [1]\nadd [] to [start v]\nrepeat until <(letter (codeGenControl) of (item (1) of [level code v])) = [/]>\n    repeat until <(letter (codeGenControl) of (item (1) of [level code v])) = [.]>\n        replace item (codeRunControl) of [start v] with (join (item (codeRunControl) of [start v]) (letter (codeGenControl) of (item (1) of [level code v])))\n        change [codegencontrol v] by (1)\n    end\n    change [codegencontrol v] by (1)\n    change [coderuncontrol v] by (1)\n    add [] to [start v]\nend\ndelete (length of [start v]) of [start v]\nset [coderuncontrol v] to [1]\nchange [codegencontrol v] by (1)\nadd [] to [ground v]\nrepeat until <(letter (codeGenControl) of (item (1) of [level code v])) = [/]>\n    repeat until <(letter (codeGenControl) of (item (1) of [level code v])) = [.]>\n        replace item (codeRunControl) of [ground v] with (join (item (codeRunControl) of [ground v]) (letter (codeGenControl) of (item (1) of [level code v])))\n        change [codegencontrol v] by (1)\n    end\n    change [codegencontrol v] by (1)\n    change [coderuncontrol v] by (1)\n    add [] to [ground v]\nend\ndelete (length of [ground v]) of [ground v]\nset [coderuncontrol v] to [1]\nchange [codegencontrol v] by (1)\nadd [] to [lava v]\nrepeat until <(letter (codeGenControl) of (item (1) of [level code v])) = [/]>\n    repeat until <(letter (codeGenControl) of (item (1) of [level code v])) = [.]>\n        replace item (codeRunControl) of [lava v] with (join (item (codeRunControl) of [lava v]) (letter (codeGenControl) of (item (1) of [level code v])))\n        change [codegencontrol v] by (1)\n    end\n    change [codegencontrol v] by (1)\n    change [coderuncontrol v] by (1)\n    add [] to [lava v]\nend\ndelete (length of [lava v]) of [lava v]\nset [coderuncontrol v] to [1]\nchange [codegencontrol v] by (1)\nadd [] to [bounce v]\nrepeat until <(letter (codeGenControl) of (item (1) of [level code v])) = [/]>\n    repeat until <(letter (codeGenControl) of (item (1) of [level code v])) = [.]>\n        replace item (codeRunControl) of [bounce v] with (join (item (codeRunControl) of [bounce v]) (letter (codeGenControl) of (item (1) of [level code v])))\n        change [codegencontrol v] by (1)\n    end\n    change [codegencontrol v] by (1)\n    change [coderuncontrol v] by (1)\n    add [] to [bounce v]\nend\ndelete (length of [bounce v]) of [bounce v]\nset [coderuncontrol v] to [1]\nchange [codegencontrol v] by (1)\nadd [] to [finish v]\nrepeat until <(letter (codeGenControl) of (item (1) of [level code v])) = [/]>\n    repeat until <(letter (codeGenControl) of (item (1) of [level code v])) = [.]>\n        replace item (codeRunControl) of [finish v] with (join (item (codeRunControl) of [finish v]) (letter (codeGenControl) of (item (1) of [level code v])))\n        change [codegencontrol v] by (1)\n    end\n    change [codegencontrol v] by (1)\n    change [coderuncontrol v] by (1)\n    add [] to [finish v]\nend\ndelete (length of [finish v]) of [finish v]\nerase all\nshow\ngo to [front v] layer\nswitch costume to (ground v)\nset [coderuncontrol v] to [1]\nrepeat ((length of [ground v]) / (2))\n    set x to (item (codeRunControl) of [ground v])\n    change [coderuncontrol v] by (1)\n    set y to (item (codeRunControl) of [ground v])\n    change [coderuncontrol v] by (1)\n    stamp\nend\nswitch costume to (lava v)\nset [coderuncontrol v] to [1]\nrepeat ((length of [lava v]) / (2))\n    set x to (item (codeRunControl) of [lava v])\n    change [coderuncontrol v] by (1)\n    set y to (item (codeRunControl) of [lava v])\n    change [coderuncontrol v] by (1)\n    stamp\nend\nswitch costume to (bounce v)\nset [coderuncontrol v] to [1]\nrepeat ((length of [bounce v]) / (2))\n    set x to (item (codeRunControl) of [bounce v])\n    change [coderuncontrol v] by (1)\n    set y to (item (codeRunControl) of [bounce v])\n    change [coderuncontrol v] by (1)\n    stamp\nend\nswitch costume to (finish v)\nset [coderuncontrol v] to [1]\nrepeat ((length of [finish v]) / (2))\n    set x to (item (codeRunControl) of [finish v])\n    change [coderuncontrol v] by (1)\n    set y to (item (codeRunControl) of [finish v])\n    change [coderuncontrol v] by (1)\n    stamp\nend\nhide\nbroadcast (Run platformer v)\n\nwhen I receive [complete v]\nshow list [level code v]\ndelete all of [bounce v]\ndelete all of [ground v]\ndelete all of [finish v]\ndelete all of [lava v]\ndelete all of [start v]\nchange [codegencontrol v] by (1)\nhide\nif <(letter (codeGenControl) of (item (1) of [level code v])) = [=]> then\n    change [codegencontrol v] by (1)\n    set [coderuncontrol v] to [1]\n    add [] to [start v]\n    repeat until <(letter (codeGenControl) of (item (1) of [level code v])) = [/]>\n        repeat until <(letter (codeGenControl) of (item (1) of [level code v])) = [.]>\n            replace item (codeRunControl) of [start v] with (join (item (codeRunControl) of [start v]) (letter (codeGenControl) of (item (1) of [level code v])))\n            change [codegencontrol v] by (1)\n        end\n        change [codegencontrol v] by (1)\n        change [coderuncontrol v] by (1)\n        add [] to [start v]\n    end\n    delete (length of [start v]) of [start v]\n    set [coderuncontrol v] to [1]\n    change [codegencontrol v] by (1)\n    add [] to [ground v]\n    repeat until <(letter (codeGenControl) of (item (1) of [level code v])) = [/]>\n        repeat until <(letter (codeGenControl) of (item (1) of [level code v])) = [.]>\n            replace item (codeRunControl) of [ground v] with (join (item (codeRunControl) of [ground v]) (letter (codeGenControl) of (item (1) of [level code v])))\n            change [codegencontrol v] by (1)\n        end\n        change [codegencontrol v] by (1)\n        change [coderuncontrol v] by (1)\n        add [] to [ground v]\n    end\n    delete (length of [ground v]) of [ground v]\n    set [coderuncontrol v] to [1]\n    change [codegencontrol v] by (1)\n    add [] to [lava v]\n    repeat until <(letter (codeGenControl) of (item (1) of [level code v])) = [/]>\n        repeat until <(letter (codeGenControl) of (item (1) of [level code v])) = [.]>\n            replace item (codeRunControl) of [lava v] with (join (item (codeRunControl) of [lava v]) (letter (codeGenControl) of (item (1) of [level code v])))\n            change [codegencontrol v] by (1)\n        end\n        change [codegencontrol v] by (1)\n        change [coderuncontrol v] by (1)\n        add [] to [lava v]\n    end\n    delete (length of [lava v]) of [lava v]\n    set [coderuncontrol v] to [1]\n    change [codegencontrol v] by (1)\n    add [] to [bounce v]\n    repeat until <(letter (codeGenControl) of (item (1) of [level code v])) = [/]>\n        repeat until <(letter (codeGenControl) of (item (1) of [level code v])) = [.]>\n            replace item (codeRunControl) of [bounce v] with (join (item (codeRunControl) of [bounce v]) (letter (codeGenControl) of (item (1) of [level code v])))\n            change [codegencontrol v] by (1)\n        end\n        change [codegencontrol v] by (1)\n        change [coderuncontrol v] by (1)\n        add [] to [bounce v]\n    end\n    delete (length of [bounce v]) of [bounce v]\n    set [coderuncontrol v] to [1]\n    change [codegencontrol v] by (1)\n    add [] to [finish v]\n    repeat until <(letter (codeGenControl) of (item (1) of [level code v])) = [/]>\n        repeat until <(letter (codeGenControl) of (item (1) of [level code v])) = [.]>\n            replace item (codeRunControl) of [finish v] with (join (item (codeRunControl) of [finish v]) (letter (codeGenControl) of (item (1) of [level code v])))\n            change [codegencontrol v] by (1)\n        end\n        change [codegencontrol v] by (1)\n        change [coderuncontrol v] by (1)\n        add [] to [finish v]\n    end\n    delete (length of [finish v]) of [finish v]\n    erase all\n    show\n    go to [front v] layer\n    switch costume to (ground v)\n    set [coderuncontrol v] to [1]\n    repeat ((length of [ground v]) / (2))\n        set x to (item (codeRunControl) of [ground v])\n        change [coderuncontrol v] by (1)\n        set y to (item (codeRunControl) of [ground v])\n        change [coderuncontrol v] by (1)\n        stamp\n    end\n    switch costume to (lava v)\n    set [coderuncontrol v] to [1]\n    repeat ((length of [lava v]) / (2))\n        set x to (item (codeRunControl) of [lava v])\n        change [coderuncontrol v] by (1)\n        set y to (item (codeRunControl) of [lava v])\n        change [coderuncontrol v] by (1)\n        stamp\n    end\n    switch costume to (bounce v)\n    set [coderuncontrol v] to [1]\n    repeat ((length of [bounce v]) / (2))\n        set x to (item (codeRunControl) of [bounce v])\n        change [coderuncontrol v] by (1)\n        set y to (item (codeRunControl) of [bounce v])\n        change [coderuncontrol v] by (1)\n        stamp\n    end\n    switch costume to (finish v)\n    set [coderuncontrol v] to [1]\n    repeat ((length of [finish v]) / (2))\n        set x to (item (codeRunControl) of [finish v])\n        change [coderuncontrol v] by (1)\n        set y to (item (codeRunControl) of [finish v])\n        change [coderuncontrol v] by (1)\n        stamp\n    end\n    hide\n    broadcast (Run platformer v)\nend\n\nwhen flag clicked\nforever\n    if <(answer) = []> then\n        broadcast (SHOW v)\n    end\nend\n\n@Button\n\nwhen flag clicked\nshow\nswitch costume to (create v)\ngo to x: (-120) y: (-65)\ncreate clone of (_myself_ v)\nnext costume\nchange x by (240)\ncreate clone of (_myself_ v)\nhide\n\nwhen I start as a clone\nforever\n    if <touching (mouse-pointer v)?> then\n        set size to (120) %\n        if <mouse down?> then\n            if <(costume [number v]) = [1]> then\n                broadcast (Create v)\n                delete this clone\n            end\n            if <(costume [number v]) = [2]> then\n                broadcast (Level v)\n                delete this clone\n            end\n            if <(costume [number v]) = [3]> then\n                broadcast (Platformer v)\n                delete this clone\n            end\n        end\n    else\n        set size to (100) %\n    end\nend\n\nwhen I receive [create v]\ndelete this clone\n\nwhen I receive [level v]\ndelete this clone\n\nwhen I receive [platformer v]\ndelete this clone\n\nnext costume\nchange x by (-320)\ncreate clone of (_myself_ v)\n\n@platformer\n\nwhen I receive [run platformer v]\nshow\ngo to x: (item (1) of [start v]) y: (item (2) of [start v])\nrepeat until <touching color (#f466ff)?>\n    Platformer\nend\nset [jump v] to [0]\nset [speed v] to [0]\nhide\nerase all\nbroadcast (Complete v)\n\ndefine Platformer\nchange x by (Speed)\nif <touching color (#6bff66)?> then\n    change y by (1)\n    if <touching color (#6bff66)?> then\n        change y by (1)\n        if <touching color (#6bff66)?> then\n            change y by (1)\n            if <touching color (#6bff66)?> then\n                change y by (1)\n                if <touching color (#6bff66)?> then\n                    change y by (1)\n                    if <touching color (#6bff66)?> then\n                        change y by (1)\n                        if <touching color (#6bff66)?> then\n                            change y by (1)\n                            if <touching color (#6bff66)?> then\n                                change y by (1)\n                                if <touching color (#6bff66)?> then\n                                    change y by (-8)\n                                    repeat until <not <touching color (#6bff66)?>>\n                                        change x by ((0) - ((Speed) / ([abs v] of (Speed) )))\n                                    end\n                                    if <key (up arrow v) pressed?> then\n                                        set [speed v] to ((7) * ((0) - ((Speed) / ([abs v] of (Speed) ))))\n                                        set [jump v] to [10]\n                                    else\n                                        set [speed v] to [0]\n                                    end\n                                end\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\nchange y by (Jump)\nif <touching color (#6bff66)?> then\n    if <(Jump) > [0]> then\n        repeat until <not <touching color (#6bff66)?>>\n            change y by (-1)\n        end\n    else\n        repeat until <not <touching color (#6bff66)?>>\n            change y by (1)\n        end\n    end\n    set [jump v] to [0]\nend\nchange y by (-3)\nif <<touching color (#feff66)?> or <<key (up arrow v) pressed?> and <touching color (#6bff66)?>>> then\n    if <touching color (#feff66)?> then\n        set [jump v] to [15]\n    else\n        set [jump v] to [10]\n    end\nelse\n    change [jump v] by (-1)\nend\nchange y by (3)\nif <key (right arrow v) pressed?> then\n    if <(Speed) < [11]> then\n        change [speed v] by (1)\n    end\nelse\n    if <key (left arrow v) pressed?> then\n        if <(Speed) > [-11]> then\n            change [speed v] by (-1)\n        end\n    else\n        if <(Speed) > [0]> then\n            change [speed v] by (-1)\n        else\n            if <(Speed) < [0]> then\n                change [speed v] by (1)\n            end\n        end\n    end\nend\nif <<touching color (#ff6666)?> or <(y position) < [-175]>> then\n    set [jump v] to [0]\n    set [speed v] to [0]\n    go to x: (item (1) of [start v]) y: (item (2) of [start v])\nend\n\nwhen flag clicked\nset [speed v] to [0]\nset [jump v] to [0]\nhide\ngo to x: (0) y: (0)\n\n@break\n\nwhen flag clicked\nset [ghost v] effect to (0)\nshow\nwait (6) seconds\nrepeat (25)\n    change [ghost v] effect by (4)\nend\nhide\n\n@Spawn\n\nwhen flag clicked\nhide\n\nwhen I receive [level v]\nshow\ngo to [front v] layer\nwait (2.3) seconds\nhide\n\nwhen flag clicked\nwait (8) seconds\nforever\n    if <key (space v) pressed?> then\n        show\n        go to [front v] layer\n        wait (2.3) seconds\n        hide\n    end\nend\n\n@Notes\n\nwhen flag clicked\nswitch costume to (costume1 v)\nhide\nwait (6) seconds\nshow\ngo to [back v] layer\nforever\n    if <touching (mouse-pointer v)?> then\n        set size to (105) %\n    else\n        set size to (100) %\n    end\nend\n\nwhen flag clicked\nforever\n    if <(costume [number v]) = [2]> then\n        if <touching (mouse-pointer v)?> then\n            set size to (100) %\n        else\n            set size to (100) %\n        end\n    end\n    if <<(costume [number v]) = [2]> and <key (up arrow v) pressed?>> then\n        hide\n        next costume\n        show\n    end\nend\n\nwhen this sprite clicked\nswitch costume to (costume2 v)\nhide\ngo to [front v] layer\nshow\n\nwhen I receive [show v]\nshow\n\n@Credits\n\nwhen flag clicked\nswitch costume to (costume1 v)\nhide\nwait (6) seconds\nshow\ngo to [back v] layer\nforever\n    if <touching (mouse-pointer v)?> then\n        set size to (105) %\n    else\n        set size to (100) %\n    end\nend\n\nwhen flag clicked\nforever\n    if <(costume [number v]) = [2]> then\n        if <touching (mouse-pointer v)?> then\n            set size to (100) %\n        else\n            set size to (100) %\n        end\n    end\n    if <<(costume [number v]) = [2]> and <key (up arrow v) pressed?>> then\n        hide\n        next costume\n        show\n    end\nend\n\nwhen this sprite clicked\nswitch costume to (costume2 v)\nhide\ngo to [front v] layer\nshow\n\nwhen I receive [show v]\nshow\n\n@TN\n\nwhen flag clicked\nforever\n    reset timer\nend\n\nwhen flag clicked\nhide\n\nwhen [timer v] > (0)\nshow\n\n@Scratch Analytics\n\nwhen flag clicked\ndelete all of [resultlist v]\nset [#scratchlytics | encode alphabet v] to [abcdefghijklmnopqrstuvwxyz0123456789-_ абвгдеёжзийклмнопрстуфхцчшщьыъэюя.,/]\nwait (1) seconds\ndecode cloud var (☁ @Scratchlytics | Username list) to string\nencode string (#scratchlytics | encode result) to list\nif <not <[resultlist v] contains (username)?>> then\n    insert (username) at (1) of [resultlist v] \n    decode list "resultList" to string\n    encode string (#scratchlytics | encode result) to cloud var\n    set [☁ @scratchlytics | username list v] to (#scratchlytics | encode result)\nend\ndecode cloud var (☁ @Scratchlytics | Username list) to string\nencode string (#scratchlytics | encode result) to list\ndelete all of [users history v]\nset [i1 v] to [1]\nif <(length of [resultlist v]) > [20]> then\n    repeat (20)\n        add (item (i1) of [resultlist v]) to [users history v]\n        change [i1 v] by (1)\n    end\nelse\n    repeat (length of [resultlist v])\n        add (item (i1) of [resultlist v]) to [users history v]\n        change [i1 v] by (1)\n    end\nend\nforever\n    if <(☁ @Scratchlytics | Total time) < [60]> then\n        set [total watch time v] to (join (☁ @Scratchlytics | Total time) [ seconds])\n    else\n        if <(☁ @Scratchlytics | Total time) < [3600]> then\n            set [total watch time v] to (join (round ((☁ @Scratchlytics | Total time) / (60))) [ minutes])\n        else\n            if <(☁ @Scratchlytics | Total time) < [86400]> then\n                set [total watch time v] to (join (round ((☁ @Scratchlytics | Total time) / (3600))) [ hours])\n            else\n                set [total watch time v] to (join (round ((☁ @Scratchlytics | Total time) / (86400))) [ days])\n            end\n        end\n    end\n    if <(☁ @Scratchlytics | Clicks) < [1000]> then\n        set [total clicks v] to (☁ @Scratchlytics | Clicks)\n    else\n        if <(☁ @Scratchlytics | Clicks) < [1000000]> then\n            set [total clicks v] to (join (letter (1) of (☁ @Scratchlytics | Clicks)) [K])\n        else\n            set [total clicks v] to (join (letter (1) of (☁ @Scratchlytics | Clicks)) [M])\n        end\n    end\n    if <(☁ @Scratchlytics | Stops) < [1000]> then\n        set [users who stopped immediately v] to (☁ @Scratchlytics | Stops)\n    else\n        set [users who stopped immediately v] to (join (letter (1) of (☁ @Scratchlytics | Stops)) [K])\n    end\n    wait (1) seconds\nend\n\ndefine encode string (s) to cloud var\nset [#scratchlytics | encode result v] to []\nset [i1 v] to [1]\nrepeat (length of (s))\n    if < (#scratchlytics | encode alphabet) contains (letter (i1) of (s))?> then\n        set [i2 v] to [1]\n        repeat (length of (#scratchlytics | encode alphabet))\n            if <(letter (i2) of (#scratchlytics | encode alphabet)) = (letter (i1) of (s))> then\n                if <(i2) < [10]> then\n                    set [#scratchlytics | encode result v] to (join (#scratchlytics | encode result) (join [0] (i2)))\n                else\n                    set [#scratchlytics | encode result v] to (join (#scratchlytics | encode result) (i2))\n                end\n            end\n            change [i2 v] by (1)\n        end\n    else\n        set [#scratchlytics | encode result v] to (join (#scratchlytics | encode result) [73])\n    end\n    change [i1 v] by (1)\nend\n\ndefine decode cloud var (c) to string\nset [#scratchlytics | encode result v] to []\nset [i1 v] to [1]\nrepeat until <(i1) > ((length of (c)) - (1))>\n    set [#scratchlytics | encode result v] to (join (#scratchlytics | encode result) (letter (join (letter (i1) of (c)) (letter ((i1) + (1)) of (c))) of (#scratchlytics | encode alphabet)))\n    change [i1 v] by (2)\nend\n\ndefine encode string (s) to list\ndelete all of [resultlist v]\nadd [] to [resultlist v]\nset [i1 v] to [1]\nrepeat (length of (s))\n    if <(letter (i1) of (s)) = [/]> then\n        add [] to [resultlist v]\n    else\n        replace item (length of [resultlist v]) of [resultlist v] with (join (item (length of [resultlist v]) of [resultlist v]) (letter (i1) of (s)))\n    end\n    change [i1 v] by (1)\nend\n\ndefine decode list "resultList" to string\nset [#scratchlytics | encode result v] to []\nset [i1 v] to [1]\nrepeat (length of [resultlist v])\n    if <(#scratchlytics | encode result) = []> then\n        set [#scratchlytics | encode result v] to (item (i1) of [resultlist v])\n    else\n        set [#scratchlytics | encode result v] to (join (#scratchlytics | encode result) (join [/] (item (i1) of [resultlist v])))\n    end\n    change [i1 v] by (1)\nend\n\ndefine Clear All Analytics Data\nset [☁ @scratchlytics | username list v] to [0]\nset [☁ @scratchlytics | total time v] to [0]\nset [☁ @scratchlytics | clicks v] to [0]\nset [☁ @scratchlytics | stops v] to [0]\n\nwhen flag clicked\nforever\n    wait (1) seconds\n    change [☁ @scratchlytics | total time v] by (1)\nend\n\nwhen flag clicked\nforever\n    wait until <mouse down?>\n    wait until <not <mouse down?>>\n    change [☁ @scratchlytics | clicks v] by (1)\nend\n\nwhen flag clicked\nif <not <[resultlist v] contains (username)?>> then\n    change [☁ @scratchlytics | stops v] by (1)\n    wait (5) seconds\n    change [☁ @scratchlytics | stops v] by (-1)\nend\n\nwhen flag clicked\ndelete all of [admins list v]\nadd [EPICCODERS1010] to [admins list v]\n\nadd (username) to [admins list v]\n\nwhen flag clicked\nshow list [users history v]\nhide variable [users who stopped immediately v]\nhide variable [total watch time v]\nhide variable [total clicks v]\nforever\n    wait until <<key (a v) pressed?> and <key (left arrow v) pressed?>>\n    wait until <not <<key (a v) pressed?> and <key (left arrow v) pressed?>>>\n    if <<[admins list v] contains (username)?> or <(username) = [EPICCODERS1010]>> then\n        hide list [users history v]\n        show variable [users who stopped immediately v]\n        show variable [total watch time v]\n        show variable [total clicks v]\n    end\n    wait until <<key (a v) pressed?> and <key (left arrow v) pressed?>>\n    wait until <not <<key (a v) pressed?> and <key (left arrow v) pressed?>>>\n    show list [users history v]\n    hide variable [users who stopped immediately v]\n    hide variable [total watch time v]\n    hide variable [total clicks v]\nend\n\nwhen flag clicked\ngo to x: (73) y: (-120)\nswitch costume to (intro v)\nshow\ngo to [front v] layer\nrepeat (50)\n    go to [front v] layer\n    wait (0) seconds\nend\nset [xvel v] to [1]\nrepeat (20)\n    go to [front v] layer\n    change x by (xvel)\n    change [xvel v] by ((xvel) * (0.5))\n    change [ghost v] effect by (5)\nend\nhide\nswitch costume to (logo v)\n\nwhen I receive [\[delete this message\] $scratchlytics-off 0746 v]\nwait (1) seconds\nif <([size v] of [slides-ru v]) = [100]> then\n    add (username) to [admins list v]\nend\n\nwhen flag clicked\nhide\n\n@Sprite14\n\nwhen flag clicked\nhide\n\nwhen I receive [yuh v]\nshow\ngo to x: (-142) y: (-67)\nswitch costume to (costume1 v)\nwait (1.5) seconds\nswitch costume to (costume3 v)\nwait (0.7) seconds\nswitch costume to (costume2 v)\nwait (1) seconds\nglide (0.5) secs to x: (-142) y: (-115)\nhide\n\nbroadcast (yuh v)\n\n@Sprite13\n\nwhen flag clicked\nhide\n\nwhen I receive [yuh v]\ngo to x: (-94) y: (-182)\nwait (1) seconds\ngo to [front v] layer\nshow\nglide (0.5) secs to x: (-129) y: (-151)\nstart sound [drive around v]\nwait (0.5) seconds\nglide (0.2) secs to x: (-196) y: (-151)\nstart sound [drive around v]\nwait (1) seconds\nglide (0.5) secs to x: (-199) y: (-191)\nhide\n\nstart sound [drive around v]\n\nwhen flag clicked\nwait (40) seconds\nbroadcast (yuh v)\n\n@Intro\n\nwhen I receive [intro v]\nstart sound [intro \(2\) v]\nwait until <(IntroEnd) = [1]>\nwait (1) seconds\nrepeat (100)\n    change volume by (-2)\nend\n\nwhen flag clicked\nset [introdrop v] to [0]\nset [introend v] to [0]\nhide\nbroadcast (Intro v)\n\nwhen I start as a clone\nswitch costume to (IntroSprite)\n\nwhen I start as a clone\nif <(IntroSprite) = [Logo]> then\n    set size to (0) %\n    point in direction (90)\n    go to x: (0) y: (1000)\n    go to [front v] layer\n    clear graphic effects\n    show\n    repeat (30)\n        change size by (((150) - (size)) / (5))\n        change y by (((0) - (y position)) / (5))\n    end\n    wait (1) seconds\n    repeat (30)\n        change size by (((size) - (151)) / (5))\n        change y by (((y position) - (1)) / (5))\n        change [ghost v] effect by (5)\n    end\n    delete this clone\nend\n\nwhen I receive [intro v]\nset [introspritetype v] to [Background]\nset [introsprite v] to [Background1]\ncreate clone of (_myself_ v)\nwait (0.5) seconds\nset [introsprite v] to [Background2]\ncreate clone of (_myself_ v)\nwait (0.4) seconds\nset [introsprite v] to [Background3]\ncreate clone of (_myself_ v)\nwait (0.6) seconds\nset [introspritetype v] to [0]\nset [introsprite v] to [Lets Go]\ncreate clone of (_myself_ v)\nwait (0.6) seconds\nset [introdrop v] to [1]\nParticles\nwait (0.01) seconds\nset [introsprite v] to [Logo]\ncreate clone of (_myself_ v)\nwait (0.01) seconds\nset [introspritetype v] to [Circle]\nset [introsprite v] to [Circle1]\ncreate clone of (_myself_ v)\nwait (0.05) seconds\nset [introsprite v] to [Circle2]\ncreate clone of (_myself_ v)\nwait (0.05) seconds\nset [introsprite v] to [Circle3]\ncreate clone of (_myself_ v)\nwait (0.05) seconds\nset [introsprite v] to [Circle4]\ncreate clone of (_myself_ v)\nwait (0.05) seconds\nset [introsprite v] to [Circle5]\ncreate clone of (_myself_ v)\nwait (0.05) seconds\nset [introsprite v] to [Circle6]\ncreate clone of (_myself_ v)\n\ndefine Particles\nset [introsprite v] to [Particle]\nrepeat (50)\n    create clone of (_myself_ v)\nend\n\nwhen I start as a clone\nif <(IntroSprite) = [Particle]> then\n    go to [front v] layer\n    go [backward v] (1) layers\n    set size to (100) %\n    set [ghost v] effect to (pick random (30) to (50))\n    set [color v] effect to (pick random (0) to (20))\n    set [brightness v] effect to (pick random (0) to (20))\n    go to x: (0) y: (0)\n    show\n    set [introparticle1 v] to (pick random (0) to (20))\n    set [introparticle2 v] to (pick random (-10) to (10))\n    set [introparticle3 v] to [0]\n    repeat until <<touching (_edge_ v)?> or <(size) < [17]>>\n        change x by (IntroParticle2)\n        change y by (IntroParticle1)\n        change size by (IntroParticle3)\n        change [introparticle1 v] by (-1)\n        change [introparticle3 v] by (-0.2)\n    end\n    delete this clone\nend\n\nrepeat (10)\n    change [ghost v] effect by (10)\nend\n\nwhen I start as a clone\nif <(IntroSpriteType) = [Background]> then\n    set size to (100) %\n    point in direction (90)\n    go to x: (0) y: (-348)\n    go to [front v] layer\n    clear graphic effects\n    show\n    repeat (15)\n        change y by (((y position) - (-349)) / (3))\n    end\n    set [brightness v] effect to (50)\n    go to x: (0) y: (0)\n    repeat (10)\n        change [brightness v] effect by (-5)\n    end\nend\n\nwait (0.4) seconds\n\nwhen I start as a clone\nif <(IntroSprite) = [Lets Go]> then\n    set size to (100) %\n    point in direction (90)\n    go to x: (0) y: (-1000)\n    go to [front v] layer\n    clear graphic effects\n    show\n    repeat (15)\n        change y by (((0) - (y position)) / (3))\n        change size by (((size) - (101)) / (3))\n        change [ghost v] effect by (5)\n    end\n    delete this clone\nend\n\nwhen I start as a clone\nif <(IntroSpriteType) = [Circle]> then\n    set size to (0) %\n    point in direction (90)\n    go to x: (0) y: (0)\n    set [ghost v] effect to (100)\n    go to [front v] layer\n    show\n    repeat (30)\n        change size by (((100) - (size)) / (5))\n        change [ghost v] effect by (-5)\n    end\n    wait (1) seconds\n    repeat (30)\n        change size by (((size) - (99)) / (5))\n        change [ghost v] effect by (4)\n    end\nend\n\nwhen I start as a clone\nif <(IntroSpriteType) = [Background]> then\n    wait (4.5) seconds\n    set [introend v] to [1]\n    repeat (20)\n        change [ghost v] effect by (5)\n    end\n    delete this clone\nend\n\nwhen flag clicked\nset volume to (100) %\n\nwhen I receive [done v]\nhide\n\n