If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!

Klick Klack

From The Cutting Room Floor
Jump to navigation Jump to search

Title Screen

Klick Klack

Developer: Zut Games
Publisher: Zut Games
Platforms: Android, iOS
Released internationally: August 21, 2018[1] (Android), August 22, 2018[2] (iOS)


DevTextIcon.png This game has hidden development-related text.


Klick Klack is a simple puzzler about guiding a moving ball in a manually rotating labyrinth.

Development Text

Inside the game's assets folder are many files that were left over from the game's development. Two of them reveal what is possibly an earlier name for the game: "Clacky Maze".

clackymaze.sublime-project

{
	"folders":
	[
		{
			"path": "."
		}
	]
}

clackymaze.sublime-workspace

Within this file, a curious name is mentioned several times: "GlowGridDisco". This might be an earlier name for GlowGrid 2, which would only be released three months after this game.

{
	"auto_complete":
	{
		"selected_items":
		[
			[
				"_to",
				"_touchY"
			],
			[
				"unlocked",
				"unlockedLevel"
			],
			[
				"sele",
				"selectedLevel"
			],
			[
				"tiles",
				"tilesTravelled"
			],
			[
				"scale",
				"yScale"
			],
			[
				"level",
				"levelData"
			],
			[
				"cherr",
				"cherryData"
			],
			[
				"cherry",
				"cherryData"
			],
			[
				"gena",
				"generateStartingBoard"
			],
			[
				"Game",
				"gamesPlayed"
			],
			[
				"sho",
				"showNativeRateDialog"
			],
			[
				"dat",
				"dataVersion"
			],
			[
				"car",
				"carousel"
			],
			[
				"grid",
				"gridData"
			],
			[
				"tra",
				"transition"
			],
			[
				"is",
				"isIPhoneX"
			],
			[
				"anch",
				"anchorY"
			],
			[
				"play",
				"playBtn"
			],
			[
				"settings",
				"settingsBtn"
			],
			[
				"sound",
				"soundBtn"
			],
			[
				"anc",
				"anchorY"
			],
			[
				"score",
				"scoreGroup"
			],
			[
				"image",
				"imageSheetInfo"
			],
			[
				"or",
				"orientation"
			],
			[
				"cre",
				"createImage"
			],
			[
				"high",
				"highScoreText"
			],
			[
				"til",
				"tilesTravelled"
			],
			[
				"rota",
				"rotationHalfway"
			],
			[
				"fun",
				"function\tfunction"
			],
			[
				"x",
				"xScale"
			],
			[
				"path",
				"pathWidth"
			],
			[
				"pat",
				"pathWidth"
			],
			[
				"hi",
				"hilite"
			],
			[
				"player",
				"playerSprite"
			],
			[
				"res",
				"restart"
			],
			[
				"dest",
				"destroyList"
			],
			[
				"des",
				"destroyList"
			],
			[
				"star",
				"startY"
			],
			[
				"reset",
				"resetBomb"
			],
			[
				"pro",
				"tileProgress"
			],
			[
				"tile",
				"tileProgress"
			],
			[
				"bac",
				"background-color"
			],
			[
				"strlo",
				"strtolower"
			],
			[
				"leve",
				"levelValues"
			],
			[
				"json",
				"json_encode"
			],
			[
				"spra",
				"spreadsheetFeed"
			],
			[
				"be",
				"bestReport"
			],
			[
				"clos",
				"closestValue"
			],
			[
				"close",
				"closestDistance"
			],
			[
				"avg",
				"avgDistanceY"
			],
			[
				"adj",
				"adjacentDistancesX"
			],
			[
				"rgb",
				"rgb1"
			],
			[
				"_boa",
				"_boardLayer"
			],
			[
				"pale",
				"palette"
			],
			[
				"men",
				"detailMenuH"
			],
			[
				"me",
				"detailMenuH"
			],
			[
				"m",
				"detailMenuH"
			],
			[
				"de",
				"detailMenuH"
			],
			[
				"create",
				"createBoardView"
			],
			[
				"contn",
				"contentWidth"
			],
			[
				"rep",
				"response"
			],
			[
				"on",
				"onComplete"
			],
			[
				"pre",
				"premiumPID"
			],
			[
				"show",
				"showRewarded"
			]
		]
	},
	"buffers":
	[
		{
			"file": "lib/bus.lua",
			"settings":
			{
				"buffer_size": 3492,
				"encoding": "UTF-8",
				"line_ending": "Windows"
			}
		},
		{
			"file": "scenes/game-scene.lua",
			"settings":
			{
				"buffer_size": 1241,
				"line_ending": "Windows"
			}
		},
		{
			"file": "game/game.lua",
			"settings":
			{
				"buffer_size": 15808,
				"encoding": "UTF-8",
				"line_ending": "Windows"
			}
		},
		{
			"file": "app/app.lua",
			"settings":
			{
				"buffer_size": 5847,
				"encoding": "UTF-8",
				"line_ending": "Windows"
			}
		},
		{
			"file": "scenes/select-scene.lua",
			"settings":
			{
				"buffer_size": 9323,
				"line_ending": "Windows"
			}
		},
		{
			"contents": "Searching 70 files for \"justUnlocked\"\n\nD:\\Projects\\KlickKlack\\app\\app\\app.lua:\n  231  \tend\n  232  \n  233: \tSession.justUnlocked=false\n  234  \tlocal nextLevelGate=nil\n  235  \tif Config.levelData[level+1] and Config.levelData[level+1].gate then \n  ...\n  237  \tend\n  238  \tif nextLevelGate and oldHighScore<nextLevelGate and score>=nextLevelGate then \n  239: \t\tSession.justUnlocked=true\n  240  \tend\n  241  \n\nD:\\Projects\\KlickKlack\\app\\scenes\\select-scene.lua:\n  368  \t\t\n  369  \n  370: \t\tif Session.justUnlocked then \n  371  \t\t\tApp.allowTouch(false)\n  372  \n  ...\n  395  \t\t\t\tApp.allowTouch(true)\n  396  \t\t\tend)\n  397: \t\t\tSession.justUnlocked=false\n  398  \n  399  \t\tend\n\n4 matches across 2 files\n\n\nSearching 70 files for \"attri\"\n\nD:\\Projects\\KlickKlack\\app\\app\\app.lua:\n  172  \n  173  \tif Env.isIOS then\n  174: \t\tAttribution=new('services.attribution')\n  175: \t\tAttribution.init()\n  176  \tend\n  177  \n  ...\n  241  \n  242  \tif nextLevelGate and oldHighScore<nextLevelGate and score>=nextLevelGate then \n  243: \t\tAttribution.logLevelUnlocked(nextLevel)\n  244  \t\tSession.justUnlocked=true\n  245  \tend\n\nD:\\Projects\\KlickKlack\\app\\LaunchScreen.storyboardc\\01J-lp-oVM-view-Ze5-6b-2t3.nib:\n    <binary>\n\nD:\\Projects\\KlickKlack\\app\\lib\\simple-json.lua:\n    8  -- Latest version: http://regex.info/blog/lua/json\n    9  --\n   10: -- This code is released under a Creative Commons CC-BY \"Attribution\" License:\n   11  -- http://creativecommons.org/licenses/by/3.0/deed.en_US\n   12  --\n\n10 matches across 3 files\n",
			"settings":
			{
				"buffer_size": 1495,
				"line_ending": "Windows",
				"name": "Find Results",
				"scratch": true
			}
		},
		{
			"file": "services/attribution.lua",
			"settings":
			{
				"buffer_size": 809,
				"encoding": "UTF-8",
				"line_ending": "Windows"
			}
		},
		{
			"file": "build.settings",
			"settings":
			{
				"buffer_size": 2943,
				"encoding": "UTF-8",
				"line_ending": "Windows"
			}
		}
	],
	"build_system": "Packages/Python/Python.sublime-build",
	"build_system_choices":
	[
		[
			[
				[
					"Packages/Python/Python.sublime-build",
					""
				],
				[
					"Packages/Python/Python.sublime-build",
					"Syntax Check"
				]
			],
			[
				"Packages/Python/Python.sublime-build",
				""
			]
		]
	],
	"build_varint": "",
	"command_palette":
	{
		"height": 392.0,
		"last_filter": "pack",
		"selected_items":
		[
			[
				"pack",
				"Package Control: Install Package"
			]
		],
		"width": 400.0
	},
	"console":
	{
		"height": 323.0,
		"history":
		[
			"import urllib.request,os,hashlib; h = '2915d1851351e5ee549c20394736b442' + '8bc59f460fa1548d1514676163dafc88'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); by = urllib.request.urlopen( 'http://packagecontrol.io/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download (got %s instead of %s), please try manual install' % (dh, h)) if dh != h else open(os.path.join( ipp, pf), 'wb' ).write(by)"
		]
	},
	"distraction_free":
	{
		"menu_visible": true,
		"show_minimap": false,
		"show_open_files": false,
		"show_tabs": false,
		"side_bar_visible": false,
		"status_bar_visible": false
	},
	"expanded_folders":
	[
		"/D/Projects/KlickKlack/app",
		"/D/Projects/KlickKlack/app/app",
		"/D/Projects/KlickKlack/app/assets",
		"/D/Projects/KlickKlack/app/data",
		"/D/Projects/KlickKlack/app/fonts",
		"/D/Projects/KlickKlack/app/game",
		"/D/Projects/KlickKlack/app/lib",
		"/D/Projects/KlickKlack/app/scenes",
		"/D/Projects/KlickKlack/app/services"
	],
	"file_history":
	[
		"/D/Projects/KlickKlack/app/services/facebook.lua",
		"/D/Projects/KlickKlack/app/services/gpgs.lua",
		"/D/Projects/KlickKlack/app/app/app.lua",
		"/D/Projects/KlickKlack/app/scenes/select-scene.lua",
		"/D/Projects/KlickKlack/app/app/conf.lua",
		"/D/Projects/KlickKlack/app/scenes/carousel.lua",
		"/D/Projects/KlickKlack/app/lib/bus.lua",
		"/D/Projects/KlickKlack/app/game/generator.lua",
		"/D/Projects/KlickKlack/app/game/game.lua",
		"/D/Projects/KlickKlack/app/game/tutorial.lua",
		"/D/Projects/KlickKlack/app/scenes/game-scene.lua",
		"/D/Projects/KlickKlack/app/lib/a-star.lua",
		"/D/Projects/KlickKlack/app/game/astar-test.lua",
		"/D/Projects/KlickKlack/app/app/graphics.lua",
		"/D/Projects/KlickKlack/app/app/ads.lua",
		"/D/Projects/KlickKlack/app/scenes/title-scene.lua",
		"/D/Projects/KlickKlack/app/app/env.lua",
		"/D/Projects/KlickKlack/app/scenes/tutorial-scene.lua",
		"/D/Projects/KlickKlack/app/app/log.lua",
		"/D/Projects/KlickKlack/app/app/user.lua",
		"/D/Projects/KlickKlack/app/services/iap.lua",
		"/D/Projects/KlickKlack/app/services/rate.lua",
		"/D/Projects/KlickKlack/app/main.lua",
		"/D/Projects/KlickKlack/app/config.lua",
		"/D/Projects/KlickKlack/app/build.settings",
		"/D/Projects/KlickKlack/app/app/launch.lua",
		"/D/Projects/KlickKlack/app/app/touch.lua",
		"/D/Projects/KlickKlack/app/app/shop.lua",
		"/D/Projects/KlickKlack/app/lib/scenes.lua",
		"/D/Projects/KlickKlack/app/scenes/splash-scene.lua",
		"/D/Projects/corona-empty/empty/config.lua",
		"/D/Projects/corona-empty/empty/build.settings",
		"/D/Projects/corona-empty/empty/main.lua",
		"/D/Projects/KlickKlack/app/app/unity-ads.lua",
		"/D/Projects/KlickKlack/app/app/iap.lua",
		"/D/Projects/KlickKlack/app/app/sounds.lua",
		"/D/Projects/KlickKlack/app/assets/sprites.lua",
		"/D/Projects/KlickKlack/app/app/locale.lua",
		"/D/Projects/KlickKlack/app/assets/sprites@4x.lua",
		"/D/Projects/KlickKlack/app/fonts/MaropawiClub.otf",
		"/D/Projects/KlickKlack/app/app/main.lua",
		"/D/Projects/KlickKlack/app/log.lua",
		"/D/Projects/KlickKlack/app/app/config.lua",
		"/D/Projects/KlickKlack/app/lib/db-storage.lua",
		"/D/Projects/KlickKlack/app/assets/sprites@2x.lua",
		"/D/Projects/KlickKlack/app/assets/sprites-.lua",
		"/D/Projects/KlickKlack/app/button.lua",
		"/D/Projects/KlickKlack/app/lib/debug.lua",
		"/D/Projects/KlickKlack/app/sounds.lua",
		"/C/Work/Projects/ClickClack/dev/app/lib/db-storage.lua",
		"/C/Work/Projects/ClickClack/dev/app/scenes/game-scene.lua",
		"/C/Work/Projects/ClickClack/dev/app/button.lua",
		"/C/Work/Projects/ClickClack/dev/app/main.lua",
		"/C/Work/Projects/ClickClack/dev/app/lib/colors.lua",
		"/C/Work/Projects/ClickClack/dev/app/sounds.lua",
		"/C/Work/Projects/ClickClack/dev/app/audio/rotate.wav",
		"/C/Work/Prototypes/clackymaze/ClackyMaze/fonts/RifficFree-Bold.ttf",
		"/C/Work/Prototypes/clackymaze/ClackyMaze/config.lua",
		"/C/Work/Prototypes/clackymaze/ClackyMaze/build.settings",
		"/C/Work/Prototypes/clackymaze/ClackyMaze/main.lua",
		"/C/Work/Prototypes/clackymaze/ClackyMaze/sounds.lua",
		"/C/Work/Prototypes/clackymaze/ClackyMaze/debug.lua",
		"/C/Work/Prototypes/GlowGridDisco/dev/app/launch.lua",
		"/C/Work/Prototypes/clackymaze/ClackyMaze/scenes/game-scene.lua",
		"/C/Work/Prototypes/clackymaze/ClackyMaze/lib/scenes.lua",
		"/C/Work/Prototypes/clackymaze/ClackyMaze/lib/helpers.lua",
		"/C/Work/Prototypes/clackymaze/ClackyMaze/button.lua",
		"/C/Work/Prototypes/clackymaze/ClackyMaze/lib/colors.lua",
		"/C/Work/Prototypes/clackymaze/ClackyMaze/audio.lua",
		"/C/Work/Prototypes/GlowGridDisco/dev/app/audio.lua",
		"/C/Work/Prototypes/GlowGridDisco/dev/app/debug.lua",
		"/C/Work/Prototypes/clackymaze/ClackyMaze/scene/game-scene.lua",
		"/C/Work/Prototypes/GlowGridDisco/dev/main.lua",
		"/C/Work/Projects/zutgames-com/html/index.php",
		"/C/Work/Projects/zutgames-com/html/footer.php",
		"/C/Work/Projects/zutgames-com/html/css/zut.css",
		"/C/Work/Projects/zutgames-com/html/header.php",
		"/C/Work/Projects/zutgames-com/html/index_hue",
		"/C/Work/Projects/zutgames-com/html/presskit/i love hue/data.xml",
		"/C/Work/Projects/zutgames-com/html/presskit/sheet.php",
		"/C/Work/Projects/zutgames-com/html/presskit/style.css",
		"/C/Work/Projects/zutgames-com/html/presskit/index.php",
		"/C/Work/Projects/zutgames-com/html/i-love-hue.php",
		"/C/Work/Projects/zutgames-com/html/jobs.php",
		"/C/Work/Projects/zutgames-com/html/glowgrid.php",
		"/C/Work/Projects/zutgames-com/html/presskit/glowgrid/data.xml",
		"/C/Work/Projects/zutgames-com/html/presskit/pushcat/data.xml",
		"/C/Work/Projects/zutgames-com/html/presskit/data.xml",
		"/D/Projects/zutgames.com/site/html/index.php",
		"/D/Projects/zutgames.com/site/html/footer.php",
		"/D/Projects/zutgames.com/site/html/presskit/sheet.php",
		"/D/Projects/zutgames.com/site/html/i-love-hue.php",
		"/D/Projects/zutgames.com/site/html/presskit/i love hue/data.xml",
		"/D/Projects/zutgames.com/site/html/presskit/data.xml",
		"/C/Work/Projects/I Love Hue/I Love Hue dev/art/tools/generator.jsx",
		"/D/Projects/i-love-hue/old-checkout/dev/app/env.lua",
		"/D/Projects/i-love-hue/old-checkout/dev/app/app.lua",
		"/C/Work/Projects/zutgames-com/site/.htaccess",
		"/D/Projects/i-love-hue/old-checkout/dev/services/iap.lua",
		"/D/Projects/i-love-hue/old-checkout/dev/app/launch.lua",
		"/D/Projects/i-love-hue/old-checkout/dev/app/shop.lua",
		"/D/Projects/i-love-hue/old-checkout/dev/main.lua",
		"/C/Work/Projects/zutgames-com/site/html/header.php",
		"/C/Work/Projects/zutgames-com/site/html/index.php",
		"/D/Builds/installer.bat",
		"/D/Projects/zutgames.com/www/header.php",
		"/C/tools/xampp/apache/conf/extra/httpd-vhosts.conf",
		"/D/Projects/zutgames.com/site/.htaccess",
		"/D/Projects/zutgames.com/site/index.html",
		"/D/Projects/zutgames.com/site/html/css/zut.css",
		"/D/Projects/zutgames.com/site/html/header.php",
		"/D/Projects/zutgames.com/site/html/pushcat.php",
		"/D/Projects/i-love-hue/_data.xml",
		"/D/Projects/i-love-hue/index.php",
		"/D/Projects/i-love-hue/data.xml",
		"/D/Projects/zutgames.com/www/index.php",
		"/D/Projects/zutgames.com/site/html/404.php",
		"/D/Projects/zutgames.com/index.php",
		"/C/tools/xampp/apache/conf/original/extra/httpd-vhosts.conf",
		"/C/tools/xampp/apache/conf/extra/httpd-xampp.conf",
		"/D/Projects/zutgames.com/www/css/zut.css",
		"/D/Projects/zutgames.com/www/css/logo-nav.css",
		"/D/Projects/i-love-hue/dev/pub/i-love-hue.com/www/Mobile_Detect.php",
		"/C/Users/Fritz/AppData/Local/Temp/Temp1_Mobile-Detect-2.8.22.zip/Mobile-Detect-2.8.22/Mobile_Detect.json",
		"/D/Projects/i-love-hue/dev/pub/i-love-hue.com/www/index.php",
		"/D/Projects/i-love-hue/dev/pub/i-love-hue.com/www/i-love-hue.css",
		"/D/Projects/i-love-hue/dev/art/tools/generator.jsx",
		"/D/Projects/i-love-hue/art/tools/generator.jsx"
	],
	"find":
	{
		"height": 40.0
	},
	"find_in_files":
	{
		"height": 178.0,
		"where_history":
		[
			"<open folders>",
			"C:\\Work\\Prototypes\\clackymaze\\ClackyMaze",
			""
		]
	},
	"find_state":
	{
		"case_sensitive": false,
		"find_history":
		[
			"attri",
			"%",
			"justUnlocked",
			"touch",
			"\n\t",
			"_touchArea",
			"touchX",
			"_didTouch",
			"cherry",
			"loop",
			"sounds.",
			"y=tile.y",
			"transition.",
			"shadowOffset",
			"shadow",
			"isVIs",
			"shadow.isV",
			"tile.xScale",
			"shadow",
			"session.level",
			"DEBUG_IGNORE_LOCKED",
			"init",
			"exit",
			"Session.level",
			"dump",
			"print",
			"log",
			"print",
			"icon",
			"lock",
			"connect",
			"userInit",
			"connect",
			"SUBMITsCORE",
			"scoreboard",
			"SCOREBOARD",
			"LEADERBOARD",
			"leader",
			"showLeader",
			"crown",
			"scoreGroup",
			"score",
			"lock",
			"jump",
			"lockedS",
			"col",
			"DEBUG_TEST_UNLOCK",
			"unlocked",
			"unlockedLevel",
			"ui",
			"element.ui",
			"isLocked",
			"jump",
			"transito",
			"transitionOut",
			"element.locked",
			"level.unlockedState",
			"createLevel",
			"transitionIn",
			"createLevel",
			"element.ui",
			"end",
			"didJustReachGate",
			"carousel.sele",
			"init",
			"rate",
			"justUnlocked",
			"gameOver",
			"cherry!",
			"isLocked",
			"select(",
			"gate",
			"icon",
			"frame",
			"cherry",
			"init",
			"restart",
			"Session.level",
			"_selected",
			"update",
			"end",
			"_selected=",
			"onSelect",
			"lockLabel",
			"getEle",
			"iconButtonScale",
			"gameOver",
			"scoreText.",
			"score",
			"isVi",
			"score",
			"play",
			"p0lay",
			"exit",
			"getCherry",
			"deletePr",
			"deletePR",
			"framesElapsed",
			"onframe",
			"restart",
			"frame",
			"isPla",
			"restart",
			"create",
			"resetCherry",
			"reset",
			"tilesTra",
			"cherry.x",
			"resetCHerr",
			"resetCher",
			"resetCherry",
			"restart",
			"playerSPrite=",
			"xScale",
			"playerSPrite.isV",
			"restart",
			"pulseCher",
			"resetCHerry",
			"resetLevel",
			"resetCh",
			"resetCHer",
			"tile.i",
			"0.8",
			"shuffle",
			"resetBoard",
			"generat",
			"init",
			"orient"
		],
		"highlight": true,
		"in_selection": false,
		"preserve_case": false,
		"regex": false,
		"replace_history":
		[
			"log",
			"element.unlockedState",
			"justUnlocked",
			"this.elements",
			"SMALL",
			"_selected",
			"closeBtn",
			"Config",
			"sheet",
			"sheetInfo",
			"Graphics.createImage",
			"Graphics.createImageRect",
			"_placementID",
			"tile.",
			"b",
			"#333",
			"Ubuntu",
			"Montserrat",
			"Rubik",
			"getWorksheetFeed",
			"cmsWorksheetFeed",
			"$setID",
			"rgb3",
			"rgb4",
			"rgb3",
			"rgb2",
			"rgb1",
			"width",
			"height",
			" || ",
			" && ",
			"var",
			"pinned",
			" && ",
			" || ",
			"var",
			";",
			")",
			"}",
			"if (p",
			"rgb",
			"rgb1",
			"Bus",
			"App.unit",
			"_didWatch",
			"dispatch",
			"_isRestoring",
			"iap"
		],
		"reverse": false,
		"show_context": true,
		"use_buffer2": true,
		"whole_word": false,
		"wrap": true
	},
	"groups":
	[
		{
			"selected": 6,
			"sheets":
			[
				{
					"buffer": 0,
					"file": "lib/bus.lua",
					"semi_transient": false,
					"settings":
					{
						"buffer_size": 3492,
						"regions":
						{
						},
						"selection":
						[
							[
								2245,
								2245
							]
						],
						"settings":
						{
							"syntax": "Packages/Lua/Lua.sublime-syntax",
							"tab_size": 4,
							"translate_tabs_to_spaces": true
						},
						"translation.x": 0.0,
						"translation.y": 1152.0,
						"zoom_level": 1.0
					},
					"stack_index": 6,
					"type": "text"
				},
				{
					"buffer": 1,
					"file": "scenes/game-scene.lua",
					"semi_transient": false,
					"settings":
					{
						"buffer_size": 1241,
						"regions":
						{
						},
						"selection":
						[
							[
								0,
								0
							]
						],
						"settings":
						{
							"syntax": "Packages/Lua/Lua.sublime-syntax"
						},
						"translation.x": 0.0,
						"translation.y": 0.0,
						"zoom_level": 1.0
					},
					"stack_index": 4,
					"type": "text"
				},
				{
					"buffer": 2,
					"file": "game/game.lua",
					"semi_transient": false,
					"settings":
					{
						"buffer_size": 15808,
						"regions":
						{
						},
						"selection":
						[
							[
								6478,
								6478
							]
						],
						"settings":
						{
							"syntax": "Packages/Lua/Lua.sublime-syntax",
							"translate_tabs_to_spaces": false
						},
						"translation.x": 0.0,
						"translation.y": 5408.8,
						"zoom_level": 1.0
					},
					"stack_index": 3,
					"type": "text"
				},
				{
					"buffer": 3,
					"file": "app/app.lua",
					"semi_transient": false,
					"settings":
					{
						"buffer_size": 5847,
						"regions":
						{
						},
						"selection":
						[
							[
								0,
								5847
							]
						],
						"settings":
						{
							"syntax": "Packages/Lua/Lua.sublime-syntax",
							"translate_tabs_to_spaces": false
						},
						"translation.x": 0.0,
						"translation.y": 2815.2,
						"zoom_level": 1.0
					},
					"stack_index": 5,
					"type": "text"
				},
				{
					"buffer": 4,
					"file": "scenes/select-scene.lua",
					"semi_transient": false,
					"settings":
					{
						"buffer_size": 9323,
						"regions":
						{
						},
						"selection":
						[
							[
								8727,
								8727
							]
						],
						"settings":
						{
							"syntax": "Packages/Lua/Lua.sublime-syntax",
							"translate_tabs_to_spaces": false
						},
						"translation.x": 0.0,
						"translation.y": 6240.0,
						"zoom_level": 1.0
					},
					"stack_index": 2,
					"type": "text"
				},
				{
					"buffer": 5,
					"semi_transient": false,
					"settings":
					{
						"buffer_size": 1495,
						"regions":
						{
							"match":
							{
								"flags": 112,
								"regions":
								[
									[
										115,
										127
									],
									[
										366,
										378
									],
									[
										495,
										507
									],
									[
										625,
										637
									],
									[
										808,
										813
									],
									[
										834,
										839
									],
									[
										857,
										862
									],
									[
										1006,
										1011
									],
									[
										1372,
										1377
									]
								],
								"scope": ""
							}
						},
						"selection":
						[
							[
								814,
								814
							]
						],
						"settings":
						{
							"detect_indentation": false,
							"line_numbers": false,
							"output_tag": 2,
							"result_base_dir": "",
							"result_file_regex": "^([^ \t].*):$",
							"result_line_regex": "^ +([0-9]+):",
							"scroll_past_end": true,
							"syntax": "Packages/Default/Find Results.hidden-tmLanguage"
						},
						"translation.x": 0.0,
						"translation.y": 425.6,
						"zoom_level": 1.0
					},
					"stack_index": 1,
					"type": "text"
				},
				{
					"buffer": 6,
					"file": "services/attribution.lua",
					"semi_transient": false,
					"settings":
					{
						"buffer_size": 809,
						"regions":
						{
						},
						"selection":
						[
							[
								158,
								158
							]
						],
						"settings":
						{
							"syntax": "Packages/Lua/Lua.sublime-syntax",
							"translate_tabs_to_spaces": false
						},
						"translation.x": 0.0,
						"translation.y": 0.0,
						"zoom_level": 1.0
					},
					"stack_index": 0,
					"type": "text"
				},
				{
					"buffer": 7,
					"file": "build.settings",
					"semi_transient": false,
					"settings":
					{
						"buffer_size": 2943,
						"regions":
						{
						},
						"selection":
						[
							[
								2734,
								2734
							]
						],
						"settings":
						{
							"syntax": "Packages/Lua/Lua.sublime-syntax"
						},
						"translation.x": 0.0,
						"translation.y": 1767.0,
						"zoom_level": 1.0
					},
					"stack_index": 7,
					"type": "text"
				}
			]
		}
	],
	"incremental_find":
	{
		"height": 27.0
	},
	"input":
	{
		"height": 68.0
	},
	"layout":
	{
		"cells":
		[
			[
				0,
				0,
				1,
				1
			]
		],
		"cols":
		[
			0.0,
			1.0
		],
		"rows":
		[
			0.0,
			1.0
		]
	},
	"menu_visible": true,
	"output.exec":
	{
		"height": 396.0
	},
	"output.find_results":
	{
		"height": 0.0
	},
	"pinned_build_system": "Packages/Python/Python.sublime-build",
	"project": "clackymaze.sublime-project",
	"replace":
	{
		"height": 50.0
	},
	"save_all_on_build": true,
	"select_file":
	{
		"height": 0.0,
		"last_filter": "",
		"selected_items":
		[
		],
		"width": 0.0
	},
	"select_project":
	{
		"height": 500.0,
		"last_filter": "",
		"selected_items":
		[
		],
		"width": 380.0
	},
	"select_symbol":
	{
		"height": 0.0,
		"last_filter": "",
		"selected_items":
		[
		],
		"width": 0.0
	},
	"selected_group": 0,
	"settings":
	{
	},
	"show_minimap": true,
	"show_open_files": false,
	"show_tabs": true,
	"side_bar_visible": true,
	"side_bar_width": 381.0,
	"status_bar_visible": true,
	"template_settings":
	{
	}
}

data\fetch.py

A Python script that is used to obtain the game's text strings.

index={}
index['strings']='https://docs.google.com/spreadsheets/d/e/2PACX-1vR6-duGN9PFsVuvfPzD3maxf1ZvUbJr7LTp6_bT9PRcfAcrfNc-mNh-Aywpkhgca8ImeueqW37D2b_N/pub?gid=0&single=true&output=tsv'


import urllib.request
import csv
import time
from pprint import pprint

def isNumber(s):
    try:
        float(s)
        return True
    except ValueError:
        return False

def fetch(url):
	with urllib.request.urlopen(url) as response:
		r = response.read()
	u=r.decode('UTF-8')
	reader = csv.reader(u.split('\n'),delimiter='\t')
	index=0
	data={}

	for row in reader:
		item={}
		if index==0:
			names=row
		else:
			for i in range(len(row)):
				name=names[i]

				
				if name[0:1]!='_' and len(row[i])>0:
					cell=row[i]
					
					if cell.lower()=='false':
						cell=False
					elif cell.lower()=='true':
						cell=True
					elif isNumber(cell):
						cell=int(cell)
					elif cell[0]=="$":
						cell=cell[1:]
					elif ',' in cell:
						vals=cell.split(',')
						cell=[x for x in vals if x!='']	
					item[name]=cell
			if len(row[0])>0:
				data[row[0]]=item
		index=index+1
	return data

data={}

for key,url in index.items():

	data[key]=fetch(url)
	print(key+" ok")
	time.sleep(1)

import json
j=json.dumps(data)
j=j.replace('True','true')
j=j.replace('False','false')
print(j)
with open('data.txt', 'w') as file:
	file.write(j)

References