diff --git a/code/datums/action.dm b/code/datums/action.dm
index c8385c9ed3..7db3692fd2 100644
--- a/code/datums/action.dm
+++ b/code/datums/action.dm
@@ -10,12 +10,13 @@
var/check_flags = 0
var/processing = FALSE
var/obj/screen/movable/action_button/button = null
- var/button_icon = 'icons/mob/actions.dmi'
- var/background_icon_state = ACTION_BUTTON_DEFAULT_BACKGROUND
var/buttontooltipstyle = ""
- var/icon_icon = 'icons/mob/actions.dmi'
- var/button_icon_state = "default"
+ var/button_icon = 'icons/mob/actions/backgrounds.dmi' //This is the file for the BACKGROUND icon
+ var/background_icon_state = ACTION_BUTTON_DEFAULT_BACKGROUND //And this is the state for the background icon
+
+ var/icon_icon = 'icons/mob/actions.dmi' //This is the file for the ACTION icon
+ var/button_icon_state = "default" //And this is the state for the action icon
var/mob/owner
/datum/action/New(Target)
@@ -225,6 +226,7 @@
/datum/action/item_action/toggle_unfriendly_fire
name = "Toggle Friendly Fire \[ON\]"
desc = "Toggles if the club's blasts cause friendly fire."
+ icon_icon = 'icons/mob/actions/actions_items.dmi'
button_icon_state = "vortex_ff_on"
/datum/action/item_action/toggle_unfriendly_fire/Trigger()
@@ -258,6 +260,7 @@
/datum/action/item_action/vortex_recall
name = "Vortex Recall"
desc = "Recall yourself, and anyone nearby, to an attuned hierophant beacon at any time.
If the beacon is still attached, will detach it."
+ icon_icon = 'icons/mob/actions/actions_items.dmi'
button_icon_state = "vortex_recall"
/datum/action/item_action/vortex_recall/IsAvailable()
@@ -268,6 +271,7 @@
return ..()
/datum/action/item_action/clock
+ icon_icon = 'icons/mob/actions/actions_clockcult.dmi'
background_icon_state = "bg_clock"
buttontooltipstyle = "clockcult"
@@ -367,6 +371,7 @@
/datum/action/item_action/toggle_research_scanner
name = "Toggle Research Scanner"
+ icon_icon = 'icons/mob/actions/actions_items.dmi'
button_icon_state = "scan_mode"
var/active = FALSE
@@ -403,6 +408,7 @@
/datum/action/item_action/ninjajaunt
name = "Phase Jaunt (10E)"
desc = "Utilizes the internal VOID-shift device to rapidly transit in direction facing."
+ icon_icon = 'icons/mob/actions/actions_items.dmi'
button_icon_state = "ninja_phase"
/datum/action/item_action/ninjasmoke
@@ -441,6 +447,7 @@
/datum/action/item_action/ninja_stealth
name = "Toggle Stealth"
desc = "Toggles stealth mode on and off."
+ icon_icon = 'icons/mob/actions/actions_items.dmi'
button_icon_state = "ninja_cloak"
/datum/action/item_action/toggle_glove
@@ -482,7 +489,7 @@
var/obj/effect/proc_holder/spell/S = target
S.action = src
name = S.name
- button_icon = S.action_icon
+ icon_icon = S.action_icon
button_icon_state = S.action_icon_state
background_icon_state = S.action_background_icon_state
button.name = name
@@ -557,12 +564,14 @@
/datum/action/item_action/stickmen
name = "Summon Stick Minions"
desc = "Allows you to summon faithful stickmen allies to aide you in battle."
+ icon_icon = 'icons/mob/actions/actions_minor_antag.dmi'
button_icon_state = "art_summon"
//surf_ss13
/datum/action/item_action/bhop
name = "Activate Jump Boots"
desc = "Activates the jump boot's internal propulsion system, allowing the user to dash over 4-wide gaps."
+ icon_icon = 'icons/mob/actions/actions_items.dmi'
button_icon_state = "jetboot"
/datum/action/language_menu
diff --git a/code/datums/holocall.dm b/code/datums/holocall.dm
index 4e7490f8ee..abad0dba1d 100644
--- a/code/datums/holocall.dm
+++ b/code/datums/holocall.dm
@@ -38,7 +38,7 @@
calling_pad.say("Connection failure.")
qdel(src)
return
-
+
testing("Holocall started")
//cleans up ALL references :)
@@ -49,16 +49,16 @@
if(user_good)
user.reset_perspective()
user.remote_control = null
-
+
if(!QDELETED(eye))
if(user_good && user.client)
for(var/datum/camerachunk/chunk in eye.visibleCameraChunks)
chunk.remove(eye)
qdel(eye)
eye = null
-
+
user = null
-
+
if(hologram)
hologram.HC = null
hologram = null
@@ -75,7 +75,7 @@
if(connected_holopad)
connected_holopad.SetLightsAndPower()
connected_holopad = null
-
+
testing("Holocall destroyed")
return ..()
@@ -123,7 +123,7 @@
if(I == H)
continue
Disconnect(I)
-
+
for(var/I in H.holo_calls)
var/datum/holocall/HC = I
if(HC != src)
@@ -155,7 +155,7 @@
var/obj/machinery/holopad/H = I
if(!H.is_operational())
ConnectionFailure(H)
-
+
if(QDELETED(src))
return FALSE
@@ -174,6 +174,7 @@
/datum/action/innate/end_holocall
name = "End Holocall"
+ icon_icon = 'icons/mob/actions/actions_silicon.dmi'
button_icon_state = "camera_off"
var/datum/holocall/hcall
diff --git a/code/datums/martial/krav_maga.dm b/code/datums/martial/krav_maga.dm
index 94637f10e3..6ce082bd2a 100644
--- a/code/datums/martial/krav_maga.dm
+++ b/code/datums/martial/krav_maga.dm
@@ -6,6 +6,7 @@
/datum/action/neck_chop
name = "Neck Chop - Injures the neck, stopping the victim from speaking for a while."
+ icon_icon = 'icons/mob/actions/actions_items.dmi'
button_icon_state = "neckchop"
/datum/action/neck_chop/Trigger()
@@ -22,6 +23,7 @@
/datum/action/leg_sweep
name = "Leg Sweep - Trips the victim, knocking them down for a brief moment."
+ icon_icon = 'icons/mob/actions/actions_items.dmi'
button_icon_state = "legsweep"
/datum/action/leg_sweep/Trigger()
@@ -38,6 +40,7 @@
/datum/action/lung_punch//referred to internally as 'quick choke'
name = "Lung Punch - Delivers a strong punch just above the victim's abdomen, constraining the lungs. The victim will be unable to breathe for a short time."
+ icon_icon = 'icons/mob/actions/actions_items.dmi'
button_icon_state = "lungpunch"
/datum/action/lung_punch/Trigger()
diff --git a/code/game/gamemodes/changeling/cellular_emporium.dm b/code/game/gamemodes/changeling/cellular_emporium.dm
index 67d15c677c..aaba09c87c 100644
--- a/code/game/gamemodes/changeling/cellular_emporium.dm
+++ b/code/game/gamemodes/changeling/cellular_emporium.dm
@@ -68,7 +68,8 @@
/datum/action/innate/cellular_emporium
name = "Cellular Emporium"
- button_icon_state = "cellular_emporium"
+ icon_icon = 'icons/obj/drinks.dmi'
+ button_icon_state = "changelingsting"
background_icon_state = "bg_alien"
var/datum/cellular_emporium/cellular_emporium
diff --git a/code/game/gamemodes/cult/cult_comms.dm b/code/game/gamemodes/cult/cult_comms.dm
index f6dab6c9cc..a7fb90d253 100644
--- a/code/game/gamemodes/cult/cult_comms.dm
+++ b/code/game/gamemodes/cult/cult_comms.dm
@@ -2,6 +2,7 @@
#define MARK_COOLDOWN
/datum/action/innate/cult
+ icon_icon = 'icons/mob/actions/actions_cult.dmi'
background_icon_state = "bg_demon"
buttontooltipstyle = "cult"
check_flags = AB_CHECK_RESTRAINED|AB_CHECK_STUN|AB_CHECK_CONSCIOUS
@@ -305,6 +306,7 @@
/datum/action/innate/cult/master/pulse
name = "Eldritch Pulse"
desc = "Seize upon a fellow cultist or cult structure and teleport it to a nearby location."
+ icon_icon = 'icons/mob/actions/actions_spells.dmi'
button_icon_state = "arcane_barrage"
var/obj/effect/proc_holder/pulse/PM
var/cooldown = 0
diff --git a/code/game/gamemodes/malfunction/Malf_Modules.dm b/code/game/gamemodes/malfunction/Malf_Modules.dm
index c5baed144e..8c8108962e 100644
--- a/code/game/gamemodes/malfunction/Malf_Modules.dm
+++ b/code/game/gamemodes/malfunction/Malf_Modules.dm
@@ -20,7 +20,7 @@ GLOBAL_LIST_INIT(blacklisted_malf_machines, typecacheof(list(
name = "AI Action"
desc = "You aren't entirely sure what this does, but it's very beepy and boopy."
background_icon_state = "bg_tech_blue"
- icon_icon = 'icons/mob/actions_AI.dmi'
+ icon_icon = 'icons/mob/actions/actions_AI.dmi'
var/mob/living/silicon/ai/owner_AI //The owner AI, so we don't have to typecast every time
var/uses //If we have multiple uses of the same power
var/auto_use_uses = TRUE //If we automatically use up uses on each activation
diff --git a/code/game/gamemodes/miniantags/abduction/machinery/camera.dm b/code/game/gamemodes/miniantags/abduction/machinery/camera.dm
index 4e74d11be1..ffd1b88d25 100644
--- a/code/game/gamemodes/miniantags/abduction/machinery/camera.dm
+++ b/code/game/gamemodes/miniantags/abduction/machinery/camera.dm
@@ -65,6 +65,7 @@
/datum/action/innate/teleport_in
name = "Send To"
+ icon_icon = 'icons/mob/actions/actions_minor_antag.dmi'
button_icon_state = "beam_down"
/datum/action/innate/teleport_in/Activate()
@@ -79,6 +80,7 @@
/datum/action/innate/teleport_out
name = "Retrieve"
+ icon_icon = 'icons/mob/actions/actions_minor_antag.dmi'
button_icon_state = "beam_up"
/datum/action/innate/teleport_out/Activate()
@@ -90,6 +92,7 @@
/datum/action/innate/teleport_self
name = "Send Self"
+ icon_icon = 'icons/mob/actions/actions_minor_antag.dmi'
button_icon_state = "beam_down"
/datum/action/innate/teleport_self/Activate()
@@ -104,6 +107,7 @@
/datum/action/innate/vest_mode_swap
name = "Switch Vest Mode"
+ icon_icon = 'icons/mob/actions/actions_minor_antag.dmi'
button_icon_state = "vest_mode"
/datum/action/innate/vest_mode_swap/Activate()
@@ -115,6 +119,7 @@
/datum/action/innate/vest_disguise_swap
name = "Switch Vest Disguise"
+ icon_icon = 'icons/mob/actions/actions_minor_antag.dmi'
button_icon_state = "vest_disguise"
/datum/action/innate/vest_disguise_swap/Activate()
@@ -125,6 +130,7 @@
/datum/action/innate/set_droppoint
name = "Set Experiment Release Point"
+ icon_icon = 'icons/mob/actions/actions_minor_antag.dmi'
button_icon_state = "set_drop"
/datum/action/innate/set_droppoint/Activate()
diff --git a/code/game/gamemodes/miniantags/revenant/revenant_abilities.dm b/code/game/gamemodes/miniantags/revenant/revenant_abilities.dm
index 2bbe2cae5f..184564b024 100644
--- a/code/game/gamemodes/miniantags/revenant/revenant_abilities.dm
+++ b/code/game/gamemodes/miniantags/revenant/revenant_abilities.dm
@@ -85,6 +85,7 @@
charge_max = 0
panel = "Revenant Abilities"
message = "You toggle your night vision."
+ action_icon = 'icons/mob/actions/actions_revenant.dmi'
action_icon_state = "r_nightvision"
action_background_icon_state = "bg_revenant"
@@ -97,6 +98,7 @@
clothes_req = 0
range = 7
include_user = 0
+ action_icon = 'icons/mob/actions/actions_revenant.dmi'
action_icon_state = "r_transmit"
action_background_icon_state = "bg_revenant"
@@ -120,6 +122,7 @@
/obj/effect/proc_holder/spell/aoe_turf/revenant
clothes_req = 0
+ action_icon = 'icons/mob/actions/actions_revenant.dmi'
action_background_icon_state = "bg_revenant"
panel = "Revenant Abilities (Locked)"
name = "Report this to a coder"
diff --git a/code/game/machinery/computer/camera_advanced.dm b/code/game/machinery/computer/camera_advanced.dm
index edce17b82a..3d5b8f026b 100644
--- a/code/game/machinery/computer/camera_advanced.dm
+++ b/code/game/machinery/computer/camera_advanced.dm
@@ -175,6 +175,7 @@
/datum/action/innate/camera_off
name = "End Camera View"
+ icon_icon = 'icons/mob/actions/actions_silicon.dmi'
button_icon_state = "camera_off"
/datum/action/innate/camera_off/Activate()
@@ -187,6 +188,7 @@
/datum/action/innate/camera_jump
name = "Jump To Camera"
+ icon_icon = 'icons/mob/actions/actions_silicon.dmi'
button_icon_state = "camera_jump"
/datum/action/innate/camera_jump/Activate()
diff --git a/code/game/mecha/mecha_actions.dm b/code/game/mecha/mecha_actions.dm
index df96c78e8c..050498d8f1 100644
--- a/code/game/mecha/mecha_actions.dm
+++ b/code/game/mecha/mecha_actions.dm
@@ -22,6 +22,7 @@
/datum/action/innate/mecha
check_flags = AB_CHECK_RESTRAINED | AB_CHECK_STUN | AB_CHECK_CONSCIOUS
+ icon_icon = 'icons/mob/actions/actions_mecha.dmi'
var/obj/mecha/chassis
/datum/action/innate/mecha/Grant(mob/living/L, obj/mecha/M)
diff --git a/code/modules/clothing/chameleon.dm b/code/modules/clothing/chameleon.dm
index f7d396f9ee..e798a0c0ad 100644
--- a/code/modules/clothing/chameleon.dm
+++ b/code/modules/clothing/chameleon.dm
@@ -2,6 +2,7 @@
/datum/action/item_action/chameleon/drone/randomise
name = "Randomise Headgear"
+ icon_icon = 'icons/mob/actions/actions_items.dmi'
button_icon_state = "random"
/datum/action/item_action/chameleon/drone/randomise/Trigger()
@@ -21,6 +22,7 @@
/datum/action/item_action/chameleon/drone/togglehatmask
name = "Toggle Headgear Mode"
+ icon_icon = 'icons/mob/actions/actions_silicon.dmi'
/datum/action/item_action/chameleon/drone/togglehatmask/New()
..()
diff --git a/code/modules/clothing/spacesuits/chronosuit.dm b/code/modules/clothing/spacesuits/chronosuit.dm
index 45b7ccb61f..23ea5bc5ff 100644
--- a/code/modules/clothing/spacesuits/chronosuit.dm
+++ b/code/modules/clothing/spacesuits/chronosuit.dm
@@ -320,6 +320,7 @@
/datum/action/innate/chrono_teleport
name = "Teleport Now"
+ icon_icon = 'icons/mob/actions/actions_minor_antag.dmi'
button_icon_state = "chrono_phase"
check_flags = AB_CHECK_CONSCIOUS //|AB_CHECK_INSIDE
var/obj/item/clothing/suit/space/chronos/chronosuit = null
diff --git a/code/modules/clothing/spacesuits/flightsuit.dm b/code/modules/clothing/spacesuits/flightsuit.dm
index c1c2733b71..9888be0494 100644
--- a/code/modules/clothing/spacesuits/flightsuit.dm
+++ b/code/modules/clothing/spacesuits/flightsuit.dm
@@ -1266,6 +1266,9 @@
//ITEM actionS------------------------------------------------------------------------------------------------------------------------------------------------------
//TODO: TOGGLED BUTTON SPRITES
+/datum/action/item_action/flightsuit
+ icon_icon = 'icons/mob/actions/actions_flightsuit.dmi'
+
/datum/action/item_action/flightsuit/toggle_boots
name = "Toggle Boots"
button_icon_state = "flightsuit_shoes"
@@ -1286,6 +1289,9 @@
button_icon_state = "flightsuit_lock"
background_icon_state = "bg_tech"
+/datum/action/item_action/flightpack
+ icon_icon = 'icons/mob/actions/actions_flightsuit.dmi'
+
/datum/action/item_action/flightpack/toggle_flight
name = "Toggle Flight"
button_icon_state = "flightpack_fly"
@@ -1313,5 +1319,7 @@
/datum/action/item_action/flightpack/zoom
name = "Helmet Smart Zoom"
+ icon_icon = 'icons/mob/actions.dmi'
background_icon_state = "bg_tech_blue"
+ icon_icon = 'icons/mob/actions/actions_items.dmi'
button_icon_state = "sniper_zoom"
diff --git a/code/modules/mining/aux_base_camera.dm b/code/modules/mining/aux_base_camera.dm
index d629be13ee..62702fc202 100644
--- a/code/modules/mining/aux_base_camera.dm
+++ b/code/modules/mining/aux_base_camera.dm
@@ -128,6 +128,7 @@
eyeobj.invisibility = INVISIBILITY_MAXIMUM //Hide the eye when not in use.
/datum/action/innate/aux_base //Parent aux base action
+ icon_icon = 'icons/mob/actions/actions_construction.dmi'
var/mob/living/C //Mob using the action
var/mob/camera/aiEye/remote/base_construction/remote_eye //Console's eye mob
var/obj/machinery/computer/camera_advanced/base_construction/B //Console itself
diff --git a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm
index 83971dac05..e6a5f58d69 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm
@@ -13,7 +13,7 @@ Doesn't work on other aliens/AI.*/
var/check_turf = 0
var/has_action = 1
var/datum/action/spell_action/alien/action = null
- var/action_icon = 'icons/mob/actions.dmi'
+ var/action_icon = 'icons/mob/actions/actions_xeno.dmi'
var/action_icon_state = "spell_default"
var/action_background_icon_state = "bg_alien"
diff --git a/code/modules/mob/living/carbon/human/species_types/angel.dm b/code/modules/mob/living/carbon/human/species_types/angel.dm
index 7247509557..7c58ecbf86 100644
--- a/code/modules/mob/living/carbon/human/species_types/angel.dm
+++ b/code/modules/mob/living/carbon/human/species_types/angel.dm
@@ -66,6 +66,7 @@
/datum/action/innate/flight
name = "Toggle Flight"
check_flags = AB_CHECK_CONSCIOUS|AB_CHECK_STUN
+ icon_icon = 'icons/mob/actions/actions_items.dmi'
button_icon_state = "flight"
/datum/action/innate/flight/Activate()
diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm
index f31b339bf5..fd17f123b8 100644
--- a/code/modules/mob/living/silicon/ai/ai.dm
+++ b/code/modules/mob/living/silicon/ai/ai.dm
@@ -963,6 +963,7 @@
/datum/action/innate/deploy_shell
name = "Deploy to AI Shell"
desc = "Wirelessly control a specialized cyborg shell."
+ icon_icon = 'icons/mob/actions/actions_AI.dmi'
button_icon_state = "ai_shell"
/datum/action/innate/deploy_shell/Trigger()
@@ -974,6 +975,7 @@
/datum/action/innate/deploy_last_shell
name = "Reconnect to shell"
desc = "Reconnect to the most recently used AI shell."
+ icon_icon = 'icons/mob/actions/actions_AI.dmi'
button_icon_state = "ai_last_shell"
var/mob/living/silicon/robot/last_used_shell
diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm
index e1aab0d1be..c6dd372532 100644
--- a/code/modules/mob/living/silicon/pai/pai.dm
+++ b/code/modules/mob/living/silicon/pai/pai.dm
@@ -161,6 +161,7 @@
/datum/action/innate/pai
name = "PAI Action"
+ icon_icon = 'icons/mob/actions/actions_silicon.dmi'
var/mob/living/silicon/pai/P
/datum/action/innate/pai/Trigger()
@@ -197,8 +198,10 @@
/datum/action/innate/pai/rest/Trigger()
..()
P.lay_down()
+
/datum/action/innate/pai/light
name = "Toggle Integrated Lights"
+ icon_icon = 'icons/mob/actions/actions_spells.dmi'
button_icon_state = "emp"
background_icon_state = "bg_tech"
diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm
index 3f44c3a35b..93f88bdfee 100644
--- a/code/modules/mob/living/silicon/robot/robot.dm
+++ b/code/modules/mob/living/silicon/robot/robot.dm
@@ -1081,6 +1081,7 @@
/datum/action/innate/undeployment
name = "Disconnect from shell"
desc = "Stop controlling your shell and resume normal core operations."
+ icon_icon = 'icons/mob/actions/actions_AI.dmi'
button_icon_state = "ai_core"
/datum/action/innate/undeployment/Trigger()
diff --git a/code/modules/mob/living/simple_animal/constructs.dm b/code/modules/mob/living/simple_animal/constructs.dm
index fd31f7537c..74f855bf8c 100644
--- a/code/modules/mob/living/simple_animal/constructs.dm
+++ b/code/modules/mob/living/simple_animal/constructs.dm
@@ -383,6 +383,7 @@
/datum/action/innate/seek_prey
name = "Seek the Harvest"
desc = "None can hide from Nar'Sie, activate to track a survivor attempting to flee the red harvest!"
+ icon_icon = 'icons/mob/actions/actions_cult.dmi'
background_icon_state = "bg_demon"
buttontooltipstyle = "cult"
button_icon_state = "cult_mark"
diff --git a/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm b/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm
index aaad3176e2..b827950d79 100644
--- a/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm
+++ b/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm
@@ -196,5 +196,6 @@
/datum/action/generic/drone/select_filter
name = "Select Vision Filter"
+ icon_icon = 'icons/mob/actions/actions_silicon.dmi'
button_icon_state = "drone_vision"
procname = /mob/living/simple_animal/drone/verb/toggle_statics
diff --git a/code/modules/mob/living/simple_animal/hostile/bosses/paperwizard.dm b/code/modules/mob/living/simple_animal/hostile/bosses/paperwizard.dm
index 280ccd6c26..2fa2101aa2 100644
--- a/code/modules/mob/living/simple_animal/hostile/bosses/paperwizard.dm
+++ b/code/modules/mob/living/simple_animal/hostile/bosses/paperwizard.dm
@@ -27,6 +27,7 @@
//Lets the wizard summon his art to fight for him
/datum/action/boss/wizard_summon_minions
name = "Summon Minions"
+ icon_icon = 'icons/mob/actions/actions_minor_antag.dmi'
button_icon_state = "art_summon"
usage_probability = 40
boss_cost = 30
@@ -54,6 +55,7 @@
//Hitting the wizard himself destroys all decoys
/datum/action/boss/wizard_mimic
name = "Craft Mimicry"
+ icon_icon = 'icons/mob/actions/actions_minor_antag.dmi'
button_icon_state = "mimic_summon"
usage_probability = 30
boss_cost = 40
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm
index 1e47342416..6cebdd9500 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm
@@ -754,6 +754,7 @@ Difficulty: Very Hard
range = -1
include_user = 1
selection_type = "view"
+ action_icon = 'icons/mob/actions/actions_spells.dmi'
action_icon_state = "exit_possession"
sound = null
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/dragon.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/dragon.dm
index 43c9197edc..f9a6575d1e 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/dragon.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/dragon.dm
@@ -293,7 +293,7 @@ Difficulty: Medium
animate(src, pixel_z = 0, time = duration)
/obj/effect/temp_visual/target
- icon = 'icons/mob/actions.dmi'
+ icon = 'icons/mob/actions/actions_items.dmi'
icon_state = "sniper_zoom"
layer = BELOW_MOB_LAYER
light_range = 2
diff --git a/code/modules/mob/living/simple_animal/slime/powers.dm b/code/modules/mob/living/simple_animal/slime/powers.dm
index dab6b717a4..2b817a7f96 100644
--- a/code/modules/mob/living/simple_animal/slime/powers.dm
+++ b/code/modules/mob/living/simple_animal/slime/powers.dm
@@ -7,6 +7,7 @@
/datum/action/innate/slime
check_flags = AB_CHECK_CONSCIOUS
+ icon_icon = 'icons/mob/actions/actions_slime.dmi'
background_icon_state = "bg_alien"
var/needs_growth = NO_GROWTH_NEEDED
diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm
index 84f730f833..9542f6af1a 100644
--- a/code/modules/projectiles/gun.dm
+++ b/code/modules/projectiles/gun.dm
@@ -446,6 +446,7 @@
/datum/action/toggle_scope_zoom
name = "Toggle Scope"
check_flags = AB_CHECK_CONSCIOUS|AB_CHECK_RESTRAINED|AB_CHECK_STUN|AB_CHECK_LYING
+ icon_icon = 'icons/mob/actions/actions_items.dmi'
button_icon_state = "sniper_zoom"
var/obj/item/weapon/gun/gun = null
diff --git a/code/modules/research/xenobiology/xenobio_camera.dm b/code/modules/research/xenobiology/xenobio_camera.dm
index f2546ea465..ae20aa45d1 100644
--- a/code/modules/research/xenobiology/xenobio_camera.dm
+++ b/code/modules/research/xenobiology/xenobio_camera.dm
@@ -88,6 +88,7 @@
/datum/action/innate/slime_place
name = "Place Slimes"
+ icon_icon = 'icons/mob/actions/actions_silicon.dmi'
button_icon_state = "slime_down"
/datum/action/innate/slime_place/Activate()
@@ -107,6 +108,7 @@
/datum/action/innate/slime_pick_up
name = "Pick up Slime"
+ icon_icon = 'icons/mob/actions/actions_silicon.dmi'
button_icon_state = "slime_up"
/datum/action/innate/slime_pick_up/Activate()
@@ -132,6 +134,7 @@
/datum/action/innate/feed_slime
name = "Feed Slimes"
+ icon_icon = 'icons/mob/actions/actions_silicon.dmi'
button_icon_state = "monkey_down"
/datum/action/innate/feed_slime/Activate()
@@ -153,6 +156,7 @@
/datum/action/innate/monkey_recycle
name = "Recycle Monkeys"
+ icon_icon = 'icons/mob/actions/actions_silicon.dmi'
button_icon_state = "monkey_up"
/datum/action/innate/monkey_recycle/Activate()
diff --git a/code/modules/spells/spell.dm b/code/modules/spells/spell.dm
index e4466972a2..ea113ba4fd 100644
--- a/code/modules/spells/spell.dm
+++ b/code/modules/spells/spell.dm
@@ -118,7 +118,7 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) //needed for th
var/critfailchance = 0
var/centcom_cancast = 1 //Whether or not the spell should be allowed on z2
- var/action_icon = 'icons/mob/actions.dmi'
+ var/action_icon = 'icons/mob/actions/actions_spells.dmi'
var/action_icon_state = "spell_default"
var/action_background_icon_state = "bg_spell"
var/datum/action/spell_action/action
diff --git a/code/modules/spells/spell_types/bloodcrawl.dm b/code/modules/spells/spell_types/bloodcrawl.dm
index d7c5221e3d..e4c33380b2 100644
--- a/code/modules/spells/spell_types/bloodcrawl.dm
+++ b/code/modules/spells/spell_types/bloodcrawl.dm
@@ -9,6 +9,7 @@
range = 1
cooldown_min = 0
overlay = null
+ action_icon = 'icons/mob/actions/actions_minor_antag.dmi'
action_icon_state = "bloodcrawl"
action_background_icon_state = "bg_demon"
var/phased = 0
diff --git a/code/modules/spells/spell_types/construct_spells.dm b/code/modules/spells/spell_types/construct_spells.dm
index c8a7c387ee..5c28ff5029 100644
--- a/code/modules/spells/spell_types/construct_spells.dm
+++ b/code/modules/spells/spell_types/construct_spells.dm
@@ -2,6 +2,7 @@
/obj/effect/proc_holder/spell/aoe_turf/conjure/construct/lesser
charge_max = 1800
+ action_icon = 'icons/mob/actions/actions_cult.dmi'
action_icon_state = "artificer"
action_background_icon_state = "bg_demon"
@@ -20,6 +21,7 @@
invocation = "none"
invocation_type = "none"
range = 2
+ action_icon = 'icons/mob/actions/actions_cult.dmi'
action_icon_state = "areaconvert"
action_background_icon_state = "bg_cult"
@@ -40,6 +42,7 @@
invocation_type = "none"
range = 0
summon_type = list(/turf/open/floor/engine/cult)
+ action_icon = 'icons/mob/actions/actions_cult.dmi'
action_icon_state = "floorconstruct"
action_background_icon_state = "bg_cult"
@@ -54,6 +57,7 @@
invocation = "none"
invocation_type = "none"
range = 0
+ action_icon = 'icons/mob/actions/actions_cult.dmi'
action_icon_state = "lesserconstruct"
action_background_icon_state = "bg_cult"
@@ -83,6 +87,7 @@
invocation = "none"
invocation_type = "none"
range = 0
+ action_icon = 'icons/mob/actions/actions_cult.dmi'
action_icon_state = "summonsoulstone"
action_background_icon_state = "bg_demon"
@@ -109,6 +114,7 @@
range = 0
summon_type = list(/obj/effect/forcefield/cult)
summon_lifespan = 200
+ action_icon = 'icons/mob/actions/actions_cult.dmi'
action_icon_state = "cultforcewall"
action_background_icon_state = "bg_demon"
@@ -125,6 +131,7 @@
range = -1
include_user = 1
jaunt_duration = 50 //in deciseconds
+ action_icon = 'icons/mob/actions/actions_cult.dmi'
action_icon_state = "phaseshift"
action_background_icon_state = "bg_demon"
jaunt_in_time = 12
@@ -164,7 +171,7 @@
smoke_spread = 3
smoke_amt = 4
- action_icon_state = "parasmoke"
+ action_icon_state = "smoke"
action_background_icon_state = "bg_cult"
@@ -182,6 +189,7 @@
clothes_req = FALSE
invocation = "none"
invocation_type = "none"
+ action_icon = 'icons/mob/actions/actions_cult.dmi'
action_background_icon_state = "bg_demon"
action_icon_state = "abyssal_gaze"
@@ -222,6 +230,7 @@
clothes_req = FALSE
invocation = "none"
invocation_type = "none"
+ action_icon = 'icons/mob/actions/actions_cult.dmi'
action_background_icon_state = "bg_demon"
action_icon_state = "dominate"
diff --git a/code/modules/spells/spell_types/devil.dm b/code/modules/spells/spell_types/devil.dm
index 78d568c39e..ca9764af1f 100644
--- a/code/modules/spells/spell_types/devil.dm
+++ b/code/modules/spells/spell_types/devil.dm
@@ -10,6 +10,7 @@
school = "conjuration"
charge_max = 150
cooldown_min = 10
+ action_icon = 'icons/mob/actions/actions_minor_antag.dmi'
action_icon_state = "pitchfork"
action_background_icon_state = "bg_demon"
@@ -26,6 +27,7 @@
invocation = "I aint have this much fun since Georgia."
action_icon_state = "golden_violin"
name = "Summon golden violin"
+ action_icon = 'icons/mob/actions/actions_minor_antag.dmi'
action_background_icon_state = "bg_demon"
/obj/effect/proc_holder/spell/targeted/summon_contract
@@ -110,7 +112,7 @@
user.infernalphasein()
else
to_chat(user, "You are no longer near a potential signer.")
-
+
else
to_chat(user, "You can only re-appear near a potential signer.")
revert_cast()
@@ -178,6 +180,7 @@
cooldown_min = 0
overlay = null
include_user = 0
+ action_icon = 'icons/mob/actions/actions_cult.dmi'
action_icon_state = "sintouch"
action_background_icon_state = "bg_demon"
phase_allowed = 0
@@ -213,6 +216,7 @@
school = "conjuration"
charge_max = 10
cooldown_min = 50 //5 seconds, so the smoke can't be spammed
+ action_icon = 'icons/mob/actions/actions_minor_antag.dmi'
action_icon_state = "funk"
action_background_icon_state = "bg_demon"
diff --git a/code/modules/spells/spell_types/devil_boons.dm b/code/modules/spells/spell_types/devil_boons.dm
index 75b6597f07..192a15e96c 100644
--- a/code/modules/spells/spell_types/devil_boons.dm
+++ b/code/modules/spells/spell_types/devil_boons.dm
@@ -8,6 +8,7 @@
school = "conjuration"
charge_max = 100
cooldown_min = 10
+ action_icon = 'icons/mob/actions/actions_minor_antag.dmi'
action_icon_state = "moneybag"
@@ -34,6 +35,7 @@
clothes_req = 0
charge_max = 50
cooldown_min = 10
+ action_icon = 'icons/mob/actions/actions_silicon.dmi'
action_icon_state = "camera_jump"
var/ranges = list(7,8,9,10)
@@ -52,6 +54,7 @@
clothes_req = 0
charge_max = 50
cooldown_min = 10
+ action_icon = 'icons/mob/actions/actions_spells.dmi'
action_icon_state = "sacredflame"
var/mob/living/friend
var/obj/effect/mob_spawn/human/demonic_friend/friendShell
diff --git a/code/modules/spells/spell_types/lichdom.dm b/code/modules/spells/spell_types/lichdom.dm
index bc5ce48c7b..cc728f942e 100644
--- a/code/modules/spells/spell_types/lichdom.dm
+++ b/code/modules/spells/spell_types/lichdom.dm
@@ -17,6 +17,7 @@
cooldown_min = 10
include_user = 1
+ action_icon = 'icons/mob/actions/actions_spells.dmi'
action_icon_state = "skeleton"
/obj/effect/proc_holder/spell/targeted/lichdom/cast(list/targets,mob/user = usr)
diff --git a/code/modules/spells/spell_types/voice_of_god.dm b/code/modules/spells/spell_types/voice_of_god.dm
index 6636c920f2..a5b44b8e0f 100644
--- a/code/modules/spells/spell_types/voice_of_god.dm
+++ b/code/modules/spells/spell_types/voice_of_god.dm
@@ -5,6 +5,7 @@
cooldown_min = 0
level_max = 1
clothes_req = 0
+ action_icon = 'icons/mob/actions/actions_items.dmi'
action_icon_state = "voice_of_god"
var/command
var/cooldown_mod = 1
diff --git a/code/modules/spells/spell_types/wizard.dm b/code/modules/spells/spell_types/wizard.dm
index b9eae51f79..73995ab018 100644
--- a/code/modules/spells/spell_types/wizard.dm
+++ b/code/modules/spells/spell_types/wizard.dm
@@ -301,6 +301,7 @@
cooldown_min = 150
invocation_type = "none"
sparkle_path = /obj/effect/temp_visual/dir_setting/tailsweep
+ action_icon = 'icons/mob/actions/actions_xeno.dmi'
action_icon_state = "tailsweep"
action_background_icon_state = "bg_alien"
diff --git a/icons/mob/actions/actions_AI.dmi b/icons/mob/actions/actions_AI.dmi
new file mode 100644
index 0000000000..c6e4e1dae7
Binary files /dev/null and b/icons/mob/actions/actions_AI.dmi differ
diff --git a/icons/mob/actions/actions_clockcult.dmi b/icons/mob/actions/actions_clockcult.dmi
new file mode 100644
index 0000000000..251e387f50
Binary files /dev/null and b/icons/mob/actions/actions_clockcult.dmi differ
diff --git a/icons/mob/actions/actions_construction.dmi b/icons/mob/actions/actions_construction.dmi
new file mode 100644
index 0000000000..43fe0b48c4
Binary files /dev/null and b/icons/mob/actions/actions_construction.dmi differ
diff --git a/icons/mob/actions/actions_cult.dmi b/icons/mob/actions/actions_cult.dmi
new file mode 100644
index 0000000000..f96242ea9e
Binary files /dev/null and b/icons/mob/actions/actions_cult.dmi differ
diff --git a/icons/mob/actions/actions_flightsuit.dmi b/icons/mob/actions/actions_flightsuit.dmi
new file mode 100644
index 0000000000..3121c24355
Binary files /dev/null and b/icons/mob/actions/actions_flightsuit.dmi differ
diff --git a/icons/mob/actions/actions_items.dmi b/icons/mob/actions/actions_items.dmi
new file mode 100644
index 0000000000..266c197ad3
Binary files /dev/null and b/icons/mob/actions/actions_items.dmi differ
diff --git a/icons/mob/actions/actions_mecha.dmi b/icons/mob/actions/actions_mecha.dmi
new file mode 100644
index 0000000000..c064441ed2
Binary files /dev/null and b/icons/mob/actions/actions_mecha.dmi differ
diff --git a/icons/mob/actions/actions_minor_antag.dmi b/icons/mob/actions/actions_minor_antag.dmi
new file mode 100644
index 0000000000..4e5806f2fb
Binary files /dev/null and b/icons/mob/actions/actions_minor_antag.dmi differ
diff --git a/icons/mob/actions/actions_revenant.dmi b/icons/mob/actions/actions_revenant.dmi
new file mode 100644
index 0000000000..3f664d5c27
Binary files /dev/null and b/icons/mob/actions/actions_revenant.dmi differ
diff --git a/icons/mob/actions/actions_silicon.dmi b/icons/mob/actions/actions_silicon.dmi
new file mode 100644
index 0000000000..5b198649ba
Binary files /dev/null and b/icons/mob/actions/actions_silicon.dmi differ
diff --git a/icons/mob/actions/actions_slime.dmi b/icons/mob/actions/actions_slime.dmi
new file mode 100644
index 0000000000..94cf319958
Binary files /dev/null and b/icons/mob/actions/actions_slime.dmi differ
diff --git a/icons/mob/actions/actions_spells.dmi b/icons/mob/actions/actions_spells.dmi
new file mode 100644
index 0000000000..8935bd993b
Binary files /dev/null and b/icons/mob/actions/actions_spells.dmi differ
diff --git a/icons/mob/actions/actions_xeno.dmi b/icons/mob/actions/actions_xeno.dmi
new file mode 100644
index 0000000000..0a96fea8c4
Binary files /dev/null and b/icons/mob/actions/actions_xeno.dmi differ
diff --git a/icons/mob/actions/backgrounds.dmi b/icons/mob/actions/backgrounds.dmi
new file mode 100644
index 0000000000..6af3b98728
Binary files /dev/null and b/icons/mob/actions/backgrounds.dmi differ
diff --git a/icons/mob/actions_AI.dmi b/icons/mob/actions_AI.dmi
deleted file mode 100644
index 3a789984e6..0000000000
Binary files a/icons/mob/actions_AI.dmi and /dev/null differ