diff --git a/code/__HELPERS/_logging.dm b/code/__HELPERS/_logging.dm
index 4dd590d9a1..b14c1b63f5 100644
--- a/code/__HELPERS/_logging.dm
+++ b/code/__HELPERS/_logging.dm
@@ -52,6 +52,8 @@
if (CONFIG_GET(flag/log_adminchat))
WRITE_LOG(GLOB.world_game_log, "ADMIN: DSAY: [text]")
+/proc/log_consent(text)
+ WRITE_LOG(GLOB.world_game_log,["CONSENT: [text]"])
/* All other items are public. */
/proc/log_game(text)
diff --git a/code/modules/vore/eating/living.dm b/code/modules/vore/eating/living.dm
index 9fdb7aa764..aac1aa88ff 100644
--- a/code/modules/vore/eating/living.dm
+++ b/code/modules/vore/eating/living.dm
@@ -237,6 +237,8 @@
return
//Actual escaping
B.release_specific_contents(src,TRUE) //we might as well take advantage of that specific belly's handling. Else we stay blinded forever.
+ message_admins("[src] used OOC escape to escape from [B.owner]'s belly.")
+ consent_log("[src] used OOC escape to escape from [B.owner]'s belly.")
src.stop_sound_channel(CHANNEL_PREYLOOP)
SEND_SIGNAL(src, COMSIG_CLEAR_MOOD_EVENT, "fedprey", /datum/mood_event/fedprey)
for(var/mob/living/simple_animal/SA in range(10))
@@ -255,6 +257,8 @@
return
//Actual escaping
belly.go_out(src) //Just force-ejects from the borg as if they'd clicked the eject button.
+ message_admins("[src] used OOC escape to escape from [B.owner]'s dogborg sleeper.")
+ consent_log("[src] used OOC escape to escape from [B.owner]'s dogborg sleeper.")
else
to_chat(src,"You aren't inside anyone, though, is the thing.")
diff --git a/modular_citadel/code/modules/arousal/arousal.dm b/modular_citadel/code/modules/arousal/arousal.dm
index 3361707b04..3022b85ff0 100644
--- a/modular_citadel/code/modules/arousal/arousal.dm
+++ b/modular_citadel/code/modules/arousal/arousal.dm
@@ -158,9 +158,13 @@
return //No one left.
var/mob/living/target = input(src, "With whom?", "Sexual partner", null) as null|anything in partners //pick one, default to null
if(target && in_range(src, target))
+ to_chat(src,"Waiting for consent...")
var/consenting = input(target, "Do you want [src] to climax with you?","Climax mechanics","No") in list("Yes","No")
if(consenting == "Yes")
return target
+ else
+ message_admins("[src] tried to climax with [target], but [target] did not consent.")
+ consent_log("[src] tried to climax with [target], but [target] did not consent.")
/mob/living/carbon/human/proc/pick_climax_container(silent = FALSE)
var/list/containers_list = list()