#Modern gamemode config
#PLEASE NOTE:
#SRS data Y offset is inverted, meaning that 1 will mean move up by 1 tile and -1 will move it down.
#Every other offset in this file is NOT inverted and when Y offset is increased it moves downwards.
#http://tetris.wikia.com/wiki/Tetris_Wiki
#http://tetris.wikia.com/wiki/Tetris_Guideline
#NAME
GM Tetris (Classic)

#Gamemode Settings
SETTINGSSTART
TSPIN 0
SRS 0
COMBO 0
B2B 0
GHOST 1
NOSZOZSO 0
INFINITE 0
MINWIDTH 4
MINHEIGHT 4
SETTINGSEND

#Level data
#http://tetris.wikia.com/wiki/Tetris_Worlds
#DATA <MAXLEVEL> <LINESFORNEXT> <EXTRALINESFORNEXT>
LEVELSETTINGS
DATA 20 10 0
#LEVEL <gravity> <lockframes> <falltiles>
#when fallframes are >= 60 it will drop by falltiles.
#fallframes are incremented by gravity.
#if gravity is 1 it'll take 1 second to drop a tile.
LEVELSTART
LEVEL 1 30 1
LEVEL 1.26102 30 1
LEVEL 1.61862 30 1
LEVEL 2.11536 30 1
LEVEL 2.8158 30 1
LEVEL 3.8166 30 1
LEVEL 5.274 30 1
LEVEL 7.416 30 1
LEVEL 10.65 30 1
LEVEL 15.588 30 1
LEVEL 23.28 30 1
LEVEL 35.4 30 1
LEVEL 55.2 30 1
LEVEL 87.6 30 1
LEVEL 70.8 30 2
LEVEL 117.37 30 2
LEVEL 99.206 30 4
LEVEL 85.616 30 8
LEVEL 76.219 30 16
LEVEL 67.934 30 32 
LEVELEND

SCORINGSTART
#Formula for further bonuses: 
#    800 + (cleared lines - 4) x 200 + (cleared lines - 4) x 100 x (cleared lines - 4)
LINECLEARBONUS
100
300
500
800

#Formula for further bonuses: 
#    400 + cleared lines x 400
ALLCLEARBONUS
0

#Formula for further bonuses:
#    1100 + (cleared lines - 3) x 400 + (cleared lines - 3) x 200 x (cleared lines - 3)
TSPINBONUS
0

TSPINMINI 0
SOFTDROP 1
HARDDROP 2
COMBO 0

B2BFACTOR 1
LEVELFACTOR 20
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

TEXT_B2B Back-to-Back
TEXT_TSPIN T-Spin
TEXT_TMINI T-Spin Mini
TEXT_COMBO Combo
TEXT_ALLCLEAR ALL CLEAR
TEXT_LINECLEARPLUS -tris
TEXT_LINECLEAR Single
TEXT_LINECLEAR Double
TEXT_LINECLEAR Triple
TEXT_LINECLEAR Tetris
SCORINGEND

#BLOCKS
#http://tetris.wikia.com/wiki/Tetromino
#http://tetris.wikia.com/wiki/Wall_kick
#http://tetris.wikia.com/wiki/SRS
BLOCKSTART

#I BLOCK
NEWBLOCK I
OFFSET 0 0
BBOX 4 4
----
0000
----
----
--0-
--0-
--0-
--0-
----
----
0000
----
-0--
-0--
-0--
-0--
SRSDATA
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
#NEWBLOCK proceeds to create a new block followed by the identifier letter, if it's a T then T spin checking will be done.
#NEWBLOCK <letter>
#
#OFFSET defines the spawn offset of the block
#OFFSET <x y>
#
#Tile and SRS information
#
#BBOX defines the width and height of the tile data
#it is then followed by tile data in the following lines by all 4 rotations (0-3)
#tile data is valid for numbers 0-7, use - for no tile
#
#Syntax:
#
#BBOX <width height>
#[tile data]
#
#SRSDATA
#ROTATION 0->1 <test1 x1 y1> <test2 x2 y2> <test3 x3 y3> <test4 x4 y4> <test5 x5 y5>
#ROTATION 1->0 <test1 x1 y1> <test2 x2 y2> <test3 x3 y3> <test4 x4 y4> <test5 x5 y5>
#ROTATION 1->2 <test1 x1 y1> <test2 x2 y2> <test3 x3 y3> <test4 x4 y4> <test5 x5 y5>
#ROTATION 2->1 <test1 x1 y1> <test2 x2 y2> <test3 x3 y3> <test4 x4 y4> <test5 x5 y5>
#ROTATION 2->3 <test1 x1 y1> <test2 x2 y2> <test3 x3 y3> <test4 x4 y4> <test5 x5 y5>
#ROTATION 3->2 <test1 x1 y1> <test2 x2 y2> <test3 x3 y3> <test4 x4 y4> <test5 x5 y5>
#ROTATION 3->0 <test1 x1 y1> <test2 x2 y2> <test3 x3 y3> <test4 x4 y4> <test5 x5 y5>
#ROTATION 0->3 <test1 x1 y1> <test2 x2 y2> <test3 x3 y3> <test4 x4 y4> <test5 x5 y5>

#J BLOCK
NEWBLOCK J
OFFSET 0 0
BBOX 3 3
1--
111
---
-11
-1-
-1-
---
111
--1
-1-
-1-
11-
SRSDATA
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0

#L BLOCK
NEWBLOCK L
OFFSET 0 0
BBOX 3 3
--2
222
---
-2-
-2-
-22
---
222
2--
22-
-2-
-2-
SRSDATA
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0

#O BLOCK
NEWBLOCK O
OFFSET 0 0
BBOX 4 3
-33-
-33-
----
-33-
-33-
----
-33-
-33-
----
-33-
-33-
----
SRSDATA
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0

#S BLOCK
NEWBLOCK S
OFFSET 0 0
BBOX 3 3
-44
44-
---
-4-
-44
--4
---
-44
44-
4--
44-
-4-
SRSDATA
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0

#T BLOCK
#
#TCORNERCOORDS are used for checking T spin corners
#TCORNERCOORDS LT<x1 y1> RT<x2 y2> RB<x3 y3> LB<x4 y4>
#
#TSIDECOORDS are used for determining if the T spin is a T spin or a mini T spin.
#TSIDECOORDS T<x1 y1> L<x2 y2> R<x3 y3> D<x4 y4>
#
NEWBLOCK T
OFFSET 0 0
BBOX 3 3
-5-
555
---
-5-
-55
-5-
---
555
-5-
-5-
55-
-5-
SRSDATA
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0

#Z BLOCK
NEWBLOCK Z
OFFSET 0 0
BBOX 3 3
66-
-66
---
--6
-66
-6-
---
66-
-66
-6-
66-
6--
SRSDATA
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0

BLOCKEND
GMEND