Emoji World 2 | A Multiplayer Scrolling Platformer | ☁️ Server 1
@Stage\n\nwhen flag clicked\nforever\n    switch backdrop to (game v)\nend\n\n@Blank\n\n@Player\n\nwhen flag clicked\nset [max players v] to [10]\nset [my player # v] to [0]\nset [connect v] to [Connecting]\nbroadcast (Setup Others v) and wait\nbroadcast (Join Game v) and wait\nif <(MY PLAYER #) > [0]> then\n    set [connect v] to [Connected]\nelse\n    set [connect v] to [Full]\nend\nbroadcast (Begin v)\n\ndefine Write (value) to Encoded\nset [letter # v] to [1]\nrepeat (length of (value))\n    set [encoded v] to (join (encoded) (item # of (letter (letter #) of (value)) 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 Set Cloud # (player) to (value)\nif <(player) = [1]> then\n    set [☁ player 1 v] to (value)\nelse\n    if <(player) = [2]> then\n        set [☁ player 2 v] to (value)\n    else\n        if <(player) = [3]> then\n            set [☁ player 3 v] to (value)\n        else\n            if <(player) = [4]> then\n                set [☁ player 4 v] to (value)\n            else\n                if <(player) = [5]> then\n                    set [☁ player 5 v] to (value)\n                else\n                    if <(player) = [6]> then\n                        set [☁ player 6 v] to (value)\n                    else\n                        if <(player) = [7]> then\n                            set [☁ player 7 v] to (value)\n                        else\n                            if <(player) = [8]> then\n                                set [☁ player 8 v] to (value)\n                            else\n                                if <(player) = [9]> then\n                                    set [☁ player 9 v] to (value)\n                                else\n                                    if <(player) = [10]> then\n                                        set [☁ player 10 v] to (value)\n                                    end\n                                end\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\n\ndefine Send Cloud Data\nif <(MY PLAYER #) < [1]> then\n    stop [this script v]\nend\nset [encoded v] to []\nWrite (round ((timer) * (10))) to Encoded\nWrite (EMOJI) to Encoded\nWrite (direction) to Encoded\nWrite (username) to Encoded\nWrite (size) to Encoded\nWrite (Fade) to Encoded\nWrite (Spawn Bri) to Encoded\nWrite (x) to Encoded\nWrite (y) to Encoded\nWrite (CHAT) to Encoded\nSet Cloud # (MY PLAYER #) to (encoded)\n\nwhen flag clicked\nbroadcast (Green Flag v) and wait\nbroadcast (Play Game v) and wait\n\nwhen I receive [green flag v]\nif <not <(username) = [ImRohan10187]>> then\n    set [level v] to [1]\nelse\n    set [level v] to (pick random (1) to (2))\nend\nset [checkpoint v] to [1]\nset [frame v] to [0]\nset [god mode v] to [0]\nif <not <(username) = [ImRohan10187]>> then\n    set [editor v] to [0]\nend\nset [editor v] to [0]\nset [clones v] to [0]\nset [vars visible? v] to [0]\nshow list [editor mode v]\nshow list [editor values v]\ngo to x: (0) y: (0)\nset rotation style [all around v]\npoint in direction (90)\nswitch costume to (EMOJI)\nswitch backdrop to (game v)\nset size to (150) %\ngo to [front v] layer\nhide\n\nwhen I receive [play game v]\nforever\n    Game Setup\n    Game Loop\n    Game End\nend\n\ndefine Game Start\nAnalyse Position | Checkpoint\nset [camera x v] to (x)\nset [camera y v] to (y)\nset [speed x v] to [0]\nset [speed y v] to [0]\nset [turn speed v] to [2]\nset [falling v] to [99]\nset [wall jump v] to [0]\nset [collision v] to [0]\nset [right v] to [0]\nset [left v] to [0]\nset [up v] to [0]\nset [down v] to [0]\nset [x axis v] to [0]\nset [y axis v] to [0]\nset [frame v] to [0]\nset [move frame v] to [0]\nset [timeout v] to [0]\nset [fade v] to [0]\nset [spawn bri v] to [0]\nset [edge x v] to [-225]\nset [direction v] to [0]\nset [end v] to []\nset [ghost v] effect to (Fade)\npoint in direction (90)\nshow\nLimit Camera Edge X: [0] Edge Y: [0]\nPosition\nLimit Player Edge X: [-225] Edge Y: [-180]\nbroadcast (Frame v)\n\ndefine Frame\nChange Frame\nHitbox\nCheck Controls [40]\nEnable Parachute [space]\nHandle Keys - Right Left [1.8] [0.8] [10] [2.5] [0.8] [20]\nHandle Keys - Jump [2] [-18] [4] [14] [20] [-4]\nHandle - God Mode\nChange Player X (SPEED X) [10] [0.9] (Turn Speed)\nChange Player Y (SPEED Y) [0.5]\nLimit Player Edge X: [-225] Edge Y: [-180]\nMove Camera [2] [5]\nLimit Camera Edge X: [0] Edge Y: [0]\nPosition\nPaint Sprite\nTimeout [2000]\nEditor Values\n\ndefine Game Win\nbroadcast (Win v)\nScreen Shake [1.5] [1] (CAMERA X) (CAMERA Y)\nwait (0.2) seconds\nstop [all v]\n\ndefine Game Die\nbroadcast (Die v)\nScreen Shake [0.8] [0.5] (CAMERA X) (CAMERA Y)\nwait (0.2) seconds\n\ndefine Check Controls (mobile)\nset [right v] to (<<key (right arrow v) pressed?> or <<key (d v) pressed?> or <<mouse down?> and <<(mouse x) > (((x) - (CAMERA X)) + (mobile))> and <<not <(CHAT OPEN) = [1]>> and <not <(SHOP OPEN) = [1]>>>>>>> + (0))\nset [left v] to (<<key (left arrow v) pressed?> or <<key (a v) pressed?> or <<mouse down?> and <<(mouse x) < (((x) - (CAMERA X)) - (mobile))> and <<not <(CHAT OPEN) = [1]>> and <not <(SHOP OPEN) = [1]>>>>>>> + (0))\nset [up v] to (<<key (up arrow v) pressed?> or <<key (w v) pressed?> or <<mouse down?> and <<(mouse y) > (((y) - (CAMERA Y)) + (mobile))> and <<not <(CHAT OPEN) = [1]>> and <not <(SHOP OPEN) = [1]>>>>>>> + (0))\nset [down v] to (<<key (down arrow v) pressed?> or <<key (s v) pressed?> or <<mouse down?> and <<(mouse y) < (((y) - (CAMERA Y)) - (mobile))> and <<not <(CHAT OPEN) = [1]>> and <not <(SHOP OPEN) = [1]>>>>>>> + (0))\nset [x axis v] to ((((Right) + (0)) - ((Left) + (0))) + (0))\nset [y axis v] to ((((Up) + (0)) - ((Down) + (0))) + (0))\n\ndefine Handle Keys - Right Left (speed1) (friction1) (max speed1) (speed2) (friction2) (max speed2)\nif <(EDITOR) = [1]> then\n    set [speed x v] to (((X Axis) * (GOD SPEED)) + ((SPEED X) * ([abs v] of (friction1) )))\n    stop [this script v]\nend\nif <not <[items bought v] contains [Speed Boost]?>> then\n    set [speed x v] to (((X Axis) * ([abs v] of (speed1) )) + ((SPEED X) * ([abs v] of (friction1) )))\n    if <([abs v] of (SPEED X) ) > ([abs v] of (max speed1) )> then\n        if <(SPEED X) > [0]> then\n            set [speed x v] to ([abs v] of (max speed1) )\n        else\n            set [speed x v] to ((0) - ([abs v] of (max speed1) ))\n        end\n    end\n    set [wall jump v] to ([abs v] of (max speed1) )\nelse\n    set [speed x v] to (((X Axis) * ([abs v] of (speed2) )) + ((SPEED X) * ([abs v] of (friction2) )))\n    if <([abs v] of (SPEED X) ) > ([abs v] of (max speed2) )> then\n        if <(SPEED X) > [0]> then\n            set [speed x v] to ([abs v] of (max speed2) )\n        else\n            set [speed x v] to ((0) - ([abs v] of (max speed2) ))\n        end\n    end\n    set [wall jump v] to ([abs v] of (max speed1) )\nend\n\ndefine Handle Keys - Jump (gravity) (max gravity) (error) (jump height) (jump boost) (parachute)\nif <(EDITOR) = [1]> then\n    set [speed y v] to (((Y Axis) * (GOD SPEED)) + ((SPEED Y) * (0.8)))\n    stop [this script v]\nend\nif <not <touching ((item (5) of [platform types v]) v)?>> then\n    if <not <(PARACHUTE) = [1]>> then\n        change [speed y v] by ((0) - ([abs v] of (gravity) ))\n        if <(SPEED Y) < ((0) - ([abs v] of (max gravity) ))> then\n            set [speed y v] to ((0) - ([abs v] of (max gravity) ))\n        end\n        if <(Up) > [0]> then\n            if <(Falling) < (error)> then\n                if <not <[items bought v] contains [Jump Boost]?>> then\n                    set [speed y v] to (jump height)\n                else\n                    set [speed y v] to (jump boost)\n                end\n            end\n        end\n    else\n        set [speed y v] to ((SPEED Y) + (((parachute) - (SPEED Y)) / (3)))\n    end\nelse\n    set [speed y v] to (((Y Axis) * (3)) + ((SPEED Y) * (0.5)))\nend\n\ndefine Change Player X (speed x) (slope) (bounciness) (turn speed)\nchange [x v] by (speed x)\nif <not <((x) - (CAMERA X)) < [-225]>> then\n    change [direction v] by ((speed x) * (turn speed))\nend\nPosition\nCollision Detection\nif <(EDITOR) = [1]> then\n    change [direction v] by (((0) - (Direction)) / (2))\n    stop [this script v]\nend\nif <(Collision) = [1]> then\n    repeat (slope)\n        change [y v] by (1)\n        Position\n        Collision Detection\n        if <not <(Collision) = [1]>> then\n            stop [this script v]\n        end\n    end\n    change [y v] by ((0) - (slope))\n    if <not <(PARACHUTE) = [1]>> then\n        if <(Up) > [0]> then\n            if <(speed x) > [0]> then\n                set [speed x v] to ((0) - ((Wall Jump) * (2)))\n                change [direction v] by (() - ([abs v] of ((1) * (turn speed)) ))\n            else\n                set [speed x v] to ((Wall Jump) * (2))\n                change [direction v] by ([abs v] of ((1) * (turn speed)) )\n            end\n            set [falling v] to [0]\n        else\n            if <([abs v] of (round (SPEED X)) ) > [0]> then\n                if <(speed x) > [0]> then\n                    set [speed x v] to (() - ([abs v] of ((SPEED X) * (bounciness)) ))\n                else\n                    set [speed x v] to ([abs v] of ((SPEED X) * (bounciness)) )\n                end\n                if <([abs v] of (SPEED X) ) < [0.2]> then\n                    set [speed x v] to [0]\n                end\n            else\n                set [speed x v] to [0]\n            end\n        end\n    end\n    repeat until <not <(Collision) = [1]>>\n        if <(speed x) > [0]> then\n            change [x v] by (-1)\n            change [direction v] by (() - ([abs v] of ((1) * (turn speed)) ))\n        else\n            change [x v] by (1)\n            change [direction v] by ([abs v] of ((1) * (turn speed)) )\n        end\n        Position\n        Collision Detection\n    end\nend\n\ndefine Position\ngo to x: ((x) - (CAMERA X)) y: ((y) - (CAMERA Y))\n\ndefine Change Player Y (speed y) (bounciness)\nchange [y v] by (speed y)\nchange [falling v] by (1)\nPosition\nCollision Detection\nif <(EDITOR) = [1]> then\n    stop [this script v]\nend\nif <(Collision) = [1]> then\n    repeat until <not <(Collision) = [1]>>\n        if <(speed y) > [0]> then\n            change [y v] by (-1)\n            set [speed y v] to (() - ([abs v] of ((speed y) * (bounciness)) ))\n        else\n            change [y v] by (1)\n            set [falling v] to [0]\n            set [speed y v] to ([abs v] of ((speed y) * (bounciness)) )\n            if <([abs v] of (SPEED Y) ) < [0.2]> then\n                set [speed y v] to [0]\n            end\n        end\n        Position\n        Collision Detection\n    end\nend\nif <(Collision) = [4]> then\n    if <not <(Down) > [0]>> then\n        if <(speed y) < [0]> then\n            change [y v] by (() - (speed y))\n            set [speed y v] to ([abs v] of ((speed y) * (bounciness)) )\n            set [falling v] to [0]\n            Position\n            Collision Detection\n        end\n    end\nend\n\ndefine Move Camera (camx_delay) (camy_delay)\nif <(EDITOR) = [0]> then\n    change [camera x v] by (round (((x) - (CAMERA X)) / (camx_delay)))\n    change [camera y v] by (round (((y) - (CAMERA Y)) / (camy_delay)))\n    stop [this script v]\nend\nchange [camera x v] by (round (((x) - (CAMERA X)) / (1)))\nchange [camera y v] by (round (((y) - (CAMERA Y)) / (1)))\n\ndefine Limit Camera Edge X: (edge x) Edge Y: (edge y)\nif <(CAMERA X) < (edge x)> then\n    set [camera x v] to (edge x)\nend\nif <(CAMERA Y) < (edge y)> then\n    set [camera y v] to (edge y)\nend\n\ndefine Limit Player Edge X: (edge x) Edge Y: (edge y)\nset [edge x v] to ((0) - ([abs v] of (edge x) ))\nif <(x) < ((0) - ([abs v] of (edge x) ))> then\n    set [x v] to ((0) - ([abs v] of (edge x) ))\n    set [speed x v] to [0]\nend\nif <(y) < ((0) - ([abs v] of (edge y) ))> then\n    set [y v] to ((0) - ([abs v] of (edge y) ))\n    set [speed y v] to [0]\n    if <(EDITOR) = [0]> then\n        set [end v] to [Die]\n    end\nend\n\ndefine Spawn (times) (change)\nrepeat (times)\n    change [spawn bri v] by (() - ([abs v] of (change) ))\n    change [brightness v] effect by (() - ([abs v] of (change) ))\nend\nrepeat (times)\n    change [spawn bri v] by ([abs v] of (change) )\n    change [brightness v] effect by ([abs v] of (change) )\nend\n\ndefine Paint Sprite\nswitch costume to (EMOJI)\npoint in direction ((Direction) + (90))\n\ndefine Timeout (max)\nif <(username) = [ImRohan10187]> then\n    if <(Timeout) > [0]> then\n        set [timeout v] to [0]\n    end\n    stop [this script v]\nend\nif <<(Right) > [0]> or <<(Left) > [0]> or <<(Up) > [0]> or <(Down) > [0]>>>> then\n    set [timeout v] to [0]\n    stop [this script v]\nend\nchange [timeout v] by (1)\nif <(Timeout) > (([abs v] of (max) ) - (1))> then\n    set [timeout v] to ([abs v] of (max) )\n    broadcast (Timeout v)\nend\n\ndefine Game Start at x: (x) y: (y)\nset [x v] to (x)\nset [y v] to (y)\n\ndefine Analyse Position | Checkpoint\nAnalyse Start X\nAnalyse Start Y\nGame Start at x: (Start X) y: (Start Y)\n\ndefine Add Data\ndelete all of [code v]\nrepeat (9)\n    add [] to [code v]\nend\nset [icode v] to [1]\nrepeat (length of [a to z v])\n    add (item (iCode) of [a to z v]) to [code v]\n    change [icode v] by (1)\nend\nset [icode v] to [0]\nrepeat (10)\n    add (iCode) to [code v]\n    change [icode v] by (1)\nend\nset [icode v] to [1]\nrepeat (length of [symbols v])\n    add (item (iCode) of [symbols v]) to [code v]\n    change [icode v] by (1)\nend\nSetup Checkpoints\n\ndefine Analyse Start X\nset [start x v] to []\nset [start idx v] to [1]\nset [start letter # v] to [0]\nrepeat (length of (item (CHECKPOINT) of [checkpoints v]))\n    set [start letter # v] to (letter (Start idx) of (item (CHECKPOINT) of [checkpoints v]))\n    if <(Start Letter #) = [,]> then\n        stop [this script v]\n    end\n    set [start x v] to (join (Start X) (Start Letter #))\n    change [start idx v] by (1)\nend\n\ndefine Analyse Start Y\nset [start y v] to []\nset [start letter # v] to (letter ((Start idx) + (1)) of (item (CHECKPOINT) of [checkpoints v]))\nrepeat ((length of (item (CHECKPOINT) of [checkpoints v])) - (Start idx))\n    set [start y v] to (join (Start Y) (Start Letter #))\n    change [start idx v] by (1)\n    set [start letter # v] to (letter ((Start idx) + (1)) of (item (CHECKPOINT) of [checkpoints v]))\nend\n\ndefine Hitbox\nswitch costume to (hitbox v)\npoint in direction (90)\n\ndefine Setup Checkpoints\ndelete all of [checkpoints v]\nadd [0,0] to [checkpoints v]\nadd [1685,-62] to [checkpoints v]\nadd [2880,-65] to [checkpoints v]\nadd [4115,-85] to [checkpoints v]\nadd [5430,-85] to [checkpoints v]\nadd [6342,55] to [checkpoints v]\nadd [6760,55] to [checkpoints v]\nadd [7780,700] to [checkpoints v]\nadd [9035,1380] to [checkpoints v]\n\ndefine Screen Shake (duration) (intensity) (x) (y)\nset [screen shake 1 v] to ((FPS) * ([abs v] of (duration) ))\nset [screen shake 0 v] to ([abs v] of (Screen Shake 1) )\nrepeat ([abs v] of (Screen Shake 0) )\n    set [camera x v] to ((x) + ((Screen Shake 0) * (pick random ((0) - ([abs v] of (intensity) )) to ([abs v] of (intensity) ))))\n    set [camera y v] to ((y) + ((Screen Shake 0) * (pick random ((0) - ([abs v] of (intensity) )) to ([abs v] of (intensity) ))))\n    change [screen shake 0 v] by (-1)\n    change [fade v] by ([ceiling v] of ((100) / ([abs v] of (Screen Shake 1) )) )\n    set [ghost v] effect to ([abs v] of (Fade) )\n    Position\n    broadcast (Frame v)\n    go to [front v] layer\nend\n\nwhen flag clicked\nset [fps v] to [30]\nset [ifps v] to [0]\nforever\n    FPS\nend\n\ndefine FPS\nchange [ifps v] by (1)\nwait (0) seconds\nif <(timer) > [1]> then\n    reset timer\n    set [fps v] to (ifps)\n    set [ifps v] to [0]\nend\n\ndefine Collision Detection\ndelete all of [collisions v]\nset [collision v] to (<<touching ((item (1) of [platform types v]) v)?> or <touching ((item (4) of [platform types v]) v)?>> + (0))\nif <(Collision) = [1]> then\n    if <touching ((item (1) of [platform types v]) v)?> then\n        set [collision v] to [1]\n    end\n    if <touching ((item (4) of [platform types v]) v)?> then\n        set [collision v] to [4]\n    end\nend\n\ndefine Game Setup\nAdd Data\nbroadcast (Reset v) and wait\nbroadcast (Setup v) and wait\nGame Start\nSpawn [10] [2]\n\ndefine Game Loop\nrepeat until <(END) > []>\n    Frame\n    broadcast (Frame v)\nend\n\ndefine Game End\nif <(END) = [Win]> then\n    Game Win\nelse\n    if <(END) = [Die]> then\n        Game Die\n    else\n        set [end v] to []\n    end\nend\n\ndefine Change Frame\nchange [move frame v] by (1)\nchange [frame v] by (1)\n\nwhen flag clicked\nAdd Chat Options\nset [chat v] to [0]\nset [chat open v] to [0]\nset [chat dur v] to [3]\nforever\n    Chat\nend\n\ndefine Add Chat Options\ndelete all of [chat v]\nadd [Hey! 👋] to [chat v]\nadd [Come with Me! 🤗] to [chat v]\nadd [Ok! 😊] to [chat v]\nadd [Nice! 👏] to [chat v]\nadd [Look at Me! 👀] to [chat v]\nadd [Hard! 🤥] to [chat v]\nadd [Lol 🤣] to [chat v]\nadd [Bye! 🤝] to [chat v]\nadd [No Thank You 😇] to [chat v]\n\ndefine Chat\nif <(CHAT OPEN) = [0]> then\n    stop [this script v]\nend\nif <key (1 v) pressed?> then\n    Say Chat [1]\nelse\n    if <key (2 v) pressed?> then\n        Say Chat [2]\n    else\n        if <key (3 v) pressed?> then\n            Say Chat [3]\n        else\n            if <key (4 v) pressed?> then\n                Say Chat [4]\n            else\n                if <key (5 v) pressed?> then\n                    Say Chat [5]\n                else\n                    if <key (6 v) pressed?> then\n                        Say Chat [6]\n                    else\n                        if <key (7 v) pressed?> then\n                            Say Chat [7]\n                        else\n                            if <key (8 v) pressed?> then\n                                Say Chat [8]\n                            else\n                                if <key (9 v) pressed?> then\n                                    Say Chat [9]\n                                else\n                                    set [chat v] to [0]\n                                end\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\n\ndefine Say Chat (chat)\nset [chat v] to (chat)\nsay (item (CHAT) of [chat v])\nwait (CHAT DUR) seconds\nsay []\nset [chat v] to [0]\n\nwhen [r v] key pressed\nif <not <(username) = [ImRohan10187]>> then\n    if <(END) = []> then\n        set [end v] to [Restart]\n    end\nelse\n    if <(EDITOR) = [0]> then\n        if <(END) = []> then\n            set [end v] to [Restart]\n        end\n    else\n        broadcast (Reset v) and wait\n        broadcast (Setup v) and wait\n    end\nend\n\ndefine Enable Parachute (key trigger pressed)\nset [parachute v] to (<<key ((join [] (key trigger pressed)) v) pressed?> and <<[items bought v] contains [Parachute]?> and <<(SPEED Y) < [-1]> and <not <touching ((join [] (item (5) of [platform types v])) v)?>>>>> + (0))\n\ndefine Handle - God Mode\nif <not <(username) = [ImRohan10187]>> then\n    stop [this script v]\nend\nif <not <(GOD MODE) = [1]>> then\n    stop [this script v]\nend\nset [collected v] to (COLLECTED MAX)\nset [item index v] to [1]\ndelete all of [items bought v]\nrepeat (length of [items available v])\n    add (item (Item Index) of [items available v]) to [items bought v]\n    change [item index v] by (1)\nend\n\nwhen [h v] key pressed\nif <not <(username) = [ImRohan10187]>> then\n    stop [this script v]\nend\nif <not <(END) = []>> then\n    stop [this script v]\nend\nask [Set Position of Player? \[Y/N\]] and wait\nif <not <(answer) = [Y]>> then\n    stop [this script v]\nend\nset [editor v] to [1]\nask [Set Player X to \( \)] and wait\nif <(answer) = []> then\n    stop [this script v]\nend\nset [x v] to (round (answer))\nask [Set Player Y to \( \)] and wait\nif <(answer) = []> then\n    stop [this script v]\nend\nset [y v] to (round (answer))\n\ndefine Editor Values\nif <not <(username) = [ImRohan10187]>> then\n    show list [editor mode v]\n    show list [editor values v]\n    set [vars visible? v] to [0]\n    stop [this script v]\nend\nif <not <key (v v) pressed?>> then\n    delete all of [editor mode v]\n    delete all of [editor values v]\n    show list [editor mode v]\n    show list [editor values v]\n    set [vars visible? v] to [0]\n    stop [this script v]\nend\nset [vars visible? v] to [1]\nEditor Add Modes\nEditor Add Values\nhide list [editor mode v]\nhide list [editor values v]\n\ndefine Editor Add Modes\ndelete all of [editor mode v]\nadd [Emoji =] to [editor mode v]\nadd [Clones =] to [editor mode v]\nadd [FPS =] to [editor mode v]\nadd [Mouse =] to [editor mode v]\nadd [Cash =] to [editor mode v]\nadd [Mute =] to [editor mode v]\nadd [Player Dir =] to [editor mode v]\nadd [Player X =] to [editor mode v]\nadd [Player Y =] to [editor mode v]\n\ndefine Editor Add Values\ndelete all of [editor values v]\nadd (EMOJI) to [editor values v]\nadd (CLONES) to [editor values v]\nadd (FPS) to [editor values v]\nadd (MOUSE) to [editor values v]\nadd (COLLECT DISPLAY) to [editor values v]\nadd (MUTE) to [editor values v]\nadd (Direction) to [editor values v]\nadd (x) to [editor values v]\nadd (y) to [editor values v]\n\nif <not <(username) = [ImRohan10187]>> then\n\n@Others\n\ndefine Begin Decode of (encoded)\nset [encoded v] to (encoded)\nset [letter # v] to [1]\n\ndefine Value = Read from Encoded\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\nset rotation style [all around v]\nset [ghost v] effect to (10)\npoint in direction (90)\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)\n    change [clones v] by (1)\nend\n\nwhen I receive [begin v]\nforever\n    if <(MY PLAYER #) = (player #)> then\n        set [offline v] to [100]\n    else\n        Frame\n    end\nend\n\ndefine Value = Cloud # (player)\nif <(player) = [1]> then\n    set [value v] to (☁ Player 1)\nelse\n    if <(player) = [2]> then\n        set [value v] to (☁ Player 2)\n    else\n        if <(player) = [3]> then\n            set [value v] to (☁ Player 3)\n        else\n            if <(player) = [4]> then\n                set [value v] to (☁ Player 4)\n            else\n                if <(player) = [5]> then\n                    set [value v] to (☁ Player 5)\n                else\n                    if <(player) = [6]> then\n                        set [value v] to (☁ Player 6)\n                    else\n                        if <(player) = [7]> then\n                            set [value v] to (☁ Player 7)\n                        else\n                            if <(player) = [8]> then\n                                set [value v] to (☁ Player 8)\n                            else\n                                if <(player) = [9]> then\n                                    set [value v] to (☁ Player 9)\n                                else\n                                    if <(player) = [10]> then\n                                        set [value v] to (☁ Player 10)\n                                    end\n                                end\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\n\nwhen I receive [setup others v]\nSetup Players\n\ndefine Frame\nValue = Cloud # (player #)\nif <(join (Value) [A]) = (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 (Value) [A])\n    if <(offline) > [99]> then\n        show\n    end\n    set [offline v] to [0]\nend\nBegin Decode of (Value)\nValue = Read from Encoded\nValue = Read from Encoded\nswitch costume to (Value)\nValue = Read from Encoded\npoint in direction (Value)\nValue = Read from Encoded\nif <<([abs v] of (x position) ) > [239]> or <([abs v] of (y position) ) > [179]>> then\n    go to [front v] layer\n    point towards (player v)\n    switch costume to (arrow v)\n    if on edge, bounce\n    set [ghost v] effect to (0)\n    think []\nelse\n    set [ghost v] effect to (10)\n    if <(NAMES) > [0]> then\n        think (Value)\n    else\n        think []\n    end\nend\nValue = Read from Encoded\nset size to (Value) %\nValue = Read from Encoded\nset [ghost v] effect to (Value)\nValue = Read from Encoded\nset [brightness v] effect to (Value)\nValue = Read from Encoded\nset x to ((Value) - (CAMERA X))\nValue = Read from Encoded\nset y to ((Value) - (CAMERA Y))\nValue = Read from Encoded\nbroadcast (Decode Chat v)\n\nwhen I receive [join game v]\nValue = Cloud # (player #)\nset [last value v] to (join (Value) [A])\nwait (3) seconds\nValue = Cloud # (player #)\nif <(join (Value) [A]) = (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        set [names v] to (((NAMES) + (1)) mod (2))\n    end\n    wait until <not <key (n v) pressed?>>\nend\n\ndefine Decode Chat (chat)\nif <not <(chat) = [0]>> then\n    if <<([abs v] of (x position) ) > [239]> or <([abs v] of (y position) ) > [179]>> then\n        say []\n    else\n        say (item (Value) of [chat v])\n    end\nend\n\nwhen I receive [decode chat v]\nDecode Chat (Value)\n\nwhen I receive [win v]\nforever\n    think []\n    say []\nend\n\n@Platforms\n\nwhen I receive [frame v]\nPosition ((x) - (CAMERA X)) ((y) - (CAMERA Y)) (type)\n\nwhen I receive [reset v]\ndelete this clone\n\nwhen I receive [setup v]\nset [x v] to [0]\nset [y v] to [0]\nset [type v] to [0]\nSetup\n\ndefine Setup\nif <(LEVEL) = [1]> then\n    New Platform: [1.1] at x: [0] y: [0]\n    New Platform: [1.2] at x: [485] y: [0]\n    New Platform: [1.3] at x: [485] y: [0]\n    New Platform: [1.4] at x: [525] y: [0]\n    New Platform: [1.5] at x: [400] y: [20]\n    New Platform: [1.6] at x: [400] y: [20]\n    New Platform: [1.7] at x: [800] y: [-20]\n    New Platform: [1.8] at x: [500] y: [300]\n    New Platform: [1.8] at x: [210] y: [-95]\n    New Platform: [1.8] at x: [210] y: [-95]\n    New Platform: [1.9] at x: [320] y: [-130]\n    New Platform: [1.10] at x: [200] y: [-50]\n    New Platform: [1.10] at x: [150] y: [0]\n    New Platform: [1.10] at x: [150] y: [0]\n    New Platform: [1.10] at x: [150] y: [0]\n    New Platform: [1.11] at x: [400] y: [50]\n    New Platform: [1.12] at x: [510] y: [0]\n    New Platform: [1.13] at x: [450] y: [-50]\n    New Platform: [1.14] at x: [300] y: [-60]\n    New Platform: [1.13] at x: [115] y: [60]\n    New Platform: [1.15] at x: [105] y: [713]\n    New Platform: [1.15] at x: [-135] y: [0]\n    New Platform: [1.15] at x: [-135] y: [0]\n    New Platform: [1.15] at x: [-135] y: [0]\n    New Platform: [1.16] at x: [-101] y: [33]\n    New Platform: [1.15] at x: [876] y: [-33]\n    New Platform: [1.15] at x: [135] y: [0]\n    New Platform: [1.15] at x: [135] y: [0]\n    New Platform: [1.15] at x: [135] y: [0]\n    New Platform: [1.15] at x: [135] y: [0]\n    New Platform: [1.17] at x: [160] y: [-18]\n    New Platform: [1.18] at x: [300] y: [-650]\n    New Platform: [1.19] at x: [310] y: [400]\n    New Platform: [1.20] at x: [433] y: [-86]\nelse\n    New Platform: [1.1] at x: [0] y: [0]\nend\n\ndefine New Platform: (platform) at x: (x) y: (y)\nchange [x v] by (x)\nchange [y v] by (y)\nset [type v] to (platform)\ncreate clone of (_myself_ v)\nchange [clones v] by (1)\n\ndefine Position (x) (y) (costume)\nswitch costume to (big v)\ngo to x: (x) y: (y)\nswitch costume to (costume)\n\n@Enemy\n\nwhen I receive [frame v]\nSet Size (Type)\nEnemy - Frame\n\nwhen I receive [reset v]\ndelete this clone\n\ndefine Position (x) (y) (type)\nswitch costume to (big v)\ngo to x: (x) y: (y)\nswitch costume to (join (type) (join [ ] [Hitbox]))\nif <touching (player v)?> then\n    if <(EDITOR) = [0]> then\n        if <(GOD MODE) = [0]> then\n            set [end v] to [Die]\n        end\n    end\nend\nswitch costume to (type)\n\nwhen I receive [setup v]\nSetup Enemies\n\ndefine Setup\nif <(LEVEL) = [1]> then\n    _New Spike at x: [603.5] y: [-90]\n    _New Spike at x: [640.5] y: [-90]\n    _New Enemy at x: [1850] y: [-70]\n    _New Enemy at x: [1885] y: [-70]\n    _New Enemy at x: [1920] y: [-70]\n    _New Spike at x: [2225] y: [50]\n    _New Spike at x: [2450] y: [-15]\n    _New Spike at x: [2675] y: [50]\n    _New Saw at x: [2972] y: [-82] Turn Speed: [] Size: [50]\n    _New Spike at x: [3105] y: [-70]\n    _New Spike at x: [3140] y: [-70]\n    _New Spike at x: [3175] y: [-70]\n    _New Spike at x: [3210] y: [-70]\n    _New Enemy at x: [4245] y: [-90]\n    _New Enemy at x: [4280] y: [-90]\n    _New Saw at x: [5270] y: [-100] Turn Speed: [] Size: []\n    _New Saw at x: [5330] y: [-100] Turn Speed: [] Size: []\n    _New Moving Saw | Pos 1 [5800] [-100] Pos 2 [6100] [-100] | Speed: [4] | Turn: [10]\n    _New Moving Saw | Pos 1 [6445] [-50] Pos 2 [6660] [-50] | Speed: [3] | Turn: [10]\n    _New Moving Saw | Pos 1 [6660] [-50] Pos 2 [6445] [-50] | Speed: [3] | Turn: [10]\n    _New Moving Saw | Pos 1 [6380] [815] Pos 2 [6380] [705] | Speed: [7] | Turn: [10]\n    _New Saw at x: [6357.5] y: [850] Turn Speed: [] Size: []\n    _New Moving Saw | Pos 1 [6340] [705] Pos 2 [6340] [815] | Speed: [7] | Turn: [10]\n    _New Moving Enemy | Pos 1 [8130] [-95] Pos 2 [8370] [-95] | Speed: [5]\n    _New Enemy at x: [8582.5] y: [555]\n    _New Enemy at x: [8617.5] y: [555]\n    _New Moving Enemy | Pos 1 [9180] [1480] Pos 2 [9400] [1480] | Speed: [5]\n    _New Moving Enemy | Pos 1 [9400] [1480] Pos 2 [9180] [1480] | Speed: [5]\nend\nUse Data\n\ndefine New Danger: (type) at x: (x) y: (y) Size: (size) Turn: (turn speed)\nadd (x) to [enemy x v]\nadd (y) to [enemy y v]\nadd (type) to [enemy type v]\nadd (size) to [enemy size v]\nadd (turn speed) to [enemy turn speed v]\nchange [id v] by (1)\nadd (id) to [enemy ids v]\n\ndefine Use Data\nset [index v] to [0]\nrepeat (length of [enemy ids v])\n    change [index v] by (1)\n    set [x v] to (item (index) of [enemy x v])\n    set [y v] to (item (index) of [enemy y v])\n    set [type v] to (item (index) of [enemy type v])\n    set [turn speed v] to (item (index) of [enemy turn speed v])\n    if <(Turn Speed) = []> then\n        set [turn speed v] to (tsDalt)\n    end\n    if <(Type) = [Saw]> then\n        set [size v] to (item (index) of [enemy size v])\n        if <(Size) = []> then\n            set [size v] to (sDalt)\n        end\n    end\n    create clone of (_myself_ v)\n    change [clones v] by (1)\nend\n\ndefine Set Size (type)\nif <(type) = [Spike]> then\n    set size to (200) %\nelse\n    if < (type) contains [Enemy]?> then\n        set size to ([size v] of [player v]) %\n    else\n        set size to (130) %\n    end\nend\n\ndefine Enemy - Frame\nset [ended? v] to (<not <(END) = []>> + (0))\nif <(ended?) = [1]> then\n    Position ((x) - (CAMERA X)) ((y) - (CAMERA Y)) (Type)\n    Handle Moving Enemies\n    stop [this script v]\nend\nif <(Type) = [Spike]> then\n    Position ((x) - (CAMERA X)) ((y) - (CAMERA Y)) (Type)\n    point in direction (90)\nend\nif <(Type) = [Saw]> then\n    Position ((x) - (CAMERA X)) ((y) - (CAMERA Y)) (Type)\n    turn right (Turn Speed) degrees\nend\nif <(Type) = [Enemy]> then\n    Position ((x) - (CAMERA X)) ((y) - (CAMERA Y)) (Type)\nend\nHandle Moving Enemies\n\ndefine New Moving Danger | Pos 1 (x1) (y1) Pos 2 (x2) (y2) Speed: (speed) Turn: (turn) Type: (type)\nset [x1 v] to (x1)\nset [y1 v] to (y1)\nset [x2 v] to (x2)\nset [y2 v] to (y2)\nset [speed0 v] to (speed)\nset [turn speed v] to (turn)\nset [type v] to (type)\ncreate clone of (_myself_ v)\nchange [clones v] by (1)\n\ndefine Handle Moving Enemies\nif <not < (Type) contains [Moving]?>> then\n    stop [this script v]\nend\nset [speed1 v] to ((([sin v] of ((MOVE FRAME) * (Speed0)) ) + (1)) / (2))\nPosition (((x1) + (((x2) - (x1)) * (Speed1))) - (CAMERA X)) (((y1) + (((y2) - (y1)) * (Speed1))) - (CAMERA Y)) (Type)\nif <(ended?) = [0]> then\n    if < (Type) contains [Enemy]?> then\n        if <<<(x1) > (x2)> and <(Speed0) > [0]>> or <<(x1) < (x2)> and <(Speed0) < [0]>>> then\n            point in direction ((direction) - (([cos v] of ((MOVE FRAME) * (Speed0)) ) * (5)))\n        else\n            point in direction ((direction) + (([cos v] of ((MOVE FRAME) * (Speed0)) ) * (5)))\n        end\n    end\n    if < (Type) contains [Saw]?> then\n        point in direction ((direction) + (Turn Speed))\n    end\nend\n\ndefine _New Spike at x: (x) y: (y)\nNew Danger: [Spike] at x: (x) y: (y) Size: [200] Turn: []\n\ndefine _New Enemy at x: (x) y: (y)\nNew Danger: [Enemy] at x: (x) y: (y) Size: [150] Turn: []\n\ndefine _New Saw at x: (x) y: (y) Turn Speed: (turn speed) Size: (size)\nif <(size) = []> then\n    New Danger: [Saw] at x: (x) y: (y) Size: (sDalt) Turn: (turn speed)\nelse\n    New Danger: [Saw] at x: (x) y: (y) Size: (size) Turn: (turn speed)\nend\n\ndefine _New Moving Saw | Pos 1 (x1) (y1) Pos 2 (x2) (y2) | Speed: (speed) | Turn: (turn)\nif <(turn) = []> then\n    New Moving Danger | Pos 1 (x1) (y1) Pos 2 (x2) (y2) Speed: (speed) Turn: (tsDalt) Type: [Moving Saw]\nelse\n    New Moving Danger | Pos 1 (x1) (y1) Pos 2 (x2) (y2) Speed: (speed) Turn: (turn) Type: [Moving Saw]\nend\n\ndefine _New Moving Enemy | Pos 1 (x1) (y1) Pos 2 (x2) (y2) | Speed: (speed)\nNew Moving Danger | Pos 1 (x1) (y1) Pos 2 (x2) (y2) Speed: (speed) Turn: [0] Type: [Moving Enemy]\n\ndefine Setup Enemies\nset rotation style [all around v]\ndelete all of [enemy x v]\ndelete all of [enemy y v]\ndelete all of [enemy type v]\ndelete all of [enemy ids v]\ndelete all of [enemy size v]\ndelete all of [enemy turn speed v]\nshow\npoint in direction (90)\nset [id v] to [0]\nset [sdalt v] to [100]\nset [tsdalt v] to [7]\nSetup\nset [x v] to [-999999]\nhide\n\ndefine Check Around Enemy\n\n@Collectables\n\nwhen I receive [play game v]\nSetup Stars\n\nwhen I receive [green flag v]\nReset Stars\n\ndefine Setup\nif <(LEVEL) = [1]> then\n    Stars\nelse\n    New Star at x: [200] y: [0]\nend\nUse Data\n\ndefine New Collectable (collectable) at x: (x) y: (y)\nadd (collectable) to [collectable type v]\nadd (x) to [collectable x v]\nadd (y) to [collectable y v]\nchange [id v] by (1)\nadd (id) to [collectable ids v]\n\nwhen I receive [frame v]\nswitch costume to (big v)\nPosition ((x) - (CAMERA X)) ((y) - (CAMERA Y))\nswitch costume to (join (Type) [ Hitbox])\nset [collect display v] to (join (COLLECTED) (join [/] (COLLECTED MAX)))\nif <touching (player v)?> then\n    if <(EDITOR) = [0]> then\n        if <(Collected) = [No]> then\n            change [collected v] by (1)\n            set [collected v] to [Yes]\n        end\n    end\nend\nif <(COLLECTED) > (COLLECTED MAX)> then\n    set [collected v] to (COLLECTED MAX)\nend\nif <not <(Collected) = [Yes]>> then\n    switch costume to (Type)\nelse\n    set size to (100) %\n    switch costume to (+1 v)\n    change [ghost v] effect by (5)\n    change [faded v] by (5)\n    change [y v] by (3)\n    if <(Faded) > [100]> then\n        change [clones v] by (-1)\n        delete this clone\n    end\nend\n\ndefine Position (x) (y)\ngo to x: (x) y: (y)\n\ndefine Use Data\nset [index v] to [0]\nset [collected max v] to (length of [collectable ids v])\nrepeat (length of [collectable ids v])\n    change [index v] by (1)\n    set [x v] to (item (index) of [collectable x v])\n    set [y v] to (item (index) of [collectable y v])\n    set [type v] to (item (index) of [collectable type v])\n    set [faded v] to [0]\n    set [collected v] to [No]\n    set size to (130) %\n    create clone of (_myself_ v)\n    change [clones v] by (1)\nend\n\ndefine New Star at x: (x) y: (y)\nNew Collectable [Star] at x: (x) y: (y)\n\ndefine Stars\nNew Star at x: [130] y: [-75]\nNew Star at x: [170] y: [-75]\nNew Star at x: [210] y: [-75]\nNew Star at x: [355] y: [60]\nNew Star at x: [480] y: [-75]\nNew Star at x: [520] y: [-75]\nNew Star at x: [620] y: [-5]\nNew Star at x: [912] y: [60]\nNew Star at x: [912] y: [100]\nNew Star at x: [912] y: [140]\nNew Star at x: [1173] y: [200]\nNew Star at x: [1173] y: [240]\nNew Star at x: [1173] y: [280]\nNew Star at x: [1437] y: [60]\nNew Star at x: [1437] y: [100]\nNew Star at x: [1437] y: [140]\nNew Star at x: [1835] y: [-5]\nNew Star at x: [1885] y: [30]\nNew Star at x: [1935] y: [-5]\nNew Star at x: [2055] y: [-60]\nNew Star at x: [2225] y: [140]\nNew Star at x: [2450] y: [80]\nNew Star at x: [2675] y: [140]\nNew Star at x: [3027] y: [65]\nNew Star at x: [3275] y: [3]\nNew Star at x: [3421] y: [295]\nNew Star at x: [3421] y: [335]\nNew Star at x: [3421] y: [375]\nNew Star at x: [3275] y: [50]\nNew Star at x: [3275] y: [90]\nNew Star at x: [3593] y: [385]\nNew Star at x: [3805] y: [290]\nNew Star at x: [4010] y: [195]\nNew Star at x: [4260] y: [0]\nNew Star at x: [4607] y: [50]\nNew Star at x: [4763] y: [50]\nNew Star at x: [4910] y: [50]\nNew Star at x: [5690] y: [-75]\nNew Star at x: [5690] y: [-35]\nNew Star at x: [5690] y: [5]\nNew Star at x: [6553] y: [-20]\nNew Star at x: [6629] y: [704]\nNew Star at x: [6595] y: [704]\nNew Star at x: [6560] y: [704]\nNew Star at x: [7605] y: [704]\nNew Star at x: [7640] y: [704]\nNew Star at x: [7675] y: [704]\nNew Star at x: [8025] y: [-80]\nNew Star at x: [8869] y: [440]\nNew Star at x: [9040] y: [413]\n\nwhen I receive [reset v]\n\nwhen I receive [setup v]\n\nif <not <(username) = [ImRohan10187]>> then\n    stop [this script v]\nend\nif <(END) = [Win]> then\n    Reset Stars\nend\n\nif <not <(username) = [ImRohan10187]>> then\n    stop [this script v]\nend\nif <(END) = [Win]> then\n    Setup Stars\nend\n\ndefine Setup Stars\nshow\nset [collected v] to [0]\nset [collected max v] to [0]\nset [id v] to [0]\nSetup\nset [x v] to [-99999]\nhide\n\ndefine Reset Stars\ndelete all of [collectable x v]\ndelete all of [collectable y v]\ndelete all of [collectable type v]\ndelete all of [collectable ids v]\nset size to (130) %\nrepeat (1)\n    delete this clone\nend\n\n@Checkpoint\n\nwhen I receive [play game v]\nshow\nSetup\nhide\n\ndefine Setup\nset [checkpoint v] to [1]\nset [index v] to [0]\nrepeat (length of [checkpoints v])\n    change [index v] by (1)\n    Analyse Start X (index)\n    Analyse Start Y (index)\n    if <(index) > [1]> then\n        New Checkpoint at x: (Start X) y: (Start Y)\n    end\nend\nset [x v] to [-9999]\n\ndefine New Checkpoint at x: (x) y: (y)\nset [check v] to [Unchecked]\nset [x v] to (x)\nset [y v] to (y)\nchange [checkpoint v] by (1)\ncreate clone of (_myself_ v)\nchange [clones v] by (1)\n\nwhen I receive [frame v]\nPosition ((x) - (CAMERA X)) ((y) - (CAMERA Y))\n\ndefine Position (x) (y)\nswitch costume to (big v)\ngo to x: (x) y: (y)\nswitch costume to (Check)\nif <touching (player v)?> then\n    if <(EDITOR) = [0]> then\n        if <(Check) = [Unchecked]> then\n            set [check v] to [Checked]\n            if <(CHECKPOINT) < (Checkpoint)> then\n                set [checkpoint v] to (Checkpoint)\n            end\n        end\n        switch costume to (Check)\n    end\nend\n\ndefine Analyse Start X (checkpoint)\nset [start x v] to []\nset [start idx v] to [1]\nset [start letter # v] to [0]\nrepeat (length of (item (checkpoint) of [checkpoints v]))\n    set [start letter # v] to (letter (Start idx) of (item (checkpoint) of [checkpoints v]))\n    if <(Start Letter #) = [,]> then\n        stop [this script v]\n    end\n    set [start x v] to (join (Start X) (Start Letter #))\n    change [start idx v] by (1)\nend\n\ndefine Analyse Start Y (checkpoint)\nset [start y v] to []\nset [start letter # v] to (letter ((Start idx) + (1)) of (item (checkpoint) of [checkpoints v]))\nrepeat ((length of (item (checkpoint) of [checkpoints v])) - (Start idx))\n    set [start y v] to (join (Start Y) (Start Letter #))\n    change [start idx v] by (1)\n    set [start letter # v] to (letter ((Start idx) + (1)) of (item (checkpoint) of [checkpoints v]))\nend\n\n@Ladder\n\nwhen I receive [reset v]\ndelete this clone\n\nwhen I receive [setup v]\nshow\ndelete all of [ladder x v]\ndelete all of [ladder y v]\nSetup\nset [x v] to [-999999]\nhide\n\ndefine Setup\nif <(LEVEL) = [1]> then\n    New Ladder at x: [3420] y: [70]\n    New Ladder at x: [3420] y: [190]\n    New Ladder at x: [6905] y: [-110]\n    New Ladder at x: [6905] y: [10]\n    New Ladder at x: [6905] y: [130]\n    New Ladder at x: [6905] y: [250]\n    New Ladder at x: [6905] y: [370]\n    New Ladder at x: [6905] y: [490]\n    New Ladder at x: [6905] y: [610]\n    New Ladder at x: [7000] y: [-110]\n    New Ladder at x: [7000] y: [10]\n    New Ladder at x: [7000] y: [130]\n    New Ladder at x: [7000] y: [250]\n    New Ladder at x: [7000] y: [370]\n    New Ladder at x: [7000] y: [490]\n    New Ladder at x: [7000] y: [610]\n    New Ladder at x: [7000] y: [730]\n    New Ladder at x: [7000] y: [850]\n    New Ladder at x: [7000] y: [970]\n    New Ladder at x: [7000] y: [1090]\n    New Ladder at x: [7095] y: [-110]\n    New Ladder at x: [7095] y: [10]\n    New Ladder at x: [7095] y: [130]\n    New Ladder at x: [7095] y: [250]\n    New Ladder at x: [7095] y: [370]\n    New Ladder at x: [7095] y: [490]\n    New Ladder at x: [7095] y: [610]\nelse\nend\n\ndefine New Ladder at x: (x) y: (y)\nset [x v] to (x)\nset [y v] to (y)\nadd (x) to [ladder x v]\nadd (y) to [ladder y v]\ncreate clone of (_myself_ v)\nchange [clones v] by (1)\n\nwhen I receive [frame v]\nPosition ((x) - (CAMERA X)) ((y) - (CAMERA Y))\n\ndefine Position (x) (y)\nswitch costume to (big v)\ngo to x: (x) y: (y)\npoint in direction (90)\nswitch costume to (ladder v)\n\n@Trampoline\n\nwhen I receive [frame v]\nPosition ((x) - (CAMERA X)) ((y) - (CAMERA Y))\nchange [bounce frame v] by (1)\nif <touching (player v)?> then\n    if <(EDITOR) = [0]> then\n        if <(SPEED Y) < [0]> then\n            set [bounce frame v] to [0]\n            set [speed y v] to (Bounce)\n        end\n    end\nend\nif <(bounce frame) < (time after bounce)> then\n    switch costume to (sprung v)\nend\n\nwhen I receive [reset v]\ndelete this clone\n\nwhen I receive [setup v]\nshow\ndelete all of [trampoline x v]\ndelete all of [trampoline y v]\ndelete all of [trampoline bounce v]\nset [time after bounce v] to [10]\nSetup\nhide\n\ndefine Setup\nif <(LEVEL) = [1]> then\n    New Trampoline at x: [8447] y: [-86] Bounce Y: [40]\n    New Trampoline at x: [9040] y: [379] Bounce Y: [65]\nend\nUse Data\n\ndefine New Trampoline at x: (x) y: (y) Bounce Y: (bounce)\nadd (x) to [trampoline x v]\nadd (y) to [trampoline y v]\nadd (bounce) to [trampoline bounce v]\n\ndefine Use Data\nshow\nset [index v] to [0]\nrepeat (length of [trampoline bounce v])\n    change [index v] by (1)\n    set [x v] to (item (index) of [trampoline x v])\n    set [y v] to (item (index) of [trampoline y v])\n    set [bounce v] to (item (index) of [trampoline bounce v])\n    create clone of (_myself_ v)\n    change [clones v] by (1)\nend\nhide\n\ndefine Position (x) (y)\nswitch costume to (big v)\ngo to x: (x) y: (y)\nswitch costume to (spring v)\n\nNew Trampoline at x: [8447] y: ((-86) + ([abs v] of ((-86) - (265)) )) Bounce Y: [40]\n\n@Jump Through\n\nwhen I receive [reset v]\ndelete this clone\n\nwhen I receive [setup v]\nshow\nSetup\nLadder\nhide\n\ndefine Setup\nif <(LEVEL) = [1]> then\n    New Jump Through Platform [Cloud1] at x: [9035] y: [1350]\n    New Jump Through Platform [Cloud1] at x: [9170] y: [1450]\n    New Jump Through Platform [Cloud1] at x: [9240] y: [1450]\n    New Jump Through Platform [Cloud1] at x: [9310] y: [1450]\n    New Jump Through Platform [Cloud1] at x: [9380] y: [1450]\nend\n\ndefine New Jump Through Platform (type) at x: (x) y: (y)\nset [x v] to (x)\nset [y v] to (y)\nset [type v] to (type)\ncreate clone of (_myself_ v)\nchange [clones v] by (1)\n\nwhen I receive [frame v]\nPosition ((x) - (CAMERA X)) ((y) - (CAMERA Y))\n\ndefine Position (x) (y)\nswitch costume to (big v)\ngo to x: (x) y: (y)\nswitch costume to (Type)\n\ndefine Ladder\nset [index v] to [0]\nrepeat (length of [ladder x v])\n    change [index v] by (1)\n    New Jump Through Platform [Ladder] at x: (item (index) of [ladder x v]) y: ((item (index) of [ladder y v]) + (67))\nend\n\n@Parachute\n\nwhen I receive [frame v]\nParachute - Frame [40]\n\nwhen flag clicked\npoint in direction (90)\nhide\n\ndefine Position (x) (y)\nswitch costume to (big v)\ngo to x: (x) y: (y)\nswitch costume to (parachute v)\n\ndefine Parachute - Frame (offset)\nPosition (([x v] of [player v]) - (CAMERA X)) (([y v] of [player v]) - (CAMERA Y))\nPosition (x position) ((y position) + (offset))\nif <(PARACHUTE) = [1]> then\n    show\nelse\n    hide\nend\nif <not <[items bought v] contains [Parachute]?>> then\n    hide\nend\n\nwhen I receive [die v]\nhide\n\n@Text\n\nwhen I receive [reset v]\ndelete this clone\n\nwhen I receive [setup v]\nshow\nSetup\nset [x v] to [-99999]\nhide\n\ndefine Setup\nif <(LEVEL) = [1]> then\n    New Text [1] at x: [0] y: [100]\n    New Text [2] at x: [0] y: [70]\n    New Text [3] at x: [620] y: [50]\n    New Text [4] at x: [1885] y: [100]\n    New Text [5] at x: [2972] y: [100]\n    New Text [6] at x: [3420] y: [-60]\n    New Text [7] at x: [5720] y: [70]\n    New Text [8] at x: [4140] y: [230]\n    New Text [9] at x: [6758] y: [150]\n    New Text [10] at x: [6500] y: [830]\n    New Text [11] at x: [6500] y: [800]\n    New Text [12] at x: [7000] y: [1250]\n    New Text [13] at x: [8100] y: [730]\n    New Text [14] at x: [8205] y: [30]\n    New Text [15] at x: [8547] y: [650]\n    New Text [16] at x: [9025] y: [1525]\nend\n\nwhen I receive [frame v]\nPosition ((x) - (CAMERA X)) ((y) - (CAMERA Y))\n\ndefine Position (x) (y)\nswitch costume to (big v)\ngo to x: (x) y: (y)\nswitch costume to (Text)\n\ndefine New Text (text) at x: (x) y: (y)\nset [x v] to (x)\nset [y v] to (y)\nset [text v] to (text)\ncreate clone of (_myself_ v)\nchange [clones v] by (1)\n\n@Signs\n\nwhen I receive [reset v]\ndelete this clone\n\nwhen I receive [setup v]\nif <(LEVEL) = [1]> then\nend\n\ndefine New Sign (sign) at x: (x) y: (y) Direction: (direction)\nshow\nset [sign v] to (sign)\nset [x v] to (x)\nset [y v] to (y)\nif <not <(direction) = []>> then\n    set [dir v] to ((direction) + (0))\nelse\n    set [dir v] to [90]\nend\ncreate clone of (_myself_ v)\nset [x v] to [-9999]\nhide\n\nwhen I receive [frame v]\nif < (Sign) contains [Arrow]?> then\n    Frame - Arrow Sign\nend\nif <(Sign) = [Enemy]> then\n    Frame - Enemy Sign\nend\nif <(Sign) = [Saw]> then\n    Frame - Saw Sign\nend\n\ndefine Frame - Arrow Sign\nset size to (90) %\nPosition ((x) - (CAMERA X)) ((y) - (CAMERA Y)) (dir) (Sign)\n\ndefine Position (x) (y) (dir) (costume)\nswitch costume to (big v)\ngo to x: (x) y: (y)\npoint in direction (dir)\nswitch costume to (costume)\n\ndefine Frame - Enemy Sign\nset size to (100) %\nPosition ((x) - (CAMERA X)) ((y) - (CAMERA Y)) [90] [Enemy]\n\ndefine Frame - Saw Sign\nset size to (100) %\nPosition ((x) - (CAMERA X)) ((y) - (CAMERA Y)) [90] [Saw]\n\ndefine New Sign | Right Arrow | at x: (x) y: (y) Dir: (dir)\nNew Sign [Right Arrow] at x: (x) y: (y) Direction: (dir)\n\ndefine New Sign | Left Arrow | at x: (x) y: (y) Dir: (dir)\nNew Sign [Left Arrow] at x: (x) y: (y) Direction: (dir)\n\ndefine New Sign | Enemy | at x: (x) y: (y)\nNew Sign [Enemy] at x: (x) y: (y) Direction: [90]\n\ndefine New Sign | Saw | at x: (x) y: (y)\nNew Sign [Saw] at x: (x) y: (y) Direction: [90]\n\n@Portal\n\nwhen I receive [setup v]\nif <(LEVEL) = [1]> then\n    Portal at x: [9530] y: [1540]\nend\n\ndefine Portal at x: (x) y: (y)\nset [x v] to (x)\nset [y v] to (y)\n\nwhen I receive [frame v]\nPosition ((x) - (CAMERA X)) ((y) - (CAMERA Y))\nif <touching (player v)?> then\n    if <(EDITOR) = [0]> then\n        set [end v] to [Win]\n    end\nend\nshow\n\ndefine Position (x) (y)\nswitch costume to (big v)\ngo to x: (x) y: (y)\nswitch costume to (open v)\n\nwhen flag clicked\nhide\n\n@Game Over\n\nwhen flag clicked\nhide\n\nwhen I receive [win v]\nswitch costume to (blank v)\nset size to (150) %\nswitch costume to (win screen2 v)\nset [ghost v] effect to (50)\nshow\ngo to [front v] layer\nrepeat (10)\n    switch costume to (blank v)\n    change size by (-5)\n    change [ghost v] effect by (-5)\n    switch costume to (win screen2 v)\nend\n\n@Connect\n\nwhen flag clicked\nSetup\nforever\n    wait (1) seconds\n    if <(CONNECT) = [Connected]> then\n        switch costume to (connected v)\n        start sound [Connect v]\n        wait (2) seconds\n        repeat (20)\n            change [ghost v] effect by (5)\n        end\n        hide\n        stop [this script v]\n    else\n        if <(CONNECT) = [Full]> then\n            switch costume to (full v)\n            play sound [Disconnect v] until done\n            stop [this script v]\n        else\n            switch costume to (connecting v)\n        end\n    end\nend\n\ndefine Setup\ngo to x: (0) y: (0)\ngo to x: (170) y: (130)\nswitch costume to (connecting v)\nset size to (100) %\ngo to [front v] layer\nshow\n\nwhen I receive [timeout v]\ngo to x: (0) y: (0)\nswitch costume to (timeout v)\nset size to (100) %\ngo to [front v] layer\nshow\nstop [all v]\n\n@Clouds\n\n@Chat Button\n\nwhen flag clicked\nhide\ngo to x: (-195) y: (-150)\nswitch costume to (chat v)\nset size to (100) %\nshow\nforever\n    if <touching (mouse-pointer v)?> then\n        set size to ((size) + (((120) - (size)) / (5))) %\n    else\n        set size to ((size) + (((100) - (size)) / (5))) %\n    end\nend\n\nwhen flag clicked\nforever\n    if <<<touching (mouse-pointer v)?> and <mouse down?>> or <key (z v) pressed?>> then\n        set [chat open v] to (((CHAT OPEN) + (1)) mod (2))\n        wait until <<not <<touching (mouse-pointer v)?> and <mouse down?>>> and <not <key (z v) pressed?>>>\n    end\nend\n\nwhen flag clicked\nforever\n    point in direction ((90) + (([sin v] of ((WAVE FRAME) * (10)) ) * (5)))\nend\n\n@Chat\n\nwhen flag clicked\nhide\ngo to x: (0) y: (25)\nswitch costume to (big v)\nset size to (1) %\nswitch costume to (chat v)\nset [ghost v] effect to (100)\nset [chat open v] to [0]\nset [chat v] to [0]\nshow\nbroadcast (Chat Close v)\nforever\n    switch costume to (big v)\n    set size to (1) %\n    switch costume to (chat v)\n    hide\n    wait until <(CHAT OPEN) = [1]>\n    set [shop open v] to [0]\n    broadcast (Shop Close v)\n    show\n    repeat (10)\n        set size to ((size) + (((100) - (size)) / (3))) %\n        change [ghost v] effect by (-10)\n        switch costume to (chat v)\n    end\n    wait until <(CHAT OPEN) = [0]>\n    repeat (10)\n        set size to ((size) + (((1) - (size)) / (3))) %\n        change [ghost v] effect by (10)\n    end\n    hide\nend\n\nwhen flag clicked\nset [chat open v] to [0]\nforever\n    if <(CHAT OPEN) = [1]> then\n        go to [front v] layer\n        go [backward v] (1) layers\n    end\nend\n\nwhen I receive [chat close v]\nhide\n\n@Shop Button\n\nwhen flag clicked\nhide\ngo to x: (-125) y: (-150)\nswitch costume to (shop v)\nset size to (100) %\nshow\nforever\n    if <touching (mouse-pointer v)?> then\n        set size to ((size) + (((120) - (size)) / (5))) %\n    else\n        set size to ((size) + (((100) - (size)) / (5))) %\n    end\nend\n\nwhen flag clicked\nforever\n    point in direction ((90) + (([sin v] of ((WAVE FRAME) * (10)) ) * (5)))\nend\n\nwhen flag clicked\nset [shop open v] to [0]\nforever\n    if <<<touching (mouse-pointer v)?> and <mouse down?>> or <key (x v) pressed?>> then\n        set [shop open v] to (((SHOP OPEN) + (1)) mod (2))\n        if <(SHOP OPEN) = [1]> then\n            broadcast (Shop Open v)\n        else\n            broadcast (Shop Close v)\n        end\n        wait until <<not <<touching (mouse-pointer v)?> and <mouse down?>>> and <not <key (x v) pressed?>>>\n    end\nend\n\n@Shop\n\nwhen flag clicked\nOriginal Init\n\ndefine Setup Shop\nNew Shop Item [Shop] at x: ([x position v] of [chat v]) y: ([y position v] of [chat v]) Price: []\nNew Shop Item [1] at x: [-50] y: [50] Price: [0]\nNew Shop Item [2] at x: [-50] y: [15] Price: [1]\nNew Shop Item [3] at x: [-50] y: [-20] Price: [3]\nNew Shop Item [4] at x: [-50] y: [-55] Price: [5]\nNew Shop Item [5] at x: [-50] y: [-90] Price: [6]\nNew Shop Item [6] at x: [0] y: [50] Price: [7]\nNew Shop Item [7] at x: [0] y: [15] Price: [10]\nNew Shop Item [8] at x: [0] y: [-20] Price: [12]\nNew Shop Item [9] at x: [0] y: [-55] Price: [13]\nNew Shop Item [10] at x: [0] y: [-90] Price: [15]\nNew Shop Item [Jump Boost] at x: [53] y: [45] Price: [15]\nNew Shop Item [Speed Boost] at x: [50] y: [-15] Price: [12]\nNew Shop Item [Parachute] at x: [50] y: [-75] Price: [20]\n\ndefine New Shop Item (item) at x: (x) y: (y) Price: (price)\nset [emoji v] to (item)\nset [price v] to (price)\nset [x v] to (x)\nset [y v] to (y)\ncreate clone of (_myself_ v)\nif <not <(emoji) = [Shop]>> then\n    add (emoji) to [skin ids v]\n    add ((round ((Price) * (1))) / (1)) to [item prices v]\nend\nchange [clones v] by (1)\nset [emoji v] to []\nset [price v] to []\nset [x v] to []\nset [y v] to []\n\nwhen I start as a clone\nif <not < [12345678910] contains (emoji)?>> then\n    stop [this script v]\nend\nset size to ([size v] of [player v]) %\nswitch costume to (emoji)\ngo to x: (x) y: (y)\nshow\nforever\n    switch costume to (hitbox v)\n    Sense Touching Mouse\nend\n\ndefine Original Init\nhide\ngo to x: (0) y: (0)\nswitch costume to (blank v)\nset size to (100) %\nset [emoji v] to [1]\ndelete all of [items bought v]\nadd [1] to [items bought v]\ndelete all of [item prices v]\ndelete all of [shop items v]\ndelete all of [skin ids v]\n\nwhen I start as a clone\nif <not <(emoji) = [Shop]>> then\n    stop [this script v]\nend\nset size to (100) %\nswitch costume to (shop v)\ngo to x: (x) y: (y)\nshow\n\ndefine Sense Touching Mouse\nset [touching mouse v] to (<touching (mouse-pointer v)?> + (0))\nswitch costume to (emoji)\nif <(Touching Mouse) = [1]> then\n    switch costume to (join (emoji) [ Shop])\n    go to [front v] layer\n    Buy Shop Item\nelse\n    switch costume to (emoji)\nend\n\ndefine Buy Shop Item\nif <mouse down?> then\n    if <not <[items bought v] contains (emoji)?>> then\n        if <(COLLECTED) > (([abs v] of (Price) ) - (1))> then\n            start sound [Purchased v]\n            change [collected v] by ((0) - ([abs v] of (Price) ))\n            Set Emoji to (emoji) from (EMOJI)\n            add (emoji) to [items bought v]\n            broadcast (Selected v)\n        end\n    else\n        Set Emoji to (emoji) from (EMOJI)\n        broadcast (Selected v)\n    end\nend\n\nwhen I receive [shop open v]\nset [chat open v] to [0]\nbroadcast (Chat Close v)\nSetup Shop\n\nwhen I receive [shop close v]\ndelete all of [item prices v]\ndelete all of [shop items v]\ndelete all of [skin ids v]\ndelete this clone\n\nwhen I start as a clone\nif <not <(emoji) = [Speed Boost]>> then\n    stop [this script v]\nend\nswitch costume to (speed boost v)\nset size to (100) %\ngo to x: (x) y: (y)\nshow\nforever\n    switch costume to (hitbox2 v)\n    Sense Touching Mouse\nend\n\nwhen I start as a clone\nif <not <(emoji) = [Jump Boost]>> then\n    stop [this script v]\nend\nswitch costume to (jump boost v)\nset size to (100) %\ngo to x: (x) y: (y)\nshow\nforever\n    switch costume to (hitbox2 v)\n    Sense Touching Mouse\nend\n\nwhen I start as a clone\nif <not <(emoji) = [Parachute]>> then\n    stop [this script v]\nend\nswitch costume to (parachute v)\nset size to (100) %\ngo to x: (x) y: (y)\nshow\nforever\n    switch costume to (hitbox2 v)\n    Sense Touching Mouse\nend\n\ndefine Set Emoji to (emoji) from (emoji)\nset [emoji v] to (emoji)\nif <not < [12345678910] contains (emoji)?>> then\n    set [emoji v] to (emoji)\nend\n\n@Collectable HUD\n\nwhen flag clicked\nhide\n\nwhen I receive [play game v]\nset [offset star v] to [10]\nStar HUD Symbol\nCollected HUD Numbers\nCollected Max HUD Numbers\n/ HUD Symbol\n\nwhen I start as a clone\nif <(Clone Type) = [Collected]> then\n    set size to (100) %\n    show\n    forever\n        go to x: (((Clone ID) * (13)) - (200)) y: (155)\n        switch costume to (letter (Clone ID) of (COLLECTED))\n        if <(Clone ID) > (length of (round (COLLECTED)))> then\n            set [ghost v] effect to (100)\n        else\n            set [ghost v] effect to (0)\n        end\n    end\nend\n\ndefine Collected HUD Numbers\nset [clone type v] to [Collected]\nClone\n\ndefine Collected Max HUD Numbers\nset [clone type v] to [Collected Max]\nClone\n\ndefine Clone\nset [clone id v] to [0]\nrepeat (2)\n    change [clone id v] by (1)\n    create clone of (_myself_ v)\n    change [clones v] by (1)\nend\n\nwhen I start as a clone\nif <(Clone Type) = [Collected Max]> then\n    set size to (100) %\n    show\n    forever\n        if <(COLLECTED) < [10]> then\n            go to x: (((Clone ID) * (13)) - ((165) + (Offset Star))) y: (155)\n        else\n            go to x: (((Clone ID) * (13)) - ((152) + (Offset Star))) y: (155)\n        end\n        switch costume to (letter (Clone ID) of (COLLECTED MAX))\n        if <(Clone ID) > (length of (round (COLLECTED MAX)))> then\n            set [ghost v] effect to (100)\n        else\n            set [ghost v] effect to (0)\n        end\n    end\nend\n\ndefine / HUD Symbol\nset [clone type v] to [/]\nset [clone id v] to [1]\ncreate clone of (_myself_ v)\n\nwhen I start as a clone\nif <(Clone Type) = [/]> then\n    go to x: (-190) y: (155)\n    set size to (100) %\n    switch costume to (/ v)\n    show\n    forever\n        if <(COLLECTED) < [10]> then\n            go to x: ((-185) + (Offset Star)) y: (155)\n        else\n            go to x: ((-172) + (Offset Star)) y: (155)\n        end\n    end\nend\n\ndefine Star HUD Symbol\nset [clone type v] to [Star]\nset [clone id v] to [1]\ncreate clone of (_myself_ v)\n\nwhen I start as a clone\nif <(Clone Type) = [Star]> then\n    switch costume to (star v)\n    go to x: (-220) y: (155)\n    set size to (100) %\n    show\nend\n\n@Editor\n\nwhen [m v] key pressed\nif <not <(username) = [ImRohan10187]>> then\n    set [mouse v] to [0]\n    set [mouse var shown v] to [No]\n    hide variable [mouse v]\n    stop [this script v]\nend\nif <<([abs v] of (mouse x) ) < [240]> and <([abs v] of (mouse y) ) < [180]>> then\n    set [mouse x v] to (round ((mouse x) + (CAMERA X)))\n    set [mouse y v] to (round ((mouse y) + (CAMERA Y)))\n    set [mouse v] to (join (mouse x) (join [, ] (mouse y)))\n    set [mouse var shown v] to [Yes]\n    show variable [mouse v]\nelse\n    set [mouse var shown v] to [No]\n    hide variable [mouse v]\nend\n\nwhen [0 v] key pressed\nif <not <(username) = [ImRohan10187]>> then\n    set [editor v] to [0]\n    stop [this script v]\nend\nset [editor v] to (((EDITOR) + (1)) mod (2))\n\nwhen flag clicked\nset [wave frame v] to [0]\nforever\n    change [wave frame v] by (1)\nend\n\nwhen [g v] key pressed\nif <not <(username) = [ImRohan10187]>> then\n    set [god mode v] to [0]\n    stop [this script v]\nend\nset [god mode v] to (((GOD MODE) + (1)) mod (2))\n\nwhen flag clicked\nset [mouse v] to [0]\nforever\n    if <([vars visible? v] of [player v]) = [1]> then\n        set [mouse x v] to (round ((mouse x) + (CAMERA X)))\n        set [mouse y v] to (round ((mouse y) + (CAMERA Y)))\n        set [mouse v] to (join (mouse x) (join [, ] (mouse y)))\n    end\nend\n\n@Thumbnail\n\nwhen flag clicked\nswitch costume to (thumbnail2 v)\nset [ghost v] effect to (100)\nset size to (100) %\ngo to x: (0) y: (0)\nshow\nforever\n    Go to Front [Infinity]\nend\n\ndefine Go to Front (layers)\ngo to [front v] layer\ngo [forward v] (layers) layers\n\n@Music\n\nwhen flag clicked\nset [mute v] to [0]\nset [init vol v] to [50]\nset [mute/unmute speed v] to [20]\nset volume to (Init Vol) %\nforever\n    play sound (pick random (1) to (4)) until done\nend\n\nwhen [m v] key pressed\nset [mute v] to (((MUTE) + (1)) mod (2))\nif <(MUTE) = [1]> then\n    Mute (Mute/Unmute Speed)\nelse\n    Unmute (Mute/Unmute Speed)\nend\n\ndefine Mute (speed)\nrepeat (speed)\n    change volume by (() - ([abs v] of ((Init Vol) / (speed)) ))\nend\n\ndefine Unmute (speed)\nrepeat (speed)\n    change volume by ([abs v] of ((Init Vol) / (speed)) )\nend\n\n