☁ 3D Online Platformer V1.2 ☁ [Mobile Friendly]
@Stage\n\nwhen flag clicked\nset [pitch v] effect to (0)\nforever\n    play sound [Nebula v] until done\nend\n\nwhen I receive [end v]\nset [pitch v] effect to (50)\n\nchange [player y vel. v] by (10)\n\n@engine\n\ndefine Usernames\nGet Point (Player x) ((Player y) + (25)) (Player z)\nset pen color to (#000000)\nPhrase (username) starting at ((x1) - (((length of (username)) / (2)) * (10))) (y1) size: [0.7]\nset [__loop v] to [1]\nrepeat ((length of [#cloudlist v]) / (7))\n    Get Point (item ((__loop) + (2)) of [#cloudlist v]) ((item ((__loop) + (3)) of [#cloudlist v]) + (25)) (item ((__loop) + (5)) of [#cloudlist v])\n    set pen color to (#000000)\n    Phrase (item ((__loop) + (1)) of [#cloudlist v]) starting at ((x1) - (((length of (item ((__loop) + (1)) of [#cloudlist v])) / (2)) * (10))) (y1) size: [0.7]\n    change [__loop v] by (7)\nend\nDetect\n\ndefine Draw letter (letter) at x (x) y (y) Size (s)\ngo to x: (x) y: (y)\nset pen size to ((3) * (s))\nif <[a] = (letter)> then\n    pen down\n    go to x: (((5) * (s)) + (x position)) y: (((20) * (s)) + (y position))\n    go to x: (((5) * (s)) + (x position)) y: ((y position) - ((20) * (s)))\n    go to x: (((-2) * (s)) + (x position)) y: (((7) * (s)) + (y position))\n    change x by ((-5) * (s))\n    pen up\nend\nif <[b] = (letter)> then\n    pen down\n    change y by ((20) * (s))\n    change y by ((-20) * (s))\n    change x by ((10) * (s))\n    change y by ((9) * (s))\n    change x by ((-10) * (s))\n    change y by ((2) * (s))\n    change x by ((7) * (s))\n    change y by ((9) * (s))\n    change x by ((-7) * (s))\n    pen up\nend\nif <[c] = (letter)> then\n    pen down\n    change y by ((20) * (s))\n    change y by ((-20) * (s))\n    change x by ((10) * (s))\n    change x by ((-10) * (s))\n    change y by ((20) * (s))\n    change x by ((10) * (s))\n    pen up\nend\nif <[d] = (letter)> then\n    pen down\n    change y by ((20) * (s))\n    change x by ((8) * (s))\n    go to x: (((2) * (s)) + (x position)) y: (((-5) * (s)) + (y position))\n    change y by ((-10) * (s))\n    go to x: (((-2) * (s)) + (x position)) y: (((-5) * (s)) + (y position))\n    change x by ((-8) * (s))\n    pen up\nend\nif <[e] = (letter)> then\n    pen down\n    change y by ((20) * (s))\n    change y by ((-20) * (s))\n    change x by ((10) * (s))\n    change x by ((-10) * (s))\n    change y by ((10) * (s))\n    change x by ((10) * (s))\n    change x by ((-10) * (s))\n    change y by ((10) * (s))\n    change x by ((10) * (s))\n    change x by ((-10) * (s))\n    pen up\nend\nif <[f] = (letter)> then\n    pen down\n    change y by ((20) * (s))\n    change y by ((-20) * (s))\n    change y by ((10) * (s))\n    change x by ((10) * (s))\n    change x by ((-10) * (s))\n    change y by ((10) * (s))\n    change x by ((10) * (s))\n    change x by ((-10) * (s))\n    pen up\nend\nif <[g] = (letter)> then\n    pen down\n    change y by ((20) * (s))\n    change y by ((-20) * (s))\n    change x by ((7) * (s))\n    change y by ((5) * (s))\n    change x by ((-2) * (s))\n    change x by ((4) * (s))\n    change x by ((-2) * (s))\n    change y by ((-5) * (s))\n    change x by ((-7) * (s))\n    change y by ((20) * (s))\n    change x by ((7) * (s))\n    pen up\nend\nif <[h] = (letter)> then\n    pen down\n    change y by ((20) * (s))\n    change y by ((-10) * (s))\n    change x by ((10) * (s))\n    change y by ((10) * (s))\n    change y by ((-20) * (s))\n    pen up\nend\nif <[i] = (letter)> then\n    change x by ((5) * (s))\n    pen down\n    change y by ((20) * (s))\n    change x by ((5) * (s))\n    change x by ((-10) * (s))\n    change x by ((5) * (s))\n    change y by ((-20) * (s))\n    change x by ((5) * (s))\n    change x by ((-10) * (s))\n    change x by ((5) * (s))\n    pen up\nend\nif <[j] = (letter)> then\n    pen down\n    change y by ((10) * (s))\n    change y by ((-10) * (s))\n    change x by ((5) * (s))\n    change y by ((20) * (s))\n    change x by ((-5) * (s))\n    change x by ((10) * (s))\n    pen up\nend\nif <[k] = (letter)> then\n    pen down\n    change y by ((20) * (s))\n    change y by ((-10) * (s))\n    go to x: (((10) * (s)) + (x position)) y: (((-10) * (s)) + (y position))\n    go to x: (((-10) * (s)) + (x position)) y: (((10) * (s)) + (y position))\n    go to x: (((10) * (s)) + (x position)) y: (((10) * (s)) + (y position))\n    pen up\nend\nif <[l] = (letter)> then\n    pen down\n    change y by ((20) * (s))\n    change y by ((-20) * (s))\n    change x by ((10) * (s))\n    pen up\nend\nif <[m] = (letter)> then\n    pen down\n    change y by ((20) * (s))\n    go to x: (((5) * (s)) + (x position)) y: (((-10) * (s)) + (y position))\n    go to x: (((5) * (s)) + (x position)) y: (((10) * (s)) + (y position))\n    change y by ((-20) * (s))\n    pen up\nend\nif <[n] = (letter)> then\n    pen down\n    change y by ((20) * (s))\n    go to x: (((10) * (s)) + (x position)) y: (((-20) * (s)) + (y position))\n    change y by ((20) * (s))\n    pen up\nend\nif <[o] = (letter)> then\n    change y by ((5) * (s))\n    pen down\n    change y by ((10) * (s))\n    go to x: (((2) * (s)) + (x position)) y: (((5) * (s)) + (y position))\n    change x by ((6) * (s))\n    go to x: (((2) * (s)) + (x position)) y: (((-5) * (s)) + (y position))\n    change y by ((-10) * (s))\n    go to x: (((-2) * (s)) + (x position)) y: (((-5) * (s)) + (y position))\n    change x by ((-6) * (s))\n    go to x: (((-2) * (s)) + (x position)) y: (((5) * (s)) + (y position))\n    pen up\nend\nif <[p] = (letter)> then\n    pen down\n    change y by ((15) * (s))\n    go to x: (((2) * (s)) + (x position)) y: (((5) * (s)) + (y position))\n    change x by ((6) * (s))\n    go to x: (((2) * (s)) + (x position)) y: (((-5) * (s)) + (y position))\n    change y by ((-1) * (s))\n    go to x: (((-2) * (s)) + (x position)) y: (((-5) * (s)) + (y position))\n    change x by ((-6) * (s))\n    go to x: (((-2) * (s)) + (x position)) y: (((5) * (s)) + (y position))\n    pen up\nend\nif <[q] = (letter)> then\n    change y by ((5) * (s))\n    pen down\n    change y by ((10) * (s))\n    go to x: ((2) + (x position)) y: (((5) * (s)) + (y position))\n    change x by ((6) * (s))\n    go to x: ((2) + (x position)) y: (((-5) * (s)) + (y position))\n    change y by ((-10) * (s))\n    go to x: ((-2) + (x position)) y: ((-5) + (y position))\n    change x by ((-6) * (s))\n    go to x: ((-2) + (x position)) y: (((5) * (s)) + (y position))\n    pen up\n    change x by ((6) * (s))\n    pen down\n    go to x: (((5) * (s)) + (x position)) y: (((-5) * (s)) + (y position))\n    pen up\nend\nif <[r] = (letter)> then\n    pen down\n    change y by ((15) * (s))\n    go to x: (((2) * (s)) + (x position)) y: (((5) * (s)) + (y position))\n    change x by ((6) * (s))\n    go to x: (((2) * (s)) + (x position)) y: (((-5) * (s)) + (y position))\n    change y by ((-1) * (s))\n    go to x: (((-2) * (s)) + (x position)) y: (((-5) * (s)) + (y position))\n    change x by ((-6) * (s))\n    go to x: (((-2) * (s)) + (x position)) y: (((5) * (s)) + (y position))\n    change y by ((-3) * (s))\n    go to x: (((10) * (s)) + (x position)) y: (((-11) * (s)) + (y position))\n    pen up\nend\nif <[s] = (letter)> then\n    pen down\n    change y by ((2) * (s))\n    change y by ((-2) * (s))\n    change x by ((10) * (s))\n    change y by ((10) * (s))\n    change x by ((-10) * (s))\n    change y by ((10) * (s))\n    change x by ((10) * (s))\n    change y by ((-2) * (s))\n    change y by ((2) * (s))\n    pen up\nend\nif <[t] = (letter)> then\n    change x by ((5) * (s))\n    pen down\n    change y by ((20) * (s))\n    change x by ((5) * (s))\n    change x by ((-10) * (s))\n    pen up\nend\nif <[u] = (letter)> then\n    change y by ((5) * (s))\n    pen down\n    change y by ((15) * (s))\n    pen up\n    change x by ((10) * (s))\n    pen down\n    change y by ((-15) * (s))\n    go to x: (((-2) * (s)) + (x position)) y: (((-5) * (s)) + (y position))\n    change x by ((-6) * (s))\n    go to x: (((-2) * (s)) + (x position)) y: (((5) * (s)) + (y position))\n    pen up\n    change x by ((10) * (s))\n    pen down\n    change y by ((-5) * (s))\n    pen up\nend\nif <[v] = (letter)> then\n    change y by ((20) * (s))\n    pen down\n    go to x: (((5) * (s)) + (x position)) y: (((-20) * (s)) + (y position))\n    go to x: (((5) * (s)) + (x position)) y: (((20) * (s)) + (y position))\n    pen up\nend\nif <[w] = (letter)> then\n    change y by ((20) * (s))\n    pen down\n    go to x: (((2.5) * (s)) + (x position)) y: (((-20) * (s)) + (y position))\n    go to x: (((2.5) * (s)) + (x position)) y: (((20) * (s)) + (y position))\n    go to x: (((2.5) * (s)) + (x position)) y: (((-20) * (s)) + (y position))\n    go to x: (((2.5) * (s)) + (x position)) y: (((20) * (s)) + (y position))\n    pen up\nend\nif <[x] = (letter)> then\n    change y by ((20) * (s))\n    pen down\n    go to x: (((10) * (s)) + (x position)) y: (((-20) * (s)) + (y position))\n    pen up\n    change x by ((-10) * (s))\n    pen down\n    go to x: (((10) * (s)) + (x position)) y: (((20) * (s)) + (y position))\n    pen up\nend\nif <[y] = (letter)> then\n    change x by ((5) * (s))\n    pen down\n    change y by ((10) * (s))\n    go to x: (((5) * (s)) + (x position)) y: (((10) * (s)) + (y position))\n    go to x: (((-5) * (s)) + (x position)) y: (((-10) * (s)) + (y position))\n    go to x: (((-5) * (s)) + (x position)) y: (((10) * (s)) + (y position))\n    pen up\nend\nif <[z] = (letter)> then\n    pen down\n    change x by ((10) * (s))\n    go to x: (((-10) * (s)) + (x position)) y: (((20) * (s)) + (y position))\n    change x by ((10) * (s))\n    pen up\nend\nif <[:] = (letter)> then\n    change x by ((5) * (s))\n    change y by ((5) * (s))\n    pen down\n    pen up\n    change y by ((10) * (s))\n    pen down\n    pen up\nend\nif <[1] = (letter)> then\n    change x by ((5) * (s))\n    pen down\n    change y by ((20) * (s))\n    go to x: (((-5) * (s)) + (x position)) y: (((-5) * (s)) + (y position))\n    pen up\nend\nif <[2] = (letter)> then\n    pen down\n    change x by ((10) * (s))\n    change x by ((-10) * (s))\n    change y by ((10) * (s))\n    change x by ((10) * (s))\n    change y by ((10) * (s))\n    change x by ((-10) * (s))\n    pen up\nend\nif <[3] = (letter)> then\n    pen down\n    change x by ((10) * (s))\n    change y by ((10) * (s))\n    change x by ((-10) * (s))\n    change x by ((10) * (s))\n    change y by ((10) * (s))\n    change x by ((-10) * (s))\n    pen up\nend\nif <[4] = (letter)> then\n    change x by ((10) * (s))\n    pen down\n    change y by ((10) * (s))\n    change x by ((-10) * (s))\n    change y by ((10) * (s))\n    change y by ((-10) * (s))\n    change x by ((10) * (s))\n    change y by ((10) * (s))\n    pen up\nend\nif <[5] = (letter)> then\n    pen down\n    change x by ((10) * (s))\n    change y by ((10) * (s))\n    change x by ((-10) * (s))\n    change y by ((10) * (s))\n    change x by ((10) * (s))\n    pen up\nend\nif <[6] = (letter)> then\n    pen down\n    change x by ((10) * (s))\n    change y by ((10) * (s))\n    change x by ((-10) * (s))\n    change y by ((-10) * (s))\n    change y by ((20) * (s))\n    pen up\nend\nif <[7] = (letter)> then\n    change y by ((20) * (s))\n    pen down\n    change x by ((10) * (s))\n    change y by ((-20) * (s))\n    pen up\nend\nif <[8] = (letter)> then\n    pen down\n    change x by ((10) * (s))\n    change y by ((10) * (s))\n    change x by ((-10) * (s))\n    change y by ((-10) * (s))\n    change y by ((20) * (s))\n    change x by ((10) * (s))\n    change y by ((-10) * (s))\n    pen up\nend\nif <[9] = (letter)> then\n    change x by ((10) * (s))\n    pen down\n    change y by ((20) * (s))\n    change x by ((-10) * (s))\n    change y by ((-10) * (s))\n    change x by ((10) * (s))\n    pen up\nend\nif <[0] = (letter)> then\n    pen down\n    change y by ((20) * (s))\n    change x by ((10) * (s))\n    change y by ((-20) * (s))\n    change x by ((-10) * (s))\n    pen up\nend\nif <[/] = (letter)> then\n    pen down\n    go to x: (((10) * (s)) + (x position)) y: (((20) * (s)) + (y position))\n    pen up\nend\nif <[?] = (letter)> then\n    pen down\n    pen up\n    change y by ((5) * (s))\n    pen down\n    change y by ((7) * (s))\n    change x by ((5) * (s))\n    change y by ((8) * (s))\n    change x by ((-5) * (s))\n    pen up\nend\n\ndefine Phrase (p) starting at (x) (y) size: (s)\nset [x3 v] to (x)\nset [y3 v] to (y)\nset [letter v] to [0]\nrepeat (length of (p))\n    change [letter v] by (1)\n    Draw letter (letter (Letter) of (p)) at x (X3) y (Y3) Size (s)\n    change [x3 v] by ((15) * (s))\nend\n\ndefine Words\nGet Point [200] [3000] [5000]\ngo to x: (x1) y: (y1)\npoint in direction (((Rotation X) * (-0.5)) + (70))\nset pen color to (#ffffff)\nset pen size to (70)\npen down\npen up\nmove (20) steps\nset pen color to (#000000)\nset pen size to (60)\npen down\npen up\nGet Point [100] ((100) + ((10) * ([cos v] of ((300) * (timer)) ))) [100]\nif <(_) = [0]> then\n    set pen color to (#ff9400)\n    Phrase [Shop] starting at ((x1) - (20)) ((y1) - (10)) size: [1]\nend\nset [__loop v] to [1]\nrepeat ((length of [_other players v]) / (6))\n    Get Point (item ((__loop) + (1)) of [_other players v]) ((item ((__loop) + (2)) of [_other players v]) + (35)) (item ((__loop) + (3)) of [_other players v])\n    if <(_) = [0]> then\n        set pen color to (#ffffff)\n        Phrase (item (__loop) of [_other players v]) starting at ((x1) - ((10) * ((length of (item (__loop) of [_other players v])) / (2)))) ((y1) - (10)) size: [1]\n        go to x: ((x1) - (25)) y: ((y1) + (40))\n        set pen color to (#cacaca)\n        set pen size to (20)\n        pen down\n        change x by (50)\n        change x by (-50)\n        pen up\n        set pen color to (#00ff08)\n        set pen (color v) to (((item ((__loop) + (5)) of [_other players v]) / (50)) * (30))\n        set pen size to (13)\n        pen down\n        change x by (item ((__loop) + (5)) of [_other players v])\n        pen up\n    end\n    change [__loop v] by (6)\nend\nAdd CubeType2 [] [] [] length [] [] []\n\nchange [__loop v] by (6)\n\ndefine XY Clipping\nset [m v] to (((y2) - (y1)) / ((x2) - (x1)))\nif <(x1) > [240]> then\n    if <(x2) > [240]> then\n        stop [this script v]\n    else\n        Set Screen Point 1: (240) ((y1) + (((240) - (x1)) * (m)))\n    end\nend\nif <(y1) > [180]> then\n    if <(y2) > [180]> then\n        stop [this script v]\n    else\n        Set Screen Point 1: ((x1) + (((180) - (y1)) / (m))) (180)\n    end\nend\nif <(x1) < [-240]> then\n    if <(x2) < [-240]> then\n        stop [this script v]\n    else\n        Set Screen Point 1: (-240) ((y1) + (((-240) - (x1)) * (m)))\n    end\nend\nif <(y1) < [-180]> then\n    if <(y2) < [-180]> then\n        stop [this script v]\n    else\n        Set Screen Point 1: ((x1) + (((-180) - (y1)) / (m))) (-180)\n    end\nend\nif <(x2) > [240]> then\n    Set Screen Point 2: (240) ((y1) + (((240) - (x1)) * (m)))\nend\nif <(y2) > [180]> then\n    Set Screen Point 2: ((x1) + (((180) - (y1)) / (m))) (180)\nend\nif <(x2) < [-240]> then\n    Set Screen Point 2: (-240) ((y1) + (((-240) - (x1)) * (m)))\nend\nif <(y2) < [-180]> then\n    Set Screen Point 2: ((x1) + (((-180) - (y1)) / (m))) (-180)\nend\nAdd Tri (() + (([cos v] of (_   _rotate) ) * (10))) (() + (-30)) (() + (([sin v] of (_   _rotate) ) * (10))) - ((_   _px) + (([sin v] of (_   _rotate) ) * (-10))) ((_   _py) + (-30)) ((_   _pz) + (([cos v] of (_   _rotate) ) * (10))) - (_   _px) ((_   _py) + (20)) (_   _pz) -- [Player] []\nAdd Tri ((_   _px) + (([cos v] of (_   _rotate) ) * (-10))) ((_   _py) + (-30)) ((_   _pz) + (([sin v] of (_   _rotate) ) * (-10))) - ((_   _px) + (([sin v] of (_   _rotate) ) * (-10))) ((_   _py) + (-30)) ((_   _pz) + (([cos v] of (_   _rotate) ) * (10))) - (_   _px) ((_   _py) + (20)) (_   _pz) -- [Player] []\nAdd Tri (_   _px) ((_   _py) + (-15)) (_   _pz) - ((_   _px) + (([sin v] of (_   _rotate) ) * (-20))) ((_   _py) + (-15)) ((_   _pz) + (([cos v] of (_   _rotate) ) * (20))) - (_   _px) ((_   _py) + (-5)) (_   _pz) -- [Player] []\n\ndefine fill (ax) (ay) (bx) (by) (cx) (cy) resolution: (res)\nset [lena v] to ([sqrt v] of ((((bx) - (cx)) * ((bx) - (cx))) + (((by) - (cy)) * ((by) - (cy)))) )\nset [lenb v] to ([sqrt v] of ((((ax) - (cx)) * ((ax) - (cx))) + (((ay) - (cy)) * ((ay) - (cy)))) )\nset [lenc v] to ([sqrt v] of ((((ax) - (bx)) * ((ax) - (bx))) + (((ay) - (by)) * ((ay) - (by)))) )\nset [peri v] to ((1) / (((lena) + (lenb)) + (lenc)))\nset [incx v] to (((((lena) * (ax)) + ((lenb) * (bx))) + ((lenc) * (cx))) * (peri))\nset [incy v] to (((((lena) * (ay)) + ((lenb) * (by))) + ((lenc) * (cy))) * (peri))\nset [ind v] to ([sqrt v] of ((((((lenb) + (lenc)) - (lena)) * (((lenc) + (lena)) - (lenb))) * (((lena) + (lenb)) - (lenc))) * (peri)) )\nset [aox v] to ((incx) - (ax))\nset [aoy v] to ((incy) - (ay))\nset [box v] to ((incx) - (bx))\nset [boy v] to ((incy) - (by))\nset [cox v] to ((incx) - (cx))\nset [coy v] to ((incy) - (cy))\nif <<(lena) < (lenb)> and <(lena) < (lenc)>> then\n    set [td v] to ([sqrt v] of (((Aox) * (Aox)) + ((Aoy) * (Aoy))) )\nelse\n    if <<(lenb) > (lena)> or <(lenb) > (lenc)>> then\n        set [td v] to ([sqrt v] of (((Cox) * (Cox)) + ((Coy) * (Coy))) )\n    else\n        set [td v] to ([sqrt v] of (((Box) * (Box)) + ((Boy) * (Boy))) )\n    end\nend\nset [rate v] to ((((td) * (2)) - (ind)) / ((td) * (4)))\nset [td v] to ((1) + (0))\ngo to x: (round (incx)) y: (round (incy))\nset pen size to (ind)\npen down\nrepeat ([ceiling v] of (([log v] of ((res) / (ind)) ) / ([log v] of (rate) )) )\n    set [td v] to ((td) * (rate))\n    set pen size to ((ind) * (td))\n    go to x: (((Aox) * (td)) + (ax)) y: (((Aoy) * (td)) + (ay))\n    go to x: (((Box) * (td)) + (bx)) y: (((Boy) * (td)) + (by))\n    go to x: (((Cox) * (td)) + (cx)) y: (((Coy) * (td)) + (cy))\n    go to x: (((Aox) * (td)) + (ax)) y: (((Aoy) * (td)) + (ay))\nend\nset pen size to (res)\ngo to x: (ax) y: (ay)\ngo to x: (bx) y: (by)\ngo to x: (cx) y: (cy)\ngo to x: (ax) y: (ay)\npen up\n\ndefine Sort\nset [dummy variable v] to [0]\nrepeat (length of [distance info v])\n    change [dummy variable v] by (1)\n    if <(Dummy Variable) < [10]> then\n        set [dummy variable v] to (join [0] (Dummy Variable))\n    end\n    replace item (Dummy Variable) of [distance info v] with (((item (Dummy Variable) of [distance info v]) * (100)) + (Dummy Variable))\nend\nrepeat (length of [distance info v])\n    set [dummy variable v] to [0]\n    set [dummy 2 v] to [0]\n    repeat ((length of [distance info v]) - (1))\n        change [dummy variable v] by (1)\n        if <(item (Dummy Variable) of [distance info v]) < (item ((Dummy Variable) + (1)) of [distance info v])> then\n            set [dummy 2 v] to (item ((Dummy Variable) + (1)) of [distance info v])\n            replace item ((Dummy Variable) + (1)) of [distance info v] with (item (Dummy Variable) of [distance info v])\n            replace item (Dummy Variable) of [distance info v] with (Dummy 2)\n        end\n    end\nend\n\ndefine Draw Cube at (x) (y) (z) length of each side (xl) (yl) (zl) t (t)\nset pen size to (5)\nset [distance v] to (round ([sqrt v] of ((((x) - (cam x)) * ((x) - (cam x))) + ((((y) - (cam y)) * ((y) - (cam y))) + (((z) - (cam z)) * ((z) - (cam z))))) ))\nif <[green] = (t)> then\n    set pen color to (#00ff21)\nend\nif <[dirt] = (t)> then\n    set pen color to (#d07800)\nend\nif <[player] = (t)> then\n    if <[touching? v] contains [water]?> then\n        set pen color to (#00dcba)\n    else\n        set pen color to (#00ffd8)\n    end\nend\nif <[end] = (t)> then\n    set pen color to (#ffffff)\nend\nif <[bounce] = (t)> then\n    set pen color to (#dd00a9)\nend\nif <[lava] = (t)> then\n    set pen color to (#ff0000)\nend\nif <[front] = (t)> then\n    set pen color to (#dac700)\nend\nif <[gravity] = (t)> then\n    set pen color to (#ff9400)\nend\nif <[others] = (t)> then\n    set pen color to (#0024d0)\nend\nif <[checkpoint1] = (t)> then\n    set pen color to (#d27900)\nend\nif <[checkpoint2] = (t)> then\n    set pen color to (#ff2222)\nend\nif <[checkpoint3] = (t)> then\n    set pen color to (#56f700)\nend\nif <[water] = (t)> then\n    set pen color to (#3d60ff)\nend\nif <[checkpoint21] = (t)> then\n    set pen color to (#d27900)\nend\nif <[checkpoint22] = (t)> then\n    set pen color to (#ff2222)\nend\nif <[checkpoint23] = (t)> then\n    set pen color to (#56f700)\nend\nif <[superbounce] = (t)> then\n    set pen color to (#980074)\nend\nif <((z) + ((zl) / (2))) < (cam z)> then\n    Draw square ((x) + ((xl) / (2))) ((y) + ((yl) / (2))) ((z) + ((zl) / (2))) - ((x) - ((xl) / (2))) ((y) - ((yl) / (2))) ((z) + ((zl) / (2)))\nend\nif <(cam z) < ((z) - ((zl) / (2)))> then\n    Draw square ((x) + ((xl) / (2))) ((y) + ((yl) / (2))) ((z) - ((zl) / (2))) - ((x) - ((xl) / (2))) ((y) - ((yl) / (2))) ((z) - ((zl) / (2)))\nend\nif <((x) + ((xl) / (2))) < (cam x)> then\n    Draw square ((x) + ((xl) / (2))) ((y) + ((yl) / (2))) ((z) + ((zl) / (2))) - ((x) + ((xl) / (2))) ((y) - ((yl) / (2))) ((z) - ((zl) / (2)))\nend\nif <(cam x) < ((x) - ((xl) / (2)))> then\n    Draw square ((x) - ((xl) / (2))) ((y) + ((yl) / (2))) ((z) + ((zl) / (2))) - ((x) - ((xl) / (2))) ((y) - ((yl) / (2))) ((z) - ((zl) / (2)))\nend\nif <((y) + ((yl) / (2))) < (cam y)> then\n    3d Tri ((x) - ((xl) / (2))) ((y) + ((yl) / (2))) ((z) + ((zl) / (2))) ((x) + ((xl) / (2))) ((y) + ((yl) / (2))) ((z) - ((zl) / (2))) ((x) - ((xl) / (2))) ((y) + ((yl) / (2))) ((z) - ((zl) / (2)))\n    3d Tri ((x) - ((xl) / (2))) ((y) + ((yl) / (2))) ((z) + ((zl) / (2))) ((x) + ((xl) / (2))) ((y) + ((yl) / (2))) ((z) - ((zl) / (2))) ((x) + ((xl) / (2))) ((y) + ((yl) / (2))) ((z) + ((zl) / (2)))\nend\nif <(cam y) < ((y) - ((yl) / (2)))> then\n    3d Tri ((x) - ((xl) / (2))) ((y) - ((yl) / (2))) ((z) + ((zl) / (2))) ((x) + ((xl) / (2))) ((y) - ((yl) / (2))) ((z) - ((zl) / (2))) ((x) - ((xl) / (2))) ((y) - ((yl) / (2))) ((z) - ((zl) / (2)))\n    3d Tri ((x) - ((xl) / (2))) ((y) - ((yl) / (2))) ((z) + ((zl) / (2))) ((x) + ((xl) / (2))) ((y) - ((yl) / (2))) ((z) - ((zl) / (2))) ((x) + ((xl) / (2))) ((y) - ((yl) / (2))) ((z) + ((zl) / (2)))\nend\n\nset pen (color v) to (50)\n\nwhen flag clicked\nset [checkpoint?_ v] to [checkpoint2]\n\nbroadcast (Intro v)\n\ndefine Set Point 1: (x1) (y1) (z1)\nset [x1 v] to (x1)\nset [y1 v] to (y1)\nset [z1 v] to (z1)\n\ndefine Set Point 2: (x2) (y2) (z2)\nset [x2 v] to (x2)\nset [y2 v] to (y2)\nset [z2 v] to (z2)\n\ndefine Draw Line (x1) (y1) (z1) to (x2) (y2) (z2)\nSet Point 1: ((x1) - (cam x)) ((y1) - (cam y)) ((z1) - (cam z))\nSet Point 2: ((x2) - (cam x)) ((y2) - (cam y)) ((z2) - (cam z))\nSet Point 1: (((z1) * (sin Y)) + ((x1) * (cos Y))) (y1) (((z1) * (cos Y)) - ((x1) * (sin Y)))\nSet Point 2: (((z2) * (sin Y)) + ((x2) * (cos Y))) (y2) (((z2) * (cos Y)) - ((x2) * (sin Y)))\nSet Point 1: (x1) (((y1) * (cos X)) - ((z1) * (sin X))) (((y1) * (sin X)) + ((z1) * (cos X)))\nSet Point 2: (x2) (((y2) * (cos X)) - ((z2) * (sin X))) (((y2) * (sin X)) + ((z2) * (cos X)))\nif <not <<(z1) < (near plane)> and <(z2) < (near plane)>>> then\n    Z Clipping\n    Set Screen Point 1: ((view factor) * ((x1) / (z1))) ((view factor) * ((y1) / (z1)))\n    Set Screen Point 2: ((view factor) * ((x2) / (z2))) ((view factor) * ((y2) / (z2)))\n    go to x: (x1) y: (y1)\n    pen down\n    go to x: (x2) y: (y2)\n    pen up\nend\n\ndefine Set Screen Point 1: (x1) (y1)\nset [x1 v] to (x1)\nset [y1 v] to (y1)\n\ndefine Set Screen Point 2: (x2) (y2)\nset [x2 v] to (x2)\nset [y2 v] to (y2)\n\ndefine Draw cubes\nset pen size to (5)\nCalculate Trig Values\nset [loop v] to [0]\nrepeat (length of [distance info v])\n    change [loop v] by (1)\n    set [dummy 2 v] to (join (letter ((length of (item (Loop) of [distance info v])) - (1)) of (item (Loop) of [distance info v])) (letter (length of (item (Loop) of [distance info v])) of (item (Loop) of [distance info v])))\n    Draw Cube at (item (Dummy 2) of [x v]) (item (Dummy 2) of [y v]) (item (Dummy 2) of [z v]) length of each side (item (Dummy 2) of [xl v]) (item (Dummy 2) of [yl v]) (item (Dummy 2) of [zl v]) t (item (Dummy 2) of [types v])\nend\n\ndefine Calculate Trig Values\nset [sin x v] to ([sin v] of (Rotation Y) )\nset [cos x v] to ([cos v] of (Rotation Y) )\nset [sin y v] to ([sin v] of (Rotation X) )\nset [cos y v] to ([cos v] of (Rotation X) )\n\ndefine Z Clipping\nif <<(z1) < (near plane)> or <(z2) < (near plane)>> then\n    set [percent v] to (((near plane) - (z1)) / ((z2) - (z1)))\n    if <(z1) < (near plane)> then\n        Set Point 1: ((x1) + (((x2) - (x1)) * (percent))) ((y1) + (((y2) - (y1)) * (percent))) (near plane)\n    else\n        if <(z2) < (near plane)> then\n            Set Point 2: ((x1) + (((x2) - (x1)) * (percent))) ((y1) + (((y2) - (y1)) * (percent))) (near plane)\n        end\n    end\nend\n\ndefine Add Cube (x) (y) (z) lengths (xl) (yl) (zl) type: (t)\nif <(round ([sqrt v] of ((((x) - (cam x)) * ((x) - (cam x))) + ((((y) - (cam y)) * ((y) - (cam y))) + (((z) - (cam z)) * ((z) - (cam z))))) )) < [700]> then\n    add (x) to [x v]\n    add (y) to [y v]\n    add (z) to [z v]\n    add (xl) to [xl v]\n    add (yl) to [yl v]\n    add (zl) to [zl v]\n    add (t) to [types v]\n    add (round ([sqrt v] of ((((x) - (cam x)) * ((x) - (cam x))) + ((((y) - (cam y)) * ((y) - (cam y))) + (((z) - (cam z)) * ((z) - (cam z))))) )) to [distance info v]\nend\n\ndefine Reset\nset [cam x v] to ((Player x) + ((100) * (([cos v] of (Rotation Y) ) * ([sin v] of (Rotation X) ))))\nset [cam y v] to ((Player y) + ((100) * ((-1) * ([sin v] of (Rotation Y) ))))\nset [cam z v] to ((Player z) + ((((100) * ([cos v] of (Rotation X) )) * ([cos v] of (Rotation Y) )) * (-1)))\nset [cam speed v] to [1]\nset [rotation y v] to [-45]\nif <(checkpoint2_) = [checkpoint22]> then\n    set [rotation x v] to [0]\n    if <(checkpoint?_) = [checkpoint3]> then\n        set [player x v] to [-250]\n        set [player y v] to [240]\n        set [player z v] to [1665]\n    else\n        set [player x v] to [0]\n        set [player y v] to [100]\n        set [player z v] to [0]\n    end\nelse\n    if <(checkpoint2_) = [checkpoint23]> then\n        set [fallen? v] to [1]\n        set [rotation x v] to [-90]\n        set [player x v] to [290]\n        set [player y v] to [240]\n        set [player z v] to [3510]\n    else\n        set [rotation x v] to [0]\n        set [player x v] to [0]\n        set [player y v] to [100]\n        set [player z v] to [0]\n    end\nend\nset [player x vel. v] to [0]\nset [player y vel. v] to [0]\nset [player z vel. v] to [0]\nset [_gravity v] to [1]\n\nset [rotation x v] to [0]\n\ndefine Sense (x) (y) (z) w (xl) (yl) (zl) Type (t)\nif <<<((Player z) + (15)) > ((z) - ((zl) / (2)))> and <((Player z) + (-15)) < ((z) + ((zl) / (2)))>> and <<<((Player y) + (15)) > ((y) - ((yl) / (2)))> and <((Player y) + (-15)) < ((y) + ((yl) / (2)))>> and <<((Player x) + (15)) > ((x) - ((xl) / (2)))> and <((Player x) + (-15)) < ((x) + ((xl) / (2)))>>>> then\n    add (t) to [touching? v]\nend\n\ndefine Detect\ndelete all of [touching? v]\nset [loop v] to [1]\nrepeat (length of [types v])\n    Sense (item (Loop) of [x v]) (item (Loop) of [y v]) (item (Loop) of [z v]) w (item (Loop) of [xl v]) (item (Loop) of [yl v]) (item (Loop) of [zl v]) Type (item (Loop) of [types v])\n    change [loop v] by (1)\nend\n\ndefine Settings\nif <key (right arrow v) pressed?> then\n    change [rot y vel. v] by (-1)\nend\nif <key (left arrow v) pressed?> then\n    change [rot y vel. v] by (1)\nend\nif <key (up arrow v) pressed?> then\n    change [rot x vel. v] by (1)\nend\nif <key (down arrow v) pressed?> then\n    change [rot x vel. v] by (-1)\nend\nif <key (w v) pressed?> then\n    change [player z vel. v] by ((1) * ((cam speed) * (cos Y)))\nend\nif <key (s v) pressed?> then\n    change [player z vel. v] by ((-1) * ((cam speed) * (cos Y)))\nend\nif <key (a v) pressed?> then\n    change [player z vel. v] by ((-1) * ((cam speed) * (sin Y)))\nend\nif <key (d v) pressed?> then\n    change [player z vel. v] by ((1) * ((cam speed) * (sin Y)))\nend\nset [player z vel. v] to ((Player z vel.) * (0.8))\nset [rot x vel. v] to ((Rot x vel.) * (0.9))\nset [rot y vel. v] to ((Rot y vel.) * (0.9))\nchange [player z v] by (Player z vel.)\nchange [rotation y v] by (round (Rot x vel.))\nchange [rotation x v] by (round (Rot y vel.))\nif <(Rotation Y) < [-90]> then\n    set [rotation y v] to [-90]\nend\nif <[90] < (Rotation Y)> then\n    set [rotation y v] to [90]\nend\nDetect\nif <<[touching? v] contains [green]?> or <[touching? v] contains [dirt]?>> then\n    change [player y v] by (1)\n    Detect\n    if <<[touching? v] contains [green]?> or <[touching? v] contains [dirt]?>> then\n        change [player y v] by (1)\n        Detect\n        if <<[touching? v] contains [green]?> or <[touching? v] contains [dirt]?>> then\n            change [player y v] by (1)\n            Detect\n            if <<[touching? v] contains [green]?> or <[touching? v] contains [dirt]?>> then\n                change [player y v] by (1)\n                Detect\n                if <<[touching? v] contains [green]?> or <[touching? v] contains [dirt]?>> then\n                    change [player y v] by (1)\n                    Detect\n                    if <<[touching? v] contains [green]?> or <[touching? v] contains [dirt]?>> then\n                        change [player y v] by (1)\n                        Detect\n                        if <<[touching? v] contains [green]?> or <[touching? v] contains [dirt]?>> then\n                            change [player y v] by (1)\n                            Detect\n                            if <<[touching? v] contains [green]?> or <[touching? v] contains [dirt]?>> then\n                                change [player y v] by (1)\n                                Detect\n                                if <<[touching? v] contains [green]?> or <[touching? v] contains [dirt]?>> then\n                                    change [player y v] by (1)\n                                    Detect\n                                    if <<[touching? v] contains [green]?> or <[touching? v] contains [dirt]?>> then\n                                        change [player y v] by (1)\n                                        Detect\n                                        if <<[touching? v] contains [green]?> or <[touching? v] contains [dirt]?>> then\n                                            change [player y v] by (-10)\n                                            change [player z v] by ((Player z vel.) * (-1))\n                                            set [player z vel. v] to [0]\n                                        end\n                                    end\n                                end\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\nif <key (w v) pressed?> then\n    change [player x vel. v] by ((-1) * ((cam speed) * (sin Y)))\nend\nif <key (s v) pressed?> then\n    change [player x vel. v] by ((1) * ((cam speed) * (sin Y)))\nend\nif <key (a v) pressed?> then\n    change [player x vel. v] by ((-1) * ((cam speed) * (cos Y)))\nend\nif <key (d v) pressed?> then\n    change [player x vel. v] by ((1) * ((cam speed) * (cos Y)))\nend\nset [player x vel. v] to ((Player x vel.) * (0.8))\nchange [player x v] by (Player x vel.)\nDetect\nif <<[touching? v] contains [green]?> or <[touching? v] contains [dirt]?>> then\n    change [player y v] by (1)\n    Detect\n    if <<[touching? v] contains [green]?> or <[touching? v] contains [dirt]?>> then\n        change [player y v] by (1)\n        Detect\n        if <<[touching? v] contains [green]?> or <[touching? v] contains [dirt]?>> then\n            change [player y v] by (1)\n            Detect\n            if <<[touching? v] contains [green]?> or <[touching? v] contains [dirt]?>> then\n                change [player y v] by (1)\n                Detect\n                if <<[touching? v] contains [green]?> or <[touching? v] contains [dirt]?>> then\n                    change [player y v] by (1)\n                    Detect\n                    if <<[touching? v] contains [green]?> or <[touching? v] contains [dirt]?>> then\n                        change [player y v] by (1)\n                        Detect\n                        if <<[touching? v] contains [green]?> or <[touching? v] contains [dirt]?>> then\n                            change [player y v] by (1)\n                            Detect\n                            if <<[touching? v] contains [green]?> or <[touching? v] contains [dirt]?>> then\n                                change [player y v] by (1)\n                                Detect\n                                if <<[touching? v] contains [green]?> or <[touching? v] contains [dirt]?>> then\n                                    change [player y v] by (1)\n                                    Detect\n                                    if <<[touching? v] contains [green]?> or <[touching? v] contains [dirt]?>> then\n                                        change [player y v] by (1)\n                                        Detect\n                                        if <<[touching? v] contains [green]?> or <[touching? v] contains [dirt]?>> then\n                                            change [player y v] by (-10)\n                                            change [player x v] by ((Player x vel.) * (-1))\n                                            set [player x vel. v] to [0]\n                                        end\n                                    end\n                                end\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\nDetect\nif <[touching? v] contains [gravity]?> then\n    set [_gravity v] to ((-1) * (_Gravity))\n    change [player y v] by ((-10) * (_Gravity))\n    set [player y vel. v] to [0]\nend\nchange [player y vel. v] by ((-1) * (_Gravity))\nchange [player y v] by (Player y vel.)\nchange [_air? v] by (1)\nDetect\nif <[touching? v] contains [lava]?> then\n    start sound [Disconnect v]\n    Reset\nend\nDetect\nif <<[touching? v] contains [green]?> or <[touching? v] contains [dirt]?>> then\n    change [player y v] by ((-1) * (Player y vel.))\n    set [player y vel. v] to [0]\n    set [_air? v] to [0]\nend\nif <<key (space v) pressed?> or <(jump?) = [1]>> then\n    if <(_air?) < [8]> then\n        set [player y vel. v] to [10]\n    end\nelse\n    change [_air? v] by (8)\nend\nDetect\nif <[touching? v] contains [end]?> then\n    change [player y v] by (1000)\n    broadcast (End v)\nend\nif <[touching? v] contains [bounce]?> then\n    set [player y vel. v] to [20]\n    set [_air? v] to [0]\nend\nif <[touching? v] contains [front]?> then\n    set [player y vel. v] to [15]\n    set [player z vel. v] to [50]\n    set [_air? v] to [0]\nend\nif <<[touching? v] contains [checkpoint1]?> or <[touching? v] contains [checkpoint2]?>> then\n    if <not <(checkpoint?_) = [checkpoint3]>> then\n        start sound [Collect v]\n    end\n    set [checkpoint?_ v] to [checkpoint3]\nend\nif <[touching? v] contains [water]?> then\n    if <<key (space v) pressed?> or <(jump?) = [1]>> then\n        set [player y vel. v] to [3]\n        set [_air? v] to [0]\n    else\n        set [player y vel. v] to [0.2]\n    end\nend\nif <<[touching? v] contains [checkpoint21]?> or <[touching? v] contains [checkpoint22]?>> then\n    if <not <(checkpoint2_) = [checkpoint23]>> then\n        start sound [Collect v]\n    end\n    set [checkpoint2_ v] to [checkpoint23]\nend\nif <[touching? v] contains [superbounce]?> then\n    set [player y vel. v] to [30]\n    set [_air? v] to [0]\nend\n\nstart sound [Jump v]\n\nReset\n\ndefine Get Point (x) (y) (z)\nSet Point 1: ((x) - (cam x)) ((y) - (cam y)) ((z) - (cam z))\nSet Point 1: (((z1) * (sin Y)) + ((x1) * (cos Y))) (y1) (((z1) * (cos Y)) - ((x1) * (sin Y)))\nSet Point 1: (x1) (((y1) * (cos X)) - ((z1) * (sin X))) (((y1) * (sin X)) + ((z1) * (cos X)))\nZ Clipping\nSet Screen Point 1: ((view factor) * ((x1) / (z1))) ((view factor) * ((y1) / (z1)))\n\ndefine Draw square (x) (y) (z) - (x2) (y2) (z2)\n3d Tri (x) (y) (z) (x2) (y2) (z2) (x2) (y) (z2)\n3d Tri (x) (y) (z) (x2) (y2) (z2) (x) (y2) (z)\n\ndefine 3d Tri (x1) (y1) (z1) (x2) (y2) (z2) (x3) (y3) (z3)\ndelete all of [tri x v]\ndelete all of [tri y v]\ndelete all of [tri z v]\nGet Point (x1) (y1) (z1)\nadd (x1) to [tri x v]\nadd (y1) to [tri y v]\nadd (z1) to [tri z v]\nGet Point (x2) (y2) (z2)\nadd (x1) to [tri x v]\nadd (y1) to [tri y v]\nadd (z1) to [tri z v]\nGet Point (x3) (y3) (z3)\nadd (x1) to [tri x v]\nadd (y1) to [tri y v]\nadd (z1) to [tri z v]\nif <not <<(item (1) of [tri z v]) < (near plane)> and <<(item (2) of [tri z v]) < (near plane)> and <(item (3) of [tri z v]) < (near plane)>>>> then\n    if <not <[0] = (item (1) of [tri z v])>> then\n        if <not <[0] = (item (2) of [tri z v])>> then\n            if <not <[0] = (item (3) of [tri z v])>> then\n                fill (item (1) of [tri x v]) (item (1) of [tri y v]) (item (2) of [tri x v]) (item (2) of [tri y v]) (item (3) of [tri x v]) (item (3) of [tri y v]) resolution: (1)\n            end\n        end\n    end\nend\nset pen size to (5)\nchange pen (brightness v) by (-10)\nDraw Line (x1) (y1) (z1) to (x2) (y2) (z2)\nDraw Line (x1) (y1) (z1) to (x3) (y3) (z3)\nDraw Line (x2) (y2) (z2) to (x3) (y3) (z3)\nchange pen (brightness v) by (10)\n\nwhen I receive [realstart v]\nset [fallen? v] to [0]\nerase all\nset pen size to (2)\nset pen color to (#30cebd)\nReset\nReset\nset [_level v] to [1]\nforever\n    erase all\n    go to x: (0) y: (0)\n    set pen size to (600)\n    set pen color to (#a2f0ff)\n    pen down\n    pen up\n    Detect\n    Get Level\n    Sort\n    Draw cubes\n    Settings\n    if <(Player y) < [-200]> then\n        start sound [Disconnect v]\n        Reset\n    end\n    set [cam x v] to ((Player x) + ((125) * (([cos v] of (Rotation Y) ) * ([sin v] of (Rotation X) ))))\n    set [cam y v] to ((Player y) + ((125) * (([sin v] of (Rotation Y) ) * (-1))))\n    set [cam z v] to ((Player z) + ((((125) * ([cos v] of (Rotation X) )) * ([cos v] of (Rotation Y) )) * (-1)))\nend\n\nUsernames\n\nif <[500] < (Player y)> then\n    Reset\nend\n\nwhen I receive [end v]\n\nwhen flag clicked\nbroadcast (Start v)\n\ndefine Add CubeType2 (x1) (y1) (z1) length (x2) (y2) (z3)\nAdd Cube (x1) (y1) (z1) lengths (x2) (y2) (z3) type: [green]\nAdd Cube (x1) ((y1) - (50)) (z1) lengths (x2) (y2) (z3) type: [dirt]\n\nset pen (color v) to (50)\n\nset [_level v] to [5]\n\nwhen I receive [end v]\nerase all\n\nwhen flag clicked\nforever\n    broadcast (Loop v)\nend\n\nAdd CubeType2 [450] [100] [1200] length [100] [50] [100]\n\nAdd Cube [-250] [100] [1400] lengths [100] [50] [400] type: [lava]\n\nchange [player z v] by (300)\n\nwhen flag clicked\nset [checkpoint?_ v] to [checkpoint2]\nset [checkpoint2_ v] to [checkpoint22]\n\nset [player x v] to [-250]\nset [player y v] to [240]\nset [player z v] to [1665]\n\nset [player x vel. v] to [0]\nset [player y vel. v] to [0]\nset [player z vel. v] to [0]\nset [_gravity v] to [1]\n\nrepeat (10)\n\nchange [_ v] by (1)\n\nAdd Cube [600] [100] [3510] lengths [100] [100] [100] type: [superbounce]\n\nwhen I receive [end v]\nstop [other scripts in sprite v]\n\nplay sound [Boing v] until done\n\nstart sound [Disconnect v]\n\ndefine Get Level\ndelete all of [types v]\ndelete all of [x v]\ndelete all of [xl v]\ndelete all of [y v]\ndelete all of [yl v]\ndelete all of [z v]\ndelete all of [zl v]\ndelete all of [distance info v]\nAdd Cube (Player x) (Player y) (Player z) lengths [30] [30] [30] type: [player]\nif <[1] = (_Level)> then\n    Add CubeType2 [0] [0] [0] length [100] [50] [100]\n    Add CubeType2 [0] [50] [200] length [100] [50] [100]\n    Add Cube [0] [50] [400] lengths [100] [50] [100] type: [bounce]\n    Add CubeType2 [0] [200] [500] length [100] [50] [100]\n    Add Cube [0] [200] [650] lengths [100] [50] [100] type: [bounce]\n    Add CubeType2 [150] [350] [650] length [100] [50] [100]\n    Add CubeType2 [300] [350] [800] length [100] [50] [100]\n    Add Cube [250] [350] [700] lengths [50] [150] [50] type: [lava]\n    Add CubeType2 [150] [350] [650] length [100] [50] [100]\n    Add CubeType2 [450] [350] [950] length [100] [50] [100]\n    Add Cube [400] [350] [850] lengths [50] [150] [50] type: [lava]\n    Add CubeType2 [450] [100] [1200] length [100] [50] [100]\n    Add CubeType2 [290] [100] [1200] length [100] [50] [100]\n    Add Cube [370] [100] [1200] lengths [20] [150] [100] type: [lava]\n    Add CubeType2 [100] [150] [1250] length [100] [50] [100]\n    Add CubeType2 [100] [210] [1100] length [100] [50] [100]\n    Add CubeType2 [-50] [300] [1250] length [100] [50] [100]\n    Add CubeType2 [-250] [300] [1250] length [100] [50] [100]\n    Add Cube [-250] [300] [1400] lengths [100] [50] [50] type: [front]\n    Add Cube [-250] [75] [1350] lengths [100] [100] [300] type: [lava]\n    Add CubeType2 [-250] [100] [1700] length [100] [50] [100]\n    Add Cube [-250] [160] [1700] lengths [10] [70] [10] type: [checkpoint1]\n    Add Cube [-260] [200] [1700] lengths [30] [20] [10] type: (checkpoint?_)\n    Add Cube [-250] [0] [1900] lengths [100] [100] [100] type: [lava]\n    Add Cube [-250] [0] [2050] lengths [100] [100] [100] type: [lava]\n    Add Cube [-250] [0] [2200] lengths [100] [100] [100] type: [lava]\n    Add Cube [-250] [50] [1900] lengths [50] [50] [50] type: [bounce]\n    Add Cube [-250] [50] [2050] lengths [50] [50] [50] type: [bounce]\n    Add Cube [-250] [50] [2200] lengths [50] [50] [50] type: [bounce]\n    Add CubeType2 [-250] [100] [2400] length [100] [50] [100]\n    Add Cube [-250] [100] [2500] lengths [100] [50] [50] type: [bounce]\n    Add Cube [-250] [200] [2600] lengths [100] [50] [50] type: [front]\n    Add Cube [-250] [250] [2720] lengths [100] [50] [50] type: [lava]\n    Add CubeType2 [-250] [100] [2700] length [100] [50] [100]\n    Add Cube [-250] [100] [2800] lengths [100] [50] [50] type: [front]\n    Add CubeType2 [-250] [50] [3000] length [100] [50] [100]\n    Add Cube [-250] [50] [3110] lengths [100] [150] [100] type: [water]\n    Add Cube [-250] [50] [3210] lengths [100] [150] [10] type: [lava]\n    Add Cube [-250] [50] [3310] lengths [100] [150] [100] type: [water]\n    Add Cube [-250] [50] [3410] lengths [100] [150] [10] type: [lava]\n    Add Cube [-250] [50] [3510] lengths [100] [150] [100] type: [water]\n    Add Cube [-150] [50] [3510] lengths [10] [150] [100] type: [lava]\n    Add Cube [-50] [50] [3510] lengths [100] [150] [100] type: [water]\n    Add Cube [50] [50] [3510] lengths [10] [150] [100] type: [lava]\n    Add Cube [150] [50] [3510] lengths [100] [150] [100] type: [water]\n    Add CubeType2 [350] [100] [3510] length [150] [50] [150]\n    Add Cube [350] [150] [3510] lengths [10] [70] [10] type: [checkpoint21]\n    Add Cube [350] [190] [3520] lengths [10] [20] [30] type: (checkpoint2_)\n    Add Cube [600] [100] [3510] lengths [100] [100] [100] type: [superbounce]\n    Add Cube [600] [500] [3510] lengths [100] [100] [100] type: [superbounce]\n    Add Cube [600] [450] [3510] lengths [100] [10] [100] type: [lava]\n    Add Cube [600] [1000] [3510] lengths [100] [100] [100] type: [superbounce]\n    Add Cube [600] [950] [3510] lengths [100] [10] [100] type: [lava]\n    Add CubeType2 [600] [1300] [3800] length [100] [50] [100]\n    Add CubeType2 [600] [1300] [4000] length [50] [50] [50]\n    Add CubeType2 [600] [1300] [4150] length [50] [50] [50]\n    Add CubeType2 [600] [1300] [4300] length [50] [50] [50]\n    Add Cube [600] [1250] [4500] lengths [100] [100] [100] type: [superbounce]\n    Add Cube [600] [1600] [4900] lengths [100] [100] [100] type: [lava]\n    Add CubeType2 [600] [1600] [4700] length [100] [50] [100]\n    Add CubeType2 [600] [1400] [4895] length [100] [50] [100]\n    Add Cube [600] [1375] [4955] lengths [100] [100] [10] type: [lava]\n    Add Cube [600] [1300] [5250] lengths [200] [100] [200] type: [lava]\n    Add CubeType2 [600] [1100] [5200] length [100] [50] [100]\n    Add CubeType2 [600] [1000] [5400] length [100] [50] [100]\n    Add CubeType2 [600] [900] [5600] length [100] [50] [100]\n    Add CubeType2 [600] [800] [5800] length [100] [50] [100]\n    Add CubeType2 [600] [1400] [5015] length [100] [50] [100]\n    Add Cube [600] [850] [6000] lengths [200] [200] [100] type: [end]\n    set [__loop v] to [1]\n    repeat ((length of [_other players v]) / (6))\n        set [_   _px v] to (item ((1) + (__loop)) of [_other players v])\n        set [_   _py v] to (item ((2) + (__loop)) of [_other players v])\n        set [_   _pz v] to (item ((3) + (__loop)) of [_other players v])\n        set [_   _rotate v] to (item ((4) + (__loop)) of [_other players v])\n        Add Cube (_   _px) (_   _py) (_   _pz) lengths [30] [30] [30] type: [others]\n        change [__loop v] by (6)\n    end\nend\n\nwhen flag clicked\nforever\n    set [☁ p1 v] to [0]\n    set [☁ p2 v] to [0]\n    set [☁ p3 v] to [0]\n    set [☁ p4 v] to [0]\n    set [☁ p5 v] to [0]\n    set [☁ p6 v] to [0]\n    set [☁ p7 v] to [0]\n    set [☁ p8 v] to [0]\n    set [☁ p9 v] to [0]\n    set [☁ p10 v] to [0]\n    wait (15) seconds\nend\n\nwhen [p v] key pressed\nif <(username) = [PopuIar]> then\n    show variable [_  _player # v]\nend\n\nwhen flag clicked\nhide variable [_  _player # v]\n\n@Sprite1\n\nwhen I receive [end v]\nshow\ngo to [front v] layer\nrepeat (10)\n    change [ghost v] effect by (-10)\nend\n\nwhen flag clicked\nset [varidk v] to [0]\nset [ghost v] effect to (100)\nhide\n\nset size to (([abs v] of (([sin v] of (varidk) ) * (100)) ) + (50)) %\n\n@Sprite2\n\nwhen flag clicked\nforever\n    set [ghost v] effect to (100)\n    go to [front v] layer\n    show\nend\n\n@Sprite3\n\nwhen flag clicked\nshow\nswitch costume to (non v)\nshow list [less laggy servers \(copy and paste\): v]\nforever\n    if <<touching (mouse-pointer v)?> and <mouse down?>> then\n        start sound [pop v]\n        switch costume to (non2 v)\n        hide list [less laggy servers \(copy and paste\): v]\n        wait (0.1) seconds\n        wait until <<touching (mouse-pointer v)?> and <mouse down?>>\n        start sound [pop v]\n        show list [less laggy servers \(copy and paste\): v]\n        switch costume to (non v)\n        wait (0.1) seconds\n    else\n        set size to (100) %\n    end\nend\n\nswitch costume to (non v)\n\nset [brightness v] effect to (0)\n\nwhen flag clicked\nforever\n    if <touching (mouse-pointer v)?> then\n        set [brightness v] effect to (-10)\n    else\n        set [brightness v] effect to (0)\n    end\nend\n\nhide\n\nshow list [less laggy servers \(copy and paste\): v]\n\n@Cloud\n\ndefine Encode (e)\nset [_ _letter # v] to [1]\nrepeat (length of (e))\n    switch costume to (letter (_ _Letter #) of (e))\n    set [_ _encoded v] to (join (_ _Encoded) (costume [number v]))\n    change [_ _letter # v] by (1)\nend\nset [_ _encoded v] to (join (_ _Encoded) [00])\n\ndefine Begin decoding ()\nset [_ _letter # v] to [1]\nset [_ _encoded v] to ()\n\ndefine #New value\nset [_ _decoded v] to []\nforever\n    switch costume to (join (letter (_ _Letter #) of (_ _Encoded)) (letter ((1) + (_ _Letter #)) of (_ _Encoded)))\n    if <(join (letter (_ _Letter #) of (_ _Encoded)) (letter ((1) + (_ _Letter #)) of (_ _Encoded))) < [1]> then\n        change [_ _letter # v] by (2)\n        stop [this script v]\n    end\n    set [_ _decoded v] to (join (_ _Decoded) (costume [name v]))\n    change [_ _letter # v] by (2)\nend\n\nBegin decoding (_ _Encoded)\n#New value\n\nwhen I receive [connect to cloud v]\nset [_   _ v] to [0]\nClone\nset [_  _player # v] to [0]\nbroadcast (Grab connection v)\nwait (3.2) seconds\nbroadcast (Remove clones v)\nset [_   _ v] to [1]\nbroadcast (Realstart v)\n\ndefine Clone\nset [_  _clone id v] to [1]\nrepeat (5)\n    create clone of (_myself_ v)\n    change [_  _clone id v] by (1)\nend\n\nwhen I receive [grab connection v]\nGet value from cloud? (_  _Clone id)\nset [_  _#last val v] to (join [a] (_   _var))\nwait (3) seconds\nGet value from cloud? (_  _Clone id)\nif <(join [a] (_   _var)) = (_  _#last val)> then\n    set [_  _player # v] to (_  _Clone id)\nend\n\ndefine Get value from cloud? (#)\nif <(_   _) = [1]> then\n    if <(#) = [1]> then\n        set [_  _#value v] to (☁ P1)\n    else\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                                        set [_  _#value v] to (☁ P10)\n                                    end\n                                end\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\nelse\n    if <(#) = [1]> then\n        set [_   _var v] to (☁ P1)\n    else\n        if <(#) = [2]> then\n            set [_   _var v] to (☁ P2)\n        else\n            if <(#) = [3]> then\n                set [_   _var v] to (☁ P3)\n            else\n                if <(#) = [4]> then\n                    set [_   _var v] to (☁ P4)\n                else\n                    if <(#) = [5]> then\n                        set [_   _var v] to (☁ P5)\n                    else\n                        if <(#) = [6]> then\n                            set [_   _var v] to (☁ P6)\n                        else\n                            if <(#) = [7]> then\n                                set [_   _var v] to (☁ P7)\n                            else\n                                if <(#) = [8]> then\n                                    set [_   _var v] to (☁ P8)\n                                else\n                                    if <(#) = [9]> then\n                                        set [_   _var v] to (☁ P9)\n                                    else\n                                        set [_   _var v] to (☁ P10)\n                                    end\n                                end\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\n\ndefine Set cloud : () to this: (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                                    set [☁ p10 v] to (value)\n                                end\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\n\nwhen I receive [remove clones v]\ndelete this clone\n\nwhen I receive [loop v]\nReceive cloud\n\ndefine Receive cloud\nCheck activeness\nSend to cloud\nDownload cloud data\n\ndefine Check activeness\nset [_ v] to [1]\nrepeat (10)\n    if <not <(_  _Player #) = (_)>> then\n        Get value from cloud? (_)\n        if <(join [XX] (_  _#Value)) = (item (_) of [_last value v])> then\n            replace item (_) of [_activness v] with ((item (_) of [_activness v]) + (1))\n            if <(item (_) of [_activness v]) = [100]> then\n                Set cloud : (_) to this: [111]\n            end\n        else\n            replace item (_) of [_last value v] with (join [XX] (_  _#Value))\n            replace item (_) of [_activness v] with [0]\n        end\n    end\n    change [_ v] by (1)\nend\nGet value from cloud? (_  _Player #)\nif <(_  _#Value) = [111]> then\n    stop [other scripts in sprite v]\n    broadcast (Boot v)\n    stop [this script v]\nend\n\ndefine Send to cloud\nset [_ _encoded v] to []\nEncode (timer)\nEncode (username)\nEncode (round (Player x))\nEncode (round (Player y))\nEncode (round (Player z))\nEncode (Rotation X)\nEncode (_  _hp)\nSet cloud : (_  _Player #) to this: (_ _Encoded)\n\ndefine Download cloud data\ndelete all of [_other players v]\nset [_ v] to [1]\nrepeat (6)\n    if <not <(_) = (_  _Player #)>> then\n        Get value from cloud? (_)\n        if <not <[111] = (_  _#Value)>> then\n            Begin decoding (_  _#Value)\n            #New value\n            set [_     _ v] to (_ _Decoded)\n            #New value\n            add (_ _Decoded) to [_other players v]\n            set [__loop v] to (length of [_other players v])\n            #New value\n            add (_ _Decoded) to [_other players v]\n            #New value\n            add (_ _Decoded) to [_other players v]\n            #New value\n            add (_ _Decoded) to [_other players v]\n            #New value\n            add (_ _Decoded) to [_other players v]\n            #New value\n            add (_ _Decoded) to [_other players v]\n            #New value\n        end\n    end\n    change [_ v] by (1)\nend\n\nwhen flag clicked\ndelete all of [_other p's bullets v]\ndelete all of [_bullet v]\ndelete all of [_bullets2 v]\n\nbroadcast (Loop v)\n\n@Loading\n\nwhen I receive [connect to cloud v]\ngo to [front v] layer\ngo to x: (0) y: (-20)\nshow\nforever\n    if <(costume [number v]) < [17]> then\n        next costume\n        wait (0.16) seconds\n    else\n        switch costume to (rz64za8eogl21 v)\n    end\nend\n\nwhen I receive [remove clones v]\nstop [other scripts in sprite v]\npoint in direction (90)\nif <[0] = (_  _Player #)> then\n    set size to (100) %\n    go to x: (0) y: (0)\n    switch costume to (server full  v)\nelse\n    go to x: (0) y: (0)\n    switch costume to (connected! v)\n    start sound [Connect v]\n    wait (1) seconds\n    repeat (10)\n        change [ghost v] effect by (10)\n    end\n    hide\nend\n\npoint in direction (90)\n\nset [ghost v] effect to (70)\nstamp\nswitch costume to (costume1 v)\npoint in direction ((timer) * (200))\nset [ghost v] effect to (0)\nstamp\n\nstamp\n\nstamp\n\nhide\n\nwait (0.5) seconds\n\nhide\n\nwhen flag clicked\nswitch costume to (rz64za8eogl21 v)\nset size to (140) %\nset [ghost v] effect to (0)\nbroadcast (Connect to cloud v)\n\n@Less\n\n@Lag\n\n@Stick\n\nwhen flag clicked\ngo to [front v] layer\nset size to (80) %\nset [ghost v] effect to (80)\nset [range v] to ((size) / (2.5))\nforever\n    switch costume to (base v)\n    go to x: (-170) y: (-110)\n    repeat until <not <mouse down?>>\n        Keyboard controls\n    end\n    repeat until <mouse down?>\n        Keyboard controls\n    end\n    if <(distance to [mouse-pointer v]) < (size)> then\n        Stick Activated\n    end\nend\n\ndefine Keyboard controls\nset [stick x v] to [0]\nset [stick y v] to [0]\n\ndefine Stick Activated\nswitch costume to (ready v)\ncreate clone of (_myself_ v)\nswitch costume to (stick v)\ncreate clone of (_myself_ v)\nset [ghost v] effect to (25)\nswitch costume to (base active v)\nset [stick button v] to []\nrepeat until <(distance to [mouse-pointer v]) > ((size) * (1.5))>\n    Detect Stick Movement\n    Detect Stick Button\nend\nbroadcast (Deactivate stick v)\n\ndefine Detect Stick Movement\nset [stick x v] to (((mouse x) - (x position)) / (range))\nset [stick y v] to (((mouse y) - (y position)) / (range))\nif <([abs v] of (STICK X) ) > [1]> then\n    set [stick x v] to ((STICK X) / ([abs v] of (STICK X) ))\nend\nif <([abs v] of (STICK Y) ) > [1]> then\n    set [stick y v] to ((STICK Y) / ([abs v] of (STICK Y) ))\nend\n\ndefine Detect Stick Button\nif <mouse down?> then\n    if <(STICK BUTTON) > []> then\n        change [stick button v] by (1)\n        set [jump? v] to [1]\n    end\nelse\n    set [jump? v] to [0]\n    set [stick button v] to [0]\nend\n\nwhen I receive [deactivate stick v]\ndelete this clone\n\nwhen I start as a clone\nif <(costume [name v]) = [Stick]> then\n    go [forward v] (1) layers\n    set [ghost v] effect to (0)\n    forever\n        go to (stick v)\n        change x by ((STICK X) * (range))\n        change y by ((STICK Y) * (range))\n    end\nend\ngo to x: (170) y: (-110)\nwait until <not <mouse down?>>\nswitch costume to (base active v)\nforever\n    if <mouse down?> then\n        set [ghost v] effect to (25)\n    else\n        set [ghost v] effect to (75)\n    end\nend\n\ngo to [back v] layer\n\n@Helper\n\npoint in direction (Stick X)\n\nchange [rot y vel. v] by (-1)\n\nwhen flag clicked\ngo to x: (-170) y: (-110)\nforever\n    if <not <<<key (w v) pressed?> or <key (a v) pressed?>> or <<key (s v) pressed?> or <key (d v) pressed?>>>> then\n        if <(fallen?) = [0]> then\n            if <([abs v] of (STICK X) ) > [0.3]> then\n                change [player x vel. v] by ((STICK X) * (1))\n            end\n            if <([abs v] of (STICK Y) ) > [0.3]> then\n                change [player z vel. v] by ((STICK Y) * (1))\n            end\n        else\n            if <([abs v] of (STICK X) ) > [0.3]> then\n                change [player z vel. v] by (((STICK X) * (-1)) * (1))\n            end\n            if <([abs v] of (STICK Y) ) > [0.3]> then\n                change [player x vel. v] by (((STICK Y) * (1)) * (1))\n            end\n        end\n    end\nend\n\nchange [player z vel. v] by ((1) * ((cam speed) * (10)))\n\nchange [player z vel. v] by ((-1) * (10))\n\nwhen flag clicked\n\nwhen flag clicked\nforever\n    wait until <(Stick Button) = [1]>\n    switch costume to (costume2 v)\n    repeat (10)\n        change y by (10)\n    end\n    switch costume to (costume1 v)\n    repeat (10)\n        change y by (-10)\n    end\nend\n\n@Sprite4\n\nwhen I receive [connect to cloud v]\nshow\nforever\n    go to [front v] layer\nend\n\nwhen I receive [remove clones v]\ngo to [back v] layer\nhide\n\n
ᴘʟᴀʏ ɴᴏᴡ ʀᴏᴄᴋʏ ʜɪʟʟꜱ ᴇᴅɪᴛɪᴏɴ:\nhttps://scratch.mit.edu/projects/880681874/\nᴘʟᴀʏ ɴᴏᴡ ᴛʜᴇ ᴡɪɴᴛᴇʀ ᴇᴅɪᴛɪᴏɴ:\nhttps://scratch.mit.edu/projects/877867252/\nᴘʟᴀʏ ɴᴏᴡ ᴛʜᴇ ᴅᴇꜱᴇʀᴛ ᴇᴅɪᴛɪᴏɴ:\nhttps://scratch.mit.edu/projects/878378331/\n\n                     ★3ᴅ ᴏɴʟɪɴᴇ ᴘʟᴀᴛꜰᴏʀᴍᴇʀ★\n\n***ɪꜰ ʏᴏᴜ ᴀʀᴇ ᴏɴ ᴍᴏʙɪʟᴇ, ᴘʟᴇᴀꜱᴇ ᴍᴀᴋᴇ ꜱᴜʀᴇ ᴛᴏ ʜᴏʟᴅ ᴊᴜᴍᴘ ɪɴ ᴏʀᴅᴇʀ ᴛᴏ ᴊᴜᴍᴘ ʜɪɢʜᴇʀ :)\n\n★ɪɴꜱᴛʀᴜᴄᴛɪᴏɴꜱ:\nᴜꜱᴇ ᴡ,ᴀ,ꜱ,ᴅ (ᴏʀ ᴊᴏʏꜱᴛɪᴄᴋ) ᴛᴏ ᴍᴏᴠᴇ, ᴀɴᴅ ᴀʀʀᴏᴡꜱ ᴋᴇʏ ᴛᴏ ʟᴏᴏᴋ ᴀʀᴏᴜɴᴅ (ɴᴏᴛ ᴀᴠᴀɪʟᴀʙʟᴇ ɪɴ ᴍᴏʙɪʟᴇ)\nᴜꜱᴇ ꜱᴘᴀᴄᴇ (ᴏʀ ᴛʜᴇ ᴊᴜᴍᴘ ʙᴜᴛᴛᴏɴ) ᴛᴏ ᴊᴜᴍᴘ \nᴘʀᴇꜱꜱ "ᴇ" ᴛᴏ ʜɪᴅᴇ ᴍᴏʙɪʟᴇ ᴄᴏɴᴛʀᴏʟꜱ, ᴀɴᴅ "Q" ᴛᴏ ꜱʜᴏᴡ ᴛʜᴇᴍ ᴀɢᴀɪɴ.\n\n★ᴄᴜʙᴇꜱ:\n-ᴅᴀʀᴋ ʙʟᴜᴇ ᴀʀᴇ ᴛʜᴇ ᴏᴛʜᴇʀ ᴘʟᴀʏᴇʀꜱ. \n-ɢʀᴇᴇɴ ᴀɴᴅ ᴅɪʀᴛ ᴀʀᴇ ɢʀᴏᴜɴᴅ\n-ʀᴇᴅ (ʟᴀᴠᴀ) ᴋɪʟʟꜱ ʏᴏᴜ\n-ᴘɪɴᴋ ᴍᴀᴋᴇ ʏᴏᴜ ᴊᴜᴍᴘ\n-ʏᴇʟʟᴏᴡ ɪꜱ ᴅᴀꜱʜ, ɪᴛ ᴍᴀᴋᴇꜱ ʏᴏᴜ ᴍᴏᴠᴇ ꜰᴏʀᴡᴀʀᴅ\n-ꜰʟᴀɢ ɪꜱ ᴛʜᴇ ᴄʜᴇᴄᴋᴘᴏɪɴᴛ, ᴏɴᴄᴇ ɪᴛ ɪꜱ ɢʀᴇᴇɴ ᴛʜᴇɴ ɪᴛ ᴍᴇᴀɴꜱ ʏᴏᴜ ᴡɪʟʟ ʀᴇꜱᴛᴀʀᴛ ᴛʜᴇʀᴇ ᴏɴᴄᴇ ʏᴏᴜ ᴅɪᴇ.\n-ᴅᴀʀᴋ ᴘɪɴᴋ ᴍᴀᴋᴇꜱ ʏᴏᴜ ᴊᴜᴍᴘ ʜɪɢʜᴇʀ ᴛʜᴀɴ ᴛʜᴇ ɴᴏʀᴍᴀʟ ᴘɪɴᴋ\n-ᴡʜɪᴛᴇ ɪꜱ ᴛʜᴇ ᴇɴᴅ ᴘᴏʀᴛᴀʟ ᴏꜰ ᴛʜᴇ ɢᴀᴍᴇ