diff --git a/code/_onclick/other_mobs.dm b/code/_onclick/other_mobs.dm
index df1f8222b9..03dc64d5be 100644
--- a/code/_onclick/other_mobs.dm
+++ b/code/_onclick/other_mobs.dm
@@ -49,6 +49,8 @@
on_attack_hand(user, act_intent, unarmed_attack_flags)
if(attack_hand_unwieldlyness)
user.DelayNextAction(attack_hand_unwieldlyness, considered_action = attack_hand_is_action)
+ else if(attack_hand_is_action)
+ user.DelayNextAction()
return attack_hand_is_action
/atom/proc/on_attack_hand(mob/user, act_intent = user.a_intent, unarmed_attack_flags)
diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm
index 620fbbf100..a366a2ef88 100644
--- a/code/game/objects/items/crayons.dm
+++ b/code/game/objects/items/crayons.dm
@@ -273,7 +273,9 @@
. = ..()
if(!proximity || !check_allowed_items(target))
return
+ draw_on(target, user, proximity, params)
+/obj/item/toy/crayon/proc/draw_on(atom/target, mob/user, proximity, params)
var/static/list/punctuation = list("!","?",".",",","/","+","-","=","%","#","&")
var/cost = 1
@@ -568,9 +570,9 @@
dye_color = DYE_RAINBOW
charges = -1
-/obj/item/toy/crayon/rainbow/afterattack(atom/target, mob/user, proximity, params)
+/obj/item/toy/crayon/rainbow/draw_on(atom/target, mob/user, proximity, params)
paint_color = rgb(rand(0,255), rand(0,255), rand(0,255))
- . = ..()
+ return ..()
/*
* Crayon Box
@@ -693,7 +695,7 @@
. += "It is empty."
. += "Alt-click [src] to [ is_capped ? "take the cap off" : "put the cap on"]."
-/obj/item/toy/crayon/spraycan/afterattack(atom/target, mob/user, proximity, params)
+/obj/item/toy/crayon/spraycan/draw_on(atom/target, mob/user, proximity, params)
if(!proximity)
return
@@ -766,7 +768,7 @@
desc = "A metallic container containing shiny synthesised paint."
charges = -1
-/obj/item/toy/crayon/spraycan/borg/afterattack(atom/target,mob/user,proximity, params)
+/obj/item/toy/crayon/spraycan/borg/draw_on(atom/target,mob/user,proximity, params)
var/diff = ..()
if(!iscyborg(user))
to_chat(user, "How did you get this?")