☁ Bumps - A Scrolling Platformer (Speed Run) v1.6

Instructions: You are in a world of bumps, and you need to escape the obstacle courses as fast as you can!\n\n=============== CONTROLS ================\n\nJump - Space, Up Arrow, W, Place mouse/finger above player\n\nMove Right - Right Arrow, D, Place finger/mouse to the right of player\n\nMove Left - Left Arrow, A, Place finger/mouse to the left of player

@Stage\n\nbroadcast (Thumbnail v)\n\nwhen I receive [thumbnail v]\nset [# blank v] to [I have this variable because sometimes I accidently set the ☁ variable to 0 when I want to grab a variable block. So since this variable will be on the top now, when I grab a variable block I may accidently set this to 0 which will not be any problem \(other than having to rewrite this whole thing again\).]\n\n@Player\n\nwhen I receive [start v]\nbroadcast (Reset v)\n\nwhen flag clicked\nhide\nset [scroll x v] to [100]\nset [scroll y v] to [-100]\nforever\n    set [color v] effect to (Color)\nend\n\nwhen I receive [walkthrough v]\nshow\nwait until <not <mouse down?>>\nforever\n    point in direction ((0) - ((SCROLL X) / (1.11)))\n    if <(Turbo Mode) = [True]> then\n        wait (0.01) seconds\n    end\n    if <<<mouse down?> and <<<(mouse x) > [-30]> and <(mouse x) < [30]>> and <<(mouse y) > [-30]> and <(mouse y) < [30]>>>> or <key (space v) pressed?>> then\n        wait until <not <mouse down?>>\n        wait until <not <key (space v) pressed?>>\n        wait until <<<mouse down?> and <<<(mouse x) > [-30]> and <(mouse x) < [30]>> and <<(mouse y) > [-30]> and <(mouse y) < [30]>>>> or <key (space v) pressed?>>\n        wait until <not <mouse down?>>\n        wait until <not <key (space v) pressed?>>\n    end\n    if <<mouse down?> and <(mouse x) > [30]>> then\n        repeat until <not <mouse down?>>\n            point in direction ((0) - ((SCROLL X) / (1.11)))\n        end\n    end\n    if <<mouse down?> and <(mouse x) < [-30]>> then\n        repeat until <not <mouse down?>>\n            point in direction ((0) - ((SCROLL X) / (1.11)))\n        end\n    end\nend\n\nwhen I receive [hide v]\nstop [other scripts in sprite v]\nhide\n\nwhen I receive [reset v]\nshow\ngo to [front v] layer\nset [color v] effect to (Color)\ngo to x: (0) y: (0)\npoint in direction (90)\nset [scroll x v] to [100]\nset [scroll y v] to [-100]\nset [dir vel v] to [34]\nrepeat (30)\n    if <(round (SCROLL X)) = [100]> then\n        point in direction ((SCROLL Y) + ((41) + ((0) - ((SCROLL X) / (1.11)))))\n    else\n        point in direction ([direction v] of [hit box v])\n    end\nend\nforever\n    point in direction ([direction v] of [hit box v])\nend\n\n@Hit Box\n\ndefine Scroll // Up (up) Right (right) Left (left) Down (down) With Friction (friction)\nchange y by (Y Velocity)\nif <touching (ground v)?> then\n    repeat ([abs v] of (Y Velocity) )\n        if <touching (ground v)?> then\n            change y by ((0) - (([abs v] of (Y Velocity) ) / (Y Velocity)))\n        end\n    end\n    if <<not <(Y Velocity) > [0]>> and <<<key (up arrow v) pressed?> or <<key (space v) pressed?> or <key (w v) pressed?>>> or <<<mouse down?> and <(mouse y) > (y position)>> and <not <<(mouse x) > [185]> and <(mouse y) > [130]>>>>>> then\n        set [y velocity v] to (up)\n    else\n        set [y velocity v] to [0]\n    end\nelse\n    change [y velocity v] by (down)\nend\nchange x by (X Velocity)\nif <touching (ground v)?> then\n    repeat ([abs v] of (X Velocity) )\n        if <not <<<key (up arrow v) pressed?> or <<key (space v) pressed?> or <key (w v) pressed?>>> or <<<mouse down?> and <(mouse y) > (y position)>> and <not <<(mouse x) > [185]> and <(mouse y) > [130]>>>>>> then\n            change y by (1)\n            if <touching (ground v)?> then\n                change y by (1)\n                if <touching (ground v)?> then\n                    change y by (1)\n                    if <touching (ground v)?> then\n                        change y by (1)\n                        if <touching (ground v)?> then\n                            change y by (1)\n                            if <touching (ground v)?> then\n                                change y by (1)\n                            end\n                        end\n                    end\n                end\n                if <touching (ground v)?> then\n                    change y by (-6)\n                end\n            end\n        end\n        if <touching (ground v)?> then\n            change x by ((0) - (([abs v] of (X Velocity) ) / (X Velocity)))\n        end\n        if <not <touching (ground v)?>> then\n            change y by (-1)\n        end\n        if <not <touching (ground v)?>> then\n            if <<<key (up arrow v) pressed?> or <<key (space v) pressed?> or <key (w v) pressed?>>> or <<<mouse down?> and <(mouse y) > (y position)>> and <not <<(mouse x) > [185]> and <(mouse y) > [130]>>>>> then\n                set [y velocity v] to [10]\n                set [x velocity v] to ((15) * ((0) - (([abs v] of (X Velocity) ) / (X Velocity))))\n            else\n                set [x velocity v] to [0]\n            end\n        end\n    end\nend\nif <<<key (right arrow v) pressed?> or <key (d v) pressed?>> or <<<mouse down?> and <(mouse x) > ((x position) + (20))>> and <not <<(mouse x) > [185]> and <(mouse y) > [130]>>>>> then\n    change [x velocity v] by (right)\nend\nif <<<key (left arrow v) pressed?> or <key (a v) pressed?>> or <<<mouse down?> and <(mouse x) < ((x position) - (20))>> and <not <<(mouse x) > [185]> and <(mouse y) > [130]>>>>> then\n    change [x velocity v] by (left)\nend\nset [x velocity v] to ((X Velocity) * (friction))\nchange [scroll x v] by ((0) - (x position))\nchange [scroll y v] by ((0) - (y position))\ngo to x: (0) y: (0)\nif <touching (jump pad v)?> then\n    set [y velocity v] to [20]\nend\nif <(SCROLL X) < [-5192]> then\n    change [scroll x v] by ((0) - ((SCROLL X) - (-5192)))\nend\nif <(SCROLL X) > [300]> then\n    change [scroll x v] by ((0) - ((SCROLL X) - (300)))\nend\n\nwhen I receive [start v]\nSet Up\ngo to x: (0) y: (0)\nwait until <not <mouse down?>>\nforever\n    Scroll // Up [14] Right [2.5] Left [-2.5] Down [-1] With Friction [0.8]\n    point in direction ((0) - ((SCROLL X) / (1.11)))\n    if <touching (lava v)?> then\n        Spawn To Checkpoint (Spawn X) (Spawn Y)\n        set [x velocity v] to [0]\n        set [y velocity v] to [0]\n    end\nend\n\nwhen I receive [hide v]\nstop [other scripts in sprite v]\n\ndefine Spawn To Checkpoint (x) (y)\nset [x velocity v] to [0]\nset [y velocity v] to [0]\npoint in direction ((0) - ((Spawn X) / (1.11)))\nset [dir v] to (direction)\npoint in direction ((0) - ((SCROLL X) / (1.11)))\nset [x v] to ((x) - (SCROLL X))\nset [y v] to ((y) - (SCROLL Y))\nset [vel v] to [0]\nrepeat (10)\n    change [vel v] by (0.01)\n    change [scroll x v] by ((x) * (Vel))\n    change [scroll y v] by ((y) * (Vel))\n    turn right ((dir) * (Vel)) degrees\nend\nrepeat (20)\n    change [scroll x v] by (((x) - (SCROLL X)) * (0.2))\n    change [scroll y v] by (((y) - (SCROLL Y)) * (0.2))\n    turn right (((dir) - (direction)) * (0.2)) degrees\nend\n\nwhen I receive [walkthrough v]\nwait (1) seconds\nset [letter # v] to [0]\nforever\n    change [letter # v] by (1)\n    set [x velocity v] to (item (Letter #) of [x vel v])\n    set [y velocity v] to (item (Letter #) of [y vel v])\n    if <<mouse down?> and <<<(mouse x) > [-30]> and <(mouse x) < [30]>> and <<(mouse y) > [-30]> and <(mouse y) < [30]>>>> then\n        wait until <not <mouse down?>>\n        wait until <<mouse down?> and <<<(mouse x) > [-30]> and <(mouse x) < [30]>> and <<(mouse y) > [-30]> and <(mouse y) < [30]>>>>\n        repeat until <not <mouse down?>>\n            change [letter # v] by (1)\n            set [x velocity v] to (item (Letter #) of [x vel v])\n            set [y velocity v] to (item (Letter #) of [y vel v])\n            if <(Letter #) > (((length of [x v]) + (length of [y v])) / (2))> then\n                set [letter # v] to (((length of [x v]) + (length of [y v])) / (2))\n            end\n            if <(Letter #) < [0]> then\n                set [letter # v] to [0]\n            end\n        end\n    end\n    if <<mouse down?> and <(mouse x) > [30]>> then\n        change [letter # v] by (150)\n        repeat until <not <mouse down?>>\n            change [letter # v] by (1)\n            set [x velocity v] to (item (Letter #) of [x vel v])\n            set [y velocity v] to (item (Letter #) of [y vel v])\n            if <(Letter #) > (((length of [x v]) + (length of [y v])) / (2))> then\n                set [letter # v] to (((length of [x v]) + (length of [y v])) / (2))\n            end\n            if <(Letter #) < [0]> then\n                set [letter # v] to [0]\n            end\n        end\n    end\n    if <<mouse down?> and <(mouse x) < [-30]>> then\n        change [letter # v] by (-150)\n        repeat until <not <mouse down?>>\n            change [letter # v] by (1)\n            set [x velocity v] to (item (Letter #) of [x vel v])\n            set [y velocity v] to (item (Letter #) of [y vel v])\n            if <(Letter #) > (((length of [x v]) + (length of [y v])) / (2))> then\n                set [letter # v] to (((length of [x v]) + (length of [y v])) / (2))\n            end\n            if <(Letter #) < [0]> then\n                set [letter # v] to [0]\n            end\n        end\n    end\n    if <(Letter #) > (((length of [x v]) + (length of [y v])) / (2))> then\n        set [letter # v] to (((length of [x v]) + (length of [y v])) / (2))\n    end\n    if <(Letter #) < [0]> then\n        set [letter # v] to [0]\n    end\nend\n\ndefine Set Up\nset [scroll x v] to [100]\nset [scroll y v] to [-100]\nset [spawn x v] to [100]\nset [spawn y v] to [-100]\nset [x velocity v] to [0]\nset [y velocity v] to [0]\n\nwhen I receive [reset v]\nset rotation style [don't rotate v]\nset [ghost v] effect to (100)\nshow\nforever\n    if <key (r v) pressed?> then\n        Set Up\n        reset timer\n        repeat until <not <key (r v) pressed?>>\n            Set Up\n        end\n        set [spawn x v] to [100]\n        set [spawn y v] to [-100]\n    end\nend\n\n@Ground\n\nwhen flag clicked\nhide\nClone (((length of [object x v]) + (length of [object y v])) / (2)) Clones\n\ndefine Clone (#) Clones\nset [clone # v] to [0]\nrepeat (#)\n    change [clone # v] by (1)\n    create clone of (_myself_ v)\nend\n\nwhen I start as a clone\nshow\nswitch costume to (2 v)\nset size to (148) %\nforever\n    switch costume to (size hack v)\n    go to x: ((SCROLL X) + (item (Clone #) of [object x v])) y: ((SCROLL Y) + (item (Clone #) of [object y v]))\n    switch costume to (Clone #)\nend\n\n@Lava\n\nwhen I start as a clone\nshow\ngo to [back v] layer\nforever\n    switch costume to (size hack v)\n    go to x: ((SCROLL X) + (item (Clone #) of [object x v])) y: ((SCROLL Y) + (item (Clone #) of [object y v]))\n    switch costume to (Clone #)\nend\n\ndefine Clone (#) Clones\nset [clone # v] to [0]\nrepeat (#)\n    change [clone # v] by (1)\n    create clone of (_myself_ v)\nend\n\nwhen flag clicked\nhide\nClone (((length of [object x v]) + (length of [object y v])) / (2)) Clones\n\n@Text\n\nwhen flag clicked\nhide\nClone (((length of [object x v]) + (length of [object y v])) / (2)) Clones\n\nwhen I start as a clone\nshow\nforever\n    switch costume to (size hack v)\n    go to x: ((SCROLL X) + (item (Clone #) of [object x v])) y: ((SCROLL Y) + (item (Clone #) of [object y v]))\n    switch costume to (Clone #)\nend\n\ndefine Clone (#) Clones\nset [clone # v] to [0]\nrepeat (#)\n    change [clone # v] by (1)\n    create clone of (_myself_ v)\nend\n\n@Jump Pad\n\nwhen flag clicked\nhide\nClone (((length of [object x v]) + (length of [object y v])) / (2)) Clones\n\nwhen I start as a clone\nshow\ngo to [back v] layer\nforever\n    switch costume to (size hack v)\n    go to x: ((SCROLL X) + (item (Clone #) of [object x v])) y: ((SCROLL Y) + (item (Clone #) of [object y v]))\n    switch costume to (Clone #)\nend\n\ndefine Clone (#) Clones\nset [clone # v] to [0]\nrepeat (#)\n    change [clone # v] by (1)\n    create clone of (_myself_ v)\nend\n\n@Check Point\n\nforever\n    switch costume to (size hack v)\n    go to x: ((SCROLL X) + (item (Clone #) of [object x v])) y: ((SCROLL Y) + (item (Clone #) of [object y v]))\n    switch costume to (Clone #)\nend\n\ndefine Clone (#) Clones\nset [clone # v] to [0]\ndelete all of [check points v]\nrepeat (#)\n    change [clone # v] by (1)\n    add (Clone #) to [check points v]\n    create clone of (_myself_ v)\nend\n\nwhen I start as a clone\nshow\ngo to [back v] layer\nforever\n    switch costume to (size hack v)\n    go to x: ((SCROLL X) + (item (Clone #) of [object x v])) y: ((SCROLL Y) + (item (Clone #) of [object y v]))\n    switch costume to (Clone #)\n    if <(Timer) = [0]> then\n        clear graphic effects\n        set [used v] to [False]\n    end\n    if <(Used) = [False]> then\n        if <touching (hit box v)?> then\n            Explode Particles\n            set [used v] to [True]\n            repeat (3)\n                switch costume to (size hack v)\n                go to x: ((SCROLL X) + (item (Clone #) of [object x v])) y: ((SCROLL Y) + (item (Clone #) of [object y v]))\n                set [spawn x v] to (SCROLL X)\n                set [spawn y v] to (SCROLL Y)\n                switch costume to (Clone #)\n                if <(Turbo Mode) = [True]> then\n                    wait (0.01) seconds\n                end\n            end\n            repeat (5)\n                switch costume to (size hack v)\n                go to x: ((SCROLL X) + (item (Clone #) of [object x v])) y: ((SCROLL Y) + (item (Clone #) of [object y v]))\n                switch costume to (Clone #)\n                change [ghost v] effect by (13)\n                if <(Turbo Mode) = [True]> then\n                    wait (0.01) seconds\n                end\n            end\n        end\n    end\nend\n\ndefine Explode Particles\nrepeat (50)\n    create clone of (particles v)\nend\n\nwhen flag clicked\nClone (((length of [object x v]) + (length of [object y v])) / (2)) Clones\n\n@Particles\n\nwhen I start as a clone\nhide\nif <<(Particles) = [2]> and <(Timer) > [0]>> then\n    show\nend\ngo to [front v] layer\nset [y vel v] to [10]\nset [burst v] to (pick random (10) to (15))\ngo to x: ((20) * (([abs v] of ([x velocity v] of [hit box v]) ) / ([x velocity v] of [hit box v]))) y: (-50)\npoint in direction (pick random (0) to (360))\nrepeat (120)\n    switch costume to (size hack v)\n    move (Burst) steps\n    change y by (Y vel)\n    change x by ((0) - ([x velocity v] of [hit box v]))\n    change y by ((0) - ([y velocity v] of [hit box v]))\n    switch costume to (particles v)\n    set [burst v] to ((Burst) * (0.9))\n    change [y vel v] by (-1)\n    if <(Turbo Mode) = [True]> then\n        wait (0.01) seconds\n    end\nend\ndelete this clone\n\n@Timer\n\ndefine Create Score With (#) Clones\nset [clone # v] to [0]\nrepeat (#)\n    change [clone # v] by (1)\n    create clone of (_myself_ v)\nend\n\nwhen I start as a clone\nshow\nset size to (200) %\nchange x by ((Clone #) * ((size) / (8)))\nforever\n    switch costume to (letter (Clone #) of (Timer))\nend\n\nwhen I receive [hide v]\nstop [other scripts in sprite v]\nset [timer v] to [0]\ndelete this clone\n\nwhen I receive [start v]\nwait (1) seconds\ndelete this clone\n\nwhen I receive [start v]\nwait (1) seconds\nwait (0) seconds\nCreate Score With [15] Clones\n\nwhen I receive [reset v]\nwait (0) seconds\ngo to x: (-240) y: (150)\nset [timer v] to [0]\nCreate Score With [15] Clones\nreset timer\nrepeat until <not <(round (SCROLL X)) = [100]>>\n    reset timer\nend\nrepeat until <<(SCROLL X) < [-3735]> and <(SCROLL Y) < [-1230]>>\n    go to x: (-240) y: (150)\n    set [timer v] to ((round ((timer) * (100))) / (100))\nend\n\nwhen I receive [reset v]\ndelete this clone\n\nwhen I receive [start v]\nset [timer v] to [0.00]\nforever\n    if <key (r v) pressed?> then\n        stop [other scripts in sprite v]\n        broadcast (Reset v)\n        wait until <not <key (r v) pressed?>>\n    end\nend\n\n@Main Menu\n\nwhen flag clicked\nhide\ngo to [front v] layer\nset [delete v] to [False]\nset [fade v] to [False]\nClone [Background]\nClone [Play]\nClone [High Score]\nClone [Walkthrough]\n\ndefine Clone (id)\nset [clone id v] to (id)\ncreate clone of (_myself_ v)\n\nwhen I start as a clone\nshow\nclear graphic effects\npoint in direction (90)\nset size to (100) %\nswitch costume to (Clone ID)\nset [brightness v] effect to (0)\nif <(Clone ID) = [Reset]> then\n    stop [this script v]\nend\nif < (Clone ID) contains [\(]?> then\n    set size to (100) %\n    if <(costume [number v]) > [13]> then\n        set x to ((((costume [number v]) - (14)) * (300)) - (150))\n    end\n    repeat (25)\n        change size by (2)\n        change [ghost v] effect by (4)\n        go to [front v] layer\n    end\n    delete this clone\nend\nif <(Clone ID) = [Background]> then\n    go to x: (0) y: (0)\nend\nif <(Clone ID) = [Play]> then\n    go to x: (0) y: (-40)\nend\nif <(Clone ID) = [High Score]> then\n    go to x: (0) y: (-100)\nend\nif <(Clone ID) = [Walkthrough]> then\n    go to x: (0) y: (-150)\nend\nif <(Clone ID) = [X]> then\n    go to x: (-200) y: (145)\nend\nif <(Clone ID) = [X2]> then\n    go to x: (200) y: (145)\nend\nif <(Clone ID) = [Color]> then\n    go to x: (200) y: (35)\nend\nif <(Fade) = [S]> then\n    set [ghost v] effect to (100)\n    repeat (20)\n        change [ghost v] effect by (-5)\n        change size by ((0) - (((size) - (100)) * (0.2)))\n    end\nend\nif <(Clone ID) = [Loading]> then\n    go to x: (0) y: (0)\n    set [ghost v] effect to (100)\n    set size to (200) %\n    switch costume to (x2 v)\n    repeat (4)\n        next costume\n        if <not <(size) = [200]>> then\n            delete this clone\n        end\n        repeat (3)\n            change [ghost v] effect by (-5)\n            if <(Turbo Mode) = [True]> then\n                wait (0.01) seconds\n            end\n            wait (0) seconds\n            go to [front v] layer\n        end\n    end\n    switch costume to (x2 v)\n    repeat (4)\n        next costume\n        repeat (3)\n            change [ghost v] effect by (5)\n            if <(Turbo Mode) = [True]> then\n                wait (0.01) seconds\n            end\n            wait (0) seconds\n        end\n    end\n    delete this clone\nend\nif <(Clone ID) = [Background]> then\n    wait until <(Fade) = [True]>\n    repeat (20)\n        change [ghost v] effect by (5)\n    end\n    delete this clone\nend\nforever\n    if <<touching (mouse-pointer v)?> or <<<(Clone ID) = [X]> and <<(mouse x) < [-185]> and <(mouse y) > [130]>>> or <<(Clone ID) = [X2]> and <<(mouse x) > [185]> and <(mouse y) > [130]>>>>> then\n        change size by (((120) - (size)) * (0.2))\n        if <mouse down?> then\n            repeat until <not <mouse down?>>\n                change size by (((120) - (size)) * (0.2))\n            end\n            if <<touching (mouse-pointer v)?> or <<<(Clone ID) = [X]> and <<(mouse x) < [-185]> and <(mouse y) > [130]>>> or <<(Clone ID) = [X2]> and <<(mouse x) > [185]> and <(mouse y) > [130]>>>>> then\n                if <(Clone ID) = [Play]> then\n                    broadcast (Start v)\n                end\n                if <(Clone ID) = [High Score]> then\n                    broadcast (High Score v)\n                end\n                if <(Clone ID) = [Walkthrough]> then\n                    broadcast (Walkthrough v)\n                end\n                if < (Clone ID) contains [X]?> then\n                    broadcast (Hide v)\n                end\n            end\n        end\n    else\n        change size by ((0) - (((size) - (100)) * (0.2)))\n    end\n    turn right ((((90) - (direction)) * (0.2)) / (2)) degrees\n    if <<(Fade) = [True]> or <(Fade) = [HTrue]>> then\n        repeat (20)\n            change [ghost v] effect by (5)\n        end\n        delete this clone\n    end\nend\n\nwhen I receive [high score v]\nset [fade v] to [HTrue]\nwait (0) seconds\nset [fade v] to [False]\nClone [X]\n\nwhen I receive [hide v]\nset [fade v] to [True]\nset [stop v] to [True]\nif <(Speed Run) = [True]> then\n    set [fade v] to [False]\n    Clone [Background]\nend\nwait (0) seconds\nset [stop v] to [False]\nset [letter # v] to [0]\nset [fade v] to [S]\nif <(Speed Run) = [False]> then\n    Clone [Background]\nend\nClone [Play]\nClone [High Score]\nClone [Walkthrough]\n\nwhen I receive [walkthrough v]\nset [timer v] to [1]\nset [fade v] to [True]\nset [stop v] to [False]\nset [scroll x v] to [100]\nset [scroll y v] to [49]\nwait (0) seconds\nset [fade v] to [False]\nClone [X]\nClone [Loading]\nwait (1) seconds\nset [letter # v] to [0]\nforever\n    change [letter # v] by (1)\n    set [scroll x v] to (item (Letter #) of [x v])\n    set [scroll y v] to (item (Letter #) of [y v])\n    if <(Turbo Mode) = [True]> then\n        wait (0.01) seconds\n    end\n    if <(Stop) = [True]> then\n        stop [this script v]\n    end\n    if <<<mouse down?> and <<<(mouse x) > [-30]> and <(mouse x) < [30]>> and <<(mouse y) > [-30]> and <(mouse y) < [30]>>>> or <key (space v) pressed?>> then\n        Clone [\(Pause\)]\n        wait until <not <mouse down?>>\n        wait until <not <key (space v) pressed?>>\n        wait until <<<mouse down?> and <<<(mouse x) > [-30]> and <(mouse x) < [30]>> and <<(mouse y) > [-30]> and <(mouse y) < [30]>>>> or <key (space v) pressed?>>\n        Clone [\(Play\)]\n        Wait\n    end\n    if <<<mouse down?> and <<(mouse x) > [30]> and <(mouse y) < [130]>>> or <key (right arrow v) pressed?>> then\n        change [letter # v] by (150)\n        Clone [\(Skip\)]\n        Wait\n    end\n    if <<<mouse down?> and <<(mouse x) < [-30]> and <(mouse y) < [130]>>> or <key (left arrow v) pressed?>> then\n        change [letter # v] by (-150)\n        Clone [\(Back\)]\n        Wait\n    end\n    if <(Letter #) > ((((length of [x v]) + (length of [y v])) / (2)) - (1))> then\n        set [letter # v] to ((((length of [x v]) + (length of [y v])) / (2)) - (1))\n    end\n    if <(Letter #) < [0]> then\n        set [letter # v] to [0]\n    end\nend\n\nwhen I start as a clone\nif <(Clone ID) = [Loading]> then\n    repeat (100)\n        change y by ([sin v] of ((timer) * (100)) )\n        point in direction ((([sin v] of ((timer) * (100)) ) * (10)) + (90))\n        if <(Turbo Mode) = [True]> then\n            wait (0.01) seconds\n        end\n    end\nend\n\nwhen I receive [hide v]\ndelete this clone\n\nwhen I receive [start v]\nset [fade v] to [True]\nwait (0) seconds\nset [stop v] to [True]\nset [fade v] to [False]\nwait (0.66) seconds\nClone [X2]\n\nwhen I receive [walkthrough v]\nset [speed run v] to [False]\n\nwhen I receive [high score v]\nset [speed run v] to [True]\n\nwhen I start as a clone\nif <(Clone ID) = [X]> then\n    forever\n        set y to ((SCROLL) + (145))\n    end\nend\n\ndefine Wait\nrepeat until <not <mouse down?>>\n    change [letter # v] by (1)\n    set [scroll x v] to (item (Letter #) of [x v])\n    set [scroll y v] to (item (Letter #) of [y v])\n    if <(Letter #) > ((((length of [x v]) + (length of [y v])) / (2)) - (1))> then\n        set [letter # v] to ((((length of [x v]) + (length of [y v])) / (2)) - (1))\n    end\n    if <(Letter #) < [0]> then\n        set [letter # v] to [0]\n    end\nend\nrepeat until <not <key (any v) pressed?>>\n    change [letter # v] by (1)\n    set [scroll x v] to (item (Letter #) of [x v])\n    set [scroll y v] to (item (Letter #) of [y v])\n    if <(Letter #) > ((((length of [x v]) + (length of [y v])) / (2)) - (1))> then\n        set [letter # v] to ((((length of [x v]) + (length of [y v])) / (2)) - (1))\n    end\n    if <(Letter #) < [0]> then\n        set [letter # v] to [0]\n    end\nend\n\nwhen I receive [start v]\nset [moving v] to [False]\nset [check v] to [0]\nset [lag v] to [0]\nwait until <<key (any v) pressed?> or <mouse down?>>\nwait (0.5) seconds\nset [time v] to [0]\nforever\n    set [fps v] to ((1) / ((timer) - (time)))\n    if <(fps) > [40]> then\n        change [check v] by (1)\n    else\n        if <not <(check) = [0]>> then\n            change [check v] by (-1)\n        end\n    end\n    if <(check) > [10]> then\n        reset timer\n        set [scroll x v] to [0]\n        set [scroll y v] to [0]\n        set [spawn x v] to [100]\n        set [spawn y v] to [-100]\n        change [lag v] by (10000)\n        Clone [Reset]\n    end\n    Add Lag (lag)\n    set [time v] to (timer)\nend\n\ndefine Add Lag (amount)\nrepeat (amount)\n\nwhen I start as a clone\nif <(Clone ID) = [Reset]> then\n    if <(Moving) = [True]> then\n        delete this clone\n    end\n    set [moving v] to [True]\n    go to x: (0) y: (-50)\n    repeat (150)\n        change y by (1)\n        change [ghost v] effect by (0.8)\n        go to [front v] layer\n    end\n    set [moving v] to [False]\n    delete this clone\nend\n\nbroadcast (High Score v)\n\nwhen I receive [high score v]\ndelete this clone\n\nwhen I start as a clone\nforever\n    if <(Delete) = [True]> then\n        if <<(costume [number v]) < [5]> and <(costume [number v]) > [1]>> then\n            delete this clone\n        end\n    end\nend\n\nrepeat (2)\nend\n\nwait (0.1) seconds\n\nwhen I receive [hide v]\nset [delete v] to [False]\n\nwhen I receive [high score v]\nbroadcast (Hide v)\nwait (0) seconds\nset [delete v] to [True]\n\n@Settings\n\nwhen flag clicked\nset [stop v] to [False]\nSettings\nchange [plays v] by (1)\nif <(Plays) = [1]> then\n    set [music v] to (pick random (1) to (3))\nend\nforever\n    if <not <(item (Music) of [music v]) = (Title)>> then\n        set [title v] to (item (Music) of [music v])\n        stop all sounds\n    end\nend\n\nwhen flag clicked\nforever\n    play sound (Music) until done\nend\n\nwhen flag clicked\nforever\n    set volume to (Volume) %\nend\n\nwhen I receive [start v]\nset [stop v] to [True]\nHide\nclear graphic effects\nrepeat (20)\n    change [ghost v] effect by (5)\nend\nhide\ndelete this clone\n\nwhen I receive [hide v]\nset [stop v] to [False]\nshow\nrepeat (20)\n    change [ghost v] effect by (-5)\nend\nSettings\ncreate clone of (_myself_ v)\n\ndefine Settings\nshow\ngo to [front v] layer\nswitch costume to (settings v)\ngo to x: (200) y: (140)\nset [settings v] to [Hide]\nforever\n    go to [front v] layer\n    if <<(mouse x) > [178]> and <(mouse y) > [117]>> then\n        change size by (((120) - (size)) * (0.2))\n        change [brightness v] effect by (((120) - (size)) * (0.2))\n        turn right (((180) - (direction)) * (0.1)) degrees\n        if <mouse down?> then\n            repeat until <not <mouse down?>>\n                change size by (((120) - (size)) * (0.2))\n                change [brightness v] effect by (((120) - (size)) * (0.2))\n                turn right (((180) - (direction)) * (0.1)) degrees\n            end\n            if <<(mouse x) > [178]> and <(mouse y) > [117]>> then\n                if <(Settings) = [Show]> then\n                    set [settings v] to [Hide]\n                    Hide\n                else\n                    set [settings v] to [Show]\n                    create clone of (_myself_ v)\n                    Show\n                end\n                repeat until <not <mouse down?>>\n                    turn right (((180) - (direction)) * (0.1)) degrees\n                end\n            end\n        end\n    else\n        change size by ((0) - (((size) - (100)) * (0.2)))\n        change [brightness v] effect by ((0) - (((size) - (100)) * (0.2)))\n    end\n    turn right (((90) - (direction)) * (0.1)) degrees\n    if <(Stop) = [True]> then\n        stop [this script v]\n    end\nend\n\nwhen I receive [high score v]\nset [stop v] to [True]\nHide\nrepeat (20)\n    change [ghost v] effect by (5)\nend\nhide\n\nwhen I receive [walkthrough v]\nset [stop v] to [True]\nHide\nclear graphic effects\nrepeat (20)\n    change [ghost v] effect by (5)\nend\nhide\n\nwhen I start as a clone\nswitch costume to (color v)\ngo to x: (190) y: (36)\nforever\n    go to x: (190) y: (36)\n    set [color v] effect to (Color)\n    if <touching (mouse-pointer v)?> then\n        change size by (((120) - (size)) * (0.2))\n    else\n        change size by ((0) - (((size) - (100)) * (0.2)))\n    end\n    if <(Settings) = [Hide]> then\n        delete this clone\n    end\nend\n\nwhen flag clicked\nchange [plays v] by (1)\nif <(Plays) = [1]> then\n    set [music v] to (pick random (1) to (4))\nend\nforever\n    if <not <(item (Music) of [music v]) = (Title)>> then\n        set [title v] to (item (Music) of [music v])\n        stop all sounds\n    end\n    if <<(Color) > [0]> and <(Color) < [30]>> then\n        set [color v] to [Blue]\n    end\n    if <<(Color) > [29]> and <(Color) < [46]>> then\n        set [color v] to [Purple]\n    end\n    if <<(Color) > [45]> and <(Color) < [80]>> then\n        set [color v] to [Pink]\n    end\n    if <<(Color) > [79]> and <(Color) < [94]>> then\n        set [color v] to [Red]\n    end\n    if <<(Color) > [93]> and <(Color) < [108]>> then\n        set [color v] to [Orange]\n    end\n    if <<(Color) > [107]> and <(Color) < [121]>> then\n        set [color v] to [Yellow]\n    end\n    if <<(Color) > [120]> and <(Color) < [175]>> then\n        set [color v] to [Green]\n    end\n    if <(Color) > [174]> then\n        set [color v] to [Blue]\n    end\n    if <(Particles) = [1]> then\n        set [particles v] to [Hide]\n    else\n        set [particles v] to [Show]\n    end\n    if <(Online) = [1]> then\n        set [online v] to [Off]\n    else\n        set [online v] to [On]\n    end\nend\n\nwhen I receive [thumbnail v]\nset [plays v] to [0]\nhide variable [music v]\nhide variable [title v]\nhide variable [volume v]\nhide variable [color v]\nhide variable [color v]\nhide variable [particles v]\nhide variable [particles v]\nhide variable [online v]\nhide variable [online v]\n\nwhen I receive [start v]\nset [settings v] to [Hide]\n\nwhen I receive [walkthrough v]\nset [settings v] to [Hide]\n\nwhen I receive [high score v]\nset [settings v] to [Hide]\n\nwhen flag clicked\nhide variable [online v]\nhide variable [online v]\n\ndefine Hide\nhide variable [music v]\nhide variable [title v]\nhide variable [volume v]\nhide variable [color v]\nhide variable [color v]\nhide variable [particles v]\nhide variable [particles v]\nhide variable [online v]\nhide variable [online v]\n\ndefine Show\nshow variable [music v]\nshow variable [title v]\nshow variable [volume v]\nshow variable [color v]\nshow variable [color v]\nshow variable [particles v]\nshow variable [particles v]\nshow variable [online v]\nshow variable [online v]\n\nhide variable [mode v]\n\nshow variable [mode v]\n\n@Speed Runs\n\ndefine Encode (username)\nset [letter # v] to [-1]\nset [username encoded v] to [0]\nrepeat ((length of (username)) + (1))\n    change [letter # v] by (1)\n    set [username encoded v] to (join (Username Encoded) (item # of (letter (Letter #) of (username)) in [letters v]))\nend\n\ndefine Encode Score\ndelete all of [place v]\nset [item # v] to [0]\nset [letter # v] to [0]\nDecode Cloud (☁ Leaderboard 1)\nDecode Cloud (☁ Leaderboard 2)\nDecode\nFind Place #\nif <not <(Place #) = []>> then\n    if <<(Timer) < [37]> or <(username) = []>> then\n        stop [this script v]\n    end\n    if <[usernames v] contains (username)?> then\n        if <(Timer) < (item (item # of (username) in [usernames v]) of [times v])> then\n            delete (item # of (username) in [usernames v]) of [place v]\n        else\n            stop [this script v]\n        end\n    end\n    insert (join (Username Encoded) (join (round ((Timer) * (100))) (length of (round ((Timer) * (100)))))) at (Place #) of [place v] \n    delete (11) of [place v]\n    set [☁ leaderboard 1 v] to (join (join (item (1) of [place v]) (join (join (item (2) of [place v]) (join (join (item (3) of [place v]) (join (item (4) of [place v]) (join (join (item (5) of [place v]) (length of (item (5) of [place v]))) (length of (item (4) of [place v]))))) (length of (item (3) of [place v])))) (length of (item (2) of [place v])))) (length of (item (1) of [place v])))\n    wait (1) seconds\n    set [☁ leaderboard 2 v] to (join (join (item (6) of [place v]) (join (join (item (7) of [place v]) (join (join (item (8) of [place v]) (join (item (9) of [place v]) (join (join (item (10) of [place v]) (length of (item (10) of [place v]))) (length of (item (9) of [place v]))))) (length of (item (8) of [place v])))) (length of (item (7) of [place v])))) (length of (item (6) of [place v])))\n    broadcast (Time Added! v)\nend\n\ndefine Decode\nSet Up\ndelete all of [place v]\nset [item # v] to [0]\nset [letter # v] to [0]\nDecode Cloud (☁ Leaderboard 1)\nDecode Cloud (☁ Leaderboard 2)\nset [item # v] to [0]\nrepeat (length of [speed runs v])\n    change [item # v] by (1)\n    replace item (Item #) of [usernames v] with []\n    replace item (Item #) of [times v] with []\n    Decode Username (Item #) (item (Item #) of [place v])\nend\nset [letter # v] to [0]\nrepeat (length of [speed runs v])\n    change [letter # v] by (1)\n    replace item (Letter #) of [speed runs v] with (join (join [#] (join (Letter #) [:])) (join (join (item (Letter #) of [times v]) [:]) (item (Letter #) of [usernames v])))\n    if <(item (Letter #) of [times v]) = [.]> then\n        replace item (Letter #) of [times v] with [0]\n    end\n    if <(item (Letter #) of [times v]) = [0]> then\n        replace item (Letter #) of [speed runs v] with [-]\n    end\nend\n\nwhen flag clicked\nhide\nset [show v] to [False]\ndelete this clone\n\nwhen I receive [high score v]\nset [scroll v] to [0]\nset [show v] to [True]\nDecode\nCreate Leaderboard\n\ndefine Decode Username (item #) (place #)\nset [letter # v] to [-1]\nrepeat ([floor v] of (((length of (place #)) - (letter (length of (place #)) of (place #))) / (2)) )\n    change [letter # v] by (2)\n    replace item (item #) of [usernames v] with (join (item (item #) of [usernames v]) (item (join (letter (Letter #) of (place #)) (letter ((Letter #) + (1)) of (place #))) of [letters v]))\nend\nDecode Time (item #) (place #)\n\ndefine Decode Time (item #) (place #)\nset [letter # v] to [-1]\nrepeat ((letter (length of (place #)) of (place #)) - (2))\n    change [letter # v] by (1)\n    replace item (item #) of [times v] with (join (item (item #) of [times v]) (letter (((length of (place #)) - (letter (length of (place #)) of (place #))) + (Letter #)) of (place #)))\nend\nreplace item (item #) of [times v] with (join (item (item #) of [times v]) (join [.] (join (letter ((length of (place #)) - (2)) of (place #)) (letter ((length of (place #)) - (1)) of (place #)))))\n\nwhen I receive [start v]\nhide\nwait until <<(SCROLL X) < [-3735]> and <(SCROLL Y) < [-1230]>>\nSet Up\nDecode\nEncode (username)\nEncode Score\nforever\n    Decode\nend\n\nwhen I receive [hide v]\nhide\nset [show v] to [False]\nwait (0) seconds\nstop [other scripts in sprite v]\nbroadcast (Scroll v)\ndelete this clone\n\ndefine Set Up\ndelete all of [place v]\ndelete all of [speed runs v]\ndelete all of [times v]\ndelete all of [usernames v]\nrepeat (10)\n    add [] to [place v]\n    add [-] to [speed runs v]\n    add [] to [times v]\n    add [] to [usernames v]\nend\n\nwhen I receive [thumbnail v]\nset [username encoded v] to []\nSet Up\n\nwhen I receive [time added! v]\nshow\nclear graphic effects\nset size to (100) %\ngo to [front v] layer\nswitch costume to (time added! v)\ngo to x: (0) y: (0)\nrepeat (40)\n    change y by (1)\n    change [ghost v] effect by (3)\nend\nFind Place #\nclear graphic effects\ngo to [front v] layer\nswitch costume to (join (Place #) [P])\ngo to x: (0) y: (0)\nrepeat (40)\n    change y by (1)\n    change [ghost v] effect by (3)\nend\n\ndefine Find Place #\nset [letter # v] to [0]\nrepeat (length of [speed runs v])\n    change [letter # v] by (1)\n    if <<not <(Timer) > (item (Letter #) of [times v])>> or <(item (Letter #) of [times v]) = [0]>> then\n        set [place # v] to (Letter #)\n        stop [this script v]\n    end\nend\nset [place # v] to []\n\ndefine Create Leaderboard\nDecode\nswitch costume to (background v)\ncreate clone of (_myself_ v)\nset [item # v] to [0]\nset y to (120)\nswitch costume to ( v)\nrepeat (length of [speed runs v])\n    set [letter # v] to [0]\n    change [item # v] by (1)\n    repeat (length of (item (Item #) of [speed runs v]))\n        change [letter # v] by (1)\n        create clone of (_myself_ v)\n    end\nend\n\nwhen I start as a clone\nshow\ngo to [front v] layer\nset [color v] effect to (20)\nset [ghost v] effect to (100)\nif <(costume [name v]) = [Background]> then\n    set size to (100) %\n    go [backward v] (1) layers\n    go to x: (0) y: (0)\n    repeat (20)\n        change [ghost v] effect by (-2.5)\n    end\nelse\n    forever\n        switch costume to ( v)\n        set x to ((((Letter #) - (0.5)) - ((length of (item (Item #) of [speed runs v])) / (2))) * ((size) / (8)))\n        set y to (((0) - ((Item #) * (42))) + ((135) + (SCROLL)))\n        switch costume to (letter (Letter #) of (item (Item #) of [speed runs v]))\n        set size to ((120) + (((32) - (length of (item (Item #) of [speed runs v]))) * (((37) - (length of (item (Item #) of [speed runs v]))) / (5)))) %\n        change [ghost v] effect by (-5)\n    end\nend\n\ndefine Decode Cloud (cloud)\ndelete all of [cloud v]\nset [letter # v] to [0]\nrepeat (length of (cloud))\n    change [letter # v] by (1)\n    add (letter (Letter #) of (cloud)) to [cloud v]\nend\nrepeat ((length of [speed runs v]) / (2))\n    set [letter # v] to [0]\n    change [item # v] by (1)\n    add [] to [place v]\n    repeat (join (item ((length of [cloud v]) - (1)) of [cloud v]) (item (length of [cloud v]) of [cloud v]))\n        change [letter # v] by (1)\n        replace item (Item #) of [place v] with (join (item (Item #) of [place v]) (item (Letter #) of [cloud v]))\n    end\n    repeat (join (item ((length of [cloud v]) - (1)) of [cloud v]) (item (length of [cloud v]) of [cloud v]))\n        delete (1) of [cloud v]\n    end\n    repeat (2)\n        delete (length of [cloud v]) of [cloud v]\n    end\nend\n\ndefine Scroll (mouse) (scroll)\nif <mouse down?> then\n    repeat until <not <mouse down?>>\n        set [scroll v] to ((scroll) + ((mouse y) - (mouse)))\n        if <(SCROLL) > [150]> then\n            change [scroll v] by ((150) - (SCROLL))\n        end\n        if <(SCROLL) < [0]> then\n            change [scroll v] by ((0) - (SCROLL))\n        end\n    end\nend\n\nwhen [up arrow v] key pressed\nif <not <key (up arrow v) pressed?>> then\n    if <(Show) = [True]> then\n        change [scroll v] by (-0.1)\n        if <(SCROLL) < [0]> then\n            change [scroll v] by ((0) - (SCROLL))\n        end\n    end\nend\n\nwhen [down arrow v] key pressed\nif <not <key (down arrow v) pressed?>> then\n    if <(Show) = [True]> then\n        change [scroll v] by (0.1)\n        if <(SCROLL) > [150]> then\n            change [scroll v] by ((150) - (SCROLL))\n        end\n    end\nend\n\nwhen I receive [high score v]\nhide\nwait (1) seconds\nshow\nclear graphic effects\nset size to (100) %\ngo to x: (20) y: (143)\nset [ghost v] effect to (100)\nswitch costume to (scroll v)\nrepeat (50)\n    change [ghost v] effect by (-2)\n    go to [front v] layer\n    go to x: (0) y: ((SCROLL) + (143))\nend\nrepeat (30)\n    go to x: (0) y: ((SCROLL) + (143))\n    Detect\nend\nrepeat (50)\n    change [ghost v] effect by (2)\n    go to [front v] layer\n    go to x: (0) y: ((SCROLL) + (143))\n    Detect\nend\nhide\n\nwhen I receive [clear v]\ndelete this clone\n\ndefine Detect\n\ngo to x: (0) y: (-100)\nswitch costume to (detector v)\nif <not <touching color (#ff9900)?>> then\n    broadcast (Clear v)\n    wait (0) seconds\n    broadcast (High Score v)\nend\nswitch costume to (scroll v)\ngo to x: (0) y: (143)\n\nset [scroll y v] to [-2000]\nset [scroll x v] to [-3000]\n\nwhen I receive [high score v]\n\nwhen flag clicked\n\nwhen I receive [scroll v]\nforever\n    Scroll (mouse y) (SCROLL)\nend\n\n@Online\n\ndefine Find Player #\nif <(☁ P1) = [0]> then\n    set [player # v] to [1]\nelse\n    if <(☁ P2) = [0]> then\n        set [player # v] to [2]\n    else\n        if <(☁ P3) = [0]> then\n            set [player # v] to [3]\n        else\n            if <(☁ P4) = [0]> then\n                set [player # v] to [4]\n            else\n                if <(☁ P5) = [0]> then\n                    set [player # v] to [5]\n                else\n                    if <(☁ P6) = [0]> then\n                        set [player # v] to [6]\n                    else\n                        if <(☁ P7) = [0]> then\n                            set [player # v] to [7]\n                        else\n                            if <(☁ P8) = [0]> then\n                                set [player # v] to [8]\n                            else\n                                set [player # v] to [Full]\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\n\ndefine Set Player (#) to (item)\nif <(#) = [1]> then\n    set [☁ p1 v] to (item)\nend\nif <(#) = [2]> then\n    set [☁ p2 v] to (item)\nend\nif <(#) = [3]> then\n    set [☁ p3 v] to (item)\nend\nif <(#) = [4]> then\n    set [☁ p4 v] to (item)\nend\nif <(#) = [5]> then\n    set [☁ p5 v] to (item)\nend\nif <(#) = [6]> then\n    set [☁ p6 v] to (item)\nend\nif <(#) = [7]> then\n    set [☁ p7 v] to (item)\nend\nif <(#) = [8]> then\n    set [☁ p8 v] to (item)\nend\n\nwhen I receive [connected v]\nset [p# v] to [0]\nset [counter v] to [0]\nforever\n    change [counter v] by (1)\n    if <(Counter) = [10]> then\n        set [counter v] to [0]\n    end\n    To Cloud\n    Clone [False]\n    wait (0.1) seconds\nend\n\nwhen I start as a clone\nif <<(Username) = (username)> or <(Clone #) = (Player #)>> then\n    delete this clone\nend\nshow\nswitch costume to (others v)\nset [ghost v] effect to (50)\nforever\n    go to x: ((x) + (SCROLL X)) y: ((y) + (SCROLL Y))\n    point in direction ((x) / (1.11))\n    say (Username)\nend\n\ndefine Decode (player)\nset [x v] to []\nset [number v] to []\nset [letter # v] to [0]\nrepeat (letter ((length of (player)) - (1)) of (player))\n    change [letter # v] by (1)\n    set [x v] to (join (x) (letter (Letter #) of (player)))\nend\nchange [x v] by (-300)\nset [y v] to []\nrepeat (letter (length of (player)) of (player))\n    change [letter # v] by (1)\n    set [y v] to (join (y) (letter (Letter #) of (player)))\nend\nchange [y v] by (-49)\nchange [letter # v] by (1)\nset [number v] to (letter (Letter #) of (player))\nif <(Number) = (previous number)> then\n    Set Player (Clone #) to [0]\nend\nset [previous number v] to (Number)\nset [username v] to []\nchange [letter # v] by (-1)\nrepeat (((join (letter ((length of (player)) - (3)) of (player)) (letter ((length of (player)) - (2)) of (player))) - (4)) / (2))\n    change [letter # v] by (2)\n    set [username v] to (join (Username) (item (join (letter (Letter #) of (player)) (letter ((Letter #) + (1)) of (player))) of [letters v]))\nend\n\nwhen flag clicked\nif <(Player #) = [0]> then\n    Find Player #\nend\ndelete this clone\n\nwhen I receive [start v]\nshow\nset [completed v] to [False]\ngo to x: (0) y: (0)\nswitch costume to (connecting... v)\nset [counter v] to [0]\nrepeat until <(Completed) = [True]>\n    if <(costume [number v]) = [5]> then\n        switch costume to (others v)\n    end\n    next costume\n    repeat (3)\n        change [counter v] by (0.05)\n        point in direction ((([sin v] of ((Counter) * (100)) ) * (5)) + (90))\n        change y by ([sin v] of ((Counter) * (100)) )\n        go to [front v] layer\n        set [ghost v] effect to ((p#) / (2))\n    end\nend\nset [counter v] to [0]\npoint in direction (90)\nclear graphic effects\nFind Player #\nif <(Player #) = [Full]> then\n    show\n    switch costume to (full v)\n    go to [front v] layer\n    go to x: (0) y: (0)\n    repeat (40)\n        change y by (1)\n        change [ghost v] effect by (3)\n    end\n    clear graphic effects\n    hide\n    repeat until <not <(Player #) = [Full]>>\n        Find Player #\n    end\nend\n\nwhen flag clicked\nhide\nEncode (username)\nFind Player #\nSet Player (Player #) to [0]\n\nwhen I receive [delete v]\ndelete this clone\n\ndefine Clone (detect)\nbroadcast (Delete v)\nif <not <(☁ P1) = [0]>> then\n    set [clone # v] to [1]\n    if <(detect) = [True]> then\n        stop [this script v]\n    end\n    Decode (☁ P1)\n    create clone of (_myself_ v)\nend\nif <not <(☁ P2) = [0]>> then\n    set [clone # v] to [2]\n    if <not <(detect) = [True]>> then\n        Decode (☁ P2)\n        create clone of (_myself_ v)\n    end\nend\nif <not <(☁ P3) = [0]>> then\n    set [clone # v] to [3]\n    if <(detect) = [True]> then\n        stop [this script v]\n    end\n    Decode (☁ P3)\n    create clone of (_myself_ v)\nend\nif <not <(☁ P4) = [0]>> then\n    set [clone # v] to [4]\n    if <not <(Clone #) = (Player #)>> then\n        Decode (☁ P4)\n        create clone of (_myself_ v)\n    end\nend\nif <not <(☁ P5) = [0]>> then\n    set [clone # v] to [5]\n    if <(detect) = [True]> then\n        stop [this script v]\n    end\n    Decode (☁ P5)\n    create clone of (_myself_ v)\nend\nif <not <(☁ P6) = [0]>> then\n    set [clone # v] to [6]\n    if <(detect) = [True]> then\n        stop [this script v]\n    end\n    Decode (☁ P6)\n    create clone of (_myself_ v)\nend\nif <not <(☁ P7) = [0]>> then\n    set [clone # v] to [7]\n    if <(detect) = [True]> then\n        stop [this script v]\n    end\n    Decode (☁ P7)\n    create clone of (_myself_ v)\nend\nif <not <(☁ P8) = [0]>> then\n    set [clone # v] to [8]\n    if <(detect) = [True]> then\n        stop [this script v]\n    end\n    Decode (☁ P8)\n    create clone of (_myself_ v)\nend\n\nwhen I receive [thumbnail v]\nset [player # v] to [0]\n\ndefine To Cloud\nSet Player (Player #) to (join (join (join (join ((0) - ((round (SCROLL X)) - (300))) ((0) - ((round (SCROLL Y)) - (49)))) (join (Counter) (join (Username Encoded) ((length of (Username Encoded)) + (4))))) (length of ((0) - ((round (SCROLL X)) - (300))))) (length of ((0) - ((round (SCROLL Y)) - (49)))))\n\ndefine Encode (username)\nset [letter # v] to [-1]\nset [username encoded v] to [0]\nrepeat ((length of (username)) + (1))\n    change [letter # v] by (1)\n    set [username encoded v] to (join (Username Encoded) (item # of (letter (Letter #) of (username)) in [letters v]))\nend\n\nwhen I receive [hide v]\nhide\nstop [other scripts in sprite v]\ndelete this clone\n\nwhen I receive [sent message v]\nDecode Chat\nshow\nset [ghost v] effect to (100)\nswitch costume to (others v)\ngo to x: (0) y: (0)\nsay (Text) for (2) seconds\nhide\nbroadcast (Empty v)\n\ndefine Decode Chat\nset [text v] to []\nset [text # v] to [-1]\nrepeat ((length of (Username Encoded)) / (2))\n    change [text # v] by (2)\n    set [text v] to (join (Text) (item (join (letter (Text #) of (Username Encoded)) (letter ((Text #) + (1)) of (Username Encoded))) of [letters v]))\nend\n\nwhen I receive [start v]\nif <(Online) = [1]> then\n    repeat (10)\n        stop [other scripts in sprite v]\n        broadcast (Delete v)\n        hide\n    end\nend\n\nwhen flag clicked\nrepeat (2)\n    Decode (☁ P1)\n    wait (0.1) seconds\n    Decode (☁ P2)\n    wait (0.1) seconds\n    Decode (☁ P3)\n    wait (0.1) seconds\n    Decode (☁ P4)\n    wait (0.1) seconds\n    Decode (☁ P5)\n    wait (0.1) seconds\n    Decode (☁ P6)\n    wait (0.1) seconds\n    Decode (☁ P7)\n    wait (0.1) seconds\n    Decode (☁ P8)\n    wait (0.1) seconds\n    broadcast (Delete v)\nend\n\ndefine Match\nset [value v] to (letter (((letter (length of (p)) of (p)) + (letter ((length of (p)) - (1)) of (p))) + (1)) of (p))\nrepeat until <not <(letter (((letter (length of (p)) of (p)) + (letter ((length of (p)) - (1)) of (p))) + (1)) of (p)) = (Value)>>\n    change [p# v] by (10)\n    Convert ((p#) mod (10))\n    if <(p#) > [200]> then\n        stop [this script v]\n    end\nend\n\ndefine Convert (#)\nif <(#) = [1]> then\n    set [p v] to (☁ P1)\nend\nif <(#) = [2]> then\n    set [p v] to (☁ P2)\nend\nif <(#) = [3]> then\n    set [p v] to (☁ P3)\nend\nif <(#) = [4]> then\n    set [p v] to (☁ P4)\nend\nif <(#) = [5]> then\n    set [p v] to (☁ P5)\nend\nif <(#) = [6]> then\n    set [p v] to (☁ P6)\nend\nif <(#) = [7]> then\n    set [p v] to (☁ P7)\nend\nif <(#) = [8]> then\n    set [p v] to (☁ P8)\nend\n\nwhen I receive [start v]\nwait (0.2) seconds\nClone [True]\nset [p# v] to (Clone #)\nConvert (Clone #)\nMatch\nshow\nswitch costume to (connected v)\ngo to x: (0) y: (0)\nbroadcast (Connected v)\nset [completed v] to [True]\nrepeat (40)\n    change y by (1)\n    change [ghost v] effect by (3)\n    go to [front v] layer\n    if <(Moving) = [True]> then\n        hide\n    end\nend\nclear graphic effects\nhide\n\n@Chat\n\ndefine Clone\nbroadcast (Empty v)\nswitch costume to (separation v)\ncreate clone of (_myself_ v)\nswitch costume to (hi v)\ngo to x: (-200) y: (-120)\ncreate clone of (_myself_ v)\nchange x by (70)\nnext costume\ncreate clone of (_myself_ v)\nchange x by (85)\nnext costume\ncreate clone of (_myself_ v)\nchange x by (85)\nnext costume\ncreate clone of (_myself_ v)\nchange x by (80)\nnext costume\ncreate clone of (_myself_ v)\nchange x by (80)\nnext costume\ncreate clone of (_myself_ v)\nchange y by (-35)\nchange x by (-350)\nnext costume\ncreate clone of (_myself_ v)\nchange x by (125)\nnext costume\ncreate clone of (_myself_ v)\nchange x by (145)\nnext costume\ncreate clone of (_myself_ v)\n\nwhen I receive [empty v]\ndelete this clone\n\nwhen I start as a clone\nshow\nset [clone # v] to (costume [number v])\nif <(costume [name v]) = [Separation]> then\n    stop [this script v]\nend\nset size to (17) %\nforever\n    switch costume to (join [Hitbox] (Clone #))\n    if <touching (mouse-pointer v)?> then\n        change size by (((170) - (size)) * (0.2))\n        switch costume to (Clone #)\n        if <mouse down?> then\n            repeat until <not <mouse down?>>\n                change size by (((130) - (size)) * (0.2))\n            end\n            switch costume to (join [Hitbox] (Clone #))\n            if <touching (mouse-pointer v)?> then\n                switch costume to (Clone #)\n                Encode (costume [name v])\n                broadcast (Sent Message v)\n            end\n        end\n    else\n        change size by (((150) - (size)) * (0.2))\n    end\n    change [ghost v] effect by (-5)\n    if <(Close) = [True]> then\n        switch costume to (Clone #)\n        repeat (15)\n            change size by (((17) - (size)) * (0.2))\n            change [ghost v] effect by (5)\n        end\n        set [close v] to [False]\n        delete this clone\n    end\n    switch costume to (Clone #)\nend\n\ndefine Encode (phrase)\nset [letter # v] to [-1]\nset [username encoded v] to [0]\nrepeat ((length of (phrase)) + (1))\n    change [letter # v] by (1)\n    set [username encoded v] to (join (Username Encoded) (item # of (letter (Letter #) of (phrase)) in [letters v]))\nend\n\nwhen I receive [hide v]\nstop [other scripts in sprite v]\nhide\n\nwhen I receive [sent message v]\nwait (2) seconds\nEncode (username)\n\nwhen I receive [start v]\nshow\nswitch costume to (separation v)\ncreate clone of (_myself_ v)\nforever\n    go to x: (130) y: (145)\n    switch costume to (hitbox v)\n    if <touching (mouse-pointer v)?> then\n        change size by (((170) - (size)) * (0.2))\n        if <mouse down?> then\n            switch costume to (chat v)\n            repeat until <not <mouse down?>>\n                change size by (((130) - (size)) * (0.2))\n            end\n            switch costume to (hitbox v)\n            if <touching (mouse-pointer v)?> then\n                Clone\n            end\n        end\n    else\n        change size by (((150) - (size)) * (0.2))\n    end\n    switch costume to (chat v)\n    go to [front v] layer\nend\n\nwhen I receive [sent message v]\nset [close v] to [True]\n\nwhen flag clicked\nhide\n\nwhen I receive [start v]\nif <(Online) = [1]> then\n    repeat (10)\n        stop [other scripts in sprite v]\n        broadcast (Empty v)\n        hide\n    end\nend\n\n@Thumbnail\n\nwhen flag clicked\nhide\n\nwhen I receive [thumbnail v]\nshow\ngo to [front v] layer\n\n