diff --git a/code/controllers/subsystem/map_preview.dm b/code/controllers/subsystem/map_preview.dm
new file mode 100644
index 00000000000..ea63e2a6693
--- /dev/null
+++ b/code/controllers/subsystem/map_preview.dm
@@ -0,0 +1,79 @@
+SUBSYSTEM_DEF(map_previews)
+ name = "Map Previews"
+ ss_flags = SS_NO_FIRE
+ dependencies = list(
+ /datum/controller/subsystem/machines,
+ /datum/controller/subsystem/mapping,
+ )
+
+/datum/controller/subsystem/map_previews/Initialize()
+#ifndef UNIT_TESTS
+ if(!CONFIG_GET(flag/generate_assets_in_init))
+ return SS_INIT_SUCCESS
+#endif
+ generate_map_previews()
+ return SS_INIT_SUCCESS
+
+/datum/controller/subsystem/map_previews/proc/generate_map_previews()
+ var/list/worklist = list()
+ var/list/already_generated = list()
+ var/static/list/preview_blacklist = list(
+ /obj/machinery/computer,
+ /obj/machinery/computer/old,
+ )
+
+ for(var/obj/typepath as anything in subtypesof(/obj))
+ if(!initial(typepath.generate_map_preview))
+ continue
+ if(typepath in preview_blacklist)
+ continue
+ worklist += typepath
+
+ var/turf/preview_turf = locate(1, 1, 1)
+
+ var/filepath = "icons/obj/fluff/map_previews.dmi"
+ var/icon/holder = icon('icons/obj/fluff/map_previews_template.dmi')
+
+ for(var/path in worklist)
+ var/obj/thingtospawn = new path(preview_turf)
+
+ if(ismachinery(thingtospawn))
+ var/obj/machinery/machine = thingtospawn
+ machine.set_machine_stat(machine.machine_stat & ~NOPOWER)
+ machine.update_appearance()
+
+ var/key = "[thingtospawn.icon]-[thingtospawn.icon_state]"
+ for(var/image/overlay as anything in thingtospawn.overlays)
+ key += "-[overlay.icon_state]"
+ if(already_generated[key])
+ qdel(thingtospawn)
+ continue
+ already_generated[key] = TRUE
+
+ var/icon_name = "[path]"
+ for(var/dir in GLOB.cardinals)
+ thingtospawn.setDir(dir)
+ var/icon/rendered_icon = getFlatIcon(thingtospawn)
+ if(!rendered_icon)
+ continue
+ var/icon/preview_frame = icon(rendered_icon, frame = 1)
+ if(!preview_frame)
+ continue
+#ifdef UNIT_TESTS
+ if(preview_frame.Width() > ICON_SIZE_X || preview_frame.Height() > ICON_SIZE_Y)
+ stack_trace("Map preview generation for '[icon_name]' produced an icon larger than 32x32.")
+ continue
+#endif
+ holder.Insert(preview_frame, icon_name, dir)
+ qdel(thingtospawn)
+
+ var/tmp_path = "tmp/map_previews.dmi"
+ fcopy(holder, tmp_path)
+
+ var/old_md5 = fexists(filepath) ? rustg_hash_file(RUSTG_HASH_MD5, filepath) : ""
+ var/new_md5 = rustg_hash_file(RUSTG_HASH_MD5, tmp_path)
+ if(old_md5 != new_md5)
+ fcopy(tmp_path, filepath)
+#ifdef UNIT_TESTS
+ stack_trace("Generated map previews were different than what is currently saved. If you see this in a CI run it means you need to run the game once through initialization and commit the resulting file 'icons/obj/fluff/map_previews.dmi'.")
+#endif
diff --git a/code/game/machinery/bank_machine.dm b/code/game/machinery/bank_machine.dm
index c9fe85ebc3c..f7395d4fde7 100644
--- a/code/game/machinery/bank_machine.dm
+++ b/code/game/machinery/bank_machine.dm
@@ -2,6 +2,7 @@
name = "bank machine"
desc = "A machine used to deposit and withdraw station funds."
circuit = /obj/item/circuitboard/computer/bankmachine
+ icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/bank_machine")
icon_screen = "vault"
icon_keyboard = "security_key"
req_access = list(ACCESS_VAULT)
diff --git a/code/game/machinery/civilian_bounty/bounty_machinery.dm b/code/game/machinery/civilian_bounty/bounty_machinery.dm
index 442290ddde4..9b06f6feeb2 100644
--- a/code/game/machinery/civilian_bounty/bounty_machinery.dm
+++ b/code/game/machinery/civilian_bounty/bounty_machinery.dm
@@ -30,6 +30,7 @@
name = "civilian bounty control terminal"
desc = "A console for assigning civilian bounties to inserted ID cards, and for controlling the bounty pad for export."
status_report = "Ready for delivery."
+ icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/piratepad_control/civilian")
icon_screen = "civ_bounty"
icon_keyboard = "id_key"
warmup_time = 3 SECONDS
diff --git a/code/game/machinery/computer/_computer.dm b/code/game/machinery/computer/_computer.dm
index 883ccea87ff..aaad16175e2 100644
--- a/code/game/machinery/computer/_computer.dm
+++ b/code/game/machinery/computer/_computer.dm
@@ -1,6 +1,6 @@
/obj/machinery/computer
name = "computer"
- icon = 'icons/obj/machines/computer.dmi'
+ icon = MAP_SWITCH('icons/obj/machines/computer.dmi', 'icons/obj/fluff/map_previews.dmi')
icon_state = "computer"
density = TRUE
max_integrity = 200
@@ -22,6 +22,7 @@
var/authenticated = FALSE
/// Will projectiles be able to pass over this computer?
var/projectiles_pass_chance = 65
+ generate_map_preview = TRUE
/datum/armor/machinery_computer
fire = 40
diff --git a/code/game/machinery/computer/accounting.dm b/code/game/machinery/computer/accounting.dm
index 6ccc1d2c7b3..ff1c047a47b 100644
--- a/code/game/machinery/computer/accounting.dm
+++ b/code/game/machinery/computer/accounting.dm
@@ -5,6 +5,7 @@
/obj/machinery/computer/accounting
name = "account lookup console"
desc = "Used to view crew member accounts and purchases."
+ icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/accounting")
icon_screen = "accounts"
icon_keyboard = "id_key"
circuit = /obj/item/circuitboard/computer/accounting
diff --git a/code/game/machinery/computer/aifixer.dm b/code/game/machinery/computer/aifixer.dm
index dd76cd1efb7..8fb7fbf6dce 100644
--- a/code/game/machinery/computer/aifixer.dm
+++ b/code/game/machinery/computer/aifixer.dm
@@ -3,6 +3,7 @@
desc = "Used with intelliCards containing nonfunctional AIs to restore them to working order."
req_access = list(ACCESS_CAPTAIN, ACCESS_ROBOTICS, ACCESS_COMMAND)
circuit = /obj/item/circuitboard/computer/aifixer
+ icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/aifixer")
icon_keyboard = "tech_key"
icon_screen = "ai-fixer"
light_color = LIGHT_COLOR_PINK
diff --git a/code/game/machinery/computer/apc_control.dm b/code/game/machinery/computer/apc_control.dm
index a7add4639c3..bb881cb1fde 100644
--- a/code/game/machinery/computer/apc_control.dm
+++ b/code/game/machinery/computer/apc_control.dm
@@ -1,6 +1,7 @@
/obj/machinery/computer/apc_control
name = "power flow control console"
desc = "Used to remotely control the flow of power to different parts of the station."
+ icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/apc_control")
icon_screen = "solar"
icon_keyboard = "power_key"
req_access = list(ACCESS_CE)
diff --git a/code/game/machinery/computer/arcade/_arcade.dm b/code/game/machinery/computer/arcade/_arcade.dm
index f0879eb1da9..71b0f71775b 100644
--- a/code/game/machinery/computer/arcade/_arcade.dm
+++ b/code/game/machinery/computer/arcade/_arcade.dm
@@ -2,7 +2,7 @@
name = "\proper the arcade cabinet which shouldn't exist"
desc = "This arcade cabinet has no games installed, and in fact, should not exist. \
Report the location of this machine to your local diety."
- icon_state = "arcade"
+ icon_state = MAP_SWITCH("arcade", "/obj/machinery/computer/arcade")
icon_keyboard = null
icon_screen = "invaders"
light_color = LIGHT_COLOR_GREEN
diff --git a/code/game/machinery/computer/arcade/amputation.dm b/code/game/machinery/computer/arcade/amputation.dm
index d425cd5eba5..a1211489a5a 100644
--- a/code/game/machinery/computer/arcade/amputation.dm
+++ b/code/game/machinery/computer/arcade/amputation.dm
@@ -2,7 +2,7 @@
name = "Mediborg's Amputation Adventure"
desc = "A picture of a blood-soaked medical cyborg flashes on the screen. \
The mediborg has a speech bubble that says, \"Put your hand in the machine if you aren't a coward!\""
- icon_state = "arcade"
+ icon_state = MAP_SWITCH("arcade", "/obj/machinery/computer/arcade")
circuit = /obj/item/circuitboard/computer/arcade/amputation
interaction_flags_machine = NONE //borgs can't play, but the illiterate can.
diff --git a/code/game/machinery/computer/arcade/battle.dm b/code/game/machinery/computer/arcade/battle.dm
index 3c6d0242615..c0bc5b5a76b 100644
--- a/code/game/machinery/computer/arcade/battle.dm
+++ b/code/game/machinery/computer/arcade/battle.dm
@@ -40,7 +40,7 @@
/obj/machinery/computer/arcade/battle
name = "battle arcade"
desc = "Explore vast worlds and conquer."
- icon_state = "arcade"
+ icon_state = MAP_SWITCH("arcade", "/obj/machinery/computer/arcade/battle")
icon_screen = "fighters"
circuit = /obj/item/circuitboard/computer/arcade/battle
diff --git a/code/game/machinery/computer/arcade/orion.dm b/code/game/machinery/computer/arcade/orion.dm
index ce26a9b50fb..c662d609294 100644
--- a/code/game/machinery/computer/arcade/orion.dm
+++ b/code/game/machinery/computer/arcade/orion.dm
@@ -3,7 +3,7 @@
/obj/machinery/computer/arcade/orion_trail
name = "The Orion Trail"
desc = "Learn how our ancestors got to Orion, and have fun in the process!"
- icon_state = "arcade"
+ icon_state = MAP_SWITCH("arcade", "/obj/machinery/computer/arcade")
circuit = /obj/item/circuitboard/computer/arcade/orion_trail
///List of all orion events, created on Initialize.
@@ -51,10 +51,10 @@
/obj/machinery/computer/arcade/orion_trail/kobayashi
name = "Kobayashi Maru control computer"
desc = "A test for cadets."
- icon = 'icons/obj/machines/particle_accelerator.dmi'
+ icon = MAP_SWITCH('icons/obj/machines/particle_accelerator.dmi', 'icons/obj/fluff/map_previews.dmi')
+ icon_state = MAP_SWITCH("control_boxp", "/obj/machinery/computer/arcade/orion_trail/kobayashi")
icon_keyboard = null
icon_screen = null
- icon_state = "control_boxp"
//kobatashi has a smaller list of events, so we copy from the global list and cut whatever isn't here
var/list/event_whitelist = list(
/datum/orion_event/raiders,
diff --git a/code/game/machinery/computer/atmos_alert.dm b/code/game/machinery/computer/atmos_alert.dm
index 9bf72d637d6..583988ef7e6 100644
--- a/code/game/machinery/computer/atmos_alert.dm
+++ b/code/game/machinery/computer/atmos_alert.dm
@@ -2,6 +2,7 @@
name = "atmospheric alert console"
desc = "Used to monitor the station's air alarms."
circuit = /obj/item/circuitboard/computer/atmos_alert
+ icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/atmos_alert")
icon_screen = "alert:0"
icon_keyboard = "atmos_key"
light_color = LIGHT_COLOR_CYAN
diff --git a/code/game/machinery/computer/atmos_computers/_atmos_control.dm b/code/game/machinery/computer/atmos_computers/_atmos_control.dm
index a785cd50456..5d50ad44efa 100644
--- a/code/game/machinery/computer/atmos_computers/_atmos_control.dm
+++ b/code/game/machinery/computer/atmos_computers/_atmos_control.dm
@@ -2,6 +2,7 @@
/obj/machinery/computer/atmos_control
name = "atmospherics monitoring"
desc = "Used to monitor the station's atmospherics sensors."
+ icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/atmos_control")
icon_screen = "tank"
icon_keyboard = "atmos_key"
circuit = /obj/item/circuitboard/computer/atmos_control
diff --git a/code/game/machinery/computer/camera.dm b/code/game/machinery/computer/camera.dm
index f33cff0c7ea..45849a8e3c3 100644
--- a/code/game/machinery/computer/camera.dm
+++ b/code/game/machinery/computer/camera.dm
@@ -3,6 +3,7 @@
/obj/machinery/computer/security
name = "security camera console"
desc = "Used to access the various cameras on the station."
+ icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/warrant")
icon_screen = "cameras"
icon_keyboard = "security_key"
circuit = /obj/item/circuitboard/computer/security
@@ -190,7 +191,7 @@
/obj/machinery/computer/security/wooden_tv
name = "security camera monitor"
desc = "An old TV hooked into the station's camera network."
- icon_state = "television"
+ icon_state = MAP_SWITCH("television", "/obj/machinery/computer/security/wooden_tv")
icon_keyboard = null
icon_screen = "detective_tv"
pass_flags = PASSTABLE
@@ -198,6 +199,7 @@
/obj/machinery/computer/security/mining
name = "outpost camera console"
desc = "Used to access the various cameras on the outpost."
+ icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/security/mining")
icon_screen = "mining"
icon_keyboard = "mining_key"
network = list(CAMERANET_NETWORK_MINE, CAMERANET_NETWORK_AUXBASE)
diff --git a/code/game/machinery/computer/camera_advanced.dm b/code/game/machinery/computer/camera_advanced.dm
index 9761f5ec550..18139f14807 100644
--- a/code/game/machinery/computer/camera_advanced.dm
+++ b/code/game/machinery/computer/camera_advanced.dm
@@ -1,6 +1,7 @@
/obj/machinery/computer/camera_advanced
name = "advanced camera console"
desc = "Used to access the various cameras on the station."
+ icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/security")
icon_screen = "cameras"
icon_keyboard = "security_key"
light_color = COLOR_SOFT_RED
@@ -82,6 +83,7 @@
networks += "[port.shuttle_id]_[i]"
/obj/machinery/computer/camera_advanced/syndie
+ icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/camera_advanced/syndie")
icon_keyboard = "syndie_key"
circuit = /obj/item/circuitboard/computer/advanced_camera
diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm
index 6f5cc6abfb8..e522c82f824 100644
--- a/code/game/machinery/computer/communications.dm
+++ b/code/game/machinery/computer/communications.dm
@@ -10,6 +10,7 @@
/obj/machinery/computer/communications
name = "communications console"
desc = "A console used for high-priority announcements and emergencies."
+ icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/communications")
icon_screen = "comm"
icon_keyboard = "tech_key"
req_access = list(ACCESS_COMMAND)
@@ -59,6 +60,7 @@
var/last_toggled
/obj/machinery/computer/communications/syndicate
+ icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/communications/syndicate")
icon_screen = "commsyndie"
circuit = /obj/item/circuitboard/computer/communications/syndicate
req_access = list(ACCESS_SYNDICATE_LEADER)
diff --git a/code/game/machinery/computer/crew.dm b/code/game/machinery/computer/crew.dm
index e8f700fd966..bf77b85e37e 100644
--- a/code/game/machinery/computer/crew.dm
+++ b/code/game/machinery/computer/crew.dm
@@ -6,6 +6,7 @@
/obj/machinery/computer/crew
name = "crew monitoring console"
desc = "Used to monitor active health sensors built into most of the crew's uniforms."
+ icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/crew")
icon_screen = "crew"
icon_keyboard = "med_key"
circuit = /obj/item/circuitboard/computer/crew
@@ -74,6 +75,7 @@
records.set_output(new_table)
/obj/machinery/computer/crew/syndie
+ icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/crew/syndie")
icon_keyboard = "syndie_key"
/obj/machinery/computer/crew/ui_interact(mob/user)
diff --git a/code/game/machinery/computer/dna_console.dm b/code/game/machinery/computer/dna_console.dm
index 676559b9d75..76d3eab6c4e 100644
--- a/code/game/machinery/computer/dna_console.dm
+++ b/code/game/machinery/computer/dna_console.dm
@@ -74,6 +74,7 @@
/obj/machinery/computer/dna_console
name = "DNA Console"
desc = "From here you can research mysteries of the DNA!"
+ icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/dna_console")
icon_screen = "dna"
icon_keyboard = "med_key"
density = TRUE
diff --git a/code/game/machinery/computer/launchpad_control.dm b/code/game/machinery/computer/launchpad_control.dm
index dcbd6499ec7..d6364077859 100644
--- a/code/game/machinery/computer/launchpad_control.dm
+++ b/code/game/machinery/computer/launchpad_control.dm
@@ -1,6 +1,7 @@
/obj/machinery/computer/launchpad
name = "launchpad control console"
desc = "Used to teleport objects to and from a launchpad."
+ icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/launchpad")
icon_screen = "teleport"
icon_keyboard = "teleport_key"
circuit = /obj/item/circuitboard/computer/launchpad_console
diff --git a/code/game/machinery/computer/law.dm b/code/game/machinery/computer/law.dm
index 2d6b55556d9..64110781207 100644
--- a/code/game/machinery/computer/law.dm
+++ b/code/game/machinery/computer/law.dm
@@ -2,6 +2,7 @@
/obj/machinery/computer/upload
var/mob/living/silicon/current = null //The target of future law uploads
+ icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/upload")
icon_screen = "command"
time_to_unscrew = 6 SECONDS
var/locked = FALSE
@@ -99,6 +100,7 @@
return TRUE
/obj/machinery/computer/upload/ai
+ icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/upload/ai") // i mean it starts locked by default
name = "\improper AI upload console"
desc = "Used to upload laws to the AI."
circuit = /obj/item/circuitboard/computer/aiupload
diff --git a/code/game/machinery/computer/mechlaunchpad.dm b/code/game/machinery/computer/mechlaunchpad.dm
index ee3451bb12b..1403b4fad02 100644
--- a/code/game/machinery/computer/mechlaunchpad.dm
+++ b/code/game/machinery/computer/mechlaunchpad.dm
@@ -1,6 +1,7 @@
/obj/machinery/computer/mechpad
name = "orbital mech pad console"
desc = "A computer designed to handle the calculations and routing required for sending and receiving mechs from orbit. Requires a link to a nearby Orbital Mech Pad to function."
+ icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/mechpad")
icon_screen = "mechpad"
icon_keyboard = "teleport_key"
circuit = /obj/item/circuitboard/computer/mechpad
diff --git a/code/game/machinery/computer/modular_shield.dm b/code/game/machinery/computer/modular_shield.dm
index dd80553bf39..1f9dd39ec54 100644
--- a/code/game/machinery/computer/modular_shield.dm
+++ b/code/game/machinery/computer/modular_shield.dm
@@ -2,7 +2,7 @@
name = "modular shield control console"
desc = "Used to remotely monitor and toggle modular shield generators."
circuit = /obj/item/circuitboard/computer/modular_shield_console
-
+ icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/piratepad_control")
///the list of generators that are linked to us
var/list/obj/machinery/modular_shield_generator/generators = list()
diff --git a/code/game/machinery/computer/operating_computer.dm b/code/game/machinery/computer/operating_computer.dm
index 04c48a3ee5c..bbe511d94d2 100644
--- a/code/game/machinery/computer/operating_computer.dm
+++ b/code/game/machinery/computer/operating_computer.dm
@@ -4,6 +4,7 @@
/obj/machinery/computer/operating
name = "operating computer"
desc = "Monitors patient vitals and displays surgery steps. Can be loaded with surgery disks to perform experimental procedures. Automatically syncs to operating tables within its line of sight for surgical tech advancement."
+ icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/crew")
icon_screen = "crew"
icon_keyboard = "med_key"
circuit = /obj/item/circuitboard/computer/operating
diff --git a/code/game/machinery/computer/orders/order_computer/mining_order.dm b/code/game/machinery/computer/orders/order_computer/mining_order.dm
index 1bbb11070ee..a7ebbc945fe 100644
--- a/code/game/machinery/computer/orders/order_computer/mining_order.dm
+++ b/code/game/machinery/computer/orders/order_computer/mining_order.dm
@@ -16,6 +16,7 @@
35% cheaper than express delivery."}
express_tooltip = @{"Sends your purchases instantly."}
credit_type = MONEY_MINING_SYMBOL
+ generate_map_preview = FALSE
order_categories = list(
CATEGORY_MINING,
diff --git a/code/game/machinery/computer/orders/order_computer/order_computer.dm b/code/game/machinery/computer/orders/order_computer/order_computer.dm
index d89dd05c434..ab8b32bb612 100644
--- a/code/game/machinery/computer/orders/order_computer/order_computer.dm
+++ b/code/game/machinery/computer/orders/order_computer/order_computer.dm
@@ -4,6 +4,7 @@ GLOBAL_LIST_EMPTY(order_console_products)
/obj/machinery/computer/order_console
name = "Orders Console"
desc = "An interface for ordering specific ingredients from Cargo, with an express option at the cost of more money."
+ icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/order_console")
icon_screen = "request"
icon_keyboard = "generic_key"
light_color = LIGHT_COLOR_ORANGE
diff --git a/code/game/machinery/computer/pod.dm b/code/game/machinery/computer/pod.dm
index 798f20c21a8..11280255ca2 100644
--- a/code/game/machinery/computer/pod.dm
+++ b/code/game/machinery/computer/pod.dm
@@ -133,14 +133,14 @@
/obj/machinery/computer/pod/old
name = "\improper DoorMex control console"
- icon_state = "oldcomp"
+ icon_state = MAP_SWITCH("oldcomp", "/obj/machinery/computer/pod/old")
icon_screen = "library"
icon_keyboard = null
/obj/machinery/computer/pod/old/mass_driver_controller
name = "\improper Mass Driver Controller"
- icon = 'icons/obj/machines/wallmounts.dmi'
- icon_state = "airlock_control_standby"
+ icon = MAP_SWITCH('icons/obj/machines/wallmounts.dmi', 'icons/obj/fluff/map_previews.dmi')
+ icon_state = MAP_SWITCH("airlock_control_standby", "/obj/machinery/computer/pod/old/mass_driver_controller")
icon_screen = null
density = FALSE
diff --git a/code/game/machinery/computer/prisoner/_prisoner.dm b/code/game/machinery/computer/prisoner/_prisoner.dm
index 7ed7753f5ff..c2d0de75725 100644
--- a/code/game/machinery/computer/prisoner/_prisoner.dm
+++ b/code/game/machinery/computer/prisoner/_prisoner.dm
@@ -1,4 +1,5 @@
/obj/machinery/computer/prisoner
+ icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/prisoner/gulag_teleporter_computer")
interaction_flags_machine = INTERACT_MACHINE_ALLOW_SILICON|INTERACT_MACHINE_REQUIRES_LITERACY
/// ID card currently inserted into the computer.
VAR_FINAL/obj/item/card/id/advanced/prisoner/contained_id
diff --git a/code/game/machinery/computer/records/medical.dm b/code/game/machinery/computer/records/medical.dm
index 108abd8fbf9..29108afabfc 100644
--- a/code/game/machinery/computer/records/medical.dm
+++ b/code/game/machinery/computer/records/medical.dm
@@ -1,6 +1,7 @@
/obj/machinery/computer/records/medical
name = "medical records console"
desc = "This can be used to check medical records."
+ icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/records/medical")
icon_screen = "medcomp"
icon_keyboard = "med_key"
req_one_access = list(ACCESS_MEDICAL, ACCESS_DETECTIVE, ACCESS_GENETICS)
@@ -8,13 +9,14 @@
light_color = LIGHT_COLOR_BLUE
/obj/machinery/computer/records/medical/syndie
+ icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/records/medical/syndie")
icon_keyboard = "syndie_key"
req_one_access = list(ACCESS_SYNDICATE)
/obj/machinery/computer/records/medical/laptop
name = "medical laptop"
desc = "A cheap Nanotrasen medical laptop, it functions as a medical records computer. It's bolted to the table."
- icon_state = "laptop"
+ icon_state = MAP_SWITCH("laptop", "/obj/machinery/computer/records/medical/laptop")
icon_screen = "medlaptop"
icon_keyboard = "laptop_key"
pass_flags = PASSTABLE
diff --git a/code/game/machinery/computer/records/security.dm b/code/game/machinery/computer/records/security.dm
index 9835b99ab93..562002b7e8d 100644
--- a/code/game/machinery/computer/records/security.dm
+++ b/code/game/machinery/computer/records/security.dm
@@ -8,6 +8,7 @@
/obj/machinery/computer/records/security
name = "security records console"
desc = "Used to view and edit personnel's security records."
+ icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/warrant")
icon_screen = "security"
icon_keyboard = "security_key"
req_one_access = list(ACCESS_SECURITY, ACCESS_HOP)
@@ -17,13 +18,14 @@
var/printing = FALSE
/obj/machinery/computer/records/security/syndie
+ icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/records/security/syndie")
icon_keyboard = "syndie_key"
req_one_access = list(ACCESS_SYNDICATE)
/obj/machinery/computer/records/security/laptop
name = "security laptop"
desc = "A cheap Nanotrasen security laptop, it functions as a security records console. It's bolted to the table."
- icon_state = "laptop"
+ icon_state = MAP_SWITCH("laptop", "/obj/machinery/computer/records/security/laptop")
icon_screen = "seclaptop"
icon_keyboard = "laptop_key"
pass_flags = PASSTABLE
diff --git a/code/game/machinery/computer/robot.dm b/code/game/machinery/computer/robot.dm
index 0111a5c71b2..9dd07904887 100644
--- a/code/game/machinery/computer/robot.dm
+++ b/code/game/machinery/computer/robot.dm
@@ -1,6 +1,7 @@
/obj/machinery/computer/robotics
name = "robotics control console"
desc = "Used to remotely lockdown linked Cyborgs and Drones."
+ icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/robotics")
icon_screen = "robot"
icon_keyboard = "rd_key"
req_access = list(ACCESS_ROBOTICS)
diff --git a/code/game/machinery/computer/station_alert.dm b/code/game/machinery/computer/station_alert.dm
index f102f185ffc..347ae65020e 100644
--- a/code/game/machinery/computer/station_alert.dm
+++ b/code/game/machinery/computer/station_alert.dm
@@ -1,6 +1,7 @@
/obj/machinery/computer/station_alert
name = "station alert console"
desc = "Used to access the station's automated alert system."
+ icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/atmos_alert")
icon_screen = "alert:0"
icon_keyboard = "atmos_key"
circuit = /obj/item/circuitboard/computer/station_alert
diff --git a/code/game/machinery/computer/teleporter.dm b/code/game/machinery/computer/teleporter.dm
index b17589bb4ba..0e3acf6df26 100644
--- a/code/game/machinery/computer/teleporter.dm
+++ b/code/game/machinery/computer/teleporter.dm
@@ -4,6 +4,7 @@
/obj/machinery/computer/teleporter
name = "teleporter control console"
desc = "Used to control a linked teleportation Hub and Station."
+ icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/launchpad")
icon_screen = "teleport"
icon_keyboard = "teleport_key"
light_color = LIGHT_COLOR_BLUE
diff --git a/code/game/machinery/computer/telescreen.dm b/code/game/machinery/computer/telescreen.dm
index 21171e200a9..83a821fe222 100644
--- a/code/game/machinery/computer/telescreen.dm
+++ b/code/game/machinery/computer/telescreen.dm
@@ -13,6 +13,7 @@
/// The kind of wallframe that this telescreen drops
var/frame_type = /obj/item/wallframe/telescreen
projectiles_pass_chance = 100
+ generate_map_preview = FALSE
/obj/machinery/computer/security/telescreen/Initialize(mapload)
. = ..()
diff --git a/code/game/machinery/computer/terminal.dm b/code/game/machinery/computer/terminal.dm
index fc618703f98..9423a554874 100644
--- a/code/game/machinery/computer/terminal.dm
+++ b/code/game/machinery/computer/terminal.dm
@@ -2,6 +2,7 @@
/obj/machinery/computer/terminal
name = "terminal"
desc = "A relatively low-tech solution for internal computing, internal network mail, and logging. This model appears to be quite old."
+ icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/piratepad_control")
circuit = /obj/item/circuitboard/computer/terminal //Deconstruction still wipes contents but this is easier than smashing the console
///Text that displays on top of the actual 'lore' funnies.
var/upperinfo = "COPYRIGHT 2487 NANOSOFT-TM - DO NOT REDISTRIBUTE"
diff --git a/code/game/machinery/computer/warrant.dm b/code/game/machinery/computer/warrant.dm
index dd85df26060..af8b0e0d04e 100644
--- a/code/game/machinery/computer/warrant.dm
+++ b/code/game/machinery/computer/warrant.dm
@@ -1,6 +1,7 @@
/obj/machinery/computer/warrant
name = "security warrant console"
desc = "Used to view outstanding warrants."
+ icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/warrant")
icon_screen = "security"
icon_keyboard = "security_key"
circuit = /obj/item/circuitboard/computer/warrant
diff --git a/code/game/machinery/experimental_cloner/experimental_cloner_computer.dm b/code/game/machinery/experimental_cloner/experimental_cloner_computer.dm
index 6e1b0542080..2fc3ea73eda 100644
--- a/code/game/machinery/experimental_cloner/experimental_cloner_computer.dm
+++ b/code/game/machinery/experimental_cloner/experimental_cloner_computer.dm
@@ -3,6 +3,7 @@
name = "experimental cloner control console"
desc = "It scans DNA structures."
circuit = /obj/item/circuitboard/computer/experimental_cloner
+ icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/crew")
icon_screen = "crew"
icon_keyboard = "med_key"
light_color = LIGHT_COLOR_GREEN
diff --git a/code/game/machinery/satellite/satellite_control.dm b/code/game/machinery/satellite/satellite_control.dm
index 9983cc439e3..077f4ebba46 100644
--- a/code/game/machinery/satellite/satellite_control.dm
+++ b/code/game/machinery/satellite/satellite_control.dm
@@ -1,4 +1,5 @@
/obj/machinery/computer/sat_control
+ icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/piratepad_control")
name = "satellite control"
desc = "Used to control the satellite network."
circuit = /obj/item/circuitboard/computer/sat_control
diff --git a/code/game/machinery/telecomms/computers/logbrowser.dm b/code/game/machinery/telecomms/computers/logbrowser.dm
index e09e08b7a3d..9bb4e5316c2 100644
--- a/code/game/machinery/telecomms/computers/logbrowser.dm
+++ b/code/game/machinery/telecomms/computers/logbrowser.dm
@@ -4,6 +4,7 @@
/obj/machinery/computer/telecomms/server
name = "telecommunications server monitoring console"
+ icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/telecomms/server")
icon_screen = "comm_logs"
desc = "Has full access to all details and record of the telecommunications network it's monitoring."
diff --git a/code/game/machinery/telecomms/computers/message.dm b/code/game/machinery/telecomms/computers/message.dm
index e3d318d0e34..c64b420993e 100644
--- a/code/game/machinery/telecomms/computers/message.dm
+++ b/code/game/machinery/telecomms/computers/message.dm
@@ -11,6 +11,7 @@
/obj/machinery/computer/message_monitor
name = "message monitor console"
desc = "Used to monitor the crew's PDA messages, as well as request console messages."
+ icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/telecomms/server")
icon_screen = "comm_logs"
circuit = /obj/item/circuitboard/computer/message_monitor
light_color = LIGHT_COLOR_GREEN
diff --git a/code/game/machinery/telecomms/computers/telemonitor.dm b/code/game/machinery/telecomms/computers/telemonitor.dm
index ff7b10dbd0f..ac2ac00a896 100644
--- a/code/game/machinery/telecomms/computers/telemonitor.dm
+++ b/code/game/machinery/telecomms/computers/telemonitor.dm
@@ -6,7 +6,7 @@
name = "telecommunications monitoring console"
desc = "Monitors the details of the telecommunications network it's synced with."
circuit = /obj/item/circuitboard/computer/comm_monitor
-
+ icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/telecomms/monitor")
icon_screen = "comm_monitor"
/// Weakref of the currently selected tcomms machine
diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm
index 3db7bc1c079..6cc35616c2a 100644
--- a/code/game/objects/objs.dm
+++ b/code/game/objects/objs.dm
@@ -46,6 +46,8 @@
/// The sound this obj makes when something is unbuckled from it
var/unbuckle_sound = null
+ var/generate_map_preview = FALSE
+
uses_integrity = TRUE
/obj/vv_edit_var(vname, vval)
diff --git a/code/game/objects/structures/construction_console/construction_console.dm b/code/game/objects/structures/construction_console/construction_console.dm
index 249860c99b6..73884ac7913 100644
--- a/code/game/objects/structures/construction_console/construction_console.dm
+++ b/code/game/objects/structures/construction_console/construction_console.dm
@@ -14,6 +14,7 @@
circuit = /obj/item/circuitboard/computer/base_construction
off_action = /datum/action/innate/camera_off/base_construction
jump_action = null
+ icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/camera_advanced/base_construction")
icon_screen = "mining"
icon_keyboard = "rd_key"
light_color = LIGHT_COLOR_PINK
diff --git a/code/modules/antagonists/abductor/machinery/camera.dm b/code/modules/antagonists/abductor/machinery/camera.dm
index b64ef2ce1bd..9fc7ab31f95 100644
--- a/code/modules/antagonists/abductor/machinery/camera.dm
+++ b/code/modules/antagonists/abductor/machinery/camera.dm
@@ -8,8 +8,8 @@
var/abduct_created = FALSE
lock_override = TRUE
- icon = 'icons/obj/antags/abductor.dmi'
- icon_state = "camera"
+ icon = MAP_SWITCH('icons/obj/antags/abductor.dmi', 'icons/obj/fluff/map_previews.dmi')
+ icon_state = MAP_SWITCH("camera", "/obj/machinery/computer/camera_advanced/abductor")
icon_keyboard = null
icon_screen = null
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF
diff --git a/code/modules/antagonists/fugitive/hunters/hunter_gear.dm b/code/modules/antagonists/fugitive/hunters/hunter_gear.dm
index ac12e3c8222..d35ebbf348f 100644
--- a/code/modules/antagonists/fugitive/hunters/hunter_gear.dm
+++ b/code/modules/antagonists/fugitive/hunters/hunter_gear.dm
@@ -69,6 +69,7 @@
/obj/machinery/computer/camera_advanced/shuttle_docker/syndicate/hunter/psyker
name = "psyker navigation warper"
desc = "Uses amplified brainwaves to designate and map a precise transit location for the psyker shuttle."
+ icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/camera_advanced/shuttle_docker/syndicate/hunter/psyker")
icon_screen = "recharge_comp_on"
interaction_flags_machine = INTERACT_MACHINE_ALLOW_SILICON //blind friendly
x_offset = 0
diff --git a/code/modules/antagonists/nukeop/equipment/overwatch_tools.dm b/code/modules/antagonists/nukeop/equipment/overwatch_tools.dm
index 94c16d86dbe..ee0b8b737d9 100644
--- a/code/modules/antagonists/nukeop/equipment/overwatch_tools.dm
+++ b/code/modules/antagonists/nukeop/equipment/overwatch_tools.dm
@@ -20,6 +20,7 @@ Happy hunting!
name = "overwatch camera console"
desc = "Allows you to view members of your operative team via their bodycam feeds. We call them 'bodycams', but they're actually a swarm of tiny, near-imperceptible camera drones that follow each target. \
It is believed that adversaries either don't notice the drones, or avoid attacking them in hopes that they'll capture footage of their combat prowess against our operatives."
+ icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/security/overwatch")
icon_screen = "commsyndie"
icon_keyboard = "syndie_key"
network = list(OPERATIVE_CAMERA_NET)
diff --git a/code/modules/antagonists/pirate/pirate_shuttle_equipment.dm b/code/modules/antagonists/pirate/pirate_shuttle_equipment.dm
index 4314f10efcc..548c5a84dc2 100644
--- a/code/modules/antagonists/pirate/pirate_shuttle_equipment.dm
+++ b/code/modules/antagonists/pirate/pirate_shuttle_equipment.dm
@@ -220,6 +220,7 @@
icon_state = "[base_icon_state]-off"
/obj/machinery/computer/piratepad_control
+ icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/piratepad_control")
name = "cargo hold control terminal"
///Message to display on the TGUI window.
var/status_report = "Ready for delivery."
diff --git a/code/modules/awaymissions/gateway.dm b/code/modules/awaymissions/gateway.dm
index 972d7b767d1..05ee2a67299 100644
--- a/code/modules/awaymissions/gateway.dm
+++ b/code/modules/awaymissions/gateway.dm
@@ -331,6 +331,7 @@ GLOBAL_LIST_EMPTY(gateway_destinations)
/obj/machinery/computer/gateway_control
name = "Gateway Control"
desc = "Human friendly interface to the mysterious gate next to it."
+ icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/piratepad_control")
var/obj/machinery/gateway/G
/obj/machinery/computer/gateway_control/Initialize(mapload, obj/item/circuitboard/C)
diff --git a/code/modules/bitrunning/objects/quantum_console.dm b/code/modules/bitrunning/objects/quantum_console.dm
index 37c4c25b66d..dbb303cc246 100644
--- a/code/modules/bitrunning/objects/quantum_console.dm
+++ b/code/modules/bitrunning/objects/quantum_console.dm
@@ -2,11 +2,13 @@
name = "quantum console"
circuit = /obj/item/circuitboard/computer/quantum_console
+ icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/quantum_console")
icon_keyboard = "mining"
icon_screen = "bitrunning"
req_access = list(ACCESS_MINING)
/// The server this console is connected to.
var/datum/weakref/server_ref
+ keyboard_change_icon = FALSE
/obj/machinery/computer/quantum_console/Initialize(mapload, obj/item/circuitboard/circuit)
. = ..()
diff --git a/code/modules/bitrunning/objects/vendor.dm b/code/modules/bitrunning/objects/vendor.dm
index 951e8ff4636..c7ccf6cfd52 100644
--- a/code/modules/bitrunning/objects/vendor.dm
+++ b/code/modules/bitrunning/objects/vendor.dm
@@ -14,6 +14,7 @@
35% cheaper than express delivery."}
express_tooltip = @{"Sends your purchases instantly."}
credit_type = MONEY_BITRUNNING_SYMBOL
+ generate_map_preview = FALSE
order_categories = list(
CATEGORY_BITRUNNING_FLAIR,
diff --git a/code/modules/cargo/expressconsole.dm b/code/modules/cargo/expressconsole.dm
index 6cd0aed1084..ab3f7aebbe3 100644
--- a/code/modules/cargo/expressconsole.dm
+++ b/code/modules/cargo/expressconsole.dm
@@ -6,6 +6,7 @@
desc = "This console allows the user to purchase a package \
with 1/40th of the delivery time: made possible by Nanotrasen's new \"1500mm Orbital Railgun\".\
All sales are near instantaneous - please choose carefully"
+ icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/cargo/express")
icon_screen = "supply_express"
circuit = /obj/item/circuitboard/computer/cargo/express
blockade_warning = "Bluespace instability detected. Delivery impossible."
diff --git a/code/modules/cargo/orderconsole.dm b/code/modules/cargo/orderconsole.dm
index d0d45c63262..881c98fdec6 100644
--- a/code/modules/cargo/orderconsole.dm
+++ b/code/modules/cargo/orderconsole.dm
@@ -1,6 +1,7 @@
/obj/machinery/computer/cargo
name = "supply console"
desc = "Used to order supplies, approve requests, and control the shuttle."
+ icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/cargo")
icon_screen = "supply"
circuit = /obj/item/circuitboard/computer/cargo
light_color = COLOR_BRIGHT_ORANGE
diff --git a/code/modules/explorer_drone/control_console.dm b/code/modules/explorer_drone/control_console.dm
index 21c64757bc1..a4933355b97 100644
--- a/code/modules/explorer_drone/control_console.dm
+++ b/code/modules/explorer_drone/control_console.dm
@@ -2,6 +2,7 @@
name = "exploration drone control console"
desc = "Control exploration drones from interstellar distances. Communication lag not included."
circuit = /obj/item/circuitboard/computer/exodrone_console
+ icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/piratepad_control")
//Currently controlled drone
var/obj/item/exodrone/controlled_drone
/// Have we lost contact with the drone without disconnecting. Unset on user confirmation.
diff --git a/code/modules/explorer_drone/scanner_array.dm b/code/modules/explorer_drone/scanner_array.dm
index 8a86eed2305..beee37ae799 100644
--- a/code/modules/explorer_drone/scanner_array.dm
+++ b/code/modules/explorer_drone/scanner_array.dm
@@ -78,6 +78,7 @@ GLOBAL_LIST_INIT(scan_conditions,init_scan_conditions())
/obj/machinery/computer/exoscanner_control
name = "scanner array control console"
desc = "Controls scanner arrays to initiate scans for exodrones."
+ icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/piratepad_control")
circuit = /obj/item/circuitboard/computer/exoscanner_console
/// If scan was interrupted show a popup until dismissed.
var/failed_popup = FALSE
diff --git a/code/modules/holodeck/computer.dm b/code/modules/holodeck/computer.dm
index 11c006047f2..75203688875 100644
--- a/code/modules/holodeck/computer.dm
+++ b/code/modules/holodeck/computer.dm
@@ -32,6 +32,7 @@ GLOBAL_LIST_INIT(typecache_holodeck_linked_floorcheck_ok, typecacheof(list(/turf
/obj/machinery/computer/holodeck
name = "holodeck control console"
desc = "A computer used to control a nearby holodeck."
+ icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/holodeck")
icon_screen = "holocontrol"
//new vars
diff --git a/code/modules/library/lib_machines.dm b/code/modules/library/lib_machines.dm
index 7d1d6ec1b7d..ab6bfe0f92c 100644
--- a/code/modules/library/lib_machines.dm
+++ b/code/modules/library/lib_machines.dm
@@ -20,7 +20,7 @@ GLOBAL_VAR_INIT(library_table_modified, 0)
*/
/obj/machinery/computer/libraryconsole
name = "library visitor console"
- icon_state = "oldcomp"
+ icon_state = MAP_SWITCH("oldcomp", "/obj/machinery/computer/pod/old")
icon_screen = "library"
icon_keyboard = null
circuit = /obj/item/circuitboard/computer/libraryconsole
@@ -282,7 +282,7 @@ GLOBAL_VAR_INIT(library_table_modified, 0)
verb_exclaim = "beeps"
pass_flags = PASSTABLE
- icon_state = "oldcomp"
+ icon_state = MAP_SWITCH("oldcomp", "/obj/machinery/computer/pod/old")
icon_screen = "library"
icon_keyboard = null
circuit = /obj/item/circuitboard/computer/libraryconsole
diff --git a/code/modules/mapfluff/ruins/objects_and_mobs/museum.dm b/code/modules/mapfluff/ruins/objects_and_mobs/museum.dm
index 13963576232..cc40071c0d5 100644
--- a/code/modules/mapfluff/ruins/objects_and_mobs/museum.dm
+++ b/code/modules/mapfluff/ruins/objects_and_mobs/museum.dm
@@ -2,7 +2,7 @@
name = "exhibit info terminal"
desc = "A relatively low-tech info board. Not as low-tech as an actual sign though. Appears to be quite old."
upperinfo = "Nanotrasen Museum Exhibit Info"
- icon_state = "plaque"
+ icon_state = MAP_SWITCH("plaque", "/obj/machinery/computer/terminal/museum")
icon_screen = "plaque_screen"
icon_keyboard = null
diff --git a/code/modules/mapfluff/ruins/spaceruin_code/TheDerelict.dm b/code/modules/mapfluff/ruins/spaceruin_code/TheDerelict.dm
index cf85a2beda6..fd6a006813f 100644
--- a/code/modules/mapfluff/ruins/spaceruin_code/TheDerelict.dm
+++ b/code/modules/mapfluff/ruins/spaceruin_code/TheDerelict.dm
@@ -45,6 +45,7 @@
/obj/machinery/computer/vaultcontroller
name = "vault controller"
desc = "It seems to be powering and controlling the vault locks."
+ icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/vaultcontroller")
icon_screen = "power"
icon_keyboard = "power_key"
light_color = LIGHT_COLOR_DIM_YELLOW
diff --git a/code/modules/mapfluff/ruins/spaceruin_code/caravanambush.dm b/code/modules/mapfluff/ruins/spaceruin_code/caravanambush.dm
index 22029f60a01..388ef6c9df2 100644
--- a/code/modules/mapfluff/ruins/spaceruin_code/caravanambush.dm
+++ b/code/modules/mapfluff/ruins/spaceruin_code/caravanambush.dm
@@ -36,6 +36,7 @@
toolspeed = 0.3
/obj/machinery/computer/shuttle/caravan
+ icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/camera_advanced/shuttle_docker/syndicate")
/obj/item/circuitboard/computer/caravan
build_path = /obj/machinery/computer/shuttle/caravan
diff --git a/code/modules/mapfluff/ruins/spaceruin_code/commsbuoy.dm b/code/modules/mapfluff/ruins/spaceruin_code/commsbuoy.dm
index 4dcd44031e7..bd2be2666eb 100644
--- a/code/modules/mapfluff/ruins/spaceruin_code/commsbuoy.dm
+++ b/code/modules/mapfluff/ruins/spaceruin_code/commsbuoy.dm
@@ -129,6 +129,7 @@
/obj/machinery/computer/terminal/nt_commsbuoy
name = "satellite dish operations terminal"
+ icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/terminal/nt_commsbuoy")
icon_screen = "comm"
tguitheme = "ntos"
upperinfo = "SATELLITE DISH OPERATIONS READOUT"
diff --git a/code/modules/mapfluff/ruins/spaceruin_code/derelict_sulaco.dm b/code/modules/mapfluff/ruins/spaceruin_code/derelict_sulaco.dm
index d020536e129..30dd4e84ad0 100644
--- a/code/modules/mapfluff/ruins/spaceruin_code/derelict_sulaco.dm
+++ b/code/modules/mapfluff/ruins/spaceruin_code/derelict_sulaco.dm
@@ -39,6 +39,7 @@
name = "overwatch console"
desc = "State of the art machinery for general overwatch purposes."
upperinfo = "Bravo Overwatch Console"
+ icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/terminal/sulaco/overwatch")
icon_screen = "explosive"
content = list("Operator: Cas Ashpole
| Name | Role | State | Location | SL Distance |
|---|---|---|---|---|
| Chip Mello | Squad Leader | Dead | Self-Destruct Core Room | N/A |
| Sophie Knight | Squad Smartgunner | Dead | Self-Destruct Core Room | 4 |
| Marie Newman | Squad Corpsman | Dead | Unknown | N/A |
| Angelo Patton | Squad Engineer | Dead | Sulaco Maintenance | 19 |
| Marlon Foster | Squad Engineer | Dead | Sulaco Dropship Hangar | 28 |
| Doug Davidson | Squad Marine | Dead | Sulaco Hangar Workshop | 33 |
| Courtney Miller | Squad Marine | Dead | Sulaco Hangar Workshop | 42 |
| Cesar Jefferson | Squad Marine | Dead | Self-Destruct Core Room | 14 |