GreenLand - [Cloud Multiplayer Platformer]

Instructions: Arrows or WASD - to move\n[T] - to chat

@Stage\n\nwhen flag clicked\nswitch backdrop to (1 v)\ndelete all of [players v]\nrepeat (10)\n    add [] to [players v]\nend\nforever\n    replace item (1) of [players v] with (☁ P1)\n    replace item (2) of [players v] with (☁ P2)\n    replace item (3) of [players v] with (☁ P3)\n    replace item (4) of [players v] with (☁ P4)\n    replace item (5) of [players v] with (☁ P5)\n    replace item (6) of [players v] with (☁ P6)\n    replace item (7) of [players v] with (☁ P7)\n    replace item (8) of [players v] with (☁ P8)\n    replace item (9) of [players v] with (☁ P9)\n    replace item (10) of [players v] with (☁ P10)\nend\n\nwhen flag clicked\nforever\n    play sound [TheFatRat  JJD - Prelude VIP Edit.mp3 v] until done\nend\n\n@Player\n\nwhen flag clicked\nset [chat v] to [0]\nforever\n    if <[1] < (x)> then\n        switch costume to (right v)\n    else\n        if <(x) < [-1]> then\n            switch costume to (left v)\n        else\n            switch costume to (standard v)\n        end\n    end\nend\n\nwhen I receive [start v]\nset [x v] to [0]\nset [y v] to [0]\nforever\n    if <<<key (d v) pressed?> or <key (right arrow v) pressed?>> or <(Mobile X) = [1]>> then\n        point in direction (90)\n        change [x v] by (1)\n    end\n    if <<<key (a v) pressed?> or <key (left arrow v) pressed?>> or <(Mobile X) = [-1]>> then\n        point in direction (-90)\n        change [x v] by (-1)\n    end\n    set [x v] to ((x) * ((9) / (10)))\n    change x by (x)\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 x by ((x) * (-1))\n                        change y by (-4)\n                    end\n                    if <<<key (w v) pressed?> or <key (up arrow v) pressed?>> or <(Mobile Y) = [1]>> then\n                        if <(x) > [0]> then\n                            set [x v] to [-5]\n                        else\n                            set [x v] to [5]\n                        end\n                        set [y v] to [10]\n                    else\n                        set [x v] to [0]\n                    end\n                end\n            end\n        end\n    end\n    change [y v] by (-1)\n    change y by (y)\n    if <touching (ground v)?> then\n        change y by ((y) * (-1))\n        set [y v] to [0]\n    end\n    change y by (-1)\n    if <touching (ground v)?> then\n        if <<<key (w v) pressed?> or <key (up arrow v) pressed?>> or <(Mobile Y) = [1]>> then\n            set [y v] to [15]\n        end\n    end\n    change y by (1)\nend\n\nwhen I receive [start v]\nforever\n    set [stats v] to (join (join (join (join ((round (x position)) + (400)) (join ((round (y position)) + (400)) ((costume [number v]) + (9)))) (([costume # v] of [ground v]) + (9))) ((Mini) + (10))) (Chat))\nend\n\nwhen I receive [start v]\nforever\n    if <(#) = [1]> then\n        set [☁ p1 v] to (Stats)\n    end\n    if <(#) = [2]> then\n        set [☁ p2 v] to (Stats)\n    end\n    if <(#) = [3]> then\n        set [☁ p3 v] to (Stats)\n    end\n    if <(#) = [4]> then\n        set [☁ p4 v] to (Stats)\n    end\n    if <(#) = [5]> then\n        set [☁ p5 v] to (Stats)\n    end\n    if <(#) = [6]> then\n        set [☁ p6 v] to (Stats)\n    end\n    if <(#) = [7]> then\n        set [☁ p7 v] to (Stats)\n    end\n    if <(#) = [8]> then\n        set [☁ p8 v] to (Stats)\n    end\n    if <(#) = [9]> then\n        set [☁ p9 v] to (Stats)\n    end\n    if <(#) = [10]> then\n        set [☁ p10 v] to (Stats)\n    end\nend\n\nwhen flag clicked\nshow list [chat v]\ngo to x: (-180) y: (-96)\n\nwhen I receive [start v]\nforever\n    wait until <<<[243] < (x position)> and <(size) = [100]>> or <<[239] < (x position)> and <(size) = [60]>>>\n    broadcast (Next level v)\n    set x to (-243)\n    repeat until <not <touching (ground v)?>>\n        set y to (pick random (-180) to (180))\n    end\nend\n\nwhen I receive [start v]\nforever\n    wait until <touching (spikes v)?>\n    set x to (-243)\n    repeat until <not <touching (ground v)?>>\n        set y to (pick random (-180) to (180))\n    end\nend\n\nwhen I receive [start v]\nforever\n    wait until <touching (trampolines v)?>\n    set [y v] to [17]\nend\n\nwhen I receive [start v]\nforever\n    if <(Mini) = [0]> then\n        set size to (100) %\n    else\n        set size to (60) %\n        wait until <(Mini) = [0]>\n        go to x: (-218) y: (131)\n        repeat until <not <touching (ground v)?>>\n            set y to (pick random (-180) to (180))\n        end\n        set [y v] to [10]\n        wait (0.1) seconds\n        set size to (100) %\n    end\nend\n\nwhen I receive [start v]\nforever\n    if <touching (water v)?> then\n        set [y v] to [5]\n        if <key (down arrow v) pressed?> then\n            set [y v] to [-5]\n        end\n    end\nend\n\nwhen I receive [start v]\nforever\n    show list [chat v]\n    wait until <key (t v) pressed?>\n    hide list [chat v]\n    wait until <not <key (t v) pressed?>>\nend\n\nwhen I receive [start v]\nforever\n    if <key (1 v) pressed?> then\n        set [chat v] to [1]\n        wait (3) seconds\n        set [chat v] to [0]\n    end\n    if <key (2 v) pressed?> then\n        set [chat v] to [2]\n        wait (3) seconds\n        set [chat v] to [0]\n    end\n    if <key (3 v) pressed?> then\n        set [chat v] to [3]\n        wait (3) seconds\n        set [chat v] to [0]\n    end\n    if <key (4 v) pressed?> then\n        set [chat v] to [4]\n        wait (3) seconds\n        set [chat v] to [0]\n    end\n    if <key (5 v) pressed?> then\n        set [chat v] to [5]\n        wait (3) seconds\n        set [chat v] to [0]\n    end\n    if <key (6 v) pressed?> then\n        set [chat v] to [6]\n        wait (3) seconds\n        set [chat v] to [0]\n    end\n    if <key (7 v) pressed?> then\n        set [chat v] to [7]\n        wait (3) seconds\n        set [chat v] to [0]\n    end\n    if <key (8 v) pressed?> then\n        set [chat v] to [8]\n        wait (3) seconds\n        set [chat v] to [0]\n    end\n    if <key (9 v) pressed?> then\n        set [chat v] to [9]\n        wait (3) seconds\n        set [chat v] to [0]\n    end\nend\n\nwhen I receive [start v]\nforever\n    if <(Chat) = [0]> then\n        say []\n    else\n        say (item (Chat) of [chat v])\n    end\nend\n\n@Players\n\nwhen I receive [start v]\nrepeat (10)\n    create clone of (_myself_ v)\n    next costume\nend\n\nwhen I start as a clone\ngo to x: (0) y: (0)\nif <(#) = (costume [number v])> then\n    delete this clone\nend\nforever\n    glide (0.1) secs to x: ((join (letter (1) of (item (costume [number v]) of [players v])) (join (letter (2) of (item (costume [number v]) of [players v])) (letter (3) of (item (costume [number v]) of [players v])))) - (400)) y: ((join (letter (4) of (item (costume [number v]) of [players v])) (join (letter (5) of (item (costume [number v]) of [players v])) (letter (6) of (item (costume [number v]) of [players v])))) - (400))\n    if <([costume # v] of [ground v]) = ((join (letter (9) of (item (costume [number v]) of [players v])) (letter (10) of (item (costume [number v]) of [players v]))) - (9))> then\n        show\n    else\n        hide\n    end\nend\n\nwhen I start as a clone\nforever\n    if <((join (letter (11) of (item (costume [number v]) of [players v])) (letter (12) of (item (costume [number v]) of [players v]))) - (10)) = [0]> then\n        set size to (100) %\n    else\n        set size to (60) %\n    end\nend\n\nwhen I start as a clone\nforever\n    if <(letter (13) of (item (costume [number v]) of [players v])) = [0]> then\n        say []\n    else\n        say (item (letter (13) of (item (costume [number v]) of [players v])) of [chat v])\n    end\nend\n\n@Ground\n\nwhen I receive [next level v]\nnext backdrop\nnext costume\n\nwhen flag clicked\nswitch costume to (1 v)\n\n@Connection\n\nwhen flag clicked\nswitch costume to (connection... v)\ngo to [front v] layer\nshow\nset [☁ p1 v] to [1]\nset [☁ p2 v] to [1]\nset [☁ p3 v] to [1]\nset [☁ p4 v] to [1]\nset [☁ p5 v] to [1]\nset [☁ p6 v] to [1]\nset [☁ p7 v] to [1]\nset [☁ p8 v] to [1]\nset [☁ p9 v] to [1]\nset [☁ p10 v] to [1]\nwait (3) seconds\nset [# v] to [0]\nrepeat until <(item (#) of [players v]) = [1]>\n    change [# v] by (1)\n    if <[10] < (#)> then\n        switch costume to (the server is full v)\n        stop [all v]\n    end\nend\nrepeat (10)\n    change [ghost v] effect by (10)\nend\nhide\nbroadcast (Start v)\n\n@Spikes\n\nwhen I receive [next level v]\nnext costume\n\nwhen flag clicked\nswitch costume to (1 v)\n\n@Trampolines\n\nwhen I receive [next level v]\nnext costume\n\nwhen flag clicked\nswitch costume to (1 v)\n\n@Secret\n\nwhen flag clicked\nhide variable [mini v]\nset [mini v] to [0]\nswitch costume to (1 v)\nhide\nwait until <([costume # v] of [ground v]) = [6]>\nshow\nrepeat until <([costume # v] of [ground v]) = [7]>\n    if <touching (player v)?> then\n        hide\n        show variable [mini v]\n        set [mini v] to [30]\n        repeat (30)\n            change [mini v] by (-1)\n            wait (1) seconds\n        end\n    end\nend\nhide\nset [mini v] to [0]\nhide variable [mini v]\n\n@Water\n\nwhen I receive [next level v]\nnext costume\n\nwhen flag clicked\nswitch costume to (1 v)\n\n@1\n\nwhen flag clicked\nhide\n\n