EGG PLATFORMER v1.0

Instructions: Super Mario Maker 4 has been released, play it here:\nhttps://scratch.mit.edu/projects/753049043\n\n- Controls -                          FAQ Below! Use it for help.\nMaker Mode -\n  Movement: WASD or Arrows.\n  Use Current Tool: Left Click.\n  Change Tool (Place, Erase and Pick): Q.\n  Switch Items: Scroll Wheel or Click Item Icon.\n  Open Full Item List: V or Click waving dots icon.\n  Navigate Full Item List: Scroll Wheel or Drag Slider.\n  Quick Test Level / Exit Test: E.\n\nPlay Mode - \n  Movement: WASD or Arrows.\n  Jumping / Fly / Float: W / Up Arrow.\n  Crouching / Use Door: S / Down Arrow.\n  Run / Throw / Spin Tail: Space.\n  Sliding: S / Down Arrow while on a slope.\n  Enter Maker mode: E.\n\nHow to Play:\nWhen you click the flag, the game will launch into the menu, pick whether to make a level, or load one. \nIf you choose to make one, the maker will open on an empty screen, where you can make your own level using the tools provided. \nIf you click to load a level, you will be asked to enter a save code, you can use your own from a level code you copied while saving, or you can copy another person's level from the Forum linked in Notes.\n\nFAQ:\nHOW PIPES WORK: Build the entrance and exit pipes using the blocks provided. Then go to the entrance pipe, open the inventory and select the pipe connection icon that matches how you want the entrance to work (direction and if it's 2 way), then place it so the arrow lines up with the pipe. Repeat for the exit pipe. You can mix and match pipe connections, e.g: down pipe leads to right pipe. To use the pipe in game, move the player in the direction the pipe connection goes.\n\nHOW DOORS WORK: Place a door, then place another. They will connect and can be used in game. They can only be entered while the player is on the ground. Locked doors require a key to be collected by the player to open, the key can be used by trying to use a locked door while the player has a spare key.\n\nHOW ? BLOCKS WORK: If you have no powerup, all ? blocks, except for the Star, 1-Up, Vine Plant and P-Switch blocks, will release a mushroom. Once you have the mushroom, the ? blocks will be able to release the other powerups. This is how it works in normal Mario games, so it was done here too.\n\nHOW TO SAVE: While in the maker, click the bottom right button, read the text that appears to learn how to correctly save your code, then click space and your code is shown, where you can copy, use and share it. This system works perfectly, any issues are down to user error.\n\nHOW TO LOAD / USE A CODE: Either copy a code from the forum linked in Notes (triple click it, then right click and copy, or Ctrl + C, include the bold text), or have your own code copied. Then click the Load Level button on the menu and do Ctrl + V to quickly enter your copied code, then click Enter, or click the Tick to load it. You can edit a loaded code by clicking E.\n\nWHAT TO DO IF THE GAME HAS BROKEN (while you were making a level): Click See Inside, send the Save Code broadcast, follow the saving instructions, get your code, then reload the game and enter the code after clicking Load Level. Once loaded, click E to continue editing.\n\nHOW TO MAKE AN END TO YOUR LEVEL: Like in SMB3, there is not a flag at the end, instead there is a brown outline / box which Mario must touch to end the level. It is the last item in the inventory and starts as the last item in the hotbar. It will make a black area that the camera cannot move past too.\n\nExtra Information:\n- You can place a key on an enemy and it will give you that key when it dies for any reason, even if you didn't kill it, this is good for boss rooms.\n- Should the game break, you can save your level by clicking 'See Inside' and sending the Save Code broadcast.\n- You can pick up Koopa Shells, P-Switches and Bob Ombs.\n- The size of your level will not affect it's performance, but using a lot of enemies or pipe connections (even if not on screen) can impact performance slightly. Size can affect how long it takes to load your level though. Basically, feel free to make your level huge.\n\nGame made by @BenjaminWins11. Do not take credit for my work.\n\nExtra Controls - \n  Switch to Place Tool: B\n  Switch to Picker Tool: I

@Stage\n\nwhen I receive [next level v]\nnext backdrop\n\nwhen I receive [start v]\nwait (3) seconds\nswitch backdrop to (backdrop2 v)\n\nwhen flag clicked\nswitch backdrop to (backdrop9 v)\n\n@Level\n\nwhen I receive [start v]\nwait (3) seconds\nshow\ngo to [front v] layer\nswitch costume to (1 v)\n\nwhen flag clicked\nhide\ngo to [back v] layer\n\nwhen I receive [next level v]\nnext costume\n\nwhen flag clicked\nforever\n    if <(Level) = [78]> then\n        switch backdrop to (backdrop2 v)\n    end\nend\n\nwhen flag clicked\nforever\n    if <(Level) = [89]> then\n        switch backdrop to (backdrop3 v)\n    end\nend\n\nwhen flag clicked\nforever\n    if <(Level) = [100]> then\n        broadcast (you win and time c v)\n    end\nend\n\n@Lava\n\nwhen I receive [start v]\nwait (3) seconds\nshow\ngo to [back v] layer\nswitch costume to (coustume1 v)\n\nwhen flag clicked\nforever\n    set [tide v] to [0]\n    repeat (10)\n        change [tide v] by (1)\n    end\n    repeat (20)\n        change [tide v] by (-1)\n    end\n    repeat (10)\n        change [tide v] by (1)\n    end\nend\n\nwhen flag clicked\nforever\n    set y to (Tide)\n    switch costume to (Level)\nend\n\nwhen flag clicked\nhide\ngo to [back v] layer\n\nwhen I receive [next level v]\nnext costume\n\n@Spikes\n\nwhen I receive [start v]\nwait (3) seconds\nshow\ngo to [front v] layer\nswitch costume to (costume 2 v)\n\nwhen flag clicked\nhide\ngo to [back v] layer\n\nwhen I receive [next level v]\nnext costume\n\nwhen flag clicked\nforever\n    if <(Level) = [12]> then\n        go to [back v] layer\n    else\n        go to [front v] layer\n    end\nend\n\nwhen flag clicked\nforever\n    if <(Level) = [45]> then\n        go to [back v] layer\n    else\n        go to [front v] layer\n    end\nend\n\nwhen flag clicked\nforever\n    if <(Level) = [7]> then\n        go to [back v] layer\n    else\n        go to [front v] layer\n    end\nend\n\n@Cube\n\nwhen flag clicked\nhide variable [☁ timer v]\n\nwhen flag clicked\nforever\n    if <(☁ Timer) < (☁ Highscore)> then\n        set [☁ highscore v] to (☁ Timer)\n    end\nend\n\nwhen flag clicked\nset [level v] to [0]\nbroadcast (NEXT LEVEL v)\nforever\n    if <key (left arrow v) pressed?> then\n        change [x vel v] by (-1)\n    end\n    if <key (right arrow v) pressed?> then\n        change [x vel v] by (1)\n    end\n    set [x vel v] to ((x vel) * (0.9))\n    change x by (x vel)\n    if <touching (level v)?> then\n        change y by (1)\n    end\n    if <touching (level v)?> then\n        change y by (1)\n    end\n    if <touching (level v)?> then\n        change y by (1)\n    end\n    if <touching (level v)?> then\n        change y by (1)\n    end\n    if <touching (level v)?> then\n        change y by (-4)\n        change x by ((x vel) * (-1))\n        if <key (up arrow v) pressed?> then\n            if <(x vel) > [0]> then\n                set [x vel v] to [-10]\n            else\n                set [x vel v] to [10]\n            end\n            set [y vel v] to [15]\n        else\n            set [x vel v] to [0]\n        end\n    end\n    if <touching (water v)?> then\n        change [y vel v] by (-0.5)\n    else\n        change [y vel v] by (-1)\n    end\n    change y by (y vel)\n    if <touching (level v)?> then\n        change y by ((y vel) - ((y vel) * (2)))\n        set [y vel v] to [0]\n    end\n    change y by (-1)\n    if <touching (water v)?> then\n        if <key (up arrow v) pressed?> then\n            set [y vel v] to [10]\n        end\n    else\n        if <<touching (level v)?> and <key (up arrow v) pressed?>> then\n            set [y vel v] to [15]\n        end\n    end\n    change y by (1)\n    create clone of (_myself_ v)\n    if <(x position) > [250]> then\n        broadcast (NEXT LEVEL v) and wait\n    end\n    if <touching (spikes v)?> then\n        broadcast (restart v)\n    end\n    if <touching (bounce v)?> then\n        set [y vel v] to [19]\n    end\n    if <touching (enemy v)?> then\n        set [y vel v] to [15]\n    end\nend\n\nwhen I start as a clone\nclear graphic effects\nrepeat (5)\n    change [ghost v] effect by (20)\nend\ndelete this clone\n\nwhen I receive [next level v]\nbroadcast (restart v)\n\nwhen I receive [restart v]\nset [x vel v] to [0]\nset [y vel v] to [0]\ngo to x: (-220) y: (-96)\n\nwhen flag clicked\ngo to x: (-224) y: (-3)\n\nwhen flag clicked\nforever\n    if <touching (lava v)?> then\n        broadcast (restart v)\n    end\nend\n\nwhen flag clicked\nforever\n    if <(Level) = [43]> then\n        broadcast (you win and time c v)\n    end\nend\n\nwhen flag clicked\nforever\n    if <touching (spikes v)?> then\n        broadcast (restart v)\n    end\nend\n\nwhen flag clicked\nhide\ngo to [back v] layer\n\nwhen I receive [start v]\nwait (3) seconds\nplay sound [into the light v] until done\n\nwhen I receive [start v]\nwait (3) seconds\nshow\ngo to [front v] layer\nswitch costume to (1 v)\n\nwhen flag clicked\nforever\n    if <(x position) = [224]> then\n        broadcast (NEXT LEVEL v)\n    end\nend\n\nwhen flag clicked\ngo to x: (-220) y: (-96)\n\nwhen I receive [next level v]\nchange [level v] by (1)\n\nwhen I receive [next level v]\nnext costume\n\n@Bounce\n\ndefine Clone at (x pos) (y pos)\ngo to x: (x pos) y: (y pos)\ncreate clone of (_myself_ v)\n\nwhen I receive [next level v]\nif  then\n    delete this clone\nend\nif <(Level) = [7]> then\n    Clone at [-11] [-71]\nend\n\nwhen flag clicked\nhide\ngo to [back v] layer\n\nwhen I start as a clone\nforever\n    show\n    go to [front v] layer\n    if <touching (cube v)?> then\n        switch costume to (costume2 v)\n        wait (00.1) seconds\n    else\n        switch costume to (costume1 v)\n        wait (00.1) seconds\n    end\nend\n\nwhen flag clicked\nforever\n    switch costume to (Level)\nend\n\nwhen flag clicked\nforever\n    if <(Level) = [13]> then\n        delete this clone\n    end\nend\n\n@Water\n\nwhen flag clicked\nhide\ngo to [back v] layer\n\nwhen flag clicked\nforever\n    if <(Level) = [25]> then\n        show\n        go to [back v] layer\n        switch costume to (costume1 v)\n    end\nend\n\nwhen flag clicked\nset [ghost v] effect to (30)\n\nwhen flag clicked\nforever\n    set [tide 2 v] to [0]\n    repeat (10)\n        change [tide 2 v] by (1)\n    end\n    repeat (20)\n        change [tide 2 v] by (-1)\n    end\n    repeat (10)\n        change [tide 2 v] by (1)\n    end\nend\n\nwhen flag clicked\nforever\n    set y to (Tide 2)\nend\n\nwhen flag clicked\nforever\n    if <(Level) = [31]> then\n        hide\n        go to [back v] layer\n    end\nend\n\n@Enemy\n\nwhen flag clicked\ngo to x: (-224) y: (-3)\n\ndefine Clone at (x pos) (y pos)\ngo to x: (x pos) y: (y pos)\ncreate clone of (_myself_ v)\n\nwhen I start as a clone\nshow\ngo to [front v] layer\nforever\n    if <([x position v] of [cube v]) < (x position)> then\n        change [x vel v] by (-0.5)\n    end\n    if <(x position) < ([x position v] of [cube v])> then\n        change [x vel v] by (0.5)\n    end\n    set [x vel v] to ((x vel) * (0.9))\n    change x by (x vel)\n    if <touching (level v)?> then\n        change y by (1)\n    end\n    if <touching (level v)?> then\n        change y by (1)\n    end\n    if <touching (level v)?> then\n        change y by (1)\n    end\n    if <touching (level v)?> then\n        change y by (1)\n    end\n    if <touching (level v)?> then\n        change y by (-4)\n        change x by ((x vel) * (-1))\n        if <(([y position v] of [cube v]) - (50)) > (y position)> then\n            if <(x vel) > [0]> then\n                set [x vel v] to [-10]\n            else\n                set [x vel v] to [10]\n            end\n            set [y vel v] to [15]\n        else\n            set [x vel v] to [0]\n        end\n    end\n    change [y vel v] by (-1)\n    change y by (y vel)\n    if <touching (level v)?> then\n        change y by ((y vel) - ((y vel) * (2)))\n        set [y vel v] to [0]\n    end\n    change y by (-1)\n    change y by (1)\n    if <touching (spikes v)?> then\n        delete this clone\n    end\n    if <touching (bounce v)?> then\n        set [y vel v] to [19]\n    end\n    if <touching (cube v)?> then\n        change y by (-1)\n        if <<touching (level v)?> and <(([y position v] of [cube v]) - (5)) > (y position)>> then\n            delete this clone\n        else\n            broadcast (restart v)\n        end\n        change y by (1)\n    end\nend\n\nwhen I receive [restart v]\nif  then\n    delete this clone\nend\n\nwhen flag clicked\nhide\n\nwhen I receive [restart v]\nif  then\n    delete this clone\nend\nif <(Level) = [19]> then\n    Clone at [166] [-65]\nend\n\n@You win\n\nwhen flag clicked\nhide\ngo to [back v] layer\n\nwhen I receive [you win and time c v]\nshow\ngo to [front v] layer\nstop [other scripts in sprite v]\nshow variable [timer v]\nset [timer v] to (Timer)\n\nwhen flag clicked\nhide variable [timer v]\n\nwhen I receive [start v]\nwait (3) seconds\nforever\n    wait (1) seconds\n    change [timer v] by (1)\nend\n\nwhen flag clicked\nset [timer v] to [0]\n\n@Thumbnail\n\nwhen flag clicked\nhide\ngo to [back v] layer\n\n@Light\n\nwhen I receive [start v]\nwait (3) seconds\nshow\ngo to [front v] layer\nswitch costume to (1 v)\n\nwhen flag clicked\nforever\n    wait (0.09) seconds\n    repeat until <(size) > [99]>\n        repeat (10)\n            change size by (2)\n        end\n    end\n    wait (0.09) seconds\n    repeat until <(size) < [81]>\n        repeat (10)\n            change size by (-2)\n        end\n    end\nend\n\nwhen I receive [start outro v]\nhide\n\nwhen flag clicked\nhide\n\nwhen flag clicked\nshow\nforever\n    go to [back v] layer\n    go to (cube v)\nend\n\nwhen flag clicked\nhide\ngo to [back v] layer\n\n@leaves\n\nwhen I start as a clone\nswitch costume to (pick random (1) to (2))\nset size to (pick random (40) to (70)) %\nshow\nglide (1.5) secs to x: ((x position) + (pick random (-30) to (30))) y: (-180)\nhide\ndelete this clone\n\nwhen I start as a clone\nforever\n    turn right (pick random (3) to (7)) degrees\nend\n\nwhen flag clicked\nhide\n\nwhen I receive [snow/rain v]\nforever\n    go to x: (pick random (-249) to (249)) y: (180)\n    create clone of (_myself_ v)\n    wait (0.5) seconds\nend\n\nwhen flag clicked\ngo to [front v] layer\n\nwhen I receive [start v]\nwait (3) seconds\nset [ghost v] effect to (pick random (40) to (70))\nbroadcast (Snow/Rain v)\n\n@Intro\n\nwhen I start as a clone\nif <(Clone) = [Particles]> then\n    switch costume to (pick random (29) to (31))\n    set size to (pick random (50) to (150)) %\n    set [ghost v] effect to (pick random (0.) to (5.))\n    set [brightness v] effect to (pick random (-25.) to (100.))\n    go to x: (0) y: (0)\n    point in direction (pick random (-180) to (180))\n    set [x v] to (pick random (10.) to (12.))\n    set [i v] to (pick random (2.) to (9.))\n    go to [front v] layer\n    show\n    repeat until <touching (_edge_ v)?>\n        move (X) steps\n        change y by (I)\n        change [i v] by (-0.4)\n        set [x v] to ((X) * (0.95))\n    end\n    delete this clone\nend\n\ndefine Particles\nset [clone v] to [Particles]\nrepeat (50)\n    create clone of (_myself_ v)\nend\n\nwhen I start as a clone\nif <(Clone) = [Name]> then\n    switch costume to (name v)\n    set size to (50) %\n    clear graphic effects\n    go to [front v] layer\n    go to x: (0) y: (-100)\n    point in direction (0)\n    show\n    repeat (50)\n        go to [front v] layer\n        change size by (((130) - (size)) / (8))\n        change y by (((0) - (y position)) / (8))\n        turn right (((90) - (direction)) / (8)) degrees\n    end\n    set [i v] to [-1]\n    repeat (10)\n        go to [front v] layer\n        change size by (I)\n        change [i v] by (join [-] (([abs v] of (I) ) / (2)))\n        turn right (I) degrees\n    end\n    switch costume to (logo v)\n    repeat (40)\n        go to [front v] layer\n        change size by (((130) - (size)) / (8))\n        turn right (((90) - (direction)) / (8)) degrees\n    end\n    set [i v] to [-1]\n    repeat (20)\n        go to [front v] layer\n        change size by ((I) / (3))\n        change [i v] by (join [-] (([abs v] of (I) ) / (4)))\n        turn right ((I) / (-3)) degrees\n    end\n    delete this clone\nend\n\nwhen flag clicked\nreset timer\nhide\nstart sound [Prismo - Stronger v]\nset volume to (100) %\nclear graphic effects\nset size to (100) %\npoint in direction (90)\ngo to x: (0) y: (0)\nset [clone v] to [Square]\ncreate clone of (_myself_ v)\nwait (1) seconds\nset [clone v] to [Name]\ncreate clone of (_myself_ v)\nwait (0) seconds\nrepeat (2)\n    Spiral spline explosion\n    Particles\n    Rect\n    Spiral spline explosion\nend\nCircle\nrepeat (4)\n    Spiral spline explosion\n    Particles\n    Rect\n    Spiral spline explosion\nend\nCircle\nrepeat (2)\n    Spiral spline explosion\n    Rect\n    Spiral spline explosion\nend\nbroadcast (Start v)\n\nwhen I start as a clone\nif <(Clone) = [Square]> then\n    clear graphic effects\n    show\n    set size to (0) %\n    go to x: (0) y: (300)\n    point in direction (0)\n    switch costume to (square v)\n    repeat (20)\n        change size by (((100) - (size)) / (5))\n        turn right (((90) - (direction)) / (5)) degrees\n        change y by (((0) - (y position)) / (5))\n    end\n    point in direction (90)\n    repeat (12)\n        next costume\n    end\n    repeat (20)\n        switch costume to (blank v)\n        change size by (((2000) - (size)) / (5))\n        switch costume to (square13 v)\n    end\n    wait (3) seconds\n    repeat (20)\n        switch costume to (blank v)\n        change size by (((100) - (size)) / (5))\n        switch costume to (square13 v)\n    end\n    repeat (12)\n        switch costume to ((costume [number v]) - (1))\n        change size by (-5)\n    end\n    set [i v] to [-1]\n    repeat (20)\n        change size by ((I) / (3))\n        change [i v] by (join [-] (([abs v] of (I) ) / (4)))\n        turn right ((I) / (-3)) degrees\n        change y by ((I) / (3))\n    end\n    delete this clone\nend\n\nwhen I start as a clone\nif <(Clone) = [Bursts]> then\n    switch costume to (lineexplosion1 v)\n    clear graphic effects\n    go to [front v] layer\n    go [backward v] (1) layers\n    set [i v] to (pick random (1) to (3))\n    if <(I) = [1]> then\n        set [brightness v] effect to (100)\n    else\n        if <(I) = [2]> then\n            set [brightness v] effect to (25)\n        else\n            set [brightness v] effect to (-25)\n        end\n    end\n    show\n    set [i v] to [20]\n    Animate   x: [0] y: [0] size: [0] rotate: (pick random (-180) to (180)) speed: [1]\n    repeat (2)\n        set [i v] to ((I) * (0.9))\n        move (I) steps\n        Size: [100] speed: [5]\n    end\n    repeat (10)\n        set [i v] to ((I) * (0.9))\n        move (I) steps\n        Size: [100] speed: [5]\n        change [ghost v] effect by (10)\n        next costume\n    end\n    delete this clone\nend\n\ndefine Animate   x: (x) y: (y) size: (s) rotate: (r) speed: (s)\nchange x by (((round (x)) - (round (x position))) / (s))\nchange y by (((round (y)) - (round (y position))) / (s))\nchange size by (((round (s)) - (round (size))) / (s))\nturn right (((round (r)) - (round (direction))) / (s)) degrees\n\ndefine Spiral spline explosion\nset [clone v] to [Bursts]\nrepeat (5)\n    create clone of (_myself_ v)\nend\n\ndefine Size: (s) speed: (spd)\nchange size by (((round (s)) - (round (size))) / (spd))\n\ndefine Rect\nset [clone v] to [Rect]\ncreate clone of (_myself_ v)\n\nwhen I start as a clone\nif <(Clone) = [Rect]> then\n    clear graphic effects\n    show\n    set size to (0) %\n    go to (random position v)\n    point in direction (90)\n    switch costume to (background rect v)\n    repeat until <(round (size)) = [300]>\n        change size by (((300) - (size)) / (15))\n        change [ghost v] effect by (4)\n    end\n    delete this clone\nend\n\nwhen I start as a clone\nif <(Clone) = [Circle]> then\n    clear graphic effects\n    set [brightness v] effect to (100)\n    go to [front v] layer\n    go [backward v] (2) layers\n    show\n    set size to (0) %\n    go to x: (0) y: (0)\n    point in direction (90)\n    switch costume to (circle explosion 1 v)\n    repeat (20)\n        switch costume to (blank v)\n        change size by (((300) - (size)) / (5))\n        switch costume to (circle explosion 1 v)\n    end\n    delete this clone\nend\n\ndefine Circle\nset [clone v] to [Circle]\ncreate clone of (_myself_ v)\nwait (0.1) seconds\nset [clone v] to [Circle 2]\ncreate clone of (_myself_ v)\n\nwhen I start as a clone\nif <(Clone) = [Circle 2]> then\n    clear graphic effects\n    set [brightness v] effect to (0)\n    go to [front v] layer\n    go [backward v] (1) layers\n    show\n    set size to (0) %\n    go to x: (0) y: (0)\n    point in direction (90)\n    switch costume to (circle explosion 1 v)\n    repeat (20)\n        switch costume to (blank v)\n        change size by (((300) - (size)) / (5))\n        switch costume to (circle explosion 1 v)\n    end\n    delete this clone\nend\n\n