diff --git a/_maps/RandomZLevels/SnowCabin.dmm b/_maps/RandomZLevels/SnowCabin.dmm
index 2a23215766f..c6366d62e54 100644
--- a/_maps/RandomZLevels/SnowCabin.dmm
+++ b/_maps/RandomZLevels/SnowCabin.dmm
@@ -4459,8 +4459,8 @@
/obj/structure/signpost/salvation{
density = 0;
desc = "An intercomm. Someone seems to be on the other end. I should use it.";
- icon = 'icons/obj/device.dmi';
- icon_state = "intercom";
+ icon = 'icons/obj/machines/wallmounts.dmi';
+ icon_state = "intercom_prison";
max_integrity = 99999;
name = "\proper Fun Jail intercom";
pixel_y = 32;
diff --git a/_maps/RandomZLevels/moonoutpost19.dmm b/_maps/RandomZLevels/moonoutpost19.dmm
index 0f10d2ca8bf..51f816ee5ca 100644
--- a/_maps/RandomZLevels/moonoutpost19.dmm
+++ b/_maps/RandomZLevels/moonoutpost19.dmm
@@ -1941,7 +1941,7 @@
"mJ" = (
/obj/structure/sign/warning/vacuum{
desc = "A beacon used by a teleporter.";
- icon = 'icons/obj/device.dmi';
+ icon = 'icons/obj/devices/tracker.dmi';
icon_state = "beacon";
name = "tracking beacon"
},
diff --git a/_maps/RandomZLevels/undergroundoutpost45.dmm b/_maps/RandomZLevels/undergroundoutpost45.dmm
index f398b90a9a8..32e837c178f 100644
--- a/_maps/RandomZLevels/undergroundoutpost45.dmm
+++ b/_maps/RandomZLevels/undergroundoutpost45.dmm
@@ -121,7 +121,7 @@
"az" = (
/obj/structure/sign/warning/vacuum{
desc = "A beacon used by a teleporter.";
- icon = 'icons/obj/device.dmi';
+ icon = 'icons/obj/devices/tracker.dmi';
icon_state = "beacon";
name = "tracking beacon"
},
diff --git a/code/datums/components/trapdoor.dm b/code/datums/components/trapdoor.dm
index 9916b27e90d..bc4d2479433 100644
--- a/code/datums/components/trapdoor.dm
+++ b/code/datums/components/trapdoor.dm
@@ -258,7 +258,7 @@
/obj/item/trapdoor_remote
name = "trapdoor remote"
desc = "A small machine that interfaces with a trapdoor controller for easy use."
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/remote.dmi'
icon_state = "trapdoor_remote"
COOLDOWN_DECLARE(trapdoor_cooldown)
var/trapdoor_cooldown_time = 2 SECONDS
diff --git a/code/datums/greyscale/config_types/greyscale_configs/greyscale_items.dm b/code/datums/greyscale/config_types/greyscale_configs/greyscale_items.dm
index 153bc59aab0..bcd1e14ab0f 100644
--- a/code/datums/greyscale/config_types/greyscale_configs/greyscale_items.dm
+++ b/code/datums/greyscale/config_types/greyscale_configs/greyscale_items.dm
@@ -167,57 +167,57 @@
/datum/greyscale_config/encryptionkey_basic
name = "Basic Encryptionkey"
- icon_file = 'icons/obj/assemblies/circuitry_n_data.dmi'
+ icon_file = 'icons/obj/devices/circuitry_n_data.dmi'
json_config = 'code/datums/greyscale/json_configs/encryptionkey_basic.json'
/datum/greyscale_config/encryptionkey_cube
name = "Block Encryptionkey"
- icon_file = 'icons/obj/assemblies/circuitry_n_data.dmi'
+ icon_file = 'icons/obj/devices/circuitry_n_data.dmi'
json_config = 'code/datums/greyscale/json_configs/encryptionkey_cube.json'
/datum/greyscale_config/encryptionkey_research
name = "Research Encryptionkey"
- icon_file = 'icons/obj/assemblies/circuitry_n_data.dmi'
+ icon_file = 'icons/obj/devices/circuitry_n_data.dmi'
json_config = 'code/datums/greyscale/json_configs/encryptionkey_research.json'
/datum/greyscale_config/encryptionkey_syndicate
name = "Syndicate Encryptionkey"
- icon_file = 'icons/obj/assemblies/circuitry_n_data.dmi'
+ icon_file = 'icons/obj/devices/circuitry_n_data.dmi'
json_config = 'code/datums/greyscale/json_configs/encryptionkey_syndicate.json'
/datum/greyscale_config/encryptionkey_medical
name = "Medical Encryptionkey"
- icon_file = 'icons/obj/assemblies/circuitry_n_data.dmi'
+ icon_file = 'icons/obj/devices/circuitry_n_data.dmi'
json_config = 'code/datums/greyscale/json_configs/encryptionkey_medical.json'
/datum/greyscale_config/encryptionkey_service
name = "Service Encryptionkey"
- icon_file = 'icons/obj/assemblies/circuitry_n_data.dmi'
+ icon_file = 'icons/obj/devices/circuitry_n_data.dmi'
json_config = 'code/datums/greyscale/json_configs/encryptionkey_service.json'
/datum/greyscale_config/encryptionkey_engineering
name = "Engineering Encryptionkey"
- icon_file = 'icons/obj/assemblies/circuitry_n_data.dmi'
+ icon_file = 'icons/obj/devices/circuitry_n_data.dmi'
json_config = 'code/datums/greyscale/json_configs/encryptionkey_engineering.json'
/datum/greyscale_config/encryptionkey_centcom
name = "Centcom Encryptionkey"
- icon_file = 'icons/obj/assemblies/circuitry_n_data.dmi'
+ icon_file = 'icons/obj/devices/circuitry_n_data.dmi'
json_config = 'code/datums/greyscale/json_configs/encryptionkey_centcom.json'
/datum/greyscale_config/encryptionkey_cargo
name = "Cargo Encryptionkey"
- icon_file = 'icons/obj/assemblies/circuitry_n_data.dmi'
+ icon_file = 'icons/obj/devices/circuitry_n_data.dmi'
json_config = 'code/datums/greyscale/json_configs/encryptionkey_cargo.json'
/datum/greyscale_config/encryptionkey_security
name = "Security Encryptionkey"
- icon_file = 'icons/obj/assemblies/circuitry_n_data.dmi'
+ icon_file = 'icons/obj/devices/circuitry_n_data.dmi'
json_config = 'code/datums/greyscale/json_configs/encryptionkey_security.json'
/datum/greyscale_config/quantum_keycard
name = "Quantum Keycard"
- icon_file = 'icons/obj/device.dmi'
+ icon_file = 'icons/obj/devices/tool.dmi'
json_config = 'code/datums/greyscale/json_configs/quantum_keycard.json'
//
@@ -344,7 +344,7 @@
/datum/greyscale_config/circuit
name = "Circuit Board"
- icon_file = 'icons/obj/assemblies/circuitry_n_data.dmi'
+ icon_file = 'icons/obj/devices/circuitry_n_data.dmi'
json_config = 'code/datums/greyscale/json_configs/circuit.json'
/datum/greyscale_config/janicart_upgrade
diff --git a/code/datums/mutations/antenna.dm b/code/datums/mutations/antenna.dm
index 7232ea7aa39..80edceea1e5 100644
--- a/code/datums/mutations/antenna.dm
+++ b/code/datums/mutations/antenna.dm
@@ -11,7 +11,7 @@
/obj/item/implant/radio/antenna
name = "internal antenna organ"
desc = "The internal organ part of the antenna. Science has not yet given it a good name."
- icon = 'icons/obj/device.dmi'//maybe make a unique sprite later. not important
+ icon = 'icons/obj/devices/voice.dmi'//maybe make a unique sprite later. not important
icon_state = "walkietalkie"
/obj/item/implant/radio/antenna/Initialize(mapload)
diff --git a/code/datums/status_effects/agent_pinpointer.dm b/code/datums/status_effects/agent_pinpointer.dm
index b6d68ccf867..29dfbd43387 100644
--- a/code/datums/status_effects/agent_pinpointer.dm
+++ b/code/datums/status_effects/agent_pinpointer.dm
@@ -5,7 +5,7 @@
/atom/movable/screen/alert/status_effect/agent_pinpointer
name = "Target Integrated Pinpointer"
desc = "Even stealthier than a normal implant, it points to any assassination target you have."
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/tracker.dmi'
icon_state = "pinon"
/datum/status_effect/agent_pinpointer
diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm
index 2b87e2d23f2..495c4374954 100644
--- a/code/game/gamemodes/objective.dm
+++ b/code/game/gamemodes/objective.dm
@@ -189,7 +189,7 @@ GLOBAL_LIST(admin_objective_list) //Prefilled admin assignable objective list
/datum/action/special_equipment_fallback
name = "Request Objective-specific Equipment"
desc = "Call down a supply pod containing the equipment required for specific objectives."
- button_icon = 'icons/obj/device.dmi'
+ button_icon = 'icons/obj/devices/tracker.dmi'
button_icon_state = "beacon"
/datum/action/special_equipment_fallback/Trigger(trigger_flags)
diff --git a/code/game/machinery/ai_slipper.dm b/code/game/machinery/ai_slipper.dm
index 21d9d8cdd06..117577e66eb 100644
--- a/code/game/machinery/ai_slipper.dm
+++ b/code/game/machinery/ai_slipper.dm
@@ -1,7 +1,7 @@
/obj/machinery/ai_slipper
name = "foam dispenser"
desc = "A remotely-activatable dispenser for crowd-controlling foam."
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/tool.dmi'
icon_state = "ai-slipper0"
base_icon_state = "ai-slipper"
layer = PROJECTILE_HIT_THRESHHOLD_LAYER
diff --git a/code/game/machinery/computer/arena.dm b/code/game/machinery/computer/arena.dm
index 1ba000fa5da..97d89c24140 100644
--- a/code/game/machinery/computer/arena.dm
+++ b/code/game/machinery/computer/arena.dm
@@ -365,7 +365,7 @@
/// Arena spawnpoint
/obj/machinery/arena_spawn
name = "Arena Spawnpoint"
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/machines/beacon.dmi'
icon_state = "syndbeacon"
resistance_flags = INDESTRUCTIBLE
/// In case we have multiple arena controllers at once.
diff --git a/code/game/machinery/computer/buildandrepair.dm b/code/game/machinery/computer/buildandrepair.dm
index c09d6d4999f..907548d0028 100644
--- a/code/game/machinery/computer/buildandrepair.dm
+++ b/code/game/machinery/computer/buildandrepair.dm
@@ -242,7 +242,7 @@
/obj/structure/frame/computer/rcd/Initialize(mapload)
name = "computer frame"
- icon = 'icons/obj/assemblies/stock_parts.dmi'
+ icon = 'icons/obj/devices/stock_parts.dmi'
icon_state = "0"
. = ..()
diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm
index 4bf0f05e632..4e799ffeae9 100644
--- a/code/game/machinery/constructable_frame.dm
+++ b/code/game/machinery/constructable_frame.dm
@@ -1,7 +1,7 @@
/obj/structure/frame
name = "frame"
desc = "A generic looking construction frame. One day this will be something greater."
- icon = 'icons/obj/assemblies/stock_parts.dmi'
+ icon = 'icons/obj/devices/stock_parts.dmi'
icon_state = "box_0"
density = TRUE
max_integrity = 250
diff --git a/code/game/machinery/syndicatebeacon.dm b/code/game/machinery/syndicatebeacon.dm
index 9015eaacedc..c9ed74caa02 100644
--- a/code/game/machinery/syndicatebeacon.dm
+++ b/code/game/machinery/syndicatebeacon.dm
@@ -114,7 +114,7 @@
// SINGULO BEACON SPAWNER
/obj/item/sbeacondrop
name = "suspicious beacon"
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/tracker.dmi'
icon_state = "beacon"
lefthand_file = 'icons/mob/inhands/items/devices_lefthand.dmi'
righthand_file = 'icons/mob/inhands/items/devices_righthand.dmi'
diff --git a/code/game/machinery/syndicatebomb.dm b/code/game/machinery/syndicatebomb.dm
index d14d519efb1..bc1523bde0e 100644
--- a/code/game/machinery/syndicatebomb.dm
+++ b/code/game/machinery/syndicatebomb.dm
@@ -2,7 +2,7 @@
#define BUTTON_DELAY 50 //five seconds
/obj/machinery/syndicatebomb
- icon = 'icons/obj/assemblies/assemblies.dmi'
+ icon = 'icons/obj/devices/assemblies.dmi'
name = "syndicate bomb"
icon_state = "syndicate-bomb"
desc = "A large and menacing device. Can be bolted down with a wrench."
@@ -309,7 +309,7 @@
/obj/item/bombcore
name = "bomb payload"
desc = "A powerful secondary explosive of syndicate design and unknown composition, it should be stable under normal conditions..."
- icon = 'icons/obj/assemblies/assemblies.dmi'
+ icon = 'icons/obj/devices/assemblies.dmi'
icon_state = "bombcore"
inhand_icon_state = "eshield"
lefthand_file = 'icons/mob/inhands/equipment/shields_lefthand.dmi'
@@ -589,7 +589,7 @@
/obj/item/syndicatedetonator
name = "big red button"
desc = "Your standard issue bomb synchronizing button. Five second safety delay to prevent 'accidents'."
- icon = 'icons/obj/assemblies/assemblies.dmi'
+ icon = 'icons/obj/devices/assemblies.dmi'
icon_state = "bigred"
inhand_icon_state = "electronic"
lefthand_file = 'icons/mob/inhands/items/devices_lefthand.dmi'
diff --git a/code/game/machinery/wishgranter.dm b/code/game/machinery/wishgranter.dm
index 9ef7c70a50c..7d03fc8efae 100644
--- a/code/game/machinery/wishgranter.dm
+++ b/code/game/machinery/wishgranter.dm
@@ -1,7 +1,7 @@
/obj/machinery/wish_granter
name = "wish granter"
desc = "You're not so sure about this, anymore..."
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/machines/beacon.dmi'
icon_state = "syndbeacon"
use_power = NO_POWER_USE
diff --git a/code/game/objects/effects/mines.dm b/code/game/objects/effects/mines.dm
index 0731cf8c0c6..e63e7e39c4a 100644
--- a/code/game/objects/effects/mines.dm
+++ b/code/game/objects/effects/mines.dm
@@ -244,7 +244,7 @@
/obj/item/minespawner
name = "landmine deployment device"
desc = "When activated, will deploy an Asset Protection landmine after 3 seconds passes, perfect for high ranking NT officers looking to cover their assets from afar."
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/tracker.dmi'
icon_state = "beacon"
var/mine_type = /obj/effect/mine/shrapnel/capspawn
diff --git a/code/game/objects/items/AI_modules/_AI_modules.dm b/code/game/objects/items/AI_modules/_AI_modules.dm
index df6736b9cb0..30e17e0828a 100644
--- a/code/game/objects/items/AI_modules/_AI_modules.dm
+++ b/code/game/objects/items/AI_modules/_AI_modules.dm
@@ -3,7 +3,7 @@
/obj/item/ai_module
name = "\improper AI module"
- icon = 'icons/obj/assemblies/circuitry_n_data.dmi'
+ icon = 'icons/obj/devices/circuitry_n_data.dmi'
icon_state = "std_mod"
inhand_icon_state = "electronic"
lefthand_file = 'icons/mob/inhands/items/devices_lefthand.dmi'
diff --git a/code/game/objects/items/airlock_painter.dm b/code/game/objects/items/airlock_painter.dm
index 489af1733c2..7ec89b2846a 100644
--- a/code/game/objects/items/airlock_painter.dm
+++ b/code/game/objects/items/airlock_painter.dm
@@ -2,7 +2,7 @@
name = "airlock painter"
desc = "An advanced autopainter preprogrammed with several paintjobs for airlocks. Use it on an airlock during or after construction to change the paintjob."
desc_controls = "Alt-Click to remove the ink cartridge."
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/tool.dmi'
icon_state = "paint_sprayer"
inhand_icon_state = "paint_sprayer"
worn_icon_state = "painter"
@@ -160,7 +160,7 @@
name = "decal painter"
desc = "An airlock painter, reprogramed to use a different style of paint in order to apply decals for floor tiles as well, in addition to repainting doors. Decals break when the floor tiles are removed."
desc_controls = "Alt-Click to remove the ink cartridge."
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/tool.dmi'
icon_state = "decal_sprayer"
inhand_icon_state = "decal_sprayer"
custom_materials = list(/datum/material/iron= SMALL_MATERIAL_AMOUNT * 0.5, /datum/material/glass= SMALL_MATERIAL_AMOUNT * 0.5)
diff --git a/code/game/objects/items/bear_armor.dm b/code/game/objects/items/bear_armor.dm
index a951648d3d0..556875a474e 100644
--- a/code/game/objects/items/bear_armor.dm
+++ b/code/game/objects/items/bear_armor.dm
@@ -2,7 +2,7 @@
name = "pile of bear armor"
desc = "A scattered pile of various shaped armor pieces fitted for a bear, some duct tape, and a nail filer. Crude instructions \
are written on the back of one of the plates in russian. This seems like an awful idea."
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/tools.dmi'
icon_state = "bear_armor_upgrade"
/obj/item/bear_armor/afterattack(atom/target, mob/user, proximity_flag)
diff --git a/code/game/objects/items/binoculars.dm b/code/game/objects/items/binoculars.dm
index 15c78ba2960..47b36843d01 100644
--- a/code/game/objects/items/binoculars.dm
+++ b/code/game/objects/items/binoculars.dm
@@ -2,7 +2,7 @@
name = "binoculars"
desc = "Used for long-distance surveillance."
inhand_icon_state = "binoculars"
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/tool.dmi'
icon_state = "binoculars"
worn_icon_state = "binoculars"
lefthand_file = 'icons/mob/inhands/items_lefthand.dmi'
diff --git a/code/game/objects/items/botpad_remote.dm b/code/game/objects/items/botpad_remote.dm
index 49c49e8cb73..eb8cf8bb905 100644
--- a/code/game/objects/items/botpad_remote.dm
+++ b/code/game/objects/items/botpad_remote.dm
@@ -2,7 +2,7 @@
name = "Bot pad controller"
desc = "Use this device to control the connected bot pad."
desc_controls = "Left-click for launch, right-click for recall."
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/remote.dmi'
icon_state = "botpad_controller"
w_class = WEIGHT_CLASS_SMALL
// ID of the remote, used for linking up
diff --git a/code/game/objects/items/choice_beacon.dm b/code/game/objects/items/choice_beacon.dm
index 3fe0ea8675d..3971306b76b 100644
--- a/code/game/objects/items/choice_beacon.dm
+++ b/code/game/objects/items/choice_beacon.dm
@@ -1,7 +1,7 @@
/obj/item/choice_beacon
name = "choice beacon"
desc = "Hey, why are you viewing this?!! Please let CentCom know about this odd occurrence."
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/remote.dmi'
icon_state = "gangtool-blue"
inhand_icon_state = "radio"
lefthand_file = 'icons/mob/inhands/items/devices_lefthand.dmi'
@@ -68,6 +68,34 @@
"spawn" = choice_path,
))
+/obj/item/choice_beacon/music
+ name = "instrument delivery beacon"
+ desc = "Summon your tool of art."
+ w_class = WEIGHT_CLASS_TINY
+
+/obj/item/choice_beacon/music/generate_display_names()
+ var/static/list/instruments
+ if(!instruments)
+ instruments = list()
+ var/list/possible_instruments = list(
+ /obj/item/instrument/violin,
+ /obj/item/instrument/piano_synth,
+ /obj/item/instrument/banjo,
+ /obj/item/instrument/guitar,
+ /obj/item/instrument/eguitar,
+ /obj/item/instrument/glockenspiel,
+ /obj/item/instrument/accordion,
+ /obj/item/instrument/trumpet,
+ /obj/item/instrument/saxophone,
+ /obj/item/instrument/trombone,
+ /obj/item/instrument/recorder,
+ /obj/item/instrument/harmonica,
+ /obj/item/instrument/piano_synth/headphones,
+ )
+ for(var/obj/item/instrument/instrument as anything in possible_instruments)
+ instruments[initial(instrument.name)] = instrument
+ return instruments
+
/obj/item/choice_beacon/ingredient
name = "ingredient delivery beacon"
desc = "Summon a box of ingredients to help you get started cooking."
@@ -105,7 +133,7 @@
desc = "Summons augmentations. Can be used 3 times!"
uses = 3
company_source = "S.E.L.F."
- company_message = span_bold("Item request received. Your package has been teleported, use the autosurgeon supplied to apply the upgrade.")
+ company_message = span_bold("Request status: Recieved. Package status: Delivered. Notes: To assure optimal value, use supplied Interdyne-brand autosurgeons to change implantment status.")
/obj/item/choice_beacon/augments/generate_display_names()
var/static/list/augment_list
diff --git a/code/game/objects/items/circuitboards/circuitboard.dm b/code/game/objects/items/circuitboards/circuitboard.dm
index 9ac21c361fd..236b6ed402c 100644
--- a/code/game/objects/items/circuitboards/circuitboard.dm
+++ b/code/game/objects/items/circuitboards/circuitboard.dm
@@ -7,7 +7,7 @@
name = "circuit board"
/// extension that is applied after the initial name AKA (Computer/Machine Board)
var/name_extension = null
- icon = 'icons/obj/assemblies/circuitry_n_data.dmi'
+ icon = 'icons/obj/devices/circuitry_n_data.dmi'
icon_state = "circuit_map"
inhand_icon_state = "electronic"
lefthand_file = 'icons/mob/inhands/items/devices_lefthand.dmi'
diff --git a/code/game/objects/items/control_wand.dm b/code/game/objects/items/control_wand.dm
index 2e3750cda47..3128229df44 100644
--- a/code/game/objects/items/control_wand.dm
+++ b/code/game/objects/items/control_wand.dm
@@ -7,9 +7,9 @@
inhand_icon_state = "electronic"
lefthand_file = 'icons/mob/inhands/items/devices_lefthand.dmi'
righthand_file = 'icons/mob/inhands/items/devices_righthand.dmi'
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/remote.dmi'
name = "control wand"
- desc = "Remotely controls airlocks."
+ desc = "A remote for controlling a set of airlocks."
w_class = WEIGHT_CLASS_TINY
var/mode = WAND_OPEN
var/region_access = REGION_GENERAL
diff --git a/code/game/objects/items/debug_items.dm b/code/game/objects/items/debug_items.dm
index e2febe30fcf..4f6239acbe8 100644
--- a/code/game/objects/items/debug_items.dm
+++ b/code/game/objects/items/debug_items.dm
@@ -27,7 +27,7 @@
/obj/item/debug/omnitool
name = "omnitool"
desc = "The original hypertool, born before them all. Use it in hand to unleash its true power."
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/weapons/club.dmi'
icon_state = "hypertool"
inhand_icon_state = "hypertool"
lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi'
@@ -74,12 +74,12 @@
return
var/list/tool_list = list(
"Crowbar" = image(icon = 'icons/obj/tools.dmi', icon_state = "crowbar"),
- "Multitool" = image(icon = 'icons/obj/device.dmi', icon_state = "multitool"),
+ "Multitool" = image(icon = 'icons/obj/devices/tool.dmi', icon_state = "multitool"),
"Screwdriver" = image(icon = 'icons/obj/tools.dmi', icon_state = "screwdriver_map"),
"Wirecutters" = image(icon = 'icons/obj/tools.dmi', icon_state = "cutters_map"),
"Wrench" = image(icon = 'icons/obj/tools.dmi', icon_state = "wrench"),
"Welding Tool" = image(icon = 'icons/obj/tools.dmi', icon_state = "miniwelder"),
- "Analyzer" = image(icon = 'icons/obj/device.dmi', icon_state = "analyzer"),
+ "Analyzer" = image(icon = 'icons/obj/devices/scanner.dmi', icon_state = "analyzer"),
"Pickaxe" = image(icon = 'icons/obj/mining.dmi', icon_state = "minipick"),
"Shovel" = image(icon = 'icons/obj/mining.dmi', icon_state = "shovel"),
"Retractor" = image(icon = 'icons/obj/medical/surgery_tools.dmi', icon_state = "retractor"),
diff --git a/code/game/objects/items/devices/anomaly_neutralizer.dm b/code/game/objects/items/devices/anomaly_neutralizer.dm
index 2a339f74645..32f0674690e 100644
--- a/code/game/objects/items/devices/anomaly_neutralizer.dm
+++ b/code/game/objects/items/devices/anomaly_neutralizer.dm
@@ -1,8 +1,8 @@
/obj/item/anomaly_neutralizer
name = "anomaly neutralizer"
desc = "A one-use device capable of instantly neutralizing anomalous or otherworldly entities."
- icon = 'icons/obj/device.dmi'
- icon_state = "memorizer2"
+ icon = 'icons/obj/devices/tool.dmi'
+ icon_state = "neutralyzer"
inhand_icon_state = "electronic"
worn_icon_state = "electronic"
lefthand_file = 'icons/mob/inhands/items/devices_lefthand.dmi'
diff --git a/code/game/objects/items/devices/anomaly_releaser.dm b/code/game/objects/items/devices/anomaly_releaser.dm
index 4b658623d4c..a32220685ec 100644
--- a/code/game/objects/items/devices/anomaly_releaser.dm
+++ b/code/game/objects/items/devices/anomaly_releaser.dm
@@ -2,7 +2,7 @@
/obj/item/anomaly_releaser
name = "anomaly releaser"
desc = "Single-use injector that releases and stabilizes anomalies by injecting an unknown substance."
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/syndie_gadget.dmi'
icon_state = "anomaly_releaser"
inhand_icon_state = "stimpen"
lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi'
diff --git a/code/game/objects/items/devices/beacon.dm b/code/game/objects/items/devices/beacon.dm
index e2936c0f538..6a33e0d5dc3 100644
--- a/code/game/objects/items/devices/beacon.dm
+++ b/code/game/objects/items/devices/beacon.dm
@@ -1,7 +1,7 @@
/obj/item/beacon
name = "\improper tracking beacon"
desc = "A beacon used by a teleporter."
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/tracker.dmi'
icon_state = "beacon"
inhand_icon_state = "beacon"
lefthand_file = 'icons/mob/inhands/items/devices_lefthand.dmi'
diff --git a/code/game/objects/items/devices/chameleonproj.dm b/code/game/objects/items/devices/chameleonproj.dm
index 1cd9d376e77..75623ed57e8 100644
--- a/code/game/objects/items/devices/chameleonproj.dm
+++ b/code/game/objects/items/devices/chameleonproj.dm
@@ -1,6 +1,6 @@
/obj/item/chameleon
name = "chameleon projector"
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/syndie_gadget.dmi'
icon_state = "shield0"
obj_flags = CONDUCTS_ELECTRICITY
item_flags = NOBLUDGEON
diff --git a/code/game/objects/items/devices/desynchronizer.dm b/code/game/objects/items/devices/desynchronizer.dm
index c95657ca0ed..0d9791c890a 100644
--- a/code/game/objects/items/devices/desynchronizer.dm
+++ b/code/game/objects/items/devices/desynchronizer.dm
@@ -1,7 +1,7 @@
/obj/item/desynchronizer
name = "desynchronizer"
desc = "An experimental device that can temporarily desynchronize the user from spacetime, effectively making them disappear while it's active."
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/syndie_gadget.dmi'
icon_state = "desynchronizer"
inhand_icon_state = "electronic"
w_class = WEIGHT_CLASS_SMALL
diff --git a/code/game/objects/items/devices/electroadaptive_pseudocircuit.dm b/code/game/objects/items/devices/electroadaptive_pseudocircuit.dm
index 62d9ad26786..de14a9e123f 100644
--- a/code/game/objects/items/devices/electroadaptive_pseudocircuit.dm
+++ b/code/game/objects/items/devices/electroadaptive_pseudocircuit.dm
@@ -2,7 +2,7 @@
/obj/item/electroadaptive_pseudocircuit
name = "electroadaptive pseudocircuit"
desc = "An all-in-one circuit imprinter, designer, synthesizer, outfitter, creator, and chef. It can be used in place of any generic circuit board during construction."
- icon = 'icons/obj/assemblies/circuitry_n_data.dmi'
+ icon = 'icons/obj/devices/circuitry_n_data.dmi'
icon_state = "boris"
w_class = WEIGHT_CLASS_TINY
custom_materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT * 0.5, /datum/material/glass = SMALL_MATERIAL_AMOUNT * 3)
diff --git a/code/game/objects/items/devices/forcefieldprojector.dm b/code/game/objects/items/devices/forcefieldprojector.dm
index 1d1d29f8c8e..d102f062756 100644
--- a/code/game/objects/items/devices/forcefieldprojector.dm
+++ b/code/game/objects/items/devices/forcefieldprojector.dm
@@ -1,7 +1,7 @@
/obj/item/forcefield_projector
name = "forcefield projector"
desc = "An experimental device that can create several forcefields at a distance."
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/tool.dmi'
icon_state = "signmaker_forcefield"
slot_flags = ITEM_SLOT_BELT
w_class = WEIGHT_CLASS_SMALL
diff --git a/code/game/objects/items/devices/geiger_counter.dm b/code/game/objects/items/devices/geiger_counter.dm
index e506a320c76..6e152c33661 100644
--- a/code/game/objects/items/devices/geiger_counter.dm
+++ b/code/game/objects/items/devices/geiger_counter.dm
@@ -1,7 +1,7 @@
/obj/item/geiger_counter //DISCLAIMER: I know nothing about how real-life Geiger counters work. This will not be realistic. ~Xhuis
name = "\improper Geiger counter"
desc = "A handheld device used for detecting and measuring radiation pulses."
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/scanner.dmi'
icon_state = "geiger_off"
inhand_icon_state = "multitool"
worn_icon_state = "geiger_counter"
diff --git a/code/game/objects/items/devices/gps.dm b/code/game/objects/items/devices/gps.dm
index cf3ec16c98d..3b293b48f6e 100644
--- a/code/game/objects/items/devices/gps.dm
+++ b/code/game/objects/items/devices/gps.dm
@@ -2,7 +2,7 @@
/obj/item/gps
name = "global positioning system"
desc = "Helping lost spacemen find their way through the planets since 2016."
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/tracker.dmi'
icon_state = "gps-c"
inhand_icon_state = "electronic"
worn_icon_state = "electronic"
diff --git a/code/game/objects/items/devices/laserpointer.dm b/code/game/objects/items/devices/laserpointer.dm
index c1df1cb5f1a..6bfca96bf27 100644
--- a/code/game/objects/items/devices/laserpointer.dm
+++ b/code/game/objects/items/devices/laserpointer.dm
@@ -1,7 +1,7 @@
/obj/item/laser_pointer
name = "laser pointer"
desc = "Don't shine it in your eyes!"
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/service/bureaucracy.dmi'
icon_state = "pointer"
inhand_icon_state = "pen"
worn_icon_state = "pen"
diff --git a/code/game/objects/items/devices/megaphone.dm b/code/game/objects/items/devices/megaphone.dm
index a2d325dfabd..7ae17c5343a 100644
--- a/code/game/objects/items/devices/megaphone.dm
+++ b/code/game/objects/items/devices/megaphone.dm
@@ -1,7 +1,7 @@
/obj/item/megaphone
name = "megaphone"
desc = "A device used to project your voice. Loudly."
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/voice.dmi'
icon_state = "megaphone"
inhand_icon_state = "megaphone"
lefthand_file = 'icons/mob/inhands/items/megaphone_lefthand.dmi'
diff --git a/code/game/objects/items/devices/multitool.dm b/code/game/objects/items/devices/multitool.dm
index 4e8b9f6460e..d469538bf1b 100644
--- a/code/game/objects/items/devices/multitool.dm
+++ b/code/game/objects/items/devices/multitool.dm
@@ -13,7 +13,7 @@
/obj/item/multitool
name = "multitool"
desc = "Used for pulsing wires to test which to cut. Not recommended by doctors."
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/tool.dmi'
icon_state = "multitool"
inhand_icon_state = "multitool"
lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi'
diff --git a/code/game/objects/items/devices/powersink.dm b/code/game/objects/items/devices/powersink.dm
index dc09f719f74..2a0a78c626a 100644
--- a/code/game/objects/items/devices/powersink.dm
+++ b/code/game/objects/items/devices/powersink.dm
@@ -11,7 +11,7 @@
/obj/item/powersink
name = "power sink"
desc = "A power sink which drains energy from electrical systems and converts it to heat. Ensure short workloads and ample time to cool down if used in high energy systems."
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/syndie_gadget.dmi'
icon_state = "powersink0"
inhand_icon_state = "electronic"
lefthand_file = 'icons/mob/inhands/items/devices_lefthand.dmi'
diff --git a/code/game/objects/items/devices/quantum_keycard.dm b/code/game/objects/items/devices/quantum_keycard.dm
index 9462b812463..c12c030c928 100644
--- a/code/game/objects/items/devices/quantum_keycard.dm
+++ b/code/game/objects/items/devices/quantum_keycard.dm
@@ -1,7 +1,7 @@
/obj/item/quantum_keycard
name = "quantum keycard"
desc = "A keycard able to link to a quantum pad's particle signature, allowing other quantum pads to travel there instead of their linked pad."
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/tool.dmi'
icon_state = "quantum_keycard_gags"
greyscale_config = /datum/greyscale_config/quantum_keycard
greyscale_colors = "#FFFFFF"
diff --git a/code/game/objects/items/devices/radio/electropack.dm b/code/game/objects/items/devices/radio/electropack.dm
index 094ba7f5997..426e673437e 100644
--- a/code/game/objects/items/devices/radio/electropack.dm
+++ b/code/game/objects/items/devices/radio/electropack.dm
@@ -1,7 +1,7 @@
/obj/item/electropack
name = "electropack"
desc = "Dance my monkeys! DANCE!!!"
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/tool.dmi'
icon_state = "electropack0"
inhand_icon_state = "electropack"
lefthand_file = 'icons/mob/inhands/items/devices_lefthand.dmi'
@@ -40,7 +40,7 @@
/obj/item/electropack/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/clothing/head/helmet))
var/obj/item/assembly/shock_kit/A = new /obj/item/assembly/shock_kit(user)
- A.icon = 'icons/obj/assemblies/assemblies.dmi'
+ A.icon = 'icons/obj/devices/assemblies.dmi'
if(!user.transferItemToLoc(W, A))
to_chat(user, span_warning("[W] is stuck to your hand, you cannot attach it to [src]!"))
diff --git a/code/game/objects/items/devices/radio/encryptionkey.dm b/code/game/objects/items/devices/radio/encryptionkey.dm
index 4fc64980a39..7774902b83b 100644
--- a/code/game/objects/items/devices/radio/encryptionkey.dm
+++ b/code/game/objects/items/devices/radio/encryptionkey.dm
@@ -1,7 +1,7 @@
/obj/item/encryptionkey
name = "standard encryption key"
desc = "An encryption key for a radio headset."
- icon = 'icons/obj/assemblies/circuitry_n_data.dmi'
+ icon = 'icons/obj/devices/circuitry_n_data.dmi'
icon_state = "cypherkey_basic"
w_class = WEIGHT_CLASS_TINY
/// Can this radio key access the binary radio channel?
diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm
index 31f63af63a1..34b8aeefb95 100644
--- a/code/game/objects/items/devices/radio/radio.dm
+++ b/code/game/objects/items/devices/radio/radio.dm
@@ -1,7 +1,7 @@
#define FREQ_LISTENING (1<<0)
/obj/item/radio
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/voice.dmi'
name = "station bounced radio"
icon_state = "walkietalkie"
inhand_icon_state = "walkietalkie"
diff --git a/code/game/objects/items/devices/reverse_bear_trap.dm b/code/game/objects/items/devices/reverse_bear_trap.dm
index 9283bb1867a..e88b1a51187 100644
--- a/code/game/objects/items/devices/reverse_bear_trap.dm
+++ b/code/game/objects/items/devices/reverse_bear_trap.dm
@@ -3,7 +3,7 @@
/obj/item/reverse_bear_trap
name = "reverse bear trap"
desc = "A horrifying set of shut metal jaws, rigged to a kitchen timer and secured by padlock to a head-mounted clamp. To apply, hit someone with it."
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/syndie_gadget.dmi'
worn_icon = 'icons/mob/clothing/head/utility.dmi'
icon_state = "reverse_bear_trap"
slot_flags = ITEM_SLOT_HEAD
diff --git a/code/game/objects/items/devices/scanners/autopsy_scanner.dm b/code/game/objects/items/devices/scanners/autopsy_scanner.dm
index 701cd1f21d4..16f90489b20 100644
--- a/code/game/objects/items/devices/scanners/autopsy_scanner.dm
+++ b/code/game/objects/items/devices/scanners/autopsy_scanner.dm
@@ -1,7 +1,7 @@
/obj/item/autopsy_scanner
name = "autopsy scanner"
desc = "Used in surgery to extract information from a cadaver. Can also scan the health of cadavers like an advanced health analyzer!"
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/scanner.dmi'
icon_state = "autopsy_scanner"
inhand_icon_state = "autopsy_scanner"
worn_icon_state = "autopsy_scanner"
diff --git a/code/game/objects/items/devices/scanners/gas_analyzer.dm b/code/game/objects/items/devices/scanners/gas_analyzer.dm
index c909e2215e3..e3f2052c897 100644
--- a/code/game/objects/items/devices/scanners/gas_analyzer.dm
+++ b/code/game/objects/items/devices/scanners/gas_analyzer.dm
@@ -2,7 +2,7 @@
desc = "A hand-held environmental scanner which reports current gas levels."
name = "gas analyzer"
custom_price = PAYCHECK_LOWER * 0.9
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/scanner.dmi'
icon_state = "analyzer"
inhand_icon_state = "analyzer"
lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi'
diff --git a/code/game/objects/items/devices/scanners/health_analyzer.dm b/code/game/objects/items/devices/scanners/health_analyzer.dm
index 13f0cce796c..43d68f1175f 100644
--- a/code/game/objects/items/devices/scanners/health_analyzer.dm
+++ b/code/game/objects/items/devices/scanners/health_analyzer.dm
@@ -9,7 +9,7 @@
/obj/item/healthanalyzer
name = "health analyzer"
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/scanner.dmi'
icon_state = "health"
inhand_icon_state = "healthanalyzer"
worn_icon_state = "healthanalyzer"
diff --git a/code/game/objects/items/devices/scanners/scanner_wand.dm b/code/game/objects/items/devices/scanners/scanner_wand.dm
index e086751045c..18dfc820039 100644
--- a/code/game/objects/items/devices/scanners/scanner_wand.dm
+++ b/code/game/objects/items/devices/scanners/scanner_wand.dm
@@ -1,6 +1,6 @@
/obj/item/scanner_wand
name = "kiosk scanner wand"
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/scanner.dmi'
icon_state = "scanner_wand"
inhand_icon_state = "healthanalyzer"
lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi'
diff --git a/code/game/objects/items/devices/scanners/sequence_scanner.dm b/code/game/objects/items/devices/scanners/sequence_scanner.dm
index b5504ab1742..4a80179f60e 100644
--- a/code/game/objects/items/devices/scanners/sequence_scanner.dm
+++ b/code/game/objects/items/devices/scanners/sequence_scanner.dm
@@ -1,6 +1,6 @@
/obj/item/sequence_scanner
name = "genetic sequence scanner"
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/scanner.dmi'
icon_state = "gene"
inhand_icon_state = "healthanalyzer"
worn_icon_state = "healthanalyzer"
diff --git a/code/game/objects/items/devices/scanners/slime_scanner.dm b/code/game/objects/items/devices/scanners/slime_scanner.dm
index 759e5c87f7f..133dfee0b87 100644
--- a/code/game/objects/items/devices/scanners/slime_scanner.dm
+++ b/code/game/objects/items/devices/scanners/slime_scanner.dm
@@ -1,7 +1,7 @@
/obj/item/slime_scanner
name = "slime scanner"
desc = "A device that analyzes a slime's internal composition and measures its stats."
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/scanner.dmi'
icon_state = "slime_scanner"
inhand_icon_state = "analyzer"
lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi'
diff --git a/code/game/objects/items/devices/scanners/t_scanner.dm b/code/game/objects/items/devices/scanners/t_scanner.dm
index 6168d0f8380..b034c954811 100644
--- a/code/game/objects/items/devices/scanners/t_scanner.dm
+++ b/code/game/objects/items/devices/scanners/t_scanner.dm
@@ -2,7 +2,7 @@
name = "\improper T-ray scanner"
desc = "A terahertz-ray emitter and scanner used to detect underfloor objects such as cables and pipes."
custom_price = PAYCHECK_LOWER * 0.7
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/scanner.dmi'
icon_state = "t-ray0"
var/on = FALSE
slot_flags = ITEM_SLOT_BELT
diff --git a/code/game/objects/items/devices/sensor_device.dm b/code/game/objects/items/devices/sensor_device.dm
index dc45521532e..0a5b4feb83a 100644
--- a/code/game/objects/items/devices/sensor_device.dm
+++ b/code/game/objects/items/devices/sensor_device.dm
@@ -1,7 +1,7 @@
/obj/item/sensor_device
name = "handheld crew monitor" //Thanks to Gun Hog for the name!
desc = "A miniature machine that tracks suit sensors across the station."
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/scanner.dmi'
icon_state = "scanner"
inhand_icon_state = "electronic"
worn_icon_state = "electronic"
diff --git a/code/game/objects/items/devices/swapper.dm b/code/game/objects/items/devices/swapper.dm
index c5b67bc03bc..1022e72cc44 100644
--- a/code/game/objects/items/devices/swapper.dm
+++ b/code/game/objects/items/devices/swapper.dm
@@ -1,7 +1,7 @@
/obj/item/swapper
name = "quantum spin inverter"
desc = "An experimental device that is able to swap the locations of two entities by switching their particles' spin values. Must be linked to another device to function."
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/mining_zones/artefacts.dmi'
icon_state = "swapper"
inhand_icon_state = "electronic"
w_class = WEIGHT_CLASS_SMALL
diff --git a/code/game/objects/items/devices/taperecorder.dm b/code/game/objects/items/devices/taperecorder.dm
index 997f548a0ee..f15f2eb72e0 100644
--- a/code/game/objects/items/devices/taperecorder.dm
+++ b/code/game/objects/items/devices/taperecorder.dm
@@ -1,7 +1,7 @@
/obj/item/taperecorder
name = "universal recorder"
desc = "A device that can record to cassette tapes, and play them. It automatically translates the content in playback."
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/voice.dmi'
icon_state = "taperecorder_empty"
inhand_icon_state = "analyzer"
worn_icon_state = "analyzer"
@@ -369,7 +369,7 @@
name = "tape"
desc = "A magnetic tape that can hold up to ten minutes of content on either side."
icon_state = "tape_white"
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/circuitry_n_data.dmi'
inhand_icon_state = "analyzer"
lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi'
diff --git a/code/game/objects/items/devices/traitordevices.dm b/code/game/objects/items/devices/traitordevices.dm
index baebd221684..99322597b4b 100644
--- a/code/game/objects/items/devices/traitordevices.dm
+++ b/code/game/objects/items/devices/traitordevices.dm
@@ -18,7 +18,7 @@ effective or pretty fucking useless.
/obj/item/batterer
name = "mind batterer"
desc = "A strange device with twin antennas."
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/syndie_gadget.dmi'
icon_state = "batterer"
throwforce = 5
w_class = WEIGHT_CLASS_TINY
@@ -285,7 +285,7 @@ effective or pretty fucking useless.
/obj/item/jammer
name = "radio jammer"
desc = "Device used to disrupt nearby radio communication."
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/syndie_gadget.dmi'
icon_state = "jammer"
var/active = FALSE
var/range = 12
diff --git a/code/game/objects/items/devices/transfer_valve.dm b/code/game/objects/items/devices/transfer_valve.dm
index 496eec5659c..c3203a0ace7 100644
--- a/code/game/objects/items/devices/transfer_valve.dm
+++ b/code/game/objects/items/devices/transfer_valve.dm
@@ -1,5 +1,5 @@
/obj/item/transfer_valve
- icon = 'icons/obj/assemblies/assemblies.dmi'
+ icon = 'icons/obj/devices/assemblies.dmi'
name = "tank transfer valve"
icon_state = "valve_1"
base_icon_state = "valve"
diff --git a/code/game/objects/items/etherealdiscoball.dm b/code/game/objects/items/etherealdiscoball.dm
index 85b3a77bc86..0b8183a7237 100644
--- a/code/game/objects/items/etherealdiscoball.dm
+++ b/code/game/objects/items/etherealdiscoball.dm
@@ -1,7 +1,7 @@
/obj/item/etherealballdeployer
name = "Portable Ethereal Disco Ball"
desc = "Press the button for a deployment of slightly-unethical PARTY!"
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/remote.dmi'
icon_state = "ethdisco"
/obj/item/etherealballdeployer/attack_self(mob/living/carbon/user)
@@ -13,7 +13,7 @@
/obj/structure/etherealball
name = "Ethereal Disco Ball"
desc = "The ethics of this discoball are questionable."
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/machines/floor.dmi'
icon_state = "ethdisco_head_0"
anchored = TRUE
density = TRUE
diff --git a/code/game/objects/items/holosign_creator.dm b/code/game/objects/items/holosign_creator.dm
index f491321090a..9f5f94d048b 100644
--- a/code/game/objects/items/holosign_creator.dm
+++ b/code/game/objects/items/holosign_creator.dm
@@ -1,7 +1,7 @@
/obj/item/holosign_creator
name = "holographic sign projector"
desc = "A handy-dandy holographic projector that displays a janitorial sign."
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/tool.dmi'
icon_state = "signmaker"
inhand_icon_state = "electronic"
worn_icon_state = "electronic"
diff --git a/code/game/objects/items/implants/implant_misc.dm b/code/game/objects/items/implants/implant_misc.dm
index c0cc911fae2..0d87ed6d973 100644
--- a/code/game/objects/items/implants/implant_misc.dm
+++ b/code/game/objects/items/implants/implant_misc.dm
@@ -34,7 +34,7 @@
var/obj/item/radio/radio
var/radio_key
var/subspace_transmission = FALSE
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/voice.dmi'
icon_state = "walkietalkie"
/obj/item/implant/radio/activate()
diff --git a/code/game/objects/items/implants/implantpad.dm b/code/game/objects/items/implants/implantpad.dm
index aa1ccd461ac..59bf505d102 100644
--- a/code/game/objects/items/implants/implantpad.dm
+++ b/code/game/objects/items/implants/implantpad.dm
@@ -1,7 +1,7 @@
/obj/item/implantpad
name = "implant pad"
desc = "Used to modify implants."
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/tool.dmi'
icon_state = "implantpad-0"
inhand_icon_state = "electronic"
lefthand_file = 'icons/mob/inhands/items/devices_lefthand.dmi'
diff --git a/code/game/objects/items/implants/implantuplink.dm b/code/game/objects/items/implants/implantuplink.dm
index be6ef13184a..9755e1fe40f 100644
--- a/code/game/objects/items/implants/implantuplink.dm
+++ b/code/game/objects/items/implants/implantuplink.dm
@@ -1,7 +1,7 @@
/obj/item/implant/uplink
name = "uplink implant"
desc = "Sneeki breeki."
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/voice.dmi'
icon_state = "radio"
lefthand_file = 'icons/mob/inhands/items/devices_lefthand.dmi'
righthand_file = 'icons/mob/inhands/items/devices_righthand.dmi'
diff --git a/code/game/objects/items/inspector.dm b/code/game/objects/items/inspector.dm
index ec4786c8cda..c0b6a5dd145 100644
--- a/code/game/objects/items/inspector.dm
+++ b/code/game/objects/items/inspector.dm
@@ -6,7 +6,7 @@
/obj/item/inspector
name = "\improper N-spect scanner"
desc = "Central Command-issued inspection device. Performs inspections according to Nanotrasen protocols when activated, then prints an encrypted report regarding the maintenance of the station. Definitely not giving you cancer."
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/scanner.dmi'
icon_state = "inspector"
worn_icon_state = "salestagger"
inhand_icon_state = "electronic"
diff --git a/code/game/objects/items/pinpointer.dm b/code/game/objects/items/pinpointer.dm
index e36fa5a142f..3a020ec5393 100644
--- a/code/game/objects/items/pinpointer.dm
+++ b/code/game/objects/items/pinpointer.dm
@@ -2,7 +2,7 @@
/obj/item/pinpointer
name = "pinpointer"
desc = "A handheld tracking device that locks onto certain signals."
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/tracker.dmi'
icon_state = "pinpointer"
obj_flags = CONDUCTS_ELECTRICITY
slot_flags = ITEM_SLOT_BELT
diff --git a/code/game/objects/items/rcd/RHD.dm b/code/game/objects/items/rcd/RHD.dm
index 460482e5929..8abf1f2e3f2 100644
--- a/code/game/objects/items/rcd/RHD.dm
+++ b/code/game/objects/items/rcd/RHD.dm
@@ -284,7 +284,7 @@
/obj/item/rcd_upgrade
name = "RCD advanced design disk"
desc = "It seems to be empty."
- icon = 'icons/obj/assemblies/circuitry_n_data.dmi'
+ icon = 'icons/obj/devices/circuitry_n_data.dmi'
icon_state = "datadisk3"
var/upgrade
diff --git a/code/game/objects/items/rcd/RPD.dm b/code/game/objects/items/rcd/RPD.dm
index df87eb90b71..21619310d35 100644
--- a/code/game/objects/items/rcd/RPD.dm
+++ b/code/game/objects/items/rcd/RPD.dm
@@ -648,7 +648,7 @@ GLOBAL_LIST_INIT(transit_tube_recipes, list(
/obj/item/rpd_upgrade
name = "RPD advanced design disk"
desc = "It seems to be empty."
- icon = 'icons/obj/assemblies/circuitry_n_data.dmi'
+ icon = 'icons/obj/devices/circuitry_n_data.dmi'
icon_state = "datadisk3"
/// Bitflags for upgrades
var/upgrade_flags
diff --git a/code/game/objects/items/robot/ai_upgrades.dm b/code/game/objects/items/robot/ai_upgrades.dm
index 6627b27921e..5660de8d604 100644
--- a/code/game/objects/items/robot/ai_upgrades.dm
+++ b/code/game/objects/items/robot/ai_upgrades.dm
@@ -5,7 +5,7 @@
/obj/item/malf_upgrade
name = "combat software upgrade"
desc = "A highly illegal, highly dangerous upgrade for artificial intelligence units, granting them a variety of powers as well as the ability to hack APCs.
This upgrade does not override any active laws, and must be applied directly to an active AI core."
- icon = 'icons/obj/assemblies/circuitry_n_data.dmi'
+ icon = 'icons/obj/devices/circuitry_n_data.dmi'
icon_state = "datadisk3"
@@ -34,7 +34,7 @@
/obj/item/surveillance_upgrade
name = "surveillance software upgrade"
desc = "An illegal software package that will allow an artificial intelligence to 'hear' from its cameras via lip reading and hidden microphones."
- icon = 'icons/obj/assemblies/circuitry_n_data.dmi'
+ icon = 'icons/obj/devices/circuitry_n_data.dmi'
icon_state = "datadisk3"
/obj/item/surveillance_upgrade/pre_attack(atom/A, mob/living/user, proximity)
diff --git a/code/game/objects/items/robot/items/generic.dm b/code/game/objects/items/robot/items/generic.dm
index b8492b7ba30..081a3e0abbc 100644
--- a/code/game/objects/items/robot/items/generic.dm
+++ b/code/game/objects/items/robot/items/generic.dm
@@ -308,7 +308,7 @@
/obj/item/harmalarm
name = "\improper Sonic Harm Prevention Tool"
desc = "Releases a harmless blast that confuses most organics. For when the harm is JUST TOO MUCH."
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/voice.dmi'
icon_state = "megaphone"
/// Harm alarm cooldown
COOLDOWN_DECLARE(alarm_cooldown)
diff --git a/code/game/objects/items/robot/items/tools.dm b/code/game/objects/items/robot/items/tools.dm
index e888cd43087..773458964f7 100644
--- a/code/game/objects/items/robot/items/tools.dm
+++ b/code/game/objects/items/robot/items/tools.dm
@@ -15,7 +15,7 @@
/obj/item/borg/projectile_dampen
name = "\improper Hyperkinetic Dampening projector"
desc = "A device that projects a dampening field that weakens kinetic energy above a certain threshold. Projects a field that drains power per second while active, that will weaken and slow damaging projectiles inside its field. Still being a prototype, it tends to induce a charge on ungrounded metallic surfaces."
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/syndie_gadget.dmi'
icon_state = "shield0"
base_icon_state = "shield"
/// Max energy this dampener can hold
diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm
index 9e90c979949..27dfb028992 100644
--- a/code/game/objects/items/robot/robot_upgrades.dm
+++ b/code/game/objects/items/robot/robot_upgrades.dm
@@ -4,7 +4,7 @@
/obj/item/borg/upgrade
name = "borg upgrade module."
desc = "Protected by FRM."
- icon = 'icons/obj/assemblies/circuitry_n_data.dmi'
+ icon = 'icons/obj/devices/circuitry_n_data.dmi'
icon_state = "cyborg_upgrade"
w_class = WEIGHT_CLASS_SMALL
var/locked = FALSE
@@ -640,7 +640,7 @@
/obj/item/borg/upgrade/pinpointer
name = "medical cyborg crew pinpointer"
desc = "A crew pinpointer module for the medical cyborg. Permits remote access to the crew monitor."
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/tracker.dmi'
icon_state = "pinpointer_crew"
require_model = TRUE
model_type = list(/obj/item/robot_model/medical, /obj/item/robot_model/syndicate_medical)
@@ -954,7 +954,7 @@
name = "cyborg emergency reboot module"
desc = "A reusable firmware reset tool that can force a reboot of a disabled-but-repaired cyborg, bringing it back online."
w_class = WEIGHT_CLASS_SMALL
- icon = 'icons/obj/assemblies/circuitry_n_data.dmi'
+ icon = 'icons/obj/devices/circuitry_n_data.dmi'
icon_state = "cyborg_upgrade1"
/obj/item/borg_restart_board/pre_attack(mob/living/silicon/robot/borgo, mob/living/user, params)
diff --git a/code/game/objects/items/teleportation.dm b/code/game/objects/items/teleportation.dm
index fce200dc5b3..59c60475af4 100644
--- a/code/game/objects/items/teleportation.dm
+++ b/code/game/objects/items/teleportation.dm
@@ -13,7 +13,7 @@
/obj/item/locator
name = "bluespace locator"
desc = "Used to track portable teleportation beacons and targets with embedded tracking implants."
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/tracker.dmi'
icon_state = "locator"
var/temp = null
obj_flags = CONDUCTS_ELECTRICITY
@@ -100,7 +100,7 @@
/obj/item/hand_tele
name = "hand tele"
desc = "A portable item using blue-space technology. One of the buttons opens a portal, the other re-opens your last destination."
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/tracker.dmi'
icon_state = "hand_tele"
inhand_icon_state = "electronic"
worn_icon_state = "electronic"
@@ -317,7 +317,7 @@
/obj/item/syndicate_teleporter
name = "experimental teleporter"
desc = "A reverse-engineered version of the Nanotrasen handheld teleporter. Lacks the advanced safety features of its counterpart. A three-headed serpent can be seen on the back."
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/tracker.dmi'
icon_state = "syndi-tele"
throwforce = 5
w_class = WEIGHT_CLASS_SMALL
diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm
index 952ecb14f29..18d65f2d8b6 100644
--- a/code/game/objects/items/toys.dm
+++ b/code/game/objects/items/toys.dm
@@ -855,7 +855,7 @@
/obj/item/toy/redbutton
name = "big red button"
desc = "A big, plastic red button. Reads 'From HonkCo Pranks!' on the back."
- icon = 'icons/obj/assemblies/assemblies.dmi'
+ icon = 'icons/obj/devices/assemblies.dmi'
icon_state = "bigred"
w_class = WEIGHT_CLASS_SMALL
var/cooldown = 0
diff --git a/code/game/objects/items/wall_mounted.dm b/code/game/objects/items/wall_mounted.dm
index 4b77eb0455c..ef19205cf80 100644
--- a/code/game/objects/items/wall_mounted.dm
+++ b/code/game/objects/items/wall_mounted.dm
@@ -83,7 +83,7 @@
/obj/item/electronics
desc = "Looks like a circuit. Probably is."
- icon = 'icons/obj/assemblies/circuitry_n_data.dmi'
+ icon = 'icons/obj/devices/circuitry_n_data.dmi'
icon_state = "door_electronics"
inhand_icon_state = "electronic"
lefthand_file = 'icons/mob/inhands/items/devices_lefthand.dmi'
diff --git a/code/game/objects/items/weaponry.dm b/code/game/objects/items/weaponry.dm
index df426c712fa..8e02ea6dd33 100644
--- a/code/game/objects/items/weaponry.dm
+++ b/code/game/objects/items/weaponry.dm
@@ -413,7 +413,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301
/obj/item/phone
name = "red phone"
desc = "Should anything ever go wrong..."
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/voice.dmi'
icon_state = "red_phone"
force = 3
throwforce = 2
diff --git a/code/game/objects/structures/spawner.dm b/code/game/objects/structures/spawner.dm
index 29a63b1bff8..4fb7b8df14e 100644
--- a/code/game/objects/structures/spawner.dm
+++ b/code/game/objects/structures/spawner.dm
@@ -74,7 +74,7 @@
/obj/structure/spawner/syndicate
name = "warp beacon"
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/machines/beacon.dmi'
icon_state = "syndbeacon"
spawn_text = "warps in from"
mob_types = list(/mob/living/basic/trooper/syndicate/ranged)
@@ -100,7 +100,7 @@
name = "Laughing Larry"
desc = "A laughing, jovial figure. Something seems stuck in his throat."
icon_state = "clownbeacon"
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/machines/beacon.dmi'
max_integrity = 200
max_mobs = 15
spawn_time = 15 SECONDS
diff --git a/code/modules/antagonists/_common/antag_spawner.dm b/code/modules/antagonists/_common/antag_spawner.dm
index d036d424705..4b432b6b6f1 100644
--- a/code/modules/antagonists/_common/antag_spawner.dm
+++ b/code/modules/antagonists/_common/antag_spawner.dm
@@ -96,9 +96,9 @@
*/
/obj/item/antag_spawner/nuke_ops
name = "syndicate operative beacon"
- desc = "A single-use beacon designed to quickly launch reinforcement operatives into the field."
- icon = 'icons/obj/device.dmi'
- icon_state = "locator"
+ desc = "MI13 designed one-use radio for calling immediate backup. Have no regards for safety of whom it summons - they are all inferior clones from Interdyne's genebanks anyway."
+ icon = 'icons/obj/devices/voice.dmi'
+ icon_state = "nukietalkie"
var/borg_to_spawn
/// The name of the special role given to the recruit
var/special_role_name = ROLE_NUCLEAR_OPERATIVE
@@ -182,8 +182,8 @@
/obj/item/antag_spawner/nuke_ops/borg_tele
name = "syndicate cyborg beacon"
desc = "A single-use beacon designed to quickly launch reinforcement cyborgs into the field."
- icon = 'icons/obj/device.dmi'
- icon_state = "locator"
+ icon = 'icons/obj/devices/remote.dmi'
+ icon_state = "gangtool-red"
/obj/item/antag_spawner/nuke_ops/borg_tele/assault
name = "syndicate assault cyborg beacon"
@@ -291,8 +291,8 @@
/obj/item/antag_spawner/loadout
name = "generic beacon"
desc = "A single-use beacon designed to quickly launch bad code into the field."
- icon = 'icons/obj/device.dmi'
- icon_state = "locator"
+ icon = 'icons/obj/devices/voice.dmi'
+ icon_state = "walkietalkie"
/// The mob type to spawn.
var/mob/living/spawn_type = /mob/living/carbon/human
/// The species type to set a human spawn to.
@@ -375,9 +375,9 @@
/obj/item/antag_spawner/loadout/monkey_man
name = "monkey agent beacon"
- desc = "A single-use beacon designed to launch a specially-trained simian agent to the field for emergency support."
- icon = 'icons/obj/device.dmi'
- icon_state = "locator"
+ desc = "Call up some backup from ARC for monkey mayhem."
+ icon = 'icons/obj/devices/voice.dmi'
+ icon_state = "walkietalkie"
species_type = /datum/species/monkey
outfit = /datum/outfit/syndicate_monkey
antag_datum = /datum/antagonist/syndicate_monkey
@@ -385,7 +385,7 @@
poll_role_check = ROLE_TRAITOR
role_to_play = ROLE_SYNDICATE_MONKEY
poll_ignore_category = POLL_IGNORE_SYNDICATE
- fail_text = "Unable to connect to the Syndicate Banana Department. Please wait and try again later or use the beacon on your uplink to get your points refunded."
+ fail_text = "Unable to connect to the Animal Rights Consortium's Banana Ops. Please wait and try again later or use the beacon on your uplink to get your points refunded."
/obj/item/antag_spawner/loadout/monkey_man/do_special_things(mob/living/carbon/human/monkey_man, mob/user)
diff --git a/code/modules/antagonists/changeling/powers/mmi_talk.dm b/code/modules/antagonists/changeling/powers/mmi_talk.dm
index f68968c223e..2fe90d08318 100644
--- a/code/modules/antagonists/changeling/powers/mmi_talk.dm
+++ b/code/modules/antagonists/changeling/powers/mmi_talk.dm
@@ -3,7 +3,7 @@
desc = "Our decoy brain has been implanted into a Man-Machine Interface. \
In order to maintain our secrecy, we can speak through the decoy as if a normal brain. \
The decoy brain will relay speech it hears to you in purple."
- button_icon = 'icons/obj/assemblies/assemblies.dmi'
+ button_icon = 'icons/obj/devices/assemblies.dmi'
button_icon_state = "mmi_off"
dna_cost = CHANGELING_POWER_UNOBTAINABLE
ignores_fakedeath = TRUE // Can be used while fake dead
diff --git a/code/modules/antagonists/nukeop/equipment/borgchameleon.dm b/code/modules/antagonists/nukeop/equipment/borgchameleon.dm
index b55aef09f84..27909606643 100644
--- a/code/modules/antagonists/nukeop/equipment/borgchameleon.dm
+++ b/code/modules/antagonists/nukeop/equipment/borgchameleon.dm
@@ -1,6 +1,6 @@
/obj/item/borg_chameleon
name = "cyborg chameleon projector"
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/syndie_gadget.dmi'
icon_state = "shield0"
obj_flags = CONDUCTS_ELECTRICITY
item_flags = NOBLUDGEON
diff --git a/code/modules/antagonists/nukeop/equipment/nuclear_authentication_disk.dm b/code/modules/antagonists/nukeop/equipment/nuclear_authentication_disk.dm
index 2ed37ffaaa0..72c51f14b2b 100644
--- a/code/modules/antagonists/nukeop/equipment/nuclear_authentication_disk.dm
+++ b/code/modules/antagonists/nukeop/equipment/nuclear_authentication_disk.dm
@@ -1,5 +1,5 @@
/obj/item/disk
- icon = 'icons/obj/assemblies/circuitry_n_data.dmi'
+ icon = 'icons/obj/devices/circuitry_n_data.dmi'
w_class = WEIGHT_CLASS_TINY
inhand_icon_state = "card-id"
lefthand_file = 'icons/mob/inhands/equipment/idcards_lefthand.dmi'
diff --git a/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm b/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm
index 48867c60854..734025e9a37 100644
--- a/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm
+++ b/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm
@@ -6,7 +6,7 @@ GLOBAL_LIST_EMPTY(jam_on_wardec)
/obj/item/nuclear_challenge
name = "Declaration of War (Challenge Mode)"
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/voice.dmi'
icon_state = "nukietalkie"
inhand_icon_state = "nukietalkie"
lefthand_file = 'icons/mob/inhands/items/devices_lefthand.dmi'
diff --git a/code/modules/assembly/assembly.dm b/code/modules/assembly/assembly.dm
index 39305b72772..add95cdd6db 100644
--- a/code/modules/assembly/assembly.dm
+++ b/code/modules/assembly/assembly.dm
@@ -2,7 +2,7 @@
/obj/item/assembly
name = "assembly"
desc = "A small electronic device that should never exist."
- icon = 'icons/obj/assemblies/new_assemblies.dmi'
+ icon = 'icons/obj/devices/new_assemblies.dmi'
icon_state = ""
obj_flags = CONDUCTS_ELECTRICITY
w_class = WEIGHT_CLASS_SMALL
diff --git a/code/modules/assembly/flash.dm b/code/modules/assembly/flash.dm
index d474763048e..a09185df3b5 100644
--- a/code/modules/assembly/flash.dm
+++ b/code/modules/assembly/flash.dm
@@ -3,6 +3,7 @@
/obj/item/assembly/flash
name = "flash"
desc = "A powerful and versatile flashbulb device, with applications ranging from disorienting attackers to acting as visual receptors in robot production."
+ icon = 'icons/obj/devices/flash.dmi'
icon_state = "flash"
inhand_icon_state = "flashtool"
lefthand_file = 'icons/mob/inhands/equipment/security_lefthand.dmi'
@@ -296,7 +297,6 @@
/obj/item/assembly/flash/memorizer
name = "memorizer"
desc = "If you see this, you're not likely to remember it any time soon."
- icon = 'icons/obj/device.dmi'
icon_state = "memorizer"
inhand_icon_state = "nullrod"
lefthand_file = 'icons/mob/inhands/weapons/melee_lefthand.dmi'
@@ -342,7 +342,7 @@
/obj/item/assembly/flash/hypnotic
desc = "A modified flash device, programmed to emit a sequence of subliminal flashes that can send a vulnerable target into a hypnotic trance."
- flashing_overlay = "flash-hypno"
+ flashing_overlay = "mindflash"
light_color = LIGHT_COLOR_PINK
cooldown = 20
diff --git a/code/modules/assembly/holder.dm b/code/modules/assembly/holder.dm
index a79e2ec4924..70f116b3e3e 100644
--- a/code/modules/assembly/holder.dm
+++ b/code/modules/assembly/holder.dm
@@ -1,6 +1,6 @@
/obj/item/assembly_holder
name = "Assembly"
- icon = 'icons/obj/assemblies/new_assemblies.dmi'
+ icon = 'icons/obj/devices/new_assemblies.dmi'
icon_state = "assembly_holder"
inhand_icon_state = "assembly"
lefthand_file = 'icons/mob/inhands/items/devices_lefthand.dmi'
diff --git a/code/modules/assembly/shock_kit.dm b/code/modules/assembly/shock_kit.dm
index 113a7a8d2aa..05662057074 100644
--- a/code/modules/assembly/shock_kit.dm
+++ b/code/modules/assembly/shock_kit.dm
@@ -1,7 +1,7 @@
/obj/item/assembly/shock_kit
name = "electrohelmet assembly"
desc = "This appears to be made from both an electropack and a helmet."
- icon = 'icons/obj/assemblies/assemblies.dmi'
+ icon = 'icons/obj/devices/assemblies.dmi'
icon_state = "shock_kit"
var/obj/item/clothing/head/helmet/helmet_part = null
var/obj/item/electropack/electropack_part = null
diff --git a/code/modules/asset_cache/assets/crafting.dm b/code/modules/asset_cache/assets/crafting.dm
index 8b38b9d32bb..99088ed1a70 100644
--- a/code/modules/asset_cache/assets/crafting.dm
+++ b/code/modules/asset_cache/assets/crafting.dm
@@ -49,12 +49,12 @@
/datum/asset/spritesheet/crafting/proc/add_tool_icons()
var/list/tool_icons = list(
TOOL_CROWBAR = icon('icons/obj/tools.dmi', "crowbar"),
- TOOL_MULTITOOL = icon('icons/obj/device.dmi', "multitool"),
+ TOOL_MULTITOOL = icon('icons/obj/devices/tool.dmi', "multitool"),
TOOL_SCREWDRIVER = icon('icons/obj/tools.dmi', "screwdriver_map"),
TOOL_WIRECUTTER = icon('icons/obj/tools.dmi', "cutters_map"),
TOOL_WRENCH = icon('icons/obj/tools.dmi', "wrench"),
TOOL_WELDER = icon('icons/obj/tools.dmi', "welder"),
- TOOL_ANALYZER = icon('icons/obj/device.dmi', "analyzer"),
+ TOOL_ANALYZER = icon('icons/obj/devices/scanner.dmi', "analyzer"),
TOOL_MINING = icon('icons/obj/mining.dmi', "minipick"),
TOOL_SHOVEL = icon('icons/obj/mining.dmi', "spade"),
TOOL_RETRACTOR = icon('icons/obj/medical/surgery_tools.dmi', "retractor"),
diff --git a/code/modules/bitrunning/objects/debug.dm b/code/modules/bitrunning/objects/debug.dm
index 3b85c4f4585..84f77e3a18c 100644
--- a/code/modules/bitrunning/objects/debug.dm
+++ b/code/modules/bitrunning/objects/debug.dm
@@ -1,7 +1,7 @@
/obj/item/bitrunning_debug
name = "bitrunning debug item"
desc = "Adds points and reduces cooldown time for debugging"
- icon = 'icons/obj/assemblies/circuitry_n_data.dmi'
+ icon = 'icons/obj/devices/circuitry_n_data.dmi'
base_icon_state = "datadisk"
icon_state = "datadisk0"
diff --git a/code/modules/bitrunning/objects/disks.dm b/code/modules/bitrunning/objects/disks.dm
index 2911539b0ac..d6b44a60518 100644
--- a/code/modules/bitrunning/objects/disks.dm
+++ b/code/modules/bitrunning/objects/disks.dm
@@ -7,7 +7,7 @@
/obj/item/bitrunning_disk
name = "generic bitrunning program"
desc = "A disk containing source code."
- icon = 'icons/obj/assemblies/circuitry_n_data.dmi'
+ icon = 'icons/obj/devices/circuitry_n_data.dmi'
base_icon_state = "datadisk"
icon_state = "datadisk0"
/// Name of the choice made
diff --git a/code/modules/bitrunning/objects/host_monitor.dm b/code/modules/bitrunning/objects/host_monitor.dm
index 2116c7aa6ab..f86bc1079d8 100644
--- a/code/modules/bitrunning/objects/host_monitor.dm
+++ b/code/modules/bitrunning/objects/host_monitor.dm
@@ -4,7 +4,7 @@
custom_materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT * 2)
desc = "A complex electronic that will analyze the connection health between host and avatar."
obj_flags = CONDUCTS_ELECTRICITY
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/scanner.dmi'
icon_state = "host_monitor"
inhand_icon_state = "electronic"
item_flags = NOBLUDGEON
diff --git a/code/modules/capture_the_flag/ctf_game.dm b/code/modules/capture_the_flag/ctf_game.dm
index c42bdd596e6..980cf1a0f69 100644
--- a/code/modules/capture_the_flag/ctf_game.dm
+++ b/code/modules/capture_the_flag/ctf_game.dm
@@ -9,7 +9,7 @@
/obj/machinery/ctf
name = "CTF Controller"
desc = "Used for running friendly games of capture the flag."
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/machines/beacon.dmi'
icon_state = "syndbeacon"
density = TRUE
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
diff --git a/code/modules/cargo/supplypod.dm b/code/modules/cargo/supplypod.dm
index 5cff02f837d..6b0517d07b2 100644
--- a/code/modules/cargo/supplypod.dm
+++ b/code/modules/cargo/supplypod.dm
@@ -699,7 +699,7 @@
/obj/item/disk/cargo/bluespace_pod //Disk that can be inserted into the Express Console to allow for Advanced Bluespace Pods
name = "Bluespace Drop Pod Upgrade"
desc = "This disk provides a firmware update to the Express Supply Console, granting the use of Nanotrasen's Bluespace Drop Pods to the supply department."
- icon = 'icons/obj/assemblies/circuitry_n_data.dmi'
+ icon = 'icons/obj/devices/circuitry_n_data.dmi'
icon_state = "cargodisk"
inhand_icon_state = "card-id"
w_class = WEIGHT_CLASS_SMALL
diff --git a/code/modules/cargo/supplypod_beacon.dm b/code/modules/cargo/supplypod_beacon.dm
index 1fc74c99490..999e7d76eec 100644
--- a/code/modules/cargo/supplypod_beacon.dm
+++ b/code/modules/cargo/supplypod_beacon.dm
@@ -1,7 +1,7 @@
/obj/item/supplypod_beacon
name = "Supply Pod Beacon"
desc = "A device that can be linked to an Express Supply Console for precision supply pod deliveries."
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/tracker.dmi'
icon_state = "supplypod_beacon"
inhand_icon_state = "radio"
lefthand_file = 'icons/mob/inhands/items/devices_lefthand.dmi'
diff --git a/code/modules/cargo/universal_scanner.dm b/code/modules/cargo/universal_scanner.dm
index 98049ce10ab..a4bacea8082 100644
--- a/code/modules/cargo/universal_scanner.dm
+++ b/code/modules/cargo/universal_scanner.dm
@@ -3,7 +3,7 @@
/obj/item/universal_scanner
name = "universal scanner"
desc = "A device used to check objects against Nanotrasen exports database, assign price tags, or ready an item for a custom vending machine."
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/scanner.dmi'
icon_state = "export scanner"
inhand_icon_state = "export_scanner"
lefthand_file = 'icons/mob/inhands/items/devices_lefthand.dmi'
diff --git a/code/modules/clothing/glasses/_glasses.dm b/code/modules/clothing/glasses/_glasses.dm
index fa286acafc3..9fe43df5856 100644
--- a/code/modules/clothing/glasses/_glasses.dm
+++ b/code/modules/clothing/glasses/_glasses.dm
@@ -422,7 +422,7 @@
name = "suspicious contact lens case"
desc = "A sinister red case that contains two shiny black contact lenses."
w_class = WEIGHT_CLASS_TINY
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/syndie_gadget.dmi'
icon_state = "contacts"
/obj/item/syndicate_contacts/attack_self(mob/user, modifiers)
diff --git a/code/modules/clothing/masks/hailer.dm b/code/modules/clothing/masks/hailer.dm
index 5720c754ead..7c351d3ad34 100644
--- a/code/modules/clothing/masks/hailer.dm
+++ b/code/modules/clothing/masks/hailer.dm
@@ -98,7 +98,7 @@ GLOBAL_LIST_INIT(hailer_phrases, list(
/obj/item/clothing/mask/gas/sechailer/cyborg
name = "security hailer"
desc = "A set of recognizable pre-recorded messages for cyborgs to use when apprehending criminals."
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/voice.dmi'
icon_state = "taperecorder_idle"
slot_flags = null
aggressiveness = AGGR_GOOD_COP // Borgs are nicecurity!
diff --git a/code/modules/clothing/under/jobs/Plasmaman/civilian_service.dm b/code/modules/clothing/under/jobs/Plasmaman/civilian_service.dm
index a8674b03c94..ee70fbb3d6a 100644
--- a/code/modules/clothing/under/jobs/Plasmaman/civilian_service.dm
+++ b/code/modules/clothing/under/jobs/Plasmaman/civilian_service.dm
@@ -52,7 +52,7 @@
name = "envirosuit extinguisher cartridge"
desc = "A cartridge loaded with a compressed extinguisher mix, used to refill the automatic extinguisher on plasma envirosuits."
icon_state = "plasmarefill"
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/canisters.dmi'
/obj/item/clothing/under/plasmaman/cargo
diff --git a/code/modules/detectivework/scanner.dm b/code/modules/detectivework/scanner.dm
index 7ce569c3be2..6ce6b0e67a6 100644
--- a/code/modules/detectivework/scanner.dm
+++ b/code/modules/detectivework/scanner.dm
@@ -5,7 +5,7 @@
/obj/item/detective_scanner
name = "forensic scanner"
desc = "Used to remotely scan objects and biomass for DNA and fingerprints. Can print a report of the findings."
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/scanner.dmi'
icon_state = "forensicnew"
w_class = WEIGHT_CLASS_SMALL
inhand_icon_state = "electronic"
diff --git a/code/modules/experisci/handheld_scanner.dm b/code/modules/experisci/handheld_scanner.dm
index 92031107ba5..d09b6bca7e3 100644
--- a/code/modules/experisci/handheld_scanner.dm
+++ b/code/modules/experisci/handheld_scanner.dm
@@ -7,7 +7,7 @@
name = "Experi-Scanner"
desc = "A handheld scanner used for completing the many experiments of modern science."
w_class = WEIGHT_CLASS_SMALL
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/scanner.dmi'
icon_state = "experiscanner"
lefthand_file = 'icons/mob/inhands/items/devices_lefthand.dmi'
righthand_file = 'icons/mob/inhands/items/devices_righthand.dmi'
diff --git a/code/modules/fishing/aquarium/fish_analyzer.dm b/code/modules/fishing/aquarium/fish_analyzer.dm
index 52cf6113f00..2706da8e967 100644
--- a/code/modules/fishing/aquarium/fish_analyzer.dm
+++ b/code/modules/fishing/aquarium/fish_analyzer.dm
@@ -1,7 +1,7 @@
///An item that can be used to gather information on the fish, such as but not limited to: health, hunger and traits.
/obj/item/fish_analyzer
name = "fish analyzer"
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/scanner.dmi'
icon_state = "fish_analyzer_map"
base_icon_state = "fish_analyzer"
inhand_icon_state = "fish_analyzer"
diff --git a/code/modules/hydroponics/hydroitemdefines.dm b/code/modules/hydroponics/hydroitemdefines.dm
index 7d7cf677b56..5c8a7049eb8 100644
--- a/code/modules/hydroponics/hydroitemdefines.dm
+++ b/code/modules/hydroponics/hydroitemdefines.dm
@@ -2,7 +2,7 @@
/obj/item/plant_analyzer
name = "plant analyzer"
desc = "A scanner used to evaluate a plant's various areas of growth, and genetic traits. Comes with a growth scanning mode and a chemical scanning mode."
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/scanner.dmi'
icon_state = "hydro"
inhand_icon_state = "analyzer"
worn_icon_state = "plantanalyzer"
diff --git a/code/modules/instruments/items.dm b/code/modules/instruments/items.dm
index 8c5852b54bf..d9a7e2f3e8b 100644
--- a/code/modules/instruments/items.dm
+++ b/code/modules/instruments/items.dm
@@ -242,35 +242,6 @@
throw_range = 15
hitsound = 'sound/items/bikehorn.ogg'
-/obj/item/choice_beacon/music
- name = "instrument delivery beacon"
- desc = "Summon your tool of art."
- icon_state = "gangtool-red"
- w_class = WEIGHT_CLASS_TINY
-
-/obj/item/choice_beacon/music/generate_display_names()
- var/static/list/instruments
- if(!instruments)
- instruments = list()
- var/list/possible_instruments = list(
- /obj/item/instrument/violin,
- /obj/item/instrument/piano_synth,
- /obj/item/instrument/banjo,
- /obj/item/instrument/guitar,
- /obj/item/instrument/eguitar,
- /obj/item/instrument/glockenspiel,
- /obj/item/instrument/accordion,
- /obj/item/instrument/trumpet,
- /obj/item/instrument/saxophone,
- /obj/item/instrument/trombone,
- /obj/item/instrument/recorder,
- /obj/item/instrument/harmonica,
- /obj/item/instrument/piano_synth/headphones,
- )
- for(var/obj/item/instrument/instrument as anything in possible_instruments)
- instruments[initial(instrument.name)] = instrument
- return instruments
-
/obj/item/instrument/musicalmoth
name = "musical moth"
desc = "Despite its popularity, this controversial musical toy was eventually banned due to its unethically sampled sounds of moths screaming in agony."
diff --git a/code/modules/jobs/job_types/chaplain/chaplain_nullrod.dm b/code/modules/jobs/job_types/chaplain/chaplain_nullrod.dm
index 805c72a3267..381d1023cf8 100644
--- a/code/modules/jobs/job_types/chaplain/chaplain_nullrod.dm
+++ b/code/modules/jobs/job_types/chaplain/chaplain_nullrod.dm
@@ -593,7 +593,7 @@
/obj/item/nullrod/hypertool
name = "hypertool"
desc = "A tool so powerful even you cannot perfectly use it."
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/weapons/club.dmi'
icon_state = "hypertool"
inhand_icon_state = "hypertool"
worn_icon_state = "hypertool"
diff --git a/code/modules/library/skill_learning/skillchip.dm b/code/modules/library/skill_learning/skillchip.dm
index 5d40d383fb0..a58fbec7c75 100644
--- a/code/modules/library/skill_learning/skillchip.dm
+++ b/code/modules/library/skill_learning/skillchip.dm
@@ -9,7 +9,7 @@
name = "skillchip"
desc = "This biochip integrates with user's brain to enable mastery of specific skill. Consult certified Nanotrasen neurosurgeon before use."
- icon = 'icons/obj/assemblies/circuitry_n_data.dmi'
+ icon = 'icons/obj/devices/circuitry_n_data.dmi'
icon_state = "skillchip"
custom_price = PAYCHECK_CREW * 3
w_class = WEIGHT_CLASS_SMALL
diff --git a/code/modules/mapping/modular_map_loader/modular_map_loader.dm b/code/modules/mapping/modular_map_loader/modular_map_loader.dm
index f5b336960f2..0bfabe373e0 100644
--- a/code/modules/mapping/modular_map_loader/modular_map_loader.dm
+++ b/code/modules/mapping/modular_map_loader/modular_map_loader.dm
@@ -1,6 +1,6 @@
/obj/modular_map_root
invisibility = INVISIBILITY_ABSTRACT
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/tracker.dmi'
icon_state = "pinonclose"
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
@@ -70,7 +70,7 @@ INITIALIZE_IMMEDIATE(/obj/modular_map_root)
/obj/modular_map_connector
invisibility = INVISIBILITY_ABSTRACT
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/tracker.dmi'
icon_state = "pinonclose"
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
diff --git a/code/modules/mining/aux_base.dm b/code/modules/mining/aux_base.dm
index 9d97ec53663..f904c4a5cf8 100644
--- a/code/modules/mining/aux_base.dm
+++ b/code/modules/mining/aux_base.dm
@@ -256,6 +256,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/computer/auxiliary_base, 32)
/obj/item/assault_pod/mining
name = "Landing Field Designator"
+ icon = 'icons/obj/devices/remote.dmi'
icon_state = "gangtool-purple"
inhand_icon_state = "electronic"
lefthand_file = 'icons/mob/inhands/items/devices_lefthand.dmi'
diff --git a/code/modules/mining/equipment/mineral_scanner.dm b/code/modules/mining/equipment/mineral_scanner.dm
index 87f8df07d83..5faed043e5b 100644
--- a/code/modules/mining/equipment/mineral_scanner.dm
+++ b/code/modules/mining/equipment/mineral_scanner.dm
@@ -2,7 +2,7 @@
/obj/item/mining_scanner
desc = "A scanner that checks surrounding rock for useful minerals; it can also be used to stop gibtonite detonations."
name = "manual mining scanner"
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/scanner.dmi'
icon_state = "manual_mining"
inhand_icon_state = "analyzer"
worn_icon_state = "analyzer"
diff --git a/code/modules/mob/living/basic/minebots/minebot_upgrades.dm b/code/modules/mob/living/basic/minebots/minebot_upgrades.dm
index 47084a90561..d68e3a85081 100644
--- a/code/modules/mob/living/basic/minebots/minebot_upgrades.dm
+++ b/code/modules/mob/living/basic/minebots/minebot_upgrades.dm
@@ -2,7 +2,7 @@
name = "minebot melee upgrade"
desc = "A minebot upgrade."
icon_state = "door_electronics"
- icon = 'icons/obj/assemblies/circuitry_n_data.dmi'
+ icon = 'icons/obj/devices/circuitry_n_data.dmi'
/obj/item/mine_bot_upgrade/afterattack(mob/living/basic/mining_drone/minebot, mob/user, proximity)
. = ..()
@@ -39,7 +39,7 @@
name = "minebot AI upgrade"
desc = "Can be used to grant sentience to minebots. It's incompatible with minebot armor and melee upgrades, and will override them."
icon_state = "door_electronics"
- icon = 'icons/obj/assemblies/circuitry_n_data.dmi'
+ icon = 'icons/obj/devices/circuitry_n_data.dmi'
sentience_type = SENTIENCE_MINEBOT
///health boost to add
var/base_health_add = 5
diff --git a/code/modules/mob/living/brain/MMI.dm b/code/modules/mob/living/brain/MMI.dm
index c142006856f..deca1242a4c 100644
--- a/code/modules/mob/living/brain/MMI.dm
+++ b/code/modules/mob/living/brain/MMI.dm
@@ -1,7 +1,7 @@
/obj/item/mmi
name = "\improper Man-Machine Interface"
desc = "The Warrior's bland acronym, MMI, obscures the true horror of this monstrosity, that nevertheless has become standard-issue on Nanotrasen stations."
- icon = 'icons/obj/assemblies/assemblies.dmi'
+ icon = 'icons/obj/devices/assemblies.dmi'
icon_state = "mmi_off"
base_icon_state = "mmi"
w_class = WEIGHT_CLASS_NORMAL
diff --git a/code/modules/mob/living/brain/posibrain.dm b/code/modules/mob/living/brain/posibrain.dm
index d2d59ce2f43..073d6c3e48e 100644
--- a/code/modules/mob/living/brain/posibrain.dm
+++ b/code/modules/mob/living/brain/posibrain.dm
@@ -3,7 +3,7 @@ GLOBAL_VAR(posibrain_notify_cooldown)
/obj/item/mmi/posibrain
name = "positronic brain"
desc = "A cube of shining metal, four inches to a side and covered in shallow grooves."
- icon = 'icons/obj/assemblies/assemblies.dmi'
+ icon = 'icons/obj/devices/assemblies.dmi'
icon_state = "posibrain"
base_icon_state = "posibrain"
w_class = WEIGHT_CLASS_NORMAL
diff --git a/code/modules/mob/living/silicon/robot/robot_model.dm b/code/modules/mob/living/silicon/robot/robot_model.dm
index cb2ba6e2aea..8bd3cb565e3 100644
--- a/code/modules/mob/living/silicon/robot/robot_model.dm
+++ b/code/modules/mob/living/silicon/robot/robot_model.dm
@@ -8,7 +8,7 @@
**/
/obj/item/robot_model
name = "Default"
- icon = 'icons/obj/assemblies/circuitry_n_data.dmi'
+ icon = 'icons/obj/devices/circuitry_n_data.dmi'
icon_state = "std_mod"
w_class = WEIGHT_CLASS_GIGANTIC
inhand_icon_state = "electronic"
diff --git a/code/modules/modular_computers/computers/item/disks/computer_disk.dm b/code/modules/modular_computers/computers/item/disks/computer_disk.dm
index d4cbbb3ba77..3161be07921 100644
--- a/code/modules/modular_computers/computers/item/disks/computer_disk.dm
+++ b/code/modules/modular_computers/computers/item/disks/computer_disk.dm
@@ -1,7 +1,7 @@
/obj/item/computer_disk
name = "data disk"
desc = "Removable disk used to store data."
- icon = 'icons/obj/assemblies/circuitry_n_data.dmi'
+ icon = 'icons/obj/devices/circuitry_n_data.dmi'
icon_state = "datadisk6"
w_class = WEIGHT_CLASS_TINY
///The amount of storage space is on the disk
diff --git a/code/modules/paperwork/photocopier.dm b/code/modules/paperwork/photocopier.dm
index d1a4cbaba4c..4b2ea262874 100644
--- a/code/modules/paperwork/photocopier.dm
+++ b/code/modules/paperwork/photocopier.dm
@@ -674,7 +674,7 @@ GLOBAL_LIST_INIT(paper_blanks, init_paper_blanks())
/obj/item/toner
name = "toner cartridge"
desc = "A small, lightweight cartridge of Nanotrasen ValueBrand toner. Fits photocopiers and autopainters alike."
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/service/bureaucracy.dmi'
icon_state = "tonercartridge"
grind_results = list(/datum/reagent/iodine = 40, /datum/reagent/iron = 10)
var/charges = 5
diff --git a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm
index d57763255cd..e070f3efc6e 100644
--- a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm
+++ b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm
@@ -363,7 +363,7 @@
name = "minebot cooldown decrease"
desc = "Decreases the cooldown of a kinetic accelerator. Only rated for minebot use."
icon_state = "door_electronics"
- icon = 'icons/obj/assemblies/circuitry_n_data.dmi'
+ icon = 'icons/obj/devices/circuitry_n_data.dmi'
denied_type = /obj/item/borg/upgrade/modkit/cooldown/minebot
modifier = 10
cost = 0
diff --git a/code/modules/projectiles/pins.dm b/code/modules/projectiles/pins.dm
index 9a6b3fbb471..c4b6f6fb4ce 100644
--- a/code/modules/projectiles/pins.dm
+++ b/code/modules/projectiles/pins.dm
@@ -1,7 +1,7 @@
/obj/item/firing_pin
name = "electronic firing pin"
desc = "A small authentication device, to be inserted into a firearm receiver to allow operation. NT safety regulations require all new designs to incorporate one."
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/gunmod.dmi'
icon_state = "firing_pin"
inhand_icon_state = "pen"
worn_icon_state = "pen"
diff --git a/code/modules/recycling/sortingmachinery.dm b/code/modules/recycling/sortingmachinery.dm
index 2e01bb14701..a7d81628f65 100644
--- a/code/modules/recycling/sortingmachinery.dm
+++ b/code/modules/recycling/sortingmachinery.dm
@@ -258,7 +258,7 @@
/obj/item/dest_tagger
name = "destination tagger"
desc = "Used to set the destination of properly wrapped packages."
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/tool.dmi'
icon_state = "cargo tagger"
worn_icon_state = "cargotagger"
var/currTag = 0 //Destinations are stored in code\globalvars\lists\flavor_misc.dm
@@ -325,7 +325,7 @@
/obj/item/sales_tagger
name = "sales tagger"
desc = "A scanner that lets you tag wrapped items for sale, splitting the profit between you and cargo."
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/tool.dmi'
icon_state = "sales tagger"
worn_icon_state = "salestagger"
inhand_icon_state = "electronic"
diff --git a/code/modules/research/anomaly/raw_anomaly.dm b/code/modules/research/anomaly/raw_anomaly.dm
index 8d103388d37..2df844e4bb8 100644
--- a/code/modules/research/anomaly/raw_anomaly.dm
+++ b/code/modules/research/anomaly/raw_anomaly.dm
@@ -9,7 +9,7 @@
/obj/item/raw_anomaly_core
name = "raw anomaly core"
desc = "You shouldn't be seeing this. Someone screwed up."
- icon = 'icons/obj/assemblies/new_assemblies.dmi'
+ icon = 'icons/obj/devices/new_assemblies.dmi'
icon_state = "broken_state"
/// Anomaly type
diff --git a/code/modules/research/experimentor.dm b/code/modules/research/experimentor.dm
index f2dd21e7d77..27b53bbe7dc 100644
--- a/code/modules/research/experimentor.dm
+++ b/code/modules/research/experimentor.dm
@@ -569,7 +569,7 @@
/obj/item/relic
name = "strange object"
desc = "What mysteries could this hold? Maybe Research & Development could find out."
- icon = 'icons/obj/assemblies/assemblies.dmi'
+ icon = 'icons/obj/devices/assemblies.dmi'
var/realName = "defined object"
var/revealed = FALSE
var/realProc
diff --git a/code/modules/research/stock_parts.dm b/code/modules/research/stock_parts.dm
index 713af2ddb6e..fee78cf41db 100644
--- a/code/modules/research/stock_parts.dm
+++ b/code/modules/research/stock_parts.dm
@@ -230,7 +230,7 @@ If you create T5+ please take a pass at mech_fabricator.dm. The parts being good
/obj/item/stock_parts
name = "stock part"
desc = "What?"
- icon = 'icons/obj/assemblies/stock_parts.dmi'
+ icon = 'icons/obj/devices/stock_parts.dmi'
w_class = WEIGHT_CLASS_SMALL
var/rating = 1
///Used when a base part has a different name to higher tiers of part. For example, machine frames want any servo and not just a micro-servo.
@@ -471,6 +471,6 @@ If you create T5+ please take a pass at mech_fabricator.dm. The parts being good
/obj/item/research//Makes testing much less of a pain -Sieve
name = "research"
- icon = 'icons/obj/assemblies/stock_parts.dmi'
+ icon = 'icons/obj/devices/stock_parts.dmi'
icon_state = "capacitor"
desc = "A debug item for research."
diff --git a/code/modules/shuttle/assault_pod.dm b/code/modules/shuttle/assault_pod.dm
index 609ef685a3f..3e76fc9671d 100644
--- a/code/modules/shuttle/assault_pod.dm
+++ b/code/modules/shuttle/assault_pod.dm
@@ -16,7 +16,7 @@
/obj/item/assault_pod
name = "Assault Pod Targeting Device"
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/remote.dmi'
icon_state = "gangtool-red"
inhand_icon_state = "radio"
lefthand_file = 'icons/mob/inhands/items/devices_lefthand.dmi'
diff --git a/code/modules/shuttle/shuttle.dm b/code/modules/shuttle/shuttle.dm
index 63fc6a6da33..a55b146ab44 100644
--- a/code/modules/shuttle/shuttle.dm
+++ b/code/modules/shuttle/shuttle.dm
@@ -6,7 +6,7 @@
//NORTH default dir
/obj/docking_port
invisibility = INVISIBILITY_ABSTRACT
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/tracker.dmi'
icon_state = "pinonfar"
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
diff --git a/code/modules/surgery/organs/autosurgeon.dm b/code/modules/surgery/organs/autosurgeon.dm
index 921acf808ed..b577b9f8ec0 100644
--- a/code/modules/surgery/organs/autosurgeon.dm
+++ b/code/modules/surgery/organs/autosurgeon.dm
@@ -2,7 +2,7 @@
name = "autosurgeon"
desc = "A device that automatically inserts an implant, skillchip or organ into the user without the hassle of extensive surgery. \
It has a slot to insert implants or organs and a screwdriver slot for removing accidentally added items."
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/tool.dmi'
icon_state = "autosurgeon"
inhand_icon_state = "nothing"
w_class = WEIGHT_CLASS_SMALL
diff --git a/code/modules/surgery/organs/internal/eyes/_eyes.dm b/code/modules/surgery/organs/internal/eyes/_eyes.dm
index c043d44429b..2b6329702f3 100644
--- a/code/modules/surgery/organs/internal/eyes/_eyes.dm
+++ b/code/modules/surgery/organs/internal/eyes/_eyes.dm
@@ -276,7 +276,7 @@
/datum/action/cooldown/golem_ore_sight
name = "Ore Resonance"
desc = "Causes nearby ores to vibrate, revealing their location."
- button_icon = 'icons/obj/device.dmi'
+ button_icon = 'icons/obj/devices/scanner.dmi'
button_icon_state = "manual_mining"
check_flags = AB_CHECK_CONSCIOUS
cooldown_time = 10 SECONDS
diff --git a/code/modules/surgery/tools.dm b/code/modules/surgery/tools.dm
index 37ebf5ecb90..32df8493ff0 100644
--- a/code/modules/surgery/tools.dm
+++ b/code/modules/surgery/tools.dm
@@ -294,7 +294,7 @@
/obj/item/surgical_processor //allows medical cyborgs to scan and initiate advanced surgeries
name = "surgical processor"
desc = "A device for scanning and initiating surgeries from a disk or operating computer."
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/scanner.dmi'
icon_state = "surgical_processor"
item_flags = NOBLUDGEON
// List of surgeries downloaded into the device.
diff --git a/code/modules/transport/tram/tram_remote.dm b/code/modules/transport/tram/tram_remote.dm
index 08e127bc6b9..71433d56ddf 100644
--- a/code/modules/transport/tram/tram_remote.dm
+++ b/code/modules/transport/tram/tram_remote.dm
@@ -3,7 +3,7 @@
inhand_icon_state = "electronic"
lefthand_file = 'icons/mob/inhands/items/devices_lefthand.dmi'
righthand_file = 'icons/mob/inhands/items/devices_righthand.dmi'
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/remote.dmi'
name = "tram remote"
desc = "A remote control that can be linked to a tram. This can only go well."
w_class = WEIGHT_CLASS_TINY
diff --git a/code/modules/uplink/uplink_devices.dm b/code/modules/uplink/uplink_devices.dm
index 1c053d0d6ff..4d539be433d 100644
--- a/code/modules/uplink/uplink_devices.dm
+++ b/code/modules/uplink/uplink_devices.dm
@@ -5,7 +5,7 @@
// simultaneously is an annoying distraction.
/obj/item/uplink
name = "station bounced radio"
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/voice.dmi'
icon_state = "radio"
inhand_icon_state = "radio"
worn_icon_state = "radio"
diff --git a/code/modules/vehicles/mecha/mecha_control_console.dm b/code/modules/vehicles/mecha/mecha_control_console.dm
index 6cb5ec6bde8..3dd69d4ba93 100644
--- a/code/modules/vehicles/mecha/mecha_control_console.dm
+++ b/code/modules/vehicles/mecha/mecha_control_console.dm
@@ -76,7 +76,7 @@
/obj/item/mecha_parts/mecha_tracking
name = "exosuit tracking beacon"
desc = "Device used to transmit exosuit data."
- icon = 'icons/obj/device.dmi'
+ icon = 'icons/obj/devices/new_assemblies.dmi'
icon_state = "motion2"
w_class = WEIGHT_CLASS_SMALL
/// If this beacon allows for AI control. Exists to avoid using istype() on checking
diff --git a/code/modules/vehicles/mecha/mecha_parts.dm b/code/modules/vehicles/mecha/mecha_parts.dm
index 03f199637b5..bec0fefcc6d 100644
--- a/code/modules/vehicles/mecha/mecha_parts.dm
+++ b/code/modules/vehicles/mecha/mecha_parts.dm
@@ -336,7 +336,7 @@
/obj/item/circuitboard/mecha
name = "exosuit circuit board"
- icon = 'icons/obj/assemblies/circuitry_n_data.dmi'
+ icon = 'icons/obj/devices/circuitry_n_data.dmi'
icon_state = "std_mod"
inhand_icon_state = "electronic"
lefthand_file = 'icons/mob/inhands/items/devices_lefthand.dmi'
diff --git a/code/modules/wiremod/core/component.dm b/code/modules/wiremod/core/component.dm
index fbaa01fc030..ebabd211f70 100644
--- a/code/modules/wiremod/core/component.dm
+++ b/code/modules/wiremod/core/component.dm
@@ -9,7 +9,7 @@
*/
/obj/item/circuit_component
name = COMPONENT_DEFAULT_NAME
- icon = 'icons/obj/assemblies/circuitry_n_data.dmi'
+ icon = 'icons/obj/devices/circuitry_n_data.dmi'
icon_state = "component"
inhand_icon_state = "electronic"
lefthand_file = 'icons/mob/inhands/items/devices_lefthand.dmi'
diff --git a/code/modules/wiremod/core/integrated_circuit.dm b/code/modules/wiremod/core/integrated_circuit.dm
index 41e6c91d0c6..0499a56dcd4 100644
--- a/code/modules/wiremod/core/integrated_circuit.dm
+++ b/code/modules/wiremod/core/integrated_circuit.dm
@@ -11,7 +11,7 @@ GLOBAL_LIST_EMPTY_TYPED(integrated_circuits, /obj/item/integrated_circuit)
/obj/item/integrated_circuit
name = "integrated circuit"
desc = "By inserting components and a cell into this, wiring them up, and putting them into a shell, anyone can pretend to be a programmer."
- icon = 'icons/obj/assemblies/circuitry_n_data.dmi'
+ icon = 'icons/obj/devices/circuitry_n_data.dmi'
icon_state = "integrated_circuit"
inhand_icon_state = "electronic"
lefthand_file = 'icons/mob/inhands/items/devices_lefthand.dmi'
diff --git a/icons/obj/assemblies/circuitry_n_data.dmi b/icons/obj/assemblies/circuitry_n_data.dmi
deleted file mode 100644
index 34df2d52fd0..00000000000
Binary files a/icons/obj/assemblies/circuitry_n_data.dmi and /dev/null differ
diff --git a/icons/obj/assemblies/new_assemblies.dmi b/icons/obj/assemblies/new_assemblies.dmi
deleted file mode 100644
index c3635aeb6d9..00000000000
Binary files a/icons/obj/assemblies/new_assemblies.dmi and /dev/null differ
diff --git a/icons/obj/canisters.dmi b/icons/obj/canisters.dmi
index e57c6ad9b96..277833976ad 100644
Binary files a/icons/obj/canisters.dmi and b/icons/obj/canisters.dmi differ
diff --git a/icons/obj/device.dmi b/icons/obj/device.dmi
deleted file mode 100644
index 4cb32290fc5..00000000000
Binary files a/icons/obj/device.dmi and /dev/null differ
diff --git a/icons/obj/assemblies/assemblies.dmi b/icons/obj/devices/assemblies.dmi
similarity index 100%
rename from icons/obj/assemblies/assemblies.dmi
rename to icons/obj/devices/assemblies.dmi
diff --git a/icons/obj/devices/circuitry_n_data.dmi b/icons/obj/devices/circuitry_n_data.dmi
new file mode 100644
index 00000000000..6a12910283e
Binary files /dev/null and b/icons/obj/devices/circuitry_n_data.dmi differ
diff --git a/icons/obj/devices/flash.dmi b/icons/obj/devices/flash.dmi
new file mode 100644
index 00000000000..27500944aed
Binary files /dev/null and b/icons/obj/devices/flash.dmi differ
diff --git a/icons/obj/devices/gunmod.dmi b/icons/obj/devices/gunmod.dmi
new file mode 100644
index 00000000000..593facf46ac
Binary files /dev/null and b/icons/obj/devices/gunmod.dmi differ
diff --git a/icons/obj/devices/new_assemblies.dmi b/icons/obj/devices/new_assemblies.dmi
new file mode 100644
index 00000000000..411ad8b61df
Binary files /dev/null and b/icons/obj/devices/new_assemblies.dmi differ
diff --git a/icons/obj/devices/remote.dmi b/icons/obj/devices/remote.dmi
new file mode 100644
index 00000000000..7b1e07462ff
Binary files /dev/null and b/icons/obj/devices/remote.dmi differ
diff --git a/icons/obj/devices/scanner.dmi b/icons/obj/devices/scanner.dmi
new file mode 100644
index 00000000000..843fd409be4
Binary files /dev/null and b/icons/obj/devices/scanner.dmi differ
diff --git a/icons/obj/assemblies/stock_parts.dmi b/icons/obj/devices/stock_parts.dmi
similarity index 100%
rename from icons/obj/assemblies/stock_parts.dmi
rename to icons/obj/devices/stock_parts.dmi
diff --git a/icons/obj/devices/syndie_gadget.dmi b/icons/obj/devices/syndie_gadget.dmi
new file mode 100644
index 00000000000..4b8670ca777
Binary files /dev/null and b/icons/obj/devices/syndie_gadget.dmi differ
diff --git a/icons/obj/devices/tool.dmi b/icons/obj/devices/tool.dmi
new file mode 100644
index 00000000000..cbbd05dc7fb
Binary files /dev/null and b/icons/obj/devices/tool.dmi differ
diff --git a/icons/obj/devices/tracker.dmi b/icons/obj/devices/tracker.dmi
new file mode 100644
index 00000000000..e9b3574bd4f
Binary files /dev/null and b/icons/obj/devices/tracker.dmi differ
diff --git a/icons/obj/devices/voice.dmi b/icons/obj/devices/voice.dmi
new file mode 100644
index 00000000000..1e875d93230
Binary files /dev/null and b/icons/obj/devices/voice.dmi differ
diff --git a/icons/obj/machines/beacon.dmi b/icons/obj/machines/beacon.dmi
new file mode 100644
index 00000000000..8cdf2507319
Binary files /dev/null and b/icons/obj/machines/beacon.dmi differ
diff --git a/icons/obj/machines/floor.dmi b/icons/obj/machines/floor.dmi
index 6f858465dcd..b4b0b8881b2 100644
Binary files a/icons/obj/machines/floor.dmi and b/icons/obj/machines/floor.dmi differ
diff --git a/icons/obj/mining_zones/artefacts.dmi b/icons/obj/mining_zones/artefacts.dmi
index d4c603834d2..968bbe5b621 100644
Binary files a/icons/obj/mining_zones/artefacts.dmi and b/icons/obj/mining_zones/artefacts.dmi differ
diff --git a/icons/obj/service/bureaucracy.dmi b/icons/obj/service/bureaucracy.dmi
index d8190ba2e72..36518b42799 100644
Binary files a/icons/obj/service/bureaucracy.dmi and b/icons/obj/service/bureaucracy.dmi differ
diff --git a/icons/obj/tools.dmi b/icons/obj/tools.dmi
index e6679c8c518..6bb1b8b41f6 100644
Binary files a/icons/obj/tools.dmi and b/icons/obj/tools.dmi differ
diff --git a/icons/obj/weapons/club.dmi b/icons/obj/weapons/club.dmi
index 616f03f8689..6ebca45b79c 100644
Binary files a/icons/obj/weapons/club.dmi and b/icons/obj/weapons/club.dmi differ