diff --git a/code/game/objects/items/devices/multitool.dm b/code/game/objects/items/devices/multitool.dm
index c9d644cb814..025f5fa5e88 100644
--- a/code/game/objects/items/devices/multitool.dm
+++ b/code/game/objects/items/devices/multitool.dm
@@ -42,8 +42,8 @@
return OXYLOSS//theres a reason it wasn't recommended by doctors
/obj/item/multitool/proc/set_buffer(datum/buffer)
- if(buffer)
- UnregisterSignal(buffer, COMSIG_QDELETING)
+ if(src.buffer)
+ UnregisterSignal(src.buffer, COMSIG_QDELETING)
if(QDELETED(buffer))
return
src.buffer = buffer
diff --git a/code/modules/mod/mod_link.dm b/code/modules/mod/mod_link.dm
index 6c462718b3e..42d2f664a82 100644
--- a/code/modules/mod/mod_link.dm
+++ b/code/modules/mod/mod_link.dm
@@ -102,7 +102,7 @@
mod_link.frequency = tool_frequency
/obj/item/mod/control/proc/can_call()
- return wearer && wearer.stat < DEAD
+ return get_charge() && wearer && wearer.stat < DEAD
/obj/item/mod/control/proc/make_link_visual()
return make_link_visual_generic(mod_link, PROC_REF(on_overlay_change))
@@ -132,7 +132,7 @@
/obj/item/mod/control/proc/on_wearer_set_dir(atom/source, dir, newdir)
SIGNAL_HANDLER
- on_user_set_dir_generic(mod_link, newdir)
+ on_user_set_dir_generic(mod_link, newdir || SOUTH)
/obj/item/clothing/neck/link_scryer
name = "\improper MODlink scryer"
@@ -144,7 +144,7 @@
/// The MODlink datum we operate.
var/datum/mod_link/mod_link
/// Initial frequency of the MODlink.
- var/starting_frequency = "NT"
+ var/starting_frequency
/// An additional name tag for the scryer, seen as "MODlink scryer - [label]"
var/label
@@ -173,7 +173,7 @@
. += span_notice("The battery charge reads [cell.percent()]%. Right-click with an empty hand to remove it.")
else
. += span_notice("It is missing a battery, one can be installed by clicking with a power cell on it.")
- . += span_notice("The MODlink ID is [mod_link.id], frequency is [mod_link.frequency]. Right-click with multitool to copy/imprint frequency.")
+ . += span_notice("The MODlink ID is [mod_link.id], frequency is [mod_link.frequency || "unset"]. Right-click with multitool to copy/imprint frequency.")
. += span_notice("Use in hand to set name.")
/obj/item/clothing/neck/link_scryer/equipped(mob/living/user, slot)
@@ -260,7 +260,7 @@
/obj/item/clothing/neck/link_scryer/proc/can_call()
var/mob/living/user = loc
- return istype(user) && cell.charge && user.stat < DEAD
+ return istype(user) && cell?.charge && user.stat < DEAD
/obj/item/clothing/neck/link_scryer/proc/make_link_visual()
var/mob/living/user = mod_link.get_user_callback.Invoke()
@@ -296,7 +296,10 @@
/obj/item/clothing/neck/link_scryer/proc/on_user_set_dir(atom/source, dir, newdir)
SIGNAL_HANDLER
- on_user_set_dir_generic(mod_link, newdir)
+ on_user_set_dir_generic(mod_link, newdir || SOUTH)
+
+/obj/item/clothing/neck/link_scryer/loaded
+ starting_frequency = "NT"
/obj/item/clothing/neck/link_scryer/loaded/Initialize(mapload)
. = ..()
diff --git a/code/modules/mod/mod_ui.dm b/code/modules/mod/mod_ui.dm
index 06f89ddb03c..eaf4b75d7ee 100644
--- a/code/modules/mod/mod_ui.dm
+++ b/code/modules/mod/mod_ui.dm
@@ -16,6 +16,7 @@
"has_pai" = ispAI(ai_assistant),
"is_ai" = ai_assistant && ai_assistant == user,
"link_id" = mod_link.id,
+ "link_freq" = mod_link.frequency,
"link_call" = mod_link.get_other()?.id,
// Wires
"open" = open,
diff --git a/icons/mob/actions/actions_mod.dmi b/icons/mob/actions/actions_mod.dmi
index 84fcbc00dbb..f788de20194 100644
Binary files a/icons/mob/actions/actions_mod.dmi and b/icons/mob/actions/actions_mod.dmi differ
diff --git a/tgui/packages/tgui/interfaces/MODsuit.tsx b/tgui/packages/tgui/interfaces/MODsuit.tsx
index 593dc109bf8..53928a5efa0 100644
--- a/tgui/packages/tgui/interfaces/MODsuit.tsx
+++ b/tgui/packages/tgui/interfaces/MODsuit.tsx
@@ -36,6 +36,7 @@ type SuitStatus = {
has_pai: boolean;
is_ai: boolean;
link_id: string;
+ link_freq: string;
link_call: string;
};
@@ -320,6 +321,7 @@ const SuitStatusSection = (props, context) => {
has_pai,
is_ai,
link_id,
+ link_freq,
link_call,
} = data.suit_status;
const { display_time, shift_time, shift_id } = data.module_custom_status;
@@ -385,11 +387,14 @@ const SuitStatusSection = (props, context) => {