Volcano|Multiplayer Scrolling Platformer
@Stage\n\nwhen flag clicked\nforever\n    play sound [Nebula v] until done\n    play sound [Unlimited v] until done\nend\n\n@Player\n\nwhen I receive [personal chat v]\nadd (answer) to [chat for you v]\nsay (item (length of [chat for you v]) of [chat for you v])\nwait (3) seconds\nsay []\nset [chat words v] to [0]\nset [personal chat v] to [0]\n\nwhen I receive [begin v]\nset [chat v] to [0]\nshow list [chat for you v]\nforever\n    Chat\nend\n\ndefine Chat\nif <(Chat) = [1]> then\n    if <key (1 v) pressed?> then\n        set [chat words v] to [1]\n        say (item (1) of [chat for you v])\n        broadcast (Chat Close 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 (2) of [chat for you v])\n            broadcast (Chat Close 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 (3) of [chat for you v])\n                broadcast (Chat Close 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 (4) of [chat for you v])\n                    broadcast (Chat Close 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 (5) of [chat for you v])\n                        broadcast (Chat Close 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 (6) of [chat for you v])\n                            broadcast (Chat Close v)\n                            wait (3) 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 (7) of [chat for you v])\n                                broadcast (Chat Close 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 (8) of [chat for you v])\n                                    broadcast (Chat Close 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 (9) of [chat for you v])\n                                        broadcast (Chat Close v)\n                                        wait (2) seconds\n                                        say []\n                                        set [chat words v] to [0]\n                                    else\n                                        if <key (0 v) pressed?> then\n                                            set [chat words v] to [10]\n                                            say (item (10) of [chat v])\n                                            broadcast (Chat Close v)\n                                            wait (2) seconds\n                                            say []\n                                            set [chat words v] to [0]\n                                        else\n                                            if <key (p v) pressed?> then\n                                                set [chat words v] to [11]\n                                                say (item (11) of [chat v])\n                                                broadcast (Chat Close v)\n                                                wait (2) seconds\n                                                say []\n                                                set [chat words v] to [0]\n                                            else\n                                                if <<key (r v) pressed?> and <(username) = [akiosan]>> then\n                                                    set [chat words v] to [12]\n                                                    say (item (12) of [chat v])\n                                                    broadcast (Chat Close v)\n                                                    wait (3) seconds\n                                                    say []\n                                                    set [chat words v] to [0]\n                                                else\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\n            end\n        end\n    end\nend\n\nwhen I receive [play game v]\nset [connected? v] to [0]\n\ndefine Position\ngo to x: ((x) - (SCROLL X)) y: ((y) - (SCROLL Y))\n\nwhen I receive [green flag v]\nhide\ngo to [front v] layer\n\ndefine Change Player x by (sx)\npoint in direction (90)\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    if <<<(y position) < (mouse y)> and <mouse down?>> or <<key (up arrow v) pressed?> or <key (w v) pressed?>>> then\n        if <(sx) > [0]> then\n            set [sx v] to [-16]\n        else\n            set [sx v] to [16]\n        end\n        set [in air v] to [0]\n    else\n        set [sx v] to [0]\n    end\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\nwhen flag clicked\npoint in direction (90)\nbroadcast (Green Flag v) and wait\nbroadcast (Play Game v) and wait\n\ndefine Change Player y by (sy)\nchange [y v] by (sy)\nchange [in air v] by (1)\nPosition\nrepeat until <not <touching (platforms v)?>>\n    if <(sy) > [0]> then\n        change [y v] by (-1)\n    else\n        change [y v] by (1)\n        set [in air v] to [0]\n    end\n    Position\n    set [sy v] to [0]\nend\n\ndefine Game On\nset [y v] to [0]\nset [x v] to [0]\nset [sx v] to [0]\nset [sy v] to [0]\nset [in air v] to [0]\nset [exit v] to []\nset [ghost v] effect to (0)\nset size to (100) %\n\ndefine Test - Die\nif <touching (danger v)?> then\n    set [exit v] to [die]\nend\nif <touching (saws v)?> then\n    set [exit v] to [die]\nend\n\ndefine Game - Die\nset [exit v] to []\n\ndefine Game - Win\nrepeat (50)\n    point towards (exit v)\n    turn right (65) degrees\n    move ((distance to [exit v]) / (2)) steps\n    change size by (-1)\n    change [ghost v] effect by (2)\nend\nhide\nchange [level v] by (1)\nwait (1) seconds\n\ndefine Tick Scrolling Engine\nif <not <key (any v) pressed?>> then\n    switch costume to (normal v)\nend\nif <<<(mouse x) < (x position)> and <mouse down?>> or <<key (left arrow v) pressed?> or <key (a v) pressed?>>> then\n    switch costume to (left v)\n    change [sx v] by (-2)\nend\nif <<<(x position) < (mouse x)> and <mouse down?>> or <<key (right arrow v) pressed?> or <key (d v) pressed?>>> then\n    switch costume to (right v)\n    change [sx v] by (2)\nend\nif <<<<(y position) < (mouse y)> and <mouse down?>> or <<key (up arrow v) pressed?> or <key (w v) pressed?>>> and <<<(mouse x) < (x position)> and <mouse down?>> or <<key (left arrow v) pressed?> or <key (a v) pressed?>>>> then\n    switch costume to (left up v)\nend\nif <<<<(y position) < (mouse y)> and <mouse down?>> or <<key (up arrow v) pressed?> or <key (w v) pressed?>>> and <<<(x position) < (mouse x)> and <mouse down?>> or <<key (right arrow v) pressed?> or <key (d v) pressed?>>>> then\n    switch costume to (right up v)\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 <<<(y position) < (mouse y)> and <mouse down?>> or <<key (up arrow v) pressed?> or <key (w v) pressed?>>> then\n    if <(in air) < [4]> then\n        set [sy v] to [16]\n    end\nend\nif <(sy) > [-20]> then\n    change [sy v] by (-2)\nend\nChange Player y by (sy)\nTest - Die\nset [scroll x v] to (x)\nif <(SCROLL X) < [0]> then\n    set [scroll x v] to [0]\nend\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) < [-180]> then\n    set [exit v] to [die]\nend\nif <(x) < [-220]> then\n    set [x v] to [-220]\nend\n\nwhen flag clicked\nhide\nset [max players v] to [8]\nset [my player # v] to [0]\nbroadcast (Connecting v)\nbroadcast (Setup Others v) and wait\nbroadcast (Join Game v) and wait\nif <(MY PLAYER #) > [0]> then\n    broadcast (Connected v)\n    start sound [Connect v]\nelse\n    broadcast (Full v)\n    start sound [Disconnect v]\nend\nbroadcast (Begin v)\n\ndefine Set Cloud Var (#) to (value)\nif <(#) = [1]> then\n    set [☁ p1 v] to (value)\nelse\n    if <(#) = [2]> then\n        set [☁ p2 v] to (value)\n    else\n        if <(#) = [3]> then\n            set [☁ p3 v] to (value)\n        else\n            if <(#) = [4]> then\n                set [☁ p4 v] to (value)\n            else\n                if <(#) = [5]> then\n                    set [☁ p5 v] to (value)\n                else\n                    if <(#) = [6]> then\n                        set [☁ p6 v] to (value)\n                    else\n                        if <(#) = [7]> then\n                            set [☁ p7 v] to (value)\n                        else\n                            if <(#) = [8]> then\n                                set [☁ p8 v] to (value)\n                            else\n                                if <(#) = [9]> then\n                                    set [☁ p9 v] to (value)\n                                else\n                                    if <(#) = [10]> then\n                                        set [☁ p10 v] to (value)\n                                    end\n                                end\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\n\ndefine Encode (text or number)\nset [letter # v] to [1]\nrepeat (length of (text or number))\n    set [encoded v] to (join (encoded) (item # of (letter (letter #) of (text or number)) in [code v]))\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 Send Cloud Data\nif <(MY PLAYER #) > [0]> then\n    set [encoded v] to []\n    Encode (username)\n    Encode (round ((timer) * (10)))\n    Encode (x)\n    Encode (y)\n    Encode (Chat Words)\n    Set Cloud Var (MY PLAYER #) to (encoded)\nend\n\nwhen flag clicked\ngo to [front v] layer\n\nwhen I receive [connected v]\nset [connected? v] to [1]\nshow\n\nwhen I receive [connecting v]\nhide\n\nwhen I receive [play game v]\nforever\n    if <(Connected?) = [1]> then\n        broadcast (Reset v) and wait\n        broadcast (Setup v) and wait\n        Game On\n        repeat until <(EXIT) > []>\n            Tick Scrolling Engine\n            broadcast (Tick v)\n        end\n        if <(EXIT) = [win]> then\n            Game - Win\n        else\n            Game - Die\n        end\n    end\nend\n\nwhen I receive [connected v]\nset [level v] to [1]\n\nwhen flag clicked\nforever\n    if <touching color (#5aff41)?> then\n        set [my player # v] to [0]\n        stop [other scripts in sprite v]\n        broadcast (You Win! v)\n        hide\n    end\nend\n\nwhen flag clicked\ndelete all of [chat v]\ndelete all of [chat for you v]\nadd [Hi!] to [chat v]\nadd [Follow me!] to [chat v]\nadd [I have to go, bye!] to [chat v]\nadd [Let's Race!] to [chat v]\nadd [Help me!] to [chat v]\nadd [Yes!] to [chat v]\nadd [Be careful!] to [chat v]\nadd [See you at the end.] to [chat v]\nadd [No, I am busy.] to [chat v]\nadd [Hi!] to [chat for you v]\nadd [Follow me!] to [chat for you v]\nadd [I have to go, bye!] to [chat for you v]\nadd [Let's Race!] to [chat for you v]\nadd [Help me!] to [chat for you v]\nadd [Yes!] to [chat for you v]\nadd [Be careful!] to [chat for you v]\nadd [See you at the end.] to [chat for you v]\nadd [No, I am busy.] to [chat for you v]\n\ndefine Chat\n\nif <(Chat) = [1]> then\n    show list [chat for you v]\n    set [chat v] to [0]\n    wait until <<not <<touching (mouse-pointer v)?> and <mouse down?>>> and <not <key (t v) pressed?>>>\n    if <(Chat) = [0]> then\n        set [chat v] to [1]\n        wait until <<not <<touching (mouse-pointer v)?> and <mouse down?>>> and <not <key (t v) pressed?>>>\n    end\nend\n\nwhen I receive [chat hide quiick v]\nhide\n\nwhen I receive [you win! v]\nhide\nstop [other scripts in sprite v]\n\nwhen [q v] key pressed\nset [my player # v] to [0]\nhide\nstop [other scripts in sprite v]\n\n@Others\n\nwhen I receive [begin v]\nset [names v] to [1]\nforever\n    if <key (n v) pressed?> then\n        if <(names) = [1]> then\n            wait until <not <key (n v) pressed?>>\n            set [names v] to [0]\n        else\n            wait until <not <key (n v) pressed?>>\n            set [names v] to [1]\n        end\n    end\nend\n\nwhen I receive [setup others v]\nsetup players\n\ndefine setup players\nset [brightness v] effect to (0)\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\ndefine FInd Cloud Var (#)\nif <(#) = [1]> then\n    set [value v] to (☁ P1)\nelse\n    if <(#) = [2]> then\n        set [value v] to (☁ P2)\n    else\n        if <(#) = [3]> then\n            set [value v] to (☁ P3)\n        else\n            if <(#) = [4]> then\n                set [value v] to (☁ P4)\n            else\n                if <(#) = [5]> then\n                    set [value v] to (☁ P5)\n                else\n                    if <(#) = [6]> then\n                        set [value v] to (☁ P6)\n                    else\n                        if <(#) = [7]> then\n                            set [value v] to (☁ P7)\n                        else\n                            if <(#) = [8]> then\n                                set [value v] to (☁ P8)\n                            else\n                                if <(#) = [9]> then\n                                    set [value v] to (☁ P9)\n                                else\n                                    if <(#) = [10]> then\n                                        set [value v] to (☁ P10)\n                                    end\n                                end\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\n\nwhen I receive [begin v]\nset [offline v] to [0]\nshow\nforever\n    if <(MY PLAYER #) = (player #)> then\n        set [offline v] to [100]\n        hide\n    else\n        Tick\n    end\nend\n\ndefine Tick\nFInd Cloud Var (player #)\nif <(join [A] (value)) = (last value)> then\n    change [offline v] by (1)\n    if <<(offline) > [100]> or <(offline) = [100]>> then\n        hide\n    end\nelse\n    set [last value v] to (join [A] (value))\n    if <(offline) > [99]> then\n        hide\n    end\n    show\n    set [offline v] to [0]\nend\nBegin Decode of (value)\nRead Value\nif <(value) = (username)> then\n    set [offline v] to [100]\n    hide\nend\nif <(names) = [1]> then\n    say (join (player #) (join [:] (value)))\nelse\n    say []\nend\nRead Value\nRead Value\nset x to ((value) - (SCROLL X))\nRead Value\nset y to ((value) - (SCROLL Y))\nRead Value\nbroadcast (Decode Chat v)\nif <touching (_edge_ v)?> then\n    hide\nelse\n    if <[99] > (offline)> then\n        show\n    end\nend\n\ndefine Begin Decode of (encoded)\nset [encoded v] to (encoded)\nset [letter # v] to [1]\n\ndefine Read Value\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\nwhen I receive [join game v]\nFInd Cloud Var (player #)\nset [last value v] to (join [A] (value))\nwait (3) seconds\nFInd Cloud Var (player #)\nif <(join [A] (value)) = (last value)> then\n    set [my player # v] to (player #)\nend\n\ndefine Decode Chat (chat)\nif <(chat) = [1]> then\n    say (item (1) of [chat v]) for (2) seconds\nelse\n    if <(chat) = [2]> then\n        say (item (2) of [chat v]) for (2) seconds\n    else\n        if <(chat) = [3]> then\n            say (item (3) of [chat v]) for (2) seconds\n        else\n            if <(chat) = [4]> then\n                say (item (4) of [chat v]) for (2) seconds\n            else\n                if <(chat) = [5]> then\n                    say (item (5) of [chat v]) for (2) seconds\n                else\n                    if <(chat) = [6]> then\n                        say (item (6) of [chat v]) for (2) seconds\n                    else\n                        if <(chat) = [7]> then\n                            say (item (7) of [chat v]) for (2) seconds\n                        else\n                            if <(chat) = [8]> then\n                                say (item (8) of [chat v]) for (2) seconds\n                            else\n                                if <(chat) = [9]> then\n                                    say (item (9) of [chat v]) for (2) seconds\n                                end\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\n\nwhen I receive [decode chat v]\nDecode Chat (value)\n\nwhen I receive [you win! v]\nstop [other scripts in sprite v]\nhide\n\nwhen [0 v] key pressed\nif <(username) = [coolcoder1213]> then\n    set [☁ p1 v] to []\n    set [☁ p2 v] to []\n    set [☁ p3 v] to []\n    set [☁ p4 v] to []\n    set [☁ p5 v] to []\n    set [☁ p6 v] to []\n    set [☁ p7 v] to []\n    set [☁ p8 v] to []\n    set [☁ p9 v] to []\n    set [☁ p10 v] to []\nend\n\n@Platforms\n\nwhen I receive [green flag v]\nhide\n\nwhen I receive [tick v]\nPosition ((Platforms: x) - (SCROLL X)) ((Platforms: y) - (SCROLL Y))\n\nwhen I receive [setup v]\nhide\nset [platforms: x v] to [0]\nset [platforms: y v] to [0]\nif <(LEVEL) = [1]> then\n    switch costume to (level 1 1 v)\n    Clone at x: [480] y: [0]\n    Clone at x: [480] y: [0]\n    Clone at x: [480] y: [0]\n    Clone at x: [480] y: [0]\n    Clone at x: [480] y: [0]\n    Clone at x: [480] y: [0]\n    Clone at x: [480] y: [0]\n    Clone at x: [480] y: [0]\n    Clone at x: [480] y: [0]\n    Clone at x: [480] y: [0]\n    Clone at x: [480] y: [0]\nend\n\ndefine Position (x) (y)\nset size to (100) %\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)\ncreate clone of (_myself_ v)\nchange [platforms: x v] by (x)\nchange [platforms: y v] by (y)\nnext costume\n\nnext costume\nnext costume\n\ncreate clone of (_myself_ v)\n\n@Danger\n\nwhen I receive [green flag v]\nhide\n\nwhen I receive [tick v]\nPosition ((DANGER: x) - (SCROLL X)) ((DANGER: y) - (SCROLL Y))\n\nwhen I receive [setup v]\nhide\nset [danger: x v] to [0]\nset [danger: y v] to [0]\nif <(LEVEL) = [1]> then\n    switch costume to (level 1  v)\n    Clone at x: [480] y: [0]\n    Clone at x: [480] y: [0]\n    Clone at x: [480] y: [0]\n    Clone at x: [480] y: [0]\n    Clone at x: [480] y: [0]\n    Clone at x: [480] y: [0]\n    Clone at x: [480] y: [0]\n    Clone at x: [480] y: [0]\n    Clone at x: [480] y: [0]\n    Clone at x: [480] y: [0]\nend\n\ndefine Position (x) (y)\ngo to [back v] layer\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)\ncreate clone of (_myself_ v)\nchange [danger: x v] by (x)\nchange [danger: y v] by (y)\nnext costume\n\n@Joining\n\nwhen flag clicked\nhide\n\nwhen I receive [begin v]\nhide\n\nwhen I receive [connecting v]\nswitch costume to (joining v)\nshow\n\nwhen I receive [connected v]\ngo [forward v] (1322) layers\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 (error 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 [connecting v]\nrepeat (11)\n    create clone of (_myself_ v)\n    turn right (40) degrees\nend\n\nwhen I receive [connected v]\nrepeat (10)\n    change [ghost v] effect by (10)\nend\ndelete this clone\n\nwhen I start as a clone\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\n@Thumbnail\n\nwhen flag clicked\ngo to x: (0) y: (0)\nset [ghost v] effect to (100)\nforever\n    go to [front v] layer\nend\n\n@Arrows\n\nwhen I receive [green flag v]\nhide\n\nwhen I receive [tick v]\nPosition ((DANGER: x) - (SCROLL X)) ((DANGER: y) - (SCROLL Y))\n\nwhen I receive [setup v]\nhide\nset [danger: x v] to [0]\nset [danger: y v] to [0]\nif <(LEVEL) = [1]> then\n    switch costume to (costume1 v)\n    Clone at x: [480] y: [0]\n    Clone at x: [480] y: [0]\n    Clone at x: [480] y: [0]\n    Clone at x: [480] y: [0]\n    Clone at x: [480] y: [0]\n    Clone at x: [480] y: [0]\n    Clone at x: [480] y: [0]\n    Clone at x: [480] y: [0]\n    Clone at x: [480] y: [0]\n    Clone at x: [480] y: [0]\n    Clone at x: [480] y: [0]\nend\n\ndefine Position (x) (y)\ngo to [back v] layer\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)\ncreate clone of (_myself_ v)\nchange [danger: x v] by (x)\nchange [danger: y v] by (y)\nnext costume\n\n@WIN\n\nwhen I receive [you win! v]\nshow\nbroadcast (chat hide quiick v)\nstart sound [Ding Sound Effect v]\nswitch costume to (win screen v)\n\nwhen flag clicked\nhide\n\n@FLAG\n\nwhen I receive [green flag v]\nhide\n\nwhen I receive [tick v]\nPosition ((DANGER: x) - (SCROLL X)) ((DANGER: y) - (SCROLL Y))\n\nwhen I receive [setup v]\nhide\nset [danger: x v] to [0]\nset [danger: y v] to [0]\nif <(LEVEL) = [1]> then\n    switch costume to (costume1 v)\n    Clone at x: [480] y: [0]\n    Clone at x: [480] y: [0]\n    Clone at x: [480] y: [0]\n    Clone at x: [480] y: [0]\n    Clone at x: [480] y: [0]\n    Clone at x: [480] y: [0]\n    Clone at x: [480] y: [0]\n    Clone at x: [480] y: [0]\n    Clone at x: [480] y: [0]\n    Clone at x: [480] y: [0]\n    Clone at x: [480] y: [0]\nend\n\ndefine Position (x) (y)\ngo to [back v] layer\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)\ncreate clone of (_myself_ v)\nchange [danger: x v] by (x)\nchange [danger: y v] by (y)\nnext costume\n\n@Chat Button\n\nwhen I receive [tick v]\nif <touching (mouse-pointer v)?> then\n    repeat until <(size) > [119]>\n        change [size v] by (.9)\n        change size by (size)\n    end\n    if <mouse down?> then\n        broadcast (Chat Open v)\n        hide\n        wait until <not <mouse down?>>\n    end\nelse\n    repeat until <(size) < [101]>\n        set [size v] to [-.8]\n        change [size v] by (-.9)\n        change size by (size)\n    end\nend\n\nwhen I receive [chat close v]\nset size to (100) %\nset [ghost v] effect to (100)\nshow\nrepeat (10)\n    change [ghost v] effect by (-10)\nend\n\nwhen I receive [begin v]\nset [size v] to [.8]\nshow\nrepeat (40)\n    change [ghost v] effect by (-3)\nend\n\nwhen flag clicked\ngo to [front v] layer\nhide\ngo to x: (0) y: (0)\nchange [ghost v] effect by (100)\n\nwhen flag clicked\ngo to x: (-193) y: (-156)\nset size to (100) %\n\nwhen [t v] key pressed\n\nbroadcast (Chat Open v)\nhide\nwait until <not <mouse down?>>\n\nwhen I receive [tick v]\nif <key (t v) pressed?> then\n    broadcast (Chat Open v)\n    hide\nend\n\nwhen I receive [chat hide quiick v]\nhide\n\n@Chat Options\n\nwhen I receive [tick v]\nif <(Chat) = [1]> then\n    show\nelse\n    hide\nend\nif <key (space v) pressed?> then\n    broadcast (Chat Close v)\n    hide\n    wait until <not <key (space v) pressed?>>\nend\n\nwhen I receive [green flag v]\nhide\n\nwhen flag clicked\nhide\ngo to [front v] layer\n\nwhen I receive [chat open v]\nset [chat v] to [1]\n\nwhen I receive [chat close v]\nset [chat v] to [0]\n\nwhen I receive [tick v]\ngo [forward v] (2) layers\nwait (1) seconds\n\n@Love fave\n\nwhen flag clicked\nset [costume v] to [0]\nhide\nforever\n    if <not <<(LOVED__) = [1]> and <(FAVED___) = [1]>>> then\n        wait (pick random (30) to (40)) seconds\n        switch costume to (costume1 v)\n        go to x: (0) y: (50)\n        show\n        go to [front v] layer\n        start sound [pop v]\n        repeat (9)\n            change y by (-6)\n        end\n        repeat (5)\n            change y by (3)\n        end\n        repeat (5)\n            change y by (-1)\n        end\n        wait (2) seconds\n        repeat (15)\n            change y by (7)\n        end\n        hide\n    else\n        change [score v] by (100)\n        wait until <not <<(LOVED__) = [1]> and <(FAVED___) = [1]>>>\n    end\n    if <(Costume) > [0]> then\n        hide\n        stop [this script v]\n    end\nend\n\nwhen flag clicked\nhide\n\nwhen I receive [menu v]\n\n
PC or Mac:\nArrow Keys/WASD.\nMobile:\nMove Finger\n\nQ to enter spectator mode.\n\n\nN to show names.\n\n\n\nDon't touch lava and spikes. Also, don't fall.\n\nNew Scratchers can't use this and you must be logged in.\n\nAdvertising allowed if you follow me!\n\nI hope you like music.\n\nThis is my most advanced cloud game.\n\nCredits:\nYou for viewing this.\n@talexat for background.\nEverything else by me.\n\nPlease heart and fave. I really want this to get on the front page.\n\nNote: I have never been on the front page before so it would mean a lot.\n\nTags:\n#MobileFriendly\n#platformer\n#cloud\n#coolcoder1213\n#all\n#games\n#music\n#danger\n#win\n#cloudgame\n#multiplayer\n#all\n#valcano\n#hard\n\n\nShoutouts:\nLook at @CodeCool559.\nLook at @Ninja9172.\n\nRead This Before Saying It Is Too Hard:\nIt is supposed to be hard.\n\n1 Server for now but of this fills up all the time then I will make a second sever.