Online Outline ☁  // a cloud multiplayer scrolling platformer racing game #games #all

Instructions: Online Outline ☁\n=======================================\n[TOP-LOVED!!! TYSM!!! (7/2/2021)]\n=======================================\nSub to my YT channel for fun tutorials and content!\nhttps://www.youtube.com/channel/UCS-MpseSsGhtijbHt0aevzw?sub_confirmation=1\n=======================================\n⚠ checkpoints were intentionally not included >:3 ⚠\n⚠ only 9 slots available ⚠\n⚠ new scratchers can't use multiplayer ⚠\n⚠ like and fav for a SURPRISE!!! ⚠\n⚠ generic? maybe, but easy to make? no way.. ⚠\n=======================================\n-story-\nthis is happening in your dream, you don't realize it's your dream, so just play along ;-; lol, there's no color fill in ANYTHING in this world, everything is an outline. and many others have the same dream as you!? find the portal to get back into reality! and for fun, there's a highscore to see the person fastest to return!\nhave fun!\n=========================================\n-instructions-\n>> W,A,S,D or arrow keys to move.\n>> reach the portal to win!\n>> your on timer, so run your FASTEST!!\n>> press "T" to show/hide chat items.\n>> if you want to chat, press the number of the slot in the chat list you want to say!\n>> press "N" to show/hide the names of the people online\n>> comment your time!! and tips you'de like to share!\n>> (veryy IMPORTANT)  ❤ & ⭐!! XD\n>> ENJOY!!!\n========================================\n-work stats-\n2.5k+ blocks!\n80+ assets!\n180+ scripts!\n34+ hours of HARD work!\nas you might have already figured! i spent QUITE A LOT of time in this and i REALLY hope you could ❤, ⭐ and follow cuz it makes my day!! =D\nalso, comment your feedback and remix to add your own levels!! HOPE YOU ENJOY!!!\nalso if you find bugs and/or glitches, plz report them to me as soon as possible!\n========================================\n-credits-\n- @TimMCcool for the ❤ & ⭐ detector!\n- @JTHEJET for the ad notes (edited by me)\n- thanks to scratch for some SFXs\n- thanks to Vexento @ youtube.com for the music!\n- thanks to @griffpatch for some help!\n- thanks to @mGR8T (me) for everything else! =D

@Stage\n\nwhen I receive [mg intro done =d v]\nset volume to (50) %\nforever\n    play sound [Nebula v] until done\nend\n\nwhen flag clicked\nbroadcast (mg intro done =D v)\ndelete all of [sub to my yt channel "joshcre8s" for fun content! v]\nadd [https://www.youtube.com/channel/UCS-MpseSsGhtijbHt0aevzw] to [sub to my yt channel "joshcre8s" for fun content! v]\nhide list [sub to my yt channel "joshcre8s" for fun content! v]\nwait (4.3) seconds\nshow list [sub to my yt channel "joshcre8s" for fun content! v]\n\nwhen I receive [win v]\nstop [all v]\n\nwhen [z v] key pressed\nif <(username) = [mGR8T]> then\n    repeat until <not <key (z v) pressed?>>\n        set [mouse pos v] to (join ((mouse x) + (scroll x)) (join [ . ] ((mouse y) + (scroll y))))\n    end\nend\n\n@blank\n\n@player\n\ndefine write (val) to encoded\nset [letter # v] to [1]\nrepeat (length of (val))\n    set [data v] to (item # of (letter (letter #) of (val)) in [code v])\n    uppercase detect (letter (letter #) of (val))\n    set [encoded v] to (join (encoded) (DATA))\n    change [letter # v] by (1)\nend\nset [encoded v] to (join (encoded) [00])\n\nwhen I receive [begin v]\nforever\n    send cloud data\nend\n\ndefine set cloud # (player) to (value)\nif <(player) = [1]> then\n    set [☁ p1 v] to (value)\nelse\n    if <(player) = [2]> then\n        set [☁ p2 v] to (value)\n    else\n        if <(player) = [3]> then\n            set [☁ p3 v] to (value)\n        else\n            if <(player) = [4]> then\n                set [☁ p4 v] to (value)\n            else\n                if <(player) = [5]> then\n                    set [☁ p5 v] to (value)\n                else\n                    if <(player) = [6]> then\n                        set [☁ p6 v] to (value)\n                    else\n                        if <(player) = [7]> then\n                            set [☁ p7 v] to (value)\n                        else\n                            if <(player) = [8]> then\n                                set [☁ p8 v] to (value)\n                            else\n                                if <(player) = [9]> then\n                                    set [☁ p9 v] to (value)\n                                end\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\n\ndefine send cloud data\nif <[1] > (MY PLAYER #)> then\n    stop [this script v]\nend\nadd (x) to [buffer v]\nadd (y) to [buffer v]\nchange [cloud timer v] by (1)\nif <[3] > (cloud timer)> then\n    stop [this script v]\nend\nset [cloud timer v] to [0]\nset [encoded v] to []\nwrite (username) to encoded\nwrite (Chat Words) to encoded\nwrite (round ((timer) * (10))) to encoded\nrepeat (length of [buffer v])\n    write (item (1) of [buffer v]) to encoded\n    delete (1) of [buffer v]\nend\nset cloud # (MY PLAYER #) to (encoded)\n\ndefine game on\nset rotation style [left-right v]\nset size to (180) %\nclear graphic effects\npoint in direction (90)\nshow\nset [in air v] to [0]\nset [sy v] to [0]\nset [sx v] to [0]\nset [scroll x v] to [0]\nset [scroll y v] to [0]\nset [x v] to [0]\nset [y v] to [0]\nset [exit v] to []\nreset timer\n\nwhen I receive [green flag v]\nset volume to (100) %\nhide\ngo to [front v] layer\n\ndefine tick\nif <<<key (right arrow v) pressed?> or <<(x position) < (mouse x)> and <mouse down?>>> or <key (d v) pressed?>> then\n    change [sx v] by (2)\nend\nif <<<key (left arrow v) pressed?> or <<(mouse x) < (x position)> and <mouse down?>>> or <key (a v) pressed?>> then\n    change [sx v] by (-2)\nend\nif <<<key (up arrow v) pressed?> or <<(mouse y) > (y position)> and <mouse down?>>> or <key (w v) pressed?>> then\n    if <(in air) < [4]> then\n        set [sy v] to [16]\n    end\nend\nset [sx v] to ((SX) * (0.8))\nif <([abs v] of (SX) ) > [0.9]> then\n    change player x by (round (SX))\nend\nif <(sy) > [-15]> then\n    change [sy v] by (-2)\nend\nif <touching (jump v)?> then\n    start sound [Big Boing v]\n    set [sy v] to [32]\nend\nchange player y by (sy)\nposition\ntest - die\nchange [scroll x v] by (round (((x) - (scroll x)) / (10)))\nchange [scroll y v] by (round (((y) - (scroll y)) / (10)))\nif <(scroll y) < [0]> then\n    set [scroll y v] to [0]\nend\nposition\nif <(y) < [-200]> then\n    set [exit v] to [die]\nend\nif <<key (any v) pressed?> or <mouse down?>> then\n    set [timeout? v] to [1100]\nelse\n    if <not <(username) = [mGR8T]>> then\n        change [timeout? v] by (-1)\n    end\nend\nif <(timeout?) < [1]> then\n    broadcast (session timeout v) and wait\nend\n\nwhen I receive [play game v]\nset [level v] to [1]\nforever\n    broadcast (reset v)\n    broadcast (setup v)\n    game on\n    repeat until <(exit) > []>\n        switch costume to (hitbox v)\n        tick\n        broadcast (tick v)\n        switch costume to (player v)\n    end\n    if <(exit) = [win]> then\n        Game - win\n    else\n        game - die\n    end\nend\n\ndefine change player y by (sy)\nchange [y v] by (sy)\nchange [in air v] by (1)\nposition\nif <touching (platforms v)?> then\n    if <(sy) > [0]> then\n        touching platformer out [-1]\n    else\n        touching platformer out [1]\n    end\nend\n\nwhen I receive [begin v]\nbroadcast (green flag v) and wait\nbroadcast (play game v) and wait\n\ndefine position\ngo to x: ((x) - (scroll x)) y: ((y) - (scroll y))\n\ndefine change player x by (sx)\nchange [x v] by (sx)\nposition\nif <touching (platforms v)?> then\n    repeat (12)\n        change [y v] by (1)\n        position\n        if <not <touching (platforms v)?>> then\n            stop [this script v]\n        end\n    end\n    change [y v] by (-12)\n    repeat until <not <touching (platforms v)?>>\n        if <(sx) > [0]> then\n            change [x v] by (-1)\n        else\n            change [x v] by (1)\n        end\n        position\n    end\nend\n\ndefine game - die\nshow\nstart sound [Door Closing v]\nset rotation style [all around v]\nrepeat until <(y position) < [-179]>\n    show\n    switch costume to (player v)\n    change y by (-10)\n    turn left (25) degrees\nend\nset rotation style [left-right v]\nhide\nset [exit v] to []\nwait (0.5) seconds\n\ndefine test - die\nif <<<<touching (enemy v)?> or <touching (saws v)?>> or <touching (enemy2 v)?>> or <touching (spikes v)?>> then\n    broadcast (gg v)\n    set [exit v] to [die]\nend\n\ndefine Game - win\nstop [other scripts in sprite v]\nset [level v] to [2]\nwait (0.1) seconds\nbroadcast (win v)\n\ndefine touching platformer out (out)\nchange [y v] by (out)\nposition\nrepeat until <not <touching (platforms v)?>>\n    change [y v] by (out)\n    position\nend\nset [sy v] to [0]\nif <(out) > [0]> then\n    set [in air v] to [0]\nend\n\nwhen I receive [tick v]\nif <touching (ladders v)?> then\n    set [sy v] to [2]\n    if <<<key (up arrow v) pressed?> or <<<(mouse y) > (y position)> and <mouse down?>> and <not <touching (mouse-pointer v)?>>>> or <key (w v) pressed?>> then\n        change [sy v] by (8)\n    end\n    if <<<key (down arrow v) pressed?> or <<<(y position) > (mouse y)> and <mouse down?>> and <not <touching (mouse-pointer v)?>>>> or <key (s v) pressed?>> then\n        change [sy v] by (-8)\n    end\n    if <<<key (right arrow v) pressed?> or <<(mouse x) > (x position)> and <mouse down?>>> or <key (d v) pressed?>> then\n        change [sx v] by (2)\n    end\n    if <<<key (right arrow v) pressed?> or <<(x position) > (mouse x)> and <mouse down?>>> or <key (a v) pressed?>> then\n        change [sx v] by (-2)\n    end\n    set [sx v] to ((SX) * (0.8))\n    position\nend\n\nwhen flag clicked\nset [chat v] to [0]\nshow list [opponent chat v]\nshow list [chat v]\ndelete all of [chat v]\ndelete all of [opponent chat v]\nadd [Hello!] to [chat v]\nadd [Bye!] to [chat v]\nadd [wait for me!] to [chat v]\nadd [HARD!] to [chat v]\nadd [c'mon!] to [chat v]\nadd [yes] to [chat v]\nadd [no thanks!] to [chat v]\nadd [Ok] to [chat v]\nadd [race to the top?] to [chat v]\nset [i v] to [0]\nrepeat (length of [chat v])\n    change [i v] by (1)\n    add (join [: ] (item (i) of [chat v])) to [opponent chat v]\nend\n\nwhen I receive [begin v]\nforever\n    if <key (1 v) pressed?> then\n        set [chat words v] to [1]\n        say (item (Chat Words) of [chat v])\n        wait (2) seconds\n        say []\n        set [chat words v] to [0]\n    else\n        if <key (2 v) pressed?> then\n            set [chat words v] to [2]\n            say (item (Chat Words) of [chat v])\n            wait (2) seconds\n            say []\n            set [chat words v] to [0]\n        else\n            if <key (3 v) pressed?> then\n                set [chat words v] to [3]\n                say (item (Chat Words) of [chat v])\n                wait (2) seconds\n                say []\n                set [chat words v] to [0]\n            else\n                if <key (4 v) pressed?> then\n                    set [chat words v] to [4]\n                    say (item (Chat Words) of [chat v])\n                    wait (2) seconds\n                    say []\n                    set [chat words v] to [0]\n                else\n                    if <key (5 v) pressed?> then\n                        set [chat words v] to [5]\n                        say (item (Chat Words) of [chat v])\n                        wait (2) seconds\n                        say []\n                        set [chat words v] to [0]\n                    else\n                        if <key (6 v) pressed?> then\n                            set [chat words v] to [6]\n                            say (item (Chat Words) of [chat v])\n                            wait (2) seconds\n                            say []\n                            set [chat words v] to [0]\n                        else\n                            if <key (7 v) pressed?> then\n                                set [chat words v] to [7]\n                                say (item (Chat Words) of [chat v])\n                                wait (2) seconds\n                                say []\n                                set [chat words v] to [0]\n                            else\n                                if <key (8 v) pressed?> then\n                                    set [chat words v] to [8]\n                                    say (item (Chat Words) of [chat v])\n                                    wait (2) seconds\n                                    say []\n                                    set [chat words v] to [0]\n                                else\n                                    if <key (9 v) pressed?> then\n                                        set [chat words v] to [9]\n                                        say (item (Chat Words) of [chat v])\n                                        wait (2) seconds\n                                        say []\n                                        set [chat words v] to [0]\n                                    end\n                                end\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\n\nwhen flag clicked\nset [timeout? v] to [1100]\n\nwhen I receive [mg intro done =d v]\nhide\nset [max players v] to [9]\nset [my player # v] to [0]\ndelete all of [buffer v]\nbroadcast (setup opponents v) and wait\nbroadcast (joinibng v)\nbroadcast (join game v) and wait\nif <(MY PLAYER #) > [0]> then\n    broadcast (joined v)\nelse\n    broadcast (full  v)\nend\nwait (1) seconds\nbroadcast (begin v)\n\nwhen I receive [begin v]\nforever\n    if <key (t v) pressed?> then\n        if <(Chat) = [0]> then\n            set [chat v] to [1]\n        else\n            set [chat v] to [0]\n        end\n        wait until <not <key (t v) pressed?>>\n    end\n    if <(Chat) = [0]> then\n        show list [chat v]\n    else\n        hide list [chat v]\n    end\nend\n\nwhen flag clicked\npoint in direction (90)\n\ndefine uppercase detect (input)\nif <(DATA) < [36]> then\n    switch costume to (blank v)\n    switch costume to (input)\n    if <(costume [name v]) = [blank]> then\n        change [data v] by (26)\n    end\nend\n\nwhen I receive [tick v]\nif <key (right arrow v) pressed?> then\n    point in direction (90)\nend\nif <key (left arrow v) pressed?> then\n    point in direction (-90)\nend\nif <key (d v) pressed?> then\n    point in direction (90)\nend\nif <key (a v) pressed?> then\n    point in direction (-90)\nend\nif <<(x position) < (mouse x)> and <mouse down?>> then\n    point in direction (90)\nend\nif <<(mouse x) < (x position)> and <mouse down?>> then\n    point in direction (-90)\nend\n\n@enemy2\n\ndefine point towards x: (x) y: (y) (xx) (yy)\npoint in direction (((180) * <<(yy) > (y)> or <(yy) = (y)>>) + ([atan v] of (((xx) - (x)) / ((yy) - (y))) ))\n\nwhen I receive [green flag v]\nhide\n\nwhen I receive [tick v]\nset rotation style [don't rotate v]\nposition ((x) - (scroll x)) ((y) - (scroll y))\n\nwhen I receive [setup v]\nhide\nset rotation style [left-right v]\nset [move x v] to [0]\nset [minx v] to [0]\nset [miny v] to [0]\nclone at [1220] [240] [1355] [240] [6] [-1] [8]\nclone at [515] [955] [670] [955] [6] [-1] [8]\nclone at [820] [1253] [1060] [1253] [8] [-1] [8]\nclone at [1650] [-22] [1840] [-22] [12] [-1] [8]\nset [x v] to [-9999]\n\ndefine position (x) (y)\ngo to x: (x) y: (y)\nif <<(x) = (x position)> and <(y) = (y position)>> then\n    show\nelse\n    hide\nend\n\nwhen I receive [reset v]\nhide\ndelete this clone\n\ndefine clone at (min x) (min y) (max x) (max y) (power) (costume lag) (wait time)\nset [x v] to (min x)\nset [y v] to (min y)\nset [minx v] to (min x)\nset [miny v] to (min y)\nset [maxx v] to (max x)\nset [maxy v] to (max y)\nset [power v] to (power)\nset [costume speed v] to (costume lag)\nset [wait time v] to (wait time)\ncreate clone of (_myself_ v)\n\nwhen I start as a clone\nset [costume# v] to [1]\nforever\n    repeat until <<<((x) - (scroll x)) = ((maxx) - (scroll x))> or <((x) - (scroll x)) > ((maxx) - (scroll x))>> and <<((y) - (scroll y)) = ((maxy) - (scroll y))> or <((y) - (scroll y)) > ((maxy) - (scroll y))>>>\n        point towards x: ((maxx) - (scroll x)) y: ((maxy) - (scroll y)) ((x) - (scroll x)) ((y) - (scroll y))\n        change [x v] by (([sin v] of (direction) ) * (power))\n        change [y v] by (([cos v] of (direction) ) * (power))\n    end\n    repeat (wait time)\n        set [costume# v] to [1]\n    end\n    repeat until <<<((x) - (scroll x)) = ((minx) - (scroll x))> or <((x) - (scroll x)) < ((minx) - (scroll x))>> and <<((y) - (scroll y)) = ((miny) - (scroll y))> or <((miny) - (scroll y)) > ((y) - (scroll y))>>>\n        point towards x: ((minx) - (scroll x)) y: ((miny) - (scroll y)) ((x) - (scroll x)) ((y) - (scroll y))\n        change [x v] by (([sin v] of (direction) ) * (power))\n        change [y v] by (([cos v] of (direction) ) * (power))\n    end\n    repeat (wait time)\n        set [costume# v] to [1]\n    end\nend\n\n@opponents\n\ndefine begin decoding of (encoded)\nset [encoded v] to (encoded)\nset [letter # v] to [1]\n\ndefine value = read from ecoded\nset [value v] to []\nforever\n    set [idx v] to (join (letter (letter #) of (encoded)) (letter ((letter #) + (1)) of (encoded)))\n    change [letter # v] by (2)\n    if <(idx) < [1]> then\n        stop [this script v]\n    end\n    set [value v] to (join (value) (item (idx) of [code v]))\nend\n\ndefine setup players\ndelete all of [buffer v]\nhide\nset [offline v] to [100]\nset [player # v] to [1]\nrepeat ((MAX PLAYERS) - (1))\n    create clone of (_myself_ v)\n    change [player # v] by (1)\nend\n\nwhen I receive [begin v]\nforever\n    if <(MY PLAYER #) = (player #)> then\n        set [offline v] to [100]\n        hide\n    else\n        tick\n    end\nend\n\ndefine value = cloud # (player)\nif <(player) = [1]> then\n    set [value v] to (☁ P1)\nelse\n    if <(player) = [2]> then\n        set [value v] to (☁ P2)\n    else\n        if <(player) = [3]> then\n            set [value v] to (☁ P3)\n        else\n            if <(player) = [4]> then\n                set [value v] to (☁ P4)\n            else\n                if <(player) = [5]> then\n                    set [value v] to (☁ P5)\n                else\n                    if <(player) = [6]> then\n                        set [value v] to (☁ P6)\n                    else\n                        if <(player) = [7]> then\n                            set [value v] to (☁ P7)\n                        else\n                            if <(player) = [8]> then\n                                set [value v] to (☁ P8)\n                            else\n                                if <(player) = [9]> then\n                                    set [value v] to (☁ P9)\n                                end\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\n\nwhen I receive [setup opponents v]\nsetup players\n\ndefine tick\ngo to [front v] layer\ngo [backward v] (1) layers\nvalue = cloud # (player #)\nif <(join [A] (value)) = (last value)> then\n    change [offline v] by (1)\n    if <(offline) = [100]> then\n        hide\n    end\nelse\n    set [last value v] to (join [A] (value))\n    if <(offline) > [99]> then\n        show\n    end\n    set [offline v] to [0]\n    begin decoding of (value)\n    value = read from ecoded\n    set [username v] to (value)\n    value = read from ecoded\n    if <(names) = [1]> then\n        say (join (username) (item (value) of [opponent chat v]))\n    else\n        say []\n    end\n    value = read from ecoded\n    value = read from ecoded\n    repeat until <(value) = []>\n        add (value) to [buffer v]\n        value = read from ecoded\n    end\nend\nif <(length of [buffer v]) > [0]> then\n    set x to ((item (1) of [buffer v]) - (scroll x))\n    delete (1) of [buffer v]\n    set y to ((item (1) of [buffer v]) - (scroll y))\n    delete (1) of [buffer v]\nend\ncheck if of edge\n\nwhen I receive [join game v]\nvalue = cloud # (player #)\nset [last value v] to (join [A] (value))\nwait (3) seconds\nvalue = cloud # (player #)\nif <(join [A] (value)) = (last value)> then\n    set [my player # v] to (player #)\nend\n\nwhen flag clicked\nset [names v] to [1]\nforever\n    if <key (n v) pressed?> then\n        if <(names) = [1]> then\n            set [names v] to [0]\n        else\n            set [names v] to [1]\n        end\n    end\n    wait until <not <key (n v) pressed?>>\nend\n\ndefine check if of edge\nif <<<(x position) > [200]> or <(x position) < [-200]>> or <<(y position) > [150]> or <(y position) < [-150]>>> then\n    set size to (50) %\n    set rotation style [all around v]\n    set [color v] effect to (0)\n    set [brightness v] effect to (0)\n    switch costume to (arrow v)\n    point towards (player v)\n    if on edge, bounce\nelse\n    set size to (180) %\n    set rotation style [left-right v]\n    switch costume to (1 v)\n    point in direction (90)\nend\n\n@crown\n\nwhen I receive [green flag v]\nhide\n\nwhen I receive [tick v]\nposition ((x) - (scroll x)) ((y) - (scroll y))\npoint in direction ((timer) * (50))\nif <touching (player v)?> then\n    start sound [Goal Cheer v]\n    set [exit v] to [win]\n    hide\nend\n\nwhen I receive [setup v]\nset [collected2 v] to [0]\nset [x v] to [0]\nset [y v] to [0]\nif <(level) = [1]> then\n    switch costume to (open v)\n    clone at x: [1900] y: [25]\nend\n\ndefine position (x) (y)\ngo to x: (x) y: (y)\nif <<(x) = (x position)> and <(y) = (y position)>> then\n    show\nelse\n    hide\nend\n\nwhen I receive [reset v]\ndelete this clone\n\ndefine clone at x: (x) y: (y)\nset [x v] to (x)\nset [y v] to (y)\n\n@platforms\n\nwhen I receive [green flag v]\nhide\n\nwhen I receive [tick v]\nposition ((x) - (scroll x)) ((y) - (scroll y))\n\nwhen I receive [setup v]\ngo to [back v] layer\ngo [forward v] (5) layers\nset [x v] to [0]\nset [y v] to [0]\nswitch costume to (blank v)\nset size to (220) %\nswitch costume to (1 v)\nclone at x: [0] y: [230]\nclone at x: [500] y: [0]\nclone at x: [500] y: [0]\nclone at x: [400] y: [250]\nclone at x: [0] y: [0]\nclone at x: [-50] y: [0]\nclone at x: [-1250] y: [0]\nclone at x: [230] y: [330]\nclone at x: [0] y: [0]\nclone at x: [0] y: [0]\nclone at x: [330] y: [300]\nset [x v] to [1650]\nset [y v] to [-30]\ncreate clone of (_myself_ v)\nnext costume\nset [x v] to [-99999]\n\ndefine position (x) (y)\ngo to x: (x) y: (y)\nif <<(x) = (x position)> and <(y) = (y position)>> then\n    show\nelse\n    hide\nend\n\nwhen I receive [reset v]\nhide\ndelete this clone\n\ndefine clone at x: (x) y: (y)\nchange [x v] by (x)\nchange [y v] by (y)\ncreate clone of (_myself_ v)\nnext costume\n\n@ladders\n\nwhen I receive [green flag v]\nhide\n\nwhen I receive [tick v]\nposition ((x) - (scroll x)) ((y) - (scroll y))\n\nwhen I receive [setup v]\nset [x v] to [0]\nset [y v] to [0]\nswitch costume to (1 v)\nclone at x: [1100] y: [0]\nclone at x: [0] y: [400]\nclone at x: [-1300] y: [0]\nclone at x: [1350] y: [600]\nclone at x: [500] y: [-150]\nset [x v] to [-99999]\n\ndefine position (x) (y)\ngo to x: (x) y: (y)\nif <<(x) = (x position)> and <(y) = (y position)>> then\n    show\nelse\n    hide\nend\n\nwhen I receive [reset v]\nhide\ndelete this clone\n\ndefine clone at x: (x) y: (y)\nchange [x v] by (x)\nchange [y v] by (y)\ncreate clone of (_myself_ v)\nnext costume\n\n@enemy\n\ndefine point towards x: (x) y: (y) (xx) (yy)\npoint in direction (((180) * <<(yy) > (y)> or <(yy) = (y)>>) + ([atan v] of (((xx) - (x)) / ((yy) - (y))) ))\n\nwhen I receive [green flag v]\nhide\n\nwhen I receive [tick v]\nset rotation style [don't rotate v]\nposition ((x) - (scroll x)) ((y) - (scroll y))\n\nwhen I receive [setup v]\nset rotation style [left-right v]\nset [move x v] to [0]\nset [minx v] to [0]\nset [miny v] to [0]\nswitch costume to (1 v)\nclone at [930] [550] [1185] [550] [6] [0.2]\nclone at [1650] [440] [1750] [440] [6] [0.2]\nclone at [1650] [800] [1750] [800] [6] [0.2]\nset [x v] to [-9999]\n\ndefine position (x) (y)\ngo to x: (x) y: (y)\nif <<(x) = (x position)> and <(y) = (y position)>> then\n    show\nelse\n    hide\nend\n\nwhen I receive [reset v]\nhide\ndelete this clone\n\ndefine clone at (min x) (min y) (max x) (max y) (power) (delay)\nset [x v] to (min x)\nset [y v] to (min y)\nset [minx v] to (min x)\nset [miny v] to (min y)\nset [maxx v] to (max x)\nset [maxy v] to (max y)\nset [power v] to (power)\nset [delay v] to (delay)\ncreate clone of (_myself_ v)\n\nwhen I start as a clone\nforever\n    repeat until <<<((x) - (scroll x)) = ((maxx) - (scroll x))> or <((x) - (scroll x)) > ((maxx) - (scroll x))>> and <<((y) - (scroll y)) = ((maxy) - (scroll y))> or <((y) - (scroll y)) > ((maxy) - (scroll y))>>>\n        point towards x: ((maxx) - (scroll x)) y: ((maxy) - (scroll y)) ((x) - (scroll x)) ((y) - (scroll y))\n        change [x v] by (([sin v] of (direction) ) * (power))\n        change [y v] by (([cos v] of (direction) ) * (power))\n    end\n    wait (delay) seconds\n    repeat until <<<((x) - (scroll x)) = ((minx) - (scroll x))> or <((x) - (scroll x)) < ((minx) - (scroll x))>> and <<((y) - (scroll y)) = ((miny) - (scroll y))> or <((miny) - (scroll y)) > ((y) - (scroll y))>>>\n        point towards x: ((minx) - (scroll x)) y: ((miny) - (scroll y)) ((x) - (scroll x)) ((y) - (scroll y))\n        change [x v] by (([sin v] of (direction) ) * (power))\n        change [y v] by (([cos v] of (direction) ) * (power))\n    end\n    wait (delay) seconds\nend\n\n@Joining\n\nwhen flag clicked\nhide\n\nwhen I receive [joined v]\ngo [forward v] (1322) layers\ngo to [front v] layer\nstart sound [Connect v]\nswitch costume to (connected v)\nshow\nwait (1) seconds\nrepeat (10)\n    change [ghost v] effect by (10)\nend\n\nwhen I receive [full  v]\nswitch costume to (full  v)\nstart sound [Disconnect v]\nshow\nwait (2) seconds\nrepeat (10)\n    change [ghost v] effect by (10)\nend\n\nwhen I receive [mg intro done =d v]\nswitch costume to (joining v)\nshow\n\n@Loading\n\nwhen flag clicked\ngo [forward v] (213) layers\nset size to (100) %\nhide\npoint in direction (90)\nclear graphic effects\ngo to x: (0) y: (-80)\n\nwhen I receive [joinibng v]\nrepeat (10)\n    create clone of (_myself_ v)\n    turn right (40) degrees\nend\n\nwhen I receive [joined v]\nhide\ndelete this clone\n\nwhen I start as a clone\ngo to [front v] layer\nshow\nset [ghost v] effect to (100)\nforever\n    repeat (20)\n        turn right (7.5) degrees\n        change [ghost v] effect by (-6)\n        change size by (1)\n    end\n    repeat (20)\n        turn right (7.5) degrees\n        change [ghost v] effect by (6)\n        change size by (-1)\n    end\nend\n\nwhen flag clicked\nhide\n\nwhen I receive [full  v]\nhide\ndelete this clone\n\n@tn\n\nwhen flag clicked\nhide variable [collected show v]\nhide variable [collected2 v]\nshow\nswitch costume to (co3stume1 v)\nset [ghost v] effect to (100)\nrepeat (20)\n    hide variable [collected show v]\nend\nforever\n    go to [front v] layer\n    if <(level) = [2]> then\n        switch costume to (costume2 v)\n    end\nend\n\nwhen flag clicked\ngo to x: (0) y: (300)\nswitch costume to (costume 1 v)\nset [level v] to [1]\nwait until <(level) = [2]>\nstop [other scripts in sprite v]\nclear graphic effects\nshow list [cloud chat items v]\nhide variable [collected show v]\nset [show v] to (seconds)\nbroadcast (hi v)\nshow variable [output v]\nshow variable [show v]\nstop [all v]\n\nwhen flag clicked\nset [play? v] to [0]\nreset timer\nhide variable [output v]\nhide variable [show v]\nhide variable [seconds v]\nforever\n    set [seconds v] to (timer)\nend\n\nwhen flag clicked\nwait (1) seconds\nrepeat (200)\n    hide variable [collected show v]\nend\n\nwhen I receive [session timeout v]\nswitch costume to (timeout2 v)\ngo to [front v] layer\nstop [all v]\n\nwhen flag clicked\nforever\n    go to [front v] layer\n    set [timer v] to (timer)\nend\n\nwhen [timer v] > (timer)\nshow list [sub to my yt channel "joshcre8s" for fun content! v]\nhide variable [display v]\nif <(turbo?) = [false]> then\n    show list [chat v]\n    repeat until <(y position) < [0]>\n        go to [front v] layer\n        change y by (((0) - (y position)) / (5))\n    end\n    go to x: (0) y: (0)\n    stop [this script v]\nend\n\nwhen I receive [turbo mode v]\nstop [other scripts in sprite v]\nset [timer v] to ((timer) - (0.001))\ngo to x: (0) y: (0)\nswitch costume to (turbomode v)\nstop [all v]\n\n@☁ Highscore\n\nwhen flag clicked\nRESET\n\ndefine encode (input)\nset [letter_num v] to [1]\nrepeat (length of (input))\n    set [__i v] to (item # of (letter (letter_num) of (input)) in [chars v])\n    if <(__i) < [36]> then\n        switch costume to (blank v)\n        switch costume to (letter (letter_num) of (input))\n        if <(costume [number v]) = [1]> then\n            change [__i v] by (26)\n        end\n    end\n    set [_encoded v] to (join (_encoded) (__i))\n    change [letter_num v] by (1)\nend\nset [_encoded v] to (join (_encoded) [00])\n\ndefine decode (cloud)\nset [decoded v] to []\nforever\n    set [#decode v] to (join (letter (letter_num) of (cloud)) (letter ((letter_num) + (1)) of (cloud)))\n    change [letter_num v] by (2)\n    if <(#decode) < [1]> then\n        stop [this script v]\n    end\n    set [decoded v] to (join (decoded) (item (#decode) of [chars v]))\nend\n\nwhen flag clicked\nforever\n    set [output v] to (join (join (join (_highscore) [sec]) [ By: ]) (_decoded username))\nend\n\ndefine RESET\ndelete all of [chars v]\nrepeat (9)\n    add [] to [chars v]\nend\nset [chars v] to [ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890-_.]\nset [char# v] to [1]\nrepeat (length of (chars))\n    add (letter (char#) of (chars)) to [chars v]\n    change [char# v] by (1)\nend\nset [score v] to [0]\nset [_username v] to (username)\nset [letter_num v] to [1]\ndecode (☁ HIscore cloud)\nset [_decoded username v] to (decoded)\ndecode (☁ HIscore cloud)\nset [_highscore v] to (decoded)\nset [output v] to (join (join (_highscore) [ By: ]) (_decoded username))\n\nwhen I receive [hi v]\nquick execution\n\ndefine quick execution\nrepeat (10)\n    set [score v] to (seconds)\n    set [letter_num v] to [1]\n    decode (☁ HIscore cloud)\n    set [_decoded username v] to (decoded)\n    decode (☁ HIscore cloud)\n    set [_highscore v] to (decoded)\n    if <(SCORE) < (_highscore)> then\n        set [_encoded v] to []\n        encode (_username)\n        encode (SCORE)\n        set [☁ hiscore cloud v] to (_encoded)\n    end\n    set [output v] to (join (join (_highscore) [ By: ]) (_decoded username))\nend\n\nwhen [p v] key pressed\nif <(username) = [mGR8T]> then\n    ask [are you 100% sure you want to reset the highscore? \(y/n\)] and wait\n    if <(answer) = [y]> then\n        set [_encoded v] to []\n        encode [mGR8T]\n        encode [100]\n        set [☁ hiscore cloud v] to (_encoded)\n    end\nend\n\n@clouds2\n\nwhen flag clicked\nhide\n\nwhen I start as a clone\nshow\nswitch costume to (costume4 v)\ngo to x: (250) y: (pick random (-50) to (180))\nswitch costume to (pick random (1) to (3))\nset size to (pick random (50) to (100)) %\nset [ghost v] effect to (pick random (50) to (0))\nif <(pick random (1) to (3)) = [2]> then\n    set [ghost v] effect to (pick random (50) to (70))\n    go to [front v] layer\n    set [ggg v] to [-1.1]\nelse\n    go to [back v] layer\n    set [ggg v] to (pick random (-0.5) to (-0.8))\nend\nrepeat until <(x position) < [-230]>\n    change x by (ggg)\nend\nrepeat (10)\n    change [ghost v] effect by (10)\n    change x by (-2)\nend\ndelete this clone\n\nwhen I receive [begin v]\ncreate clone of (_myself_ v)\nforever\n    wait (pick random (10) to (15)) seconds\n    repeat (pick random (1) to (3))\n        create clone of (_myself_ v)\n        wait (6) seconds\n    end\nend\n\n@jump\n\nwhen I receive [setup v]\nset rotation style [left-right v]\nset [x v] to [0]\nset [y v] to [0]\nswitch costume to (1 v)\nclone at x: [225] y: [-15]\nclone at x: [1420] y: [230]\nclone at x: [730] y: [945]\nset [x v] to [-9999]\n\ndefine clone at x: (x) y: (y)\nset [x v] to (x)\nset [y v] to (y)\ncreate clone of (_myself_ v)\n\ndefine position (x) (y)\ngo to x: (x) y: (y)\nif <<(x) = (x position)> and <(y) = (y position)>> then\n    show\nelse\n    hide\nend\n\nwhen I receive [green flag v]\nhide\n\nwhen I receive [reset v]\nhide\ndelete this clone\n\nwhen I receive [tick v]\ngo to [back v] layer\ngo [forward v] (5) layers\nposition ((x) - (scroll x)) ((y) - (scroll y))\nif <touching (player v)?> then\n    switch costume to (1 v)\nelse\n    switch costume to (2 v)\nend\n\n@saws\n\nwhen I receive [setup v]\nset rotation style [all around v]\nset [x v] to [0]\nset [y v] to [0]\nswitch costume to (1 v)\nclone at x: [220] y: [285]\nset [x v] to [-9999]\n\ndefine clone at x: (x) y: (y)\nset [x v] to (x)\nset [y v] to (y)\ncreate clone of (_myself_ v)\n\ndefine position (x) (y)\ngo to x: (x) y: (y)\nif <<(x) = (x position)> and <(y) = (y position)>> then\n    show\nelse\n    hide\nend\n\nwhen I receive [green flag v]\nhide\n\nwhen I receive [reset v]\nhide\ndelete this clone\n\nwhen I receive [tick v]\ngo to [back v] layer\ngo [forward v] (5) layers\npoint in direction ((timer) * (220))\nposition ((x) - (scroll x)) ((y) - (scroll y))\n\n@spikes\n\nwhen I receive [setup v]\nset rotation style [don't rotate v]\nset [x v] to [0]\nset [y v] to [0]\nswitch costume to (1 v)\nclone at x: [700] y: [638]\nclone at x: [620] y: [638]\nclone at x: [540] y: [638]\nclone at x: [-80] y: [873]\nclone at x: [0] y: [873]\nset [x v] to [-9999]\n\ndefine clone at x: (x) y: (y)\nset [x v] to (x)\nset [y v] to (y)\ncreate clone of (_myself_ v)\n\ndefine position (x) (y)\ngo to x: (x) y: (y)\nif <<(x) = (x position)> and <(y) = (y position)>> then\n    show\nelse\n    hide\nend\n\nwhen I receive [green flag v]\nhide\n\nwhen I receive [reset v]\nhide\ndelete this clone\n\nwhen I receive [tick v]\ngo to [back v] layer\ngo [forward v] (5) layers\nposition ((x) - (scroll x)) ((y) - (scroll y))\n\n@detector\n\nwhen flag clicked\nhide\nset [clone id2 v] to [0]\ncreate clone of (_myself_ v)\nwait (0.2) seconds\nset [clone id2 v] to [1]\ncreate clone of (_myself_ v)\nwait until <<(LOVED__) = [1]> and <(FAVED___) = [1]>>\nwait (1) seconds\nshow\ngo to x: (0) y: (50)\nswitch costume to (1 v)\nset [ghost v] effect to (100)\nrepeat (80)\n    change y by ((y position) / (-15))\n    change [ghost v] effect by (-3)\nend\nwait until <mouse down?>\nrepeat (50)\n    change y by (((y position) - (-100)) / (-15))\n    change [ghost v] effect by (10)\nend\n\nset [faved___ v] to [0]\nset [loved__ v] to [0]\n\nwhen I start as a clone\nif <(clone id2) = [0]> then\n    go to x: (-15) y: (0)\n    set [loved__ v] to [0]\n    switch costume to (love v)\n    forever\n        set [love? v] to <touching (mouse-pointer v)?>\n        if <touching (mouse-pointer v)?> then\n            set [loved__ v] to [1]\n        end\n    end\nend\nif <(clone id2) = [1]> then\n    go to x: (0) y: (0)\n    switch costume to (fave v)\n    set [faved___ v] to [0]\n    forever\n        set [fav v] to <touching (mouse-pointer v)?>\n        if <touching (mouse-pointer v)?> then\n            set [faved___ v] to [1]\n        end\n    end\nend\n\n@ads\n\nwhen I receive [begin v]\nhide\n\nwhen I receive [begin v]\nforever\n    wait (pick random (10) to (15)) seconds\n    set size to (80) %\n    switch costume to (pick random (1) to (13))\n    go to x: (-160) y: (180)\n    show\n    go to [front v] layer\n    go [backward v] (1) layers\n    transitions\nend\n\nwhen flag clicked\nhide\n\ndefine transitions\nif <(costume [name v]) = [10]> then\n    repeat (9)\n        change y by (-6)\n    end\n    repeat (5)\n        change y by (1)\n    end\n    start sound [pop v]\n    repeat (5)\n        change y by (-1)\n    end\n    wait (pick random (3) to (5)) seconds\n    repeat (9)\n        change y by (6)\n    end\n    hide\n    stop [this script v]\nend\nif <(costume [name v]) = [7]> then\n    repeat (4)\n        change y by (-6)\n    end\n    repeat (5)\n        change y by (1)\n    end\n    start sound [pop v]\n    repeat (5)\n        change y by (-1)\n    end\n    wait (pick random (3) to (5)) seconds\n    repeat (4)\n        change y by (6)\n    end\n    hide\n    stop [this script v]\nend\nrepeat (6)\n    change y by (-6)\nend\nrepeat (5)\n    change y by (1)\nend\nstart sound [pop v]\nrepeat (5)\n    change y by (-1)\nend\nwait (pick random (3) to (5)) seconds\nrepeat (6)\n    change y by (6)\nend\nhide\n\n