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

Teardown

From The Cutting Room Floor
Jump to navigation Jump to search

Title Screen

Teardown

Developer: Tuxedo Labs[1]
Publisher: Tuxedo Labs[1]
Platform: Windows
Released internationally: October 29, 2020[1]


DevTextIcon.png This game has hidden development-related text.
EnemyIcon.png This game has unused enemies.
GraphicsIcon.png This game has unused graphics.
TextIcon.png This game has unused text.
DebugIcon.png This game has debugging material.


ProtoIcon.png This game has a prototype article
NotesIcon.png This game has a notes page

<Sanky> please suggest an unused sprite with a clock or something
This game is still under active development.
Be aware that any unused content you find may become used or removed in the future. Please only add things to the article that are unlikely to ever be used, or went unused for some time. If they do get used, please remove them from the page and specify in the edit summary!

Teardown is a voxel-based heist game known for its raytraced lighting and destruction physics. Its creator, Dennis Gustafsson, also worked on Smash Hit and Does Not Commute while working at Mediocre. There are many similarities in the inner workings of those games to Teardown.

Hmmm...
To do:
  • Try to access the level editor and debug menu in pre-Workshop builds. They segfault on ImGui::Begin so usual methods aren't enough. 3802 has a cheat table that fixes the segfault in the perftest specifically that might be able to be adapted for other builds.
  • Early example mod levels had the "version" attribute of the root "scene" element set to "3" rather than using the full (except patch) version string (e.g. "1.4.0"). There are the strings "3", "0.3.0", "2", "0.2.0", "1", and "0.1.0" in modern executables referenced by code that loads XML levels and prefabs, so we may be able to learn some things about pre-release XML levels by studying differences in parsing behavior based on the "version" attribute. Document these differences.

Sub-pages

Read about prototype versions of this game that have been released or dumped.
Prototype Info
Miscellaneous tidbits that are interesting enough to point out here.
Notes

Unused text

If you played the game before the update that added the second part of the campaign (0.9.0), you would have seen the following email in the hub terminal after you reached the end of the first part. This email can still be accessed in-game, but only if you got the email in the past. The profile picture is the old Tuxedo Labs logo.

Teardown tuxedolabs.png

Tuxedo Labs

Thank you

Congratulations! You have finished part one of Teardown. We are currently working on part two and it will be released as a free update when ready.

Thank you for playing through the game and participating in the early access. We are eager to hear your feedback! If you have any questions, comments or suggestions, head over to the official discord server or reach out to us on twitter. You'll find links at the game homepage: teardowngame.com

If you want to increase your score and rank, you can go back and replay some of the previous missions and try to complete more optional targets. If you haven't already, you can also try out the sandbox or challenge mode, check out the mods in Steam Workshop or build your own!


Sincerely,
The Teardown Developers

Unused enemy

There are references to an enemy element in all executables before 0.9.6, but it's only actually usable in 0.4.5 (launch day). They don't inflict any damage (unless you stand on their head, in which case you might take fall damage, which probably isn't intentional), but they will either back away from you while holding their front legs up, or get really uncomfortably close to you and stare at you. The enemy element has no properties besides the standard ones all elements have. The spiders can be attacked or picked up and thrown, but they cannot die, and they cannot be spraypainted.

According to a developer, this element was not intended to be left in the game, and they were removed as not to spoil their comeback in the game.[2] This was likely referring to the spider robot in part 2 (which is powered by a Lua script and made of regular voxels and shares absolutely no code with the prototype spiders).

Unused graphics

Teardown optionsbox.png

An aliased black box with a rounded white outline at data/ui/common/optionsbox.png. Filename, resolution, and this Twitter post by the main developer suggest that it was used in place of box-solid-shadow-50.png as the background for UI elements at one point. Present in all known versions of the game, including the performance test.

Teardown box-round-6.png
Teardown box-round-10.png

Teardown button-bright-round-6.png Teardown button-round-6.png

box-round-6.png, box-round-10.png, button-bright-round-6.png, and button-round-6.png in data/ui/terminal/ all go unused. This directory is used for the computer you access your emails, missions, and upgrades from in the campaign hub, so we can infer that these were probably going to be the backgrounds for UI elements of the terminal at one point. In the final release, the terminal interface is in the same style as the rest of the game, but this post by one of the developers suggests it was not always going to be like that. Present since launch day.

Teardown box-inverted-10.png
Teardown box-inverted-32.png

box-inverted-10.png and box-inverted-32.png in data/ui/common/ go unused. Present since 1.1.0 (8942147).

In data/level/mall/script/tv/ are edited versions of the images used on the television in Lee Chemicals. There is also a Lua script at data/level/mall/script/tv.lua, which is identical to the one used on Lee Chemicals. There is no television in any of the Evertides Mall levels. These images were added in 1.0.0 (8558212) and are still in the game. These were used as test images for screens that were planned to be on or around the stage in the parking lot.[3]

Strings in executable

Debugging symbol path

The executable (teardown.exe) includes the path C:\tuxedolabs\teardown\trunk\teardown.pdb (exact path varies from build to build). Unfortunately for us, the actual symbol file is not distributed with the game.

Early featured mods

We wouldn't get the "Featured mods" menu until 1.2.0 (9734688), but the executable for 1.1.0 (8942147) actually had some unused code for it, and some of the graphics that would end up being used later were present in the files at this time. None of the necessary Lua code was present however. If you had gone to the old endpoint at http://promo.teardowngame.com/?version= which could be found in the executable, you'd've gotten the response:

http://promo.teardowngame.com/2022-06-07.zip

If you had then gone to that URL before it was taken down, you'd've gotten some (unfinished) data for the "Featured mods" menu.

Download.png Download 2022-06-07.zip
File: teardown_2022-06-07.zip (461 kB) (info)
<promo>
	<group title="New favourites" format="landscape" size="large">
		<item id="steam-2812070512" title="Dog Companion" author="DimasVoxel" tags="global" image="new/dog.jpg">
			Adorable dog companion that spawn next to you on any level. Pet your companion to make it happy! Follows you everywhere and can play fetch.
		</item>
		<item id="steam-2794946945" title="The Vault of the Future" shorttitle="The Vault" author="=HammeR=" tags="content map" image="new/vault.jpg">
			Underground vault with great attention to detail.
		</item>
		<item id="steam-2807752513" title="IKEA Showrooms" shorttitle="IKEA" author="BorderLIGHT" tags="content map" image="new/ikea.jpg">
			Get lost in a huge furniture store, with the option of being chased by deadly robots.
		</item>
		<item id="steam-2797610758" title="Piano Fall" author="Jiffy UP" tags="global tool" image="new/piano.jpg">
			Grand pianos falling from the sky. There not much more to it, but it's more than enough.
		</item>
	</group>
	
	<group title="Essential Tools">
		<item id="steam-2400310320" title="Physgun" author="Fall Guy 2106" tags="tool" image="tool/physgun.jpg">
			Move things around with this tool inspired by the iconic physics gun from Half-Life 2. It has remained the most subscribed mod since the release of the Teardown Workshop. We love the attention to detail, the precise controls and versatility of this tool.
		</item>
		<item id="steam-2412621869" title="Hook Shotgun" author="My Cresta" tags="tool" image="tool/hook-shotgun.jpg">
			Why would anyone add a grapple hook to a shotgun? Because why not! Use the right mouse button to attach the grapple hook and then right mouse button again to pull in. You can use this both to swing between buildings and to pull objects.
		</item>
		<item id="steam-2539026789" title="Thermite Cannon" shorttitle="Thermite" author="el Boydo" tags="tool" image="tool/thermite-cannon.jpg">
			The Thermite Cannon is by far the best way to set things on fire in Teardown. This is an incredibly powerful tool with a masterful presentation.
		</item>
		<item id="steam-2625710852" title="Vacuum Cleaner" shorttitle="Vacuum" author="My Cresta" tags="tool" image="tool/vacuum.jpg">
			With this vacuum cleaner you'll never find yourself tidying up debris ever again. Suck up small objects with ease and it gets even better - you can spit them back out with the right mouse button. Genious!
		</item>
		<item id="steam-2682733876" title="Laserkraftwerk" author="Swivel Guy" tags="tool" image="tool/laserkraftwerk.jpg">
			Play with laser and watch voxels melt into glowing particles with this tool inspired by the Wolfenstein series.
		</item>
		<item id="steam-2789549013" title="Fire Hose" author="My Cresta" tags="tool" image="tool/fire-hose.jpg">
			If you think the built-in fire extinguisher is a bit weak, this might be for you. Put out any fire with this massive fire hose, which will also affect dynamic objects in front of it.
		</item>
		<item id="steam-2401575709" title="AC130 Airstrike" shorttitle="Airstrike" author="My Cresta" tags="tool" image="tool/airstrike.jpg">
			Feeling a little lazy? Call in an armored gunship to do the destruction for you. There is plenty of ammunition to choose from to cause just the right amount of destruction.
		</item>
		<item id="steam-2419814408" title="Attack Drone" author="My Cresta" tags="tool" image="tool/attack-drone.jpg">
			This tool adds an autonomous drone that follows you around the level and does the shooting for you. This mod also offers first-person view from the drone if you desire.
		</item>
		<item id="steam-2417823738" title="Remote Control" author="pahapua" tags="tool" image="tool/remote-control.jpg">
			Remote control any vehicle. Simply click on the vehicle you want to control and use J,K,L,I to drive. This mod is surprisingly useful and fun to play with!
		</item>
		<item id="steam-2598610013" title="Sith Saber" author="BattleBob72" tags="tool" image="tool/sith-saber.jpg">
			Very carefully implemented light saber that you can both swing as a sword with left mouse button or throw like a boomerang with the right mouse button.
		</item>
		<item id="steam-2415643616" title="C4" author="Punished Bernadetta, Slash by Zero" tags="tool" image="tool/c4.jpg">
			Place C4 charges anywhere and detonate them all at once by pressing K. You can configure both the size of the explosion and the time in between.
		</item>
	</group>
	
	<group title="Essential Sandbox Levels" format="landscape">
		<item id="steam-2414968003" title="Inverted pyramid house" shorttitle="Inv Pyramid" author="gusono" tags="content map" image="sandbox/invpyramid.jpg">
			Beautiful map inspired by a real house in Spain. 
		</item>
		<item id="steam-2453693772" title="Russian Town 3" shorttitle="Russian Town"  author="Igor_AI88" tags="content map" image="sandbox/russiantown.jpg">
			Who are the agents on the roof? What's going on in town hall and what really happened to the public school? Environmental storytelling at it's best in this huge map.
		</item>
		<item id="steam-2481708623" title="Off the Grid Cabin" shorttitle="Off the Grid" author="Jack" tags="content map" image="sandbox/offthegrid.jpg">
			Sit back and relax in this beautiful cabin in the woods. Amazing attention to detail in this small map by Jack.
		</item>
		<item id="steam-2480490943" title="The Junkyard" shorttitle="Junkyard" author="BattleBob72" tags="sandbox spawn" image="sandbox/junkyard.jpg">
			Take the ShredDozer around BattleBob's Junkyard, crush vehicles and cause mayhem. This was one of the first mods for Teardown and still one of the most iconic!
		</item>
		<item id="steam-2430961153" title="Voxel Plaza" author="o_O-r." tags="content map" image="sandbox/voxelplaza.jpg">
			Large buildings and detailed architecture. This ambitious mod has a lot of customization options.
		</item>
		<item id="steam-2465001487" title="Public Library" author="De-Alpha" tags="content map" image="sandbox/library.jpg">
			An old wooden library. Blah blah.
		</item>
	</group>

	<group title="Great Gameplay">
	</group>

	<group title="Fun Vehicles">
	</group>

	<group title="Object Spawning">
	</group>

	<group title="Miniature Landscapes">
	</group>

	<group title="Dreadful Enemies">
	</group>

	<group title="Weird and Wonderful">
	</group>
</promo>

Characters

Before 0.5.0 (including perftest), there were many strings referenced by unused code that have to do with "characters", body parts, and bones. There is also a shader called character.glsl that is still present in latest (1.4.0). In the Discord, Dennis Gustafsson (lead developer) referred to these animated humanoids as "characters",[4] which strongly suggests that the unused code that references these strings is for them.

aTangent
aBone0
aBone1
aBone2
aBone3
characters/
.chr
Could not open character file 
Could not decompress character file 
c.png
n.png
hand_l
hand_r
thigh_l
thigh_r
upperarm_l
upperarm_r
lowerarm_l
lowerarm_r
spine_01
spine_02
spine_03
calf_l
calf_r
foot_l
foot_r
pelvis
arm

Unused debugging code

Debug menu

Teardown debugimgui.png

There's a debug menu visible in some developer streams. It contains a variety of options, including a (laggy) registry viewer (in-game registry, not Windows registry), shortcuts for playing and editing built-in levels (only works if you have the source files, which are not in release builds), various rendering options, and options to view the hub terminal or TV in full screen.

It can be enabled by changing byte [0x520050+0x90]+0x0 in memory from 0x00 to 0x01. The 0x520050 is the offset of certain struct. If it changes, you can find the beginning of it again by searching for its first 3 fields (all little endian uint32s), which are your screen width, screen height, and current game state; if you're on the main menu while using a screen resolution of 1920x1080, search for value "80 07 00 00 38 04 00 00 02 00 00 00" with type "bytearray" in Cheat Engine (or scanmem/GameConqueror). The 02 near the end will change to 04 when you enter a level.

"Debug" option on main menu and terminal

In some developer streams and this censored screenshot on the Tuxedo Labs blog, there's a debug menu in the bottom left of the main menu and hub terminal. While the majority of the code for it has been removed in all Steam releases, some remnants remain. More remnants are in the perftest build.

data/ui/menu.lua

#include "debug.lua"
gDeploy = GetBool("game.deploy")
if not gDeploy and mainMenuDebug then
	mainMenuDebug()
end

The game.deploy registry key has a value of 1 in every public build.

data/ui/terminal.lua

#include "debug.lua"
function draw()
	UiPush()
		if gDebugScale > 0 then
			local w = UiWidth()
			local h = UiHeight()
			local dw = 300*gDebugScale
			local mw = UiWidth() - dw
			UiPush()
				UiScale(gDebugScale, 1)
				UiWindow(300, h, true)
				if terminalDebug then
					terminalDebug()
				end
			UiPop()
			UiTranslate(dw, 0)
			UiScale(mw/w, 1)
			UiWindow(w, h, true)
		end
		drawTerminal()
	UiPop()

	if not GetBool("game.deploy") then
		UiPush()
			setFont("h2")
			UiTranslate(60, 1066)
			UiColor(1, 1, 1, 0.5)
			UiAlign("center middle")
			gHoverDebug = UiIsMouseInRect(100, 30)
			if UiTextButton("Debug") then
				if gDebugScale > 0 then
					SetValue("gDebugScale", 0, "cosine", 0.2)
				else
					SetValue("gDebugScale", 1, "cosine", 0.2)
				end
			end
		UiPop()
	end
end

data/ui/debug.lua

Unfortunately, this file has its contents removed for retail builds.

--CONTENT REMOVED

data/ui/testbild.lua

An script at data/ui/testbild.lua has been present since launch day. The name can be translated from Swedish as "test image", and there are zero references to it anywhere else in the files. According to the lead developer, Dennis Gustafsson, it was used for testing screens acting as light sources.[5]

It displays nothing for 1 second, then a red rectangle for 1 second, then green, then blue, then nothing again, then yellow and cyan, then magenta and yellow, then black and white, then it loops.

function draw()
	local i = math.floor(GetTime())%8
	if i== 1 then
		UiColor(1,0,0)
		UiRect(640, 480)
	end
	if i== 2 then
		UiColor(0,1,0)
		UiRect(640, 480)
	end
	if i== 3 then
		UiColor(0,0,1)
		UiRect(640, 480)
	end
	if i== 5 then
		UiColor(1,1,0)
		UiRect(320, 480)
		UiTranslate(320, 0)
		UiColor(0,1,1)
		UiRect(320, 480)
	end
	if i== 6 then
		UiColor(1,0,1)
		UiRect(320, 480)
		UiTranslate(320, 0)
		UiColor(1,1,0)
		UiRect(320, 480)
	end
	if i== 7 then
		UiColor(0,0,0)
		UiRect(320, 480)
		UiTranslate(320, 0)
		UiColor(1,1,1)
		UiRect(320, 480)
	end
end

References

  1. 1.0 1.1 1.2 https://store.steampowered.com/app/1167630/Teardown/
  2. https://discord.com/channels/760105076755922996/760105077293318176/775846626316648448 * Spiders removed. They were included by accident. Since they neither look or act as we intend them to, we remove them as not to spoil their comeback in the game. —ONSVRG, the official Teardown Discord server
  3. https://discord.com/channels/760105076755922996/760105077293318176/1014765863309680710 https://discord.com/channels/760105076755922996/760105077293318176/1014891036612505771 I was pretty sure I deleted those, are they still in the distribution? I used them as test images for some screens me and John were think of using at the stage at Evertides. The idea was scrapped since we didn't have time for it so all there was was a script with images flipping by that wasn't even placed in the level —ONSVRG, the official Teardown Discord server
  4. https://discord.com/channels/760105076755922996/766578005942206466/768125499812610058 the spiders might appear in part two. the characters are probably gone —Voxagon, the official Teardown Discord server
  5. https://discord.com/channels/760105076755922996/786232592080437288/1031930663319916585 It was my test script for the screen entity and verifying that colored light was emitted correctly. It was left it by mistake and never taken out.. —Voxagon, the official Teardown Discord server