anchor.diff:  		use_delay = use_delay_override
   
   /datum/component/squeak/proc/play_squeak()
  +	if(last_squeak + squeak_delay < world.time)
  +		return
  +	last_squeak = world.time
   	if(prob(squeak_chance))
   		if(!override_squeak_sounds)
   			playsound(parent, pickweight(default_squeak_sounds), volume, 1, -1)
  
positive.code: 	if(ismovable(parent))
  		RegisterSignal(parent, list(COMSIG_MOVABLE_BUMP, COMSIG_MOVABLE_IMPACT), .proc/play_squeak)
  		RegisterSignal(parent, list(COMSIG_MOVABLE_CROSSED, COMSIG_ITEM_WEARERCROSSED), .proc/play_squeak_crossed)
  		RegisterSignal(parent, COMSIG_MOVABLE_DISPOSING, .proc/disposing_react)
  		if(isitem(parent))
  			RegisterSignal(parent, list(COMSIG_ITEM_ATTACK, COMSIG_ITEM_ATTACK_OBJ, COMSIG_ITEM_HIT_REACT), .proc/play_squeak)
  
negative.code: 	var/atom/current_parent = parent
  	if(isturf(current_parent.loc))
  		play_squeak()
  		SEND_SIGNAL(AM, COMSIG_CROSS_SQUEAKED)
  
  /datum/component/squeak/proc/use_squeak()
  	if(last_use + use_delay < world.time)
  		last_use = world.time
  		play_squeak()
  
  /datum/component/squeak/proc/delay_squeak()
  	if(prob(cross_squeak_delay_chance))
  		last_squeak = world.time
  
  /datum/component/squeak/proc/on_equip(datum/source, mob/equipper, slot)
  	RegisterSignal(equipper, COMSIG_MOVABLE_DISPOSING, .proc/disposing_react, TRUE)
  