From 50c664f6be89965a9199a84d46daf9b1d8b45565 Mon Sep 17 00:00:00 2001 From: Shroopy <46693163+Shroopy@users.noreply.github.com> Date: Sun, 14 Jun 2026 03:46:34 -0700 Subject: [PATCH 01/16] Admin fax changes --- _maps/map_files/generic/CentCom_oculis.dmm | 30 +++++++++++-------- code/modules/admin/admin_fax_panel.dm | 4 +-- code/modules/paperwork/fax.dm | 5 ++-- .../code/modules/paperwork/fax.dm | 23 ++++++++++++++ tgstation.dme | 1 + 5 files changed, 47 insertions(+), 16 deletions(-) create mode 100644 modular_oculis/master_files/code/modules/paperwork/fax.dm diff --git a/_maps/map_files/generic/CentCom_oculis.dmm b/_maps/map_files/generic/CentCom_oculis.dmm index 3585f6ad56f8..c1bff3c81e0d 100644 --- a/_maps/map_files/generic/CentCom_oculis.dmm +++ b/_maps/map_files/generic/CentCom_oculis.dmm @@ -11646,7 +11646,10 @@ dir = 6 }, /obj/structure/table/wood, -/obj/machinery/fax/auto_name, +/obj/machinery/fax/castor{ + dir = 1; + fax_id = "castor_psych" + }, /turf/open/floor/wood, /area/centcom/castor/psychologist) "hFu" = ( @@ -13093,9 +13096,9 @@ /area/centcom/interlink) "jfO" = ( /obj/structure/table/wood, -/obj/machinery/fax/auto_name{ +/obj/machinery/fax/castor{ dir = 1; - name = "Sectorial Internal Affairs Administrator's Office's Fax Machine" + fax_id = "castor_SIAA" }, /turf/open/floor/wood, /area/centcom/castor/sectorial_internal_affairs_administrator) @@ -15135,9 +15138,9 @@ /area/centcom/holding/cafe) "lim" = ( /obj/structure/table/wood/fancy/green, -/obj/machinery/fax/auto_name{ +/obj/machinery/fax/castor{ dir = 1; - name = "Sectorial Personnel Administrator's Office's Fax Machine" + fax_id = "castor_SPA" }, /turf/open/floor/carpet/green{ initial_gas_mix = "o2=21.65;n2=80.7;TEMP=287.53" @@ -21147,7 +21150,10 @@ /turf/open/floor/iron/dark/pattern_1, /area/centcom/central_command_areas/hallway) "qKa" = ( -/obj/machinery/fax/auto_name, +/obj/machinery/fax/castor{ + dir = 1; + fax_id = "castor_intern" + }, /obj/structure/table/reinforced/plastitaniumglass, /turf/open/floor/carpet/black, /area/centcom/castor/intern_office) @@ -23651,9 +23657,9 @@ dir = 6 }, /obj/structure/sign/flag/nanotrasen/directional/east, -/obj/machinery/fax/auto_name{ +/obj/machinery/fax/castor{ dir = 1; - name = "Sectorial Security Administrator's Office's Fax Machine" + fax_id = "castor_SSA" }, /turf/open/floor/carpet/royalblack, /area/centcom/castor/sectorial_security_administrator) @@ -26180,9 +26186,9 @@ /obj/effect/turf_decal/siding/thinplating_new/light{ dir = 1 }, -/obj/machinery/fax/auto_name{ +/obj/machinery/fax/castor{ dir = 1; - name = "Sectorial Medical Administrator's Office's Fax Machine" + fax_id = "castor_SMA" }, /turf/open/floor/carpet/cyan, /area/centcom/castor/sectorial_medical_administrator) @@ -26472,9 +26478,9 @@ /area/centcom/interlink) "vKx" = ( /obj/structure/table/reinforced, -/obj/machinery/fax/auto_name{ +/obj/machinery/fax/castor{ dir = 1; - name = "Sectorial Engineering Administrator's Office's Fax Machine" + fax_id = "castor_SEA" }, /turf/open/floor/iron/dark/smooth_large, /area/centcom/castor/sectorial_engineering_administrator) diff --git a/code/modules/admin/admin_fax_panel.dm b/code/modules/admin/admin_fax_panel.dm index d426c48b14dd..dd5357606c00 100644 --- a/code/modules/admin/admin_fax_panel.dm +++ b/code/modules/admin/admin_fax_panel.dm @@ -20,8 +20,8 @@ ADMIN_VERB(fax_panel, R_ADMIN, "Fax Panel", "View and respond to faxes sent to C /datum/fax_panel_interface/New() //Get all faxes, and save them to our list. for(var/obj/machinery/fax/fax as anything in SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/fax)) - if(istype(fax, /obj/machinery/fax/admin)) - continue + // if(istype(fax, /obj/machinery/fax/admin)) // OCULIS REMOVAL - may as well be able to send to admin faxes in case that's relevant, right? + // continue // OCULIS REMOVAL available_faxes += WEAKREF(fax) //Get all stamps diff --git a/code/modules/paperwork/fax.dm b/code/modules/paperwork/fax.dm index c38fabc0d19e..fdba71dce788 100644 --- a/code/modules/paperwork/fax.dm +++ b/code/modules/paperwork/fax.dm @@ -1,5 +1,5 @@ GLOBAL_VAR_INIT(nt_fax_department, pick("Sectorial Command")) // IRIS EDIT Original: "NT HR Department", "NT Legal Department", "NT Complaint Department", "NT Customer Relations", "Nanotrasen Tech Support", "NT Internal Affairs Dept" // OCULIS EDIT - Central Command > Sectorial Command -GLOBAL_VAR_INIT(fax_autoprinting, FALSE) +GLOBAL_VAR_INIT(fax_autoprinting, TRUE) // OCULIS EDIT - FALSE -> TRUE - getting the physical papers is nice /obj/machinery/fax name = "Fax Machine" @@ -333,7 +333,8 @@ GLOBAL_VAR_INIT(fax_autoprinting, FALSE) SEND_SOUND(staff, sound('modular_oculis/modules/fax_sound/sound/fax.ogg')) // OCULIS EDIT, ORIGINAL: SEND_SOUND(staff, sound('sound/misc/server-ready.ogg')) if(GLOB.fax_autoprinting) - for(var/obj/machinery/fax/admin/FAX as anything in SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/fax/admin)) + var/fax_machine_types = SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/fax/admin) + SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/fax/castor) // OCULIS ADDITION + for(var/obj/machinery/fax/admin/FAX as anything in fax_machine_types) // OCULIS EDIT - SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/fax/admin) -> fax_machine_types if(FAX.fax_id != params["id"]) continue FAX.receive(fax_paper, fax_name) diff --git a/modular_oculis/master_files/code/modules/paperwork/fax.dm b/modular_oculis/master_files/code/modules/paperwork/fax.dm new file mode 100644 index 000000000000..7d64183e3cc3 --- /dev/null +++ b/modular_oculis/master_files/code/modules/paperwork/fax.dm @@ -0,0 +1,23 @@ +/obj/machinery/fax/Initialize(mapload) + special_networks += list( + castor_psych = list(fax_name = "Castor Psychologist's Office", fax_id = "castor_psych", color = "green", emag_needed = FALSE), + castor_intern = list(fax_name = "Castor Intern's Office", fax_id = "castor_intern", color = "green", emag_needed = FALSE), + castor_SC = list(fax_name = "Sectorial Commander's Office", fax_id = "castor_SC", color = "green", emag_needed = FALSE), + castor_SPA = list(fax_name = "Sectorial Personnel Administrator's Office", fax_id = "castor_SPA", color = "green", emag_needed = FALSE), + castor_SSA = list(fax_name = "Sectorial Security Administrator's Office", fax_id = "castor_SSA", color = "green", emag_needed = FALSE), + castor_SRA = list(fax_name = "Sectorial Research Administrator's Office", fax_id = "castor_SRA", color = "green", emag_needed = FALSE), + castor_SMA = list(fax_name = "Sectorial Medical Administrator's Office", fax_id = "castor_SMA", color = "green", emag_needed = FALSE), + castor_SLA = list(fax_name = "Sectorial Logistics Administrator's Office", fax_id = "castor_SLA", color = "green", emag_needed = FALSE), + castor_SEA = list(fax_name = "Sectorial Engineering Administrator's Office", fax_id = "castor_SEA", color = "green", emag_needed = FALSE), + castor_SIAA = list(fax_name = "Sectorial Internal Affairs Administrator's Office", fax_id = "castor_SIAA", color = "green", emag_needed = FALSE), + ) + return ..() + +// Separate from the /admin type, to not collide with the conficting init. Requires a fax_id specified when mapping! +/obj/machinery/fax/castor + name = "Castor Fax Machine" + +/obj/machinery/fax/castor/Initialize(mapload) + . = ..() + fax_name = special_networks[fax_id]["fax_name"] + name = "[fax_name]'s Fax Machine" diff --git a/tgstation.dme b/tgstation.dme index 7d3e1be69eaf..ce464f82a6a9 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -10062,6 +10062,7 @@ #include "modular_oculis\master_files\code\modules\mob\living\navigation.dm" #include "modular_oculis\master_files\code\modules\mob\living\basic\lavaland\raptor\_raptor.dm" #include "modular_oculis\master_files\code\modules\mocking\client.dm" +#include "modular_oculis\master_files\code\modules\paperwork\fax.dm" #include "modular_oculis\master_files\code\modules\projectiles\gun.dm" #include "modular_oculis\master_files\code\modules\projectiles\projectile_speed.dm" #include "modular_oculis\master_files\code\modules\projectiles\boxes_magazines\ammo_boxes.dm" From 9411eb96ebc4a8d33d7d173d6e022766c7444c37 Mon Sep 17 00:00:00 2001 From: Shroopy <46693163+Shroopy@users.noreply.github.com> Date: Sun, 14 Jun 2026 03:53:20 -0700 Subject: [PATCH 02/16] Undo changing autoprinting to default on --- code/modules/paperwork/fax.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/paperwork/fax.dm b/code/modules/paperwork/fax.dm index fdba71dce788..3eafccbf33ff 100644 --- a/code/modules/paperwork/fax.dm +++ b/code/modules/paperwork/fax.dm @@ -1,5 +1,5 @@ GLOBAL_VAR_INIT(nt_fax_department, pick("Sectorial Command")) // IRIS EDIT Original: "NT HR Department", "NT Legal Department", "NT Complaint Department", "NT Customer Relations", "Nanotrasen Tech Support", "NT Internal Affairs Dept" // OCULIS EDIT - Central Command > Sectorial Command -GLOBAL_VAR_INIT(fax_autoprinting, TRUE) // OCULIS EDIT - FALSE -> TRUE - getting the physical papers is nice +GLOBAL_VAR_INIT(fax_autoprinting, FALSE) /obj/machinery/fax name = "Fax Machine" From 1ab18744c1f4f6a615d90fc16731850d91cb6e57 Mon Sep 17 00:00:00 2001 From: Shroopy <46693163+Shroopy@users.noreply.github.com> Date: Sun, 14 Jun 2026 04:10:11 -0700 Subject: [PATCH 03/16] Fix wrong fax type for autoprint --- code/modules/paperwork/fax.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/paperwork/fax.dm b/code/modules/paperwork/fax.dm index 3eafccbf33ff..93719cfe6929 100644 --- a/code/modules/paperwork/fax.dm +++ b/code/modules/paperwork/fax.dm @@ -334,7 +334,7 @@ GLOBAL_VAR_INIT(fax_autoprinting, FALSE) if(GLOB.fax_autoprinting) var/fax_machine_types = SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/fax/admin) + SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/fax/castor) // OCULIS ADDITION - for(var/obj/machinery/fax/admin/FAX as anything in fax_machine_types) // OCULIS EDIT - SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/fax/admin) -> fax_machine_types + for(var/obj/machinery/fax/FAX as anything in fax_machine_types) // OCULIS EDIT - fax/admin/FAX -> fax/FAX, SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/fax/admin) -> fax_machine_types if(FAX.fax_id != params["id"]) continue FAX.receive(fax_paper, fax_name) From 02b2341249566a6da273ac20dbbbc6ee0470f321 Mon Sep 17 00:00:00 2001 From: Shroopy <46693163+Shroopy@users.noreply.github.com> Date: Sun, 14 Jun 2026 04:32:49 -0700 Subject: [PATCH 04/16] Add ADMIN_JMP to faxes to admin fax machines --- code/modules/paperwork/fax.dm | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/code/modules/paperwork/fax.dm b/code/modules/paperwork/fax.dm index 93719cfe6929..9c9f6331b58f 100644 --- a/code/modules/paperwork/fax.dm +++ b/code/modules/paperwork/fax.dm @@ -323,9 +323,20 @@ GLOBAL_VAR_INIT(fax_autoprinting, FALSE) history_add("Send", params["name"]) + // OCULIS ADDITION START + var/notice_text = "[icon2html(src.icon, GLOB.admins)]FAX REQUEST: [ADMIN_FULLMONTY(usr)]: [span_linkify("sent a fax message from [fax_name]/[fax_id][ADMIN_FLW(src)] to [html_encode(params["name"])]")] [ADMIN_SHOW_PAPER(fax_paper)] [ADMIN_PRINT_FAX(fax_paper, fax_name, params["id"])]" + // Find the machine if it exists so we can give the admins a JMP to it + var/fax_machine_types = SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/fax/admin) + SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/fax/castor) + for(var/obj/machinery/fax/FAX as anything in fax_machine_types) + if(FAX.fax_id != params["id"]) + continue + notice_text += " [ADMIN_JMP(FAX)]" + break + // OCULIS ADDITION END + GLOB.requests.fax_request(usr.client, "sent a fax message from [fax_name]/[fax_id] to [params["name"]]", list("paper" = fax_paper, "destination_id" = params["id"], "sender_name" = fax_name)) to_chat(GLOB.admins, - span_adminnotice("[icon2html(src.icon, GLOB.admins)]FAX REQUEST: [ADMIN_FULLMONTY(usr)]: [span_linkify("sent a fax message from [fax_name]/[fax_id][ADMIN_FLW(src)] to [html_encode(params["name"])]")] [ADMIN_SHOW_PAPER(fax_paper)] [ADMIN_PRINT_FAX(fax_paper, fax_name, params["id"])]"), + span_adminnotice(notice_text), // OCULIS EDIT, ORIGINAL: span_adminnotice("[icon2html(src.icon, GLOB.admins)]FAX REQUEST: [ADMIN_FULLMONTY(usr)]: [span_linkify("sent a fax message from [fax_name]/[fax_id][ADMIN_FLW(src)] to [html_encode(params["name"])]")] [ADMIN_SHOW_PAPER(fax_paper)] [ADMIN_PRINT_FAX(fax_paper, fax_name, params["id"])]"), type = MESSAGE_TYPE_PRAYER, confidential = TRUE) for(var/client/staff as anything in GLOB.admins) @@ -333,8 +344,7 @@ GLOBAL_VAR_INIT(fax_autoprinting, FALSE) SEND_SOUND(staff, sound('modular_oculis/modules/fax_sound/sound/fax.ogg')) // OCULIS EDIT, ORIGINAL: SEND_SOUND(staff, sound('sound/misc/server-ready.ogg')) if(GLOB.fax_autoprinting) - var/fax_machine_types = SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/fax/admin) + SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/fax/castor) // OCULIS ADDITION - for(var/obj/machinery/fax/FAX as anything in fax_machine_types) // OCULIS EDIT - fax/admin/FAX -> fax/FAX, SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/fax/admin) -> fax_machine_types + for(var/obj/machinery/fax/FAX as anything in fax_machine_types) // OCULIS EDIT, ORIGINAL: for(var/obj/machinery/fax/admin/FAX as anything in SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/fax/admin) if(FAX.fax_id != params["id"]) continue FAX.receive(fax_paper, fax_name) From 4de7248ca32faed655f247b515e354de67617547 Mon Sep 17 00:00:00 2001 From: Shroopy <46693163+Shroopy@users.noreply.github.com> Date: Sun, 14 Jun 2026 04:33:50 -0700 Subject: [PATCH 05/16] Change to ADMIN_FLW --- code/modules/paperwork/fax.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/paperwork/fax.dm b/code/modules/paperwork/fax.dm index 9c9f6331b58f..11faf4c0c832 100644 --- a/code/modules/paperwork/fax.dm +++ b/code/modules/paperwork/fax.dm @@ -325,12 +325,12 @@ GLOBAL_VAR_INIT(fax_autoprinting, FALSE) // OCULIS ADDITION START var/notice_text = "[icon2html(src.icon, GLOB.admins)]FAX REQUEST: [ADMIN_FULLMONTY(usr)]: [span_linkify("sent a fax message from [fax_name]/[fax_id][ADMIN_FLW(src)] to [html_encode(params["name"])]")] [ADMIN_SHOW_PAPER(fax_paper)] [ADMIN_PRINT_FAX(fax_paper, fax_name, params["id"])]" - // Find the machine if it exists so we can give the admins a JMP to it + // Find the machine if it exists so we can give the admins a FLW to it var/fax_machine_types = SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/fax/admin) + SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/fax/castor) for(var/obj/machinery/fax/FAX as anything in fax_machine_types) if(FAX.fax_id != params["id"]) continue - notice_text += " [ADMIN_JMP(FAX)]" + notice_text += " [ADMIN_FLW(FAX)]" break // OCULIS ADDITION END From 75263f5ca735188200d528dbdb3f367d43991963 Mon Sep 17 00:00:00 2001 From: Shroopy <46693163+Shroopy@users.noreply.github.com> Date: Sun, 14 Jun 2026 05:00:24 -0700 Subject: [PATCH 06/16] Change to taking admin and castor fax machines for printing --- code/modules/admin/topic.dm | 2 +- code/modules/requests/request_manager.dm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index a680a7fce825..a248741d1d35 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1440,7 +1440,7 @@ if(!check_rights(R_ADMIN)) return - for(var/obj/machinery/fax/admin/FAX as anything in SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/fax/admin)) + for(var/obj/machinery/fax/FAX as anything in (SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/fax/admin) + SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/fax/castor))) // OCULIS EDIT, ORIGINAL: for(var/obj/machinery/fax/admin/FAX as anything in SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/fax/admin)) if(FAX.fax_id != href_list["destination"]) continue FAX.receive(locate(href_list["print_fax"]), href_list["sender_name"]) diff --git a/code/modules/requests/request_manager.dm b/code/modules/requests/request_manager.dm index 7127ff93b69c..7ed6cb65a57a 100644 --- a/code/modules/requests/request_manager.dm +++ b/code/modules/requests/request_manager.dm @@ -239,7 +239,7 @@ GLOBAL_DATUM_INIT(requests, /datum/request_manager, new) if (request.req_type != REQUEST_FAX) to_chat(usr, "Request doesn't have a paper to print.", confidential = TRUE) return TRUE - for(var/obj/machinery/fax/admin/FAX as anything in SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/fax/admin)) + for(var/obj/machinery/fax/FAX as anything in (SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/fax/admin) + SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/fax/castor))) // OCULIS EDIT, ORIGINAL: for(var/obj/machinery/fax/admin/FAX as anything in SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/fax/admin)) if(FAX.fax_id != request.additional_information["destination_id"]) continue var/obj/item/paper/request_message = request.additional_information["paper"] From 03ed68f3c5023c8f3c3145d77804db3f8e0d91db Mon Sep 17 00:00:00 2001 From: Shroopy <46693163+Shroopy@users.noreply.github.com> Date: Sun, 14 Jun 2026 05:33:14 -0700 Subject: [PATCH 07/16] Add fax flw button to request manager --- code/modules/requests/request_manager.dm | 13 +++++++++++++ tgui/packages/tgui/interfaces/RequestManager.tsx | 5 +++++ 2 files changed, 18 insertions(+) diff --git a/code/modules/requests/request_manager.dm b/code/modules/requests/request_manager.dm index 7ed6cb65a57a..0fd92bc13cd3 100644 --- a/code/modules/requests/request_manager.dm +++ b/code/modules/requests/request_manager.dm @@ -261,6 +261,19 @@ GLOBAL_DATUM_INIT(requests, /datum/request_manager, new) web_sound(usr, request.message) // OCULIS EDIT ADDITION END return TRUE + // OCULIS ADDITION START: fax_flw + if("fax_flw") + var/fax_machine_found = FALSE + for(var/obj/machinery/fax/FAX as anything in (SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/fax/admin) + SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/fax/castor))) + if(FAX.fax_id != request.additional_information["destination_id"]) + continue + fax_machine_found = TRUE + usr.client.admin_follow(FAX) + break + if(!fax_machine_found) + to_chat(usr, "Fax machine doesn't exist.", confidential = TRUE) + return TRUE + // OCULIS ADDITION END: fax_flw /datum/request_manager/ui_data(mob/user) var/list/data = list() diff --git a/tgui/packages/tgui/interfaces/RequestManager.tsx b/tgui/packages/tgui/interfaces/RequestManager.tsx index e411c7d6470d..db9efcb3ef78 100644 --- a/tgui/packages/tgui/interfaces/RequestManager.tsx +++ b/tgui/packages/tgui/interfaces/RequestManager.tsx @@ -170,6 +170,11 @@ const RequestControls = (props) => { + {/* OCULIS ADDITION START */} + + {/* OCULIS ADDITION END */} )} {request.req_type === 'request_internet_sound' && ( From 2c740eac6e4029343ff3438879c138eb99bb5704 Mon Sep 17 00:00:00 2001 From: Shroopy <46693163+Shroopy@users.noreply.github.com> Date: Sun, 14 Jun 2026 05:34:03 -0700 Subject: [PATCH 08/16] Make print throw a user error if no fax machine --- code/modules/requests/request_manager.dm | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/code/modules/requests/request_manager.dm b/code/modules/requests/request_manager.dm index 0fd92bc13cd3..8ff771226729 100644 --- a/code/modules/requests/request_manager.dm +++ b/code/modules/requests/request_manager.dm @@ -239,13 +239,19 @@ GLOBAL_DATUM_INIT(requests, /datum/request_manager, new) if (request.req_type != REQUEST_FAX) to_chat(usr, "Request doesn't have a paper to print.", confidential = TRUE) return TRUE + var/fax_machine_found = FALSE // OCULIS ADDITION for(var/obj/machinery/fax/FAX as anything in (SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/fax/admin) + SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/fax/castor))) // OCULIS EDIT, ORIGINAL: for(var/obj/machinery/fax/admin/FAX as anything in SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/fax/admin)) if(FAX.fax_id != request.additional_information["destination_id"]) continue + fax_machine_found = TRUE // OCULIS ADDITION var/obj/item/paper/request_message = request.additional_information["paper"] var/sender_name = request.additional_information["sender_name"] FAX.receive(request_message, sender_name) - return TRUE + // OCULIS ADDITION START + if(!fax_machine_found) + to_chat(usr, "Fax machine doesn't exist.", confidential = TRUE) + // OCULIS ADDITION END + return TRUE // OCULIS EDIT - decreased by one tab from original if ("play") if(request.req_type != REQUEST_INTERNET_SOUND) to_chat(usr, "Request doesn't have a sound to play.", confidential = TRUE) From 6dd45a3f0e8dda817936d81ebd146acdf6cfb2d4 Mon Sep 17 00:00:00 2001 From: Shroopy <46693163+Shroopy@users.noreply.github.com> Date: Sun, 14 Jun 2026 05:56:16 -0700 Subject: [PATCH 09/16] fix centcom_oculis.dmm having spaces instead of tabs for some reason --- _maps/map_files/generic/CentCom_oculis.dmm | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/_maps/map_files/generic/CentCom_oculis.dmm b/_maps/map_files/generic/CentCom_oculis.dmm index c1bff3c81e0d..e8c1ff86ef32 100644 --- a/_maps/map_files/generic/CentCom_oculis.dmm +++ b/_maps/map_files/generic/CentCom_oculis.dmm @@ -11647,9 +11647,9 @@ }, /obj/structure/table/wood, /obj/machinery/fax/castor{ - dir = 1; - fax_id = "castor_psych" - }, + dir = 1; + fax_id = "castor_psych" + }, /turf/open/floor/wood, /area/centcom/castor/psychologist) "hFu" = ( @@ -21151,9 +21151,9 @@ /area/centcom/central_command_areas/hallway) "qKa" = ( /obj/machinery/fax/castor{ - dir = 1; - fax_id = "castor_intern" - }, + dir = 1; + fax_id = "castor_intern" + }, /obj/structure/table/reinforced/plastitaniumglass, /turf/open/floor/carpet/black, /area/centcom/castor/intern_office) From 995a265ebce7426e24c7976550cf010e74f3183d Mon Sep 17 00:00:00 2001 From: Shroopy <46693163+Shroopy@users.noreply.github.com> Date: Sun, 14 Jun 2026 06:01:28 -0700 Subject: [PATCH 10/16] slightly better comment --- code/modules/requests/request_manager.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/requests/request_manager.dm b/code/modules/requests/request_manager.dm index 8ff771226729..036e61f2048f 100644 --- a/code/modules/requests/request_manager.dm +++ b/code/modules/requests/request_manager.dm @@ -251,7 +251,7 @@ GLOBAL_DATUM_INIT(requests, /datum/request_manager, new) if(!fax_machine_found) to_chat(usr, "Fax machine doesn't exist.", confidential = TRUE) // OCULIS ADDITION END - return TRUE // OCULIS EDIT - decreased by one tab from original + return TRUE // OCULIS EDIT - decreased indentation by one tab from original if ("play") if(request.req_type != REQUEST_INTERNET_SOUND) to_chat(usr, "Request doesn't have a sound to play.", confidential = TRUE) From 8fe84f29795c966cc74d4f33eda2913da86ff172 Mon Sep 17 00:00:00 2001 From: Shroopy <46693163+Shroopy@users.noreply.github.com> Date: Sun, 14 Jun 2026 15:10:13 -0700 Subject: [PATCH 11/16] Catch missing castor fax id and just return --- modular_oculis/master_files/code/modules/paperwork/fax.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modular_oculis/master_files/code/modules/paperwork/fax.dm b/modular_oculis/master_files/code/modules/paperwork/fax.dm index 7d64183e3cc3..a9d41bbcfa98 100644 --- a/modular_oculis/master_files/code/modules/paperwork/fax.dm +++ b/modular_oculis/master_files/code/modules/paperwork/fax.dm @@ -19,5 +19,7 @@ /obj/machinery/fax/castor/Initialize(mapload) . = ..() + if(!fax_id) + return fax_name = special_networks[fax_id]["fax_name"] name = "[fax_name]'s Fax Machine" From 561948c9fbf58fd8b06f8ea5f62d5caa3f706a5a Mon Sep 17 00:00:00 2001 From: Shroopy <46693163+Shroopy@users.noreply.github.com> Date: Sun, 14 Jun 2026 15:41:36 -0700 Subject: [PATCH 12/16] Change castor faxes to admin subtype, change admin fax init --- _maps/map_files/generic/CentCom_oculis.dmm | 16 ++++++------- code/modules/admin/topic.dm | 2 +- code/modules/paperwork/fax.dm | 23 +++++++++++++++---- code/modules/requests/request_manager.dm | 4 ++-- .../code/modules/paperwork/fax.dm | 4 ++-- 5 files changed, 32 insertions(+), 17 deletions(-) diff --git a/_maps/map_files/generic/CentCom_oculis.dmm b/_maps/map_files/generic/CentCom_oculis.dmm index e8c1ff86ef32..d39d6a73fddd 100644 --- a/_maps/map_files/generic/CentCom_oculis.dmm +++ b/_maps/map_files/generic/CentCom_oculis.dmm @@ -11646,7 +11646,7 @@ dir = 6 }, /obj/structure/table/wood, -/obj/machinery/fax/castor{ +/obj/machinery/fax/admin/castor{ dir = 1; fax_id = "castor_psych" }, @@ -12685,7 +12685,7 @@ /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 1 }, -/obj/machinery/fax/admin, +/obj/machinery/fax/admin/nanotrasen, /turf/open/floor/iron/dark, /area/centcom/castor/control) "iMJ" = ( @@ -13096,7 +13096,7 @@ /area/centcom/interlink) "jfO" = ( /obj/structure/table/wood, -/obj/machinery/fax/castor{ +/obj/machinery/fax/admin/castor{ dir = 1; fax_id = "castor_SIAA" }, @@ -15138,7 +15138,7 @@ /area/centcom/holding/cafe) "lim" = ( /obj/structure/table/wood/fancy/green, -/obj/machinery/fax/castor{ +/obj/machinery/fax/admin/castor{ dir = 1; fax_id = "castor_SPA" }, @@ -21150,7 +21150,7 @@ /turf/open/floor/iron/dark/pattern_1, /area/centcom/central_command_areas/hallway) "qKa" = ( -/obj/machinery/fax/castor{ +/obj/machinery/fax/admin/castor{ dir = 1; fax_id = "castor_intern" }, @@ -23657,7 +23657,7 @@ dir = 6 }, /obj/structure/sign/flag/nanotrasen/directional/east, -/obj/machinery/fax/castor{ +/obj/machinery/fax/admin/castor{ dir = 1; fax_id = "castor_SSA" }, @@ -26186,7 +26186,7 @@ /obj/effect/turf_decal/siding/thinplating_new/light{ dir = 1 }, -/obj/machinery/fax/castor{ +/obj/machinery/fax/admin/castor{ dir = 1; fax_id = "castor_SMA" }, @@ -26478,7 +26478,7 @@ /area/centcom/interlink) "vKx" = ( /obj/structure/table/reinforced, -/obj/machinery/fax/castor{ +/obj/machinery/fax/admin/castor{ dir = 1; fax_id = "castor_SEA" }, diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index a248741d1d35..a680a7fce825 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1440,7 +1440,7 @@ if(!check_rights(R_ADMIN)) return - for(var/obj/machinery/fax/FAX as anything in (SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/fax/admin) + SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/fax/castor))) // OCULIS EDIT, ORIGINAL: for(var/obj/machinery/fax/admin/FAX as anything in SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/fax/admin)) + for(var/obj/machinery/fax/admin/FAX as anything in SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/fax/admin)) if(FAX.fax_id != href_list["destination"]) continue FAX.receive(locate(href_list["print_fax"]), href_list["sender_name"]) diff --git a/code/modules/paperwork/fax.dm b/code/modules/paperwork/fax.dm index 11faf4c0c832..d55632a87a8e 100644 --- a/code/modules/paperwork/fax.dm +++ b/code/modules/paperwork/fax.dm @@ -79,15 +79,31 @@ GLOBAL_VAR_INIT(fax_autoprinting, FALSE) syndicate_network = TRUE return ..() -/obj/machinery/fax/admin +// OCULIS ADDITION START +/obj/machinery/fax/admin/nanotrasen name = "Sectorial Command Fax Machine" +/obj/machinery/fax/admin/nanotrasen/Initialize(mapload) + if (!fax_name) + fax_name = "[GLOB.nt_fax_department]" + if(!fax_id) + fax_id = special_networks["nanotrasen"]["fax_id"] + name = "[fax_name] Fax Machine" + visible_to_network = FALSE + return ..() +// OCULIS ADDITION END + +/obj/machinery/fax/admin + name = "Admin Fax Machine" // OCULIS EDIT, ORIGINAL: name = "Sectorial Command Fax Machine" + /obj/machinery/fax/admin/Initialize(mapload) + /* OCULIS REMOVAL START if (!fax_name) fax_name = "[GLOB.nt_fax_department]" if(!fax_id) fax_id = special_networks["nanotrasen"]["fax_id"] name = "[fax_name] Fax Machine" + OCULIS REMOVAL END */ visible_to_network = FALSE return ..() @@ -326,8 +342,7 @@ GLOBAL_VAR_INIT(fax_autoprinting, FALSE) // OCULIS ADDITION START var/notice_text = "[icon2html(src.icon, GLOB.admins)]FAX REQUEST: [ADMIN_FULLMONTY(usr)]: [span_linkify("sent a fax message from [fax_name]/[fax_id][ADMIN_FLW(src)] to [html_encode(params["name"])]")] [ADMIN_SHOW_PAPER(fax_paper)] [ADMIN_PRINT_FAX(fax_paper, fax_name, params["id"])]" // Find the machine if it exists so we can give the admins a FLW to it - var/fax_machine_types = SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/fax/admin) + SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/fax/castor) - for(var/obj/machinery/fax/FAX as anything in fax_machine_types) + for(var/obj/machinery/fax/admin/FAX as SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/fax/admin)) if(FAX.fax_id != params["id"]) continue notice_text += " [ADMIN_FLW(FAX)]" @@ -344,7 +359,7 @@ GLOBAL_VAR_INIT(fax_autoprinting, FALSE) SEND_SOUND(staff, sound('modular_oculis/modules/fax_sound/sound/fax.ogg')) // OCULIS EDIT, ORIGINAL: SEND_SOUND(staff, sound('sound/misc/server-ready.ogg')) if(GLOB.fax_autoprinting) - for(var/obj/machinery/fax/FAX as anything in fax_machine_types) // OCULIS EDIT, ORIGINAL: for(var/obj/machinery/fax/admin/FAX as anything in SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/fax/admin) + for(var/obj/machinery/fax/admin/FAX as anything in SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/fax/admin)) if(FAX.fax_id != params["id"]) continue FAX.receive(fax_paper, fax_name) diff --git a/code/modules/requests/request_manager.dm b/code/modules/requests/request_manager.dm index 036e61f2048f..8dcb3d6d2a20 100644 --- a/code/modules/requests/request_manager.dm +++ b/code/modules/requests/request_manager.dm @@ -240,7 +240,7 @@ GLOBAL_DATUM_INIT(requests, /datum/request_manager, new) to_chat(usr, "Request doesn't have a paper to print.", confidential = TRUE) return TRUE var/fax_machine_found = FALSE // OCULIS ADDITION - for(var/obj/machinery/fax/FAX as anything in (SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/fax/admin) + SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/fax/castor))) // OCULIS EDIT, ORIGINAL: for(var/obj/machinery/fax/admin/FAX as anything in SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/fax/admin)) + for(var/obj/machinery/fax/admin/FAX as anything in SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/fax/admin)) if(FAX.fax_id != request.additional_information["destination_id"]) continue fax_machine_found = TRUE // OCULIS ADDITION @@ -270,7 +270,7 @@ GLOBAL_DATUM_INIT(requests, /datum/request_manager, new) // OCULIS ADDITION START: fax_flw if("fax_flw") var/fax_machine_found = FALSE - for(var/obj/machinery/fax/FAX as anything in (SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/fax/admin) + SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/fax/castor))) + for(var/obj/machinery/fax/admin/FAX as anything in SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/fax/admin)) if(FAX.fax_id != request.additional_information["destination_id"]) continue fax_machine_found = TRUE diff --git a/modular_oculis/master_files/code/modules/paperwork/fax.dm b/modular_oculis/master_files/code/modules/paperwork/fax.dm index a9d41bbcfa98..4160f65186ed 100644 --- a/modular_oculis/master_files/code/modules/paperwork/fax.dm +++ b/modular_oculis/master_files/code/modules/paperwork/fax.dm @@ -14,10 +14,10 @@ return ..() // Separate from the /admin type, to not collide with the conficting init. Requires a fax_id specified when mapping! -/obj/machinery/fax/castor +/obj/machinery/fax/admin/castor name = "Castor Fax Machine" -/obj/machinery/fax/castor/Initialize(mapload) +/obj/machinery/fax/admin/castor/Initialize(mapload) . = ..() if(!fax_id) return From be90396a3d6f51f06a968a1c2521f80fc2da9bfd Mon Sep 17 00:00:00 2001 From: Shroopy <46693163+Shroopy@users.noreply.github.com> Date: Sun, 14 Jun 2026 15:47:05 -0700 Subject: [PATCH 13/16] fix missing anything in --- code/modules/paperwork/fax.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/paperwork/fax.dm b/code/modules/paperwork/fax.dm index d55632a87a8e..6d7d2a652003 100644 --- a/code/modules/paperwork/fax.dm +++ b/code/modules/paperwork/fax.dm @@ -342,7 +342,7 @@ GLOBAL_VAR_INIT(fax_autoprinting, FALSE) // OCULIS ADDITION START var/notice_text = "[icon2html(src.icon, GLOB.admins)]FAX REQUEST: [ADMIN_FULLMONTY(usr)]: [span_linkify("sent a fax message from [fax_name]/[fax_id][ADMIN_FLW(src)] to [html_encode(params["name"])]")] [ADMIN_SHOW_PAPER(fax_paper)] [ADMIN_PRINT_FAX(fax_paper, fax_name, params["id"])]" // Find the machine if it exists so we can give the admins a FLW to it - for(var/obj/machinery/fax/admin/FAX as SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/fax/admin)) + for(var/obj/machinery/fax/admin/FAX as anything in SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/fax/admin)) if(FAX.fax_id != params["id"]) continue notice_text += " [ADMIN_FLW(FAX)]" From f6122c50be583be809c35221d42707162055e7bc Mon Sep 17 00:00:00 2001 From: Shroopy <46693163+Shroopy@users.noreply.github.com> Date: Sun, 14 Jun 2026 15:50:39 -0700 Subject: [PATCH 14/16] Different way of marking Oculis changes --- code/modules/paperwork/fax.dm | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/code/modules/paperwork/fax.dm b/code/modules/paperwork/fax.dm index 6d7d2a652003..99db23e22496 100644 --- a/code/modules/paperwork/fax.dm +++ b/code/modules/paperwork/fax.dm @@ -79,11 +79,10 @@ GLOBAL_VAR_INIT(fax_autoprinting, FALSE) syndicate_network = TRUE return ..() -// OCULIS ADDITION START -/obj/machinery/fax/admin/nanotrasen +/obj/machinery/fax/admin/nanotrasen // OCULIS EDIT, ORIGINAL: /obj/machinery/fax/admin name = "Sectorial Command Fax Machine" -/obj/machinery/fax/admin/nanotrasen/Initialize(mapload) +/obj/machinery/fax/admin/nanotrasen/Initialize(mapload) // OCULIS EDIT, ORIGINAL: /obj/machinery/fax/admin/Initialize(mapload) if (!fax_name) fax_name = "[GLOB.nt_fax_department]" if(!fax_id) @@ -91,21 +90,15 @@ GLOBAL_VAR_INIT(fax_autoprinting, FALSE) name = "[fax_name] Fax Machine" visible_to_network = FALSE return ..() -// OCULIS ADDITION END +// OCULIS ADDITION START /obj/machinery/fax/admin - name = "Admin Fax Machine" // OCULIS EDIT, ORIGINAL: name = "Sectorial Command Fax Machine" + name = "Admin Fax Machine" /obj/machinery/fax/admin/Initialize(mapload) - /* OCULIS REMOVAL START - if (!fax_name) - fax_name = "[GLOB.nt_fax_department]" - if(!fax_id) - fax_id = special_networks["nanotrasen"]["fax_id"] - name = "[fax_name] Fax Machine" - OCULIS REMOVAL END */ visible_to_network = FALSE return ..() +// OCULIS ADDITION END /obj/machinery/fax/Initialize(mapload) . = ..() From f8ef80573307e38c96567ec747fee9aea83b30e2 Mon Sep 17 00:00:00 2001 From: Shroopy <46693163+Shroopy@users.noreply.github.com> Date: Sun, 14 Jun 2026 19:01:51 -0700 Subject: [PATCH 15/16] fix fax_id check --- modular_oculis/master_files/code/modules/paperwork/fax.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modular_oculis/master_files/code/modules/paperwork/fax.dm b/modular_oculis/master_files/code/modules/paperwork/fax.dm index 4160f65186ed..2ba5d8ca8117 100644 --- a/modular_oculis/master_files/code/modules/paperwork/fax.dm +++ b/modular_oculis/master_files/code/modules/paperwork/fax.dm @@ -19,7 +19,7 @@ /obj/machinery/fax/admin/castor/Initialize(mapload) . = ..() - if(!fax_id) + if(!special_networks[fax_id]) return fax_name = special_networks[fax_id]["fax_name"] name = "[fax_name]'s Fax Machine" From 1c98691d825bd2572c156c70cf709bb757d91337 Mon Sep 17 00:00:00 2001 From: Shroopy <46693163+Shroopy@users.noreply.github.com> Date: Sat, 20 Jun 2026 19:43:44 -0700 Subject: [PATCH 16/16] Add EDIT to comments --- code/modules/admin/admin_fax_panel.dm | 4 ++-- code/modules/paperwork/fax.dm | 4 ++-- code/modules/requests/request_manager.dm | 8 ++++---- tgui/packages/tgui/interfaces/RequestManager.tsx | 4 ++-- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/code/modules/admin/admin_fax_panel.dm b/code/modules/admin/admin_fax_panel.dm index dd5357606c00..457b6f24754d 100644 --- a/code/modules/admin/admin_fax_panel.dm +++ b/code/modules/admin/admin_fax_panel.dm @@ -20,8 +20,8 @@ ADMIN_VERB(fax_panel, R_ADMIN, "Fax Panel", "View and respond to faxes sent to C /datum/fax_panel_interface/New() //Get all faxes, and save them to our list. for(var/obj/machinery/fax/fax as anything in SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/fax)) - // if(istype(fax, /obj/machinery/fax/admin)) // OCULIS REMOVAL - may as well be able to send to admin faxes in case that's relevant, right? - // continue // OCULIS REMOVAL + // if(istype(fax, /obj/machinery/fax/admin)) // OCULIS EDIT REMOVAL - may as well be able to send to admin faxes in case that's relevant, right? + // continue // OCULIS EDIT REMOVAL available_faxes += WEAKREF(fax) //Get all stamps diff --git a/code/modules/paperwork/fax.dm b/code/modules/paperwork/fax.dm index 99db23e22496..32d30c252b39 100644 --- a/code/modules/paperwork/fax.dm +++ b/code/modules/paperwork/fax.dm @@ -91,14 +91,14 @@ GLOBAL_VAR_INIT(fax_autoprinting, FALSE) visible_to_network = FALSE return ..() -// OCULIS ADDITION START +// OCULIS EDIT ADDITION START /obj/machinery/fax/admin name = "Admin Fax Machine" /obj/machinery/fax/admin/Initialize(mapload) visible_to_network = FALSE return ..() -// OCULIS ADDITION END +// OCULIS EDIT ADDITION END /obj/machinery/fax/Initialize(mapload) . = ..() diff --git a/code/modules/requests/request_manager.dm b/code/modules/requests/request_manager.dm index 8dcb3d6d2a20..8abd29f8f1f6 100644 --- a/code/modules/requests/request_manager.dm +++ b/code/modules/requests/request_manager.dm @@ -239,18 +239,18 @@ GLOBAL_DATUM_INIT(requests, /datum/request_manager, new) if (request.req_type != REQUEST_FAX) to_chat(usr, "Request doesn't have a paper to print.", confidential = TRUE) return TRUE - var/fax_machine_found = FALSE // OCULIS ADDITION + var/fax_machine_found = FALSE // OCULIS EDIT ADDITION for(var/obj/machinery/fax/admin/FAX as anything in SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/fax/admin)) if(FAX.fax_id != request.additional_information["destination_id"]) continue - fax_machine_found = TRUE // OCULIS ADDITION + fax_machine_found = TRUE // OCULIS EDIT ADDITION var/obj/item/paper/request_message = request.additional_information["paper"] var/sender_name = request.additional_information["sender_name"] FAX.receive(request_message, sender_name) - // OCULIS ADDITION START + // OCULIS EDIT ADDITION START if(!fax_machine_found) to_chat(usr, "Fax machine doesn't exist.", confidential = TRUE) - // OCULIS ADDITION END + // OCULIS EDIT ADDITION END return TRUE // OCULIS EDIT - decreased indentation by one tab from original if ("play") if(request.req_type != REQUEST_INTERNET_SOUND) diff --git a/tgui/packages/tgui/interfaces/RequestManager.tsx b/tgui/packages/tgui/interfaces/RequestManager.tsx index db9efcb3ef78..744c0d0c3723 100644 --- a/tgui/packages/tgui/interfaces/RequestManager.tsx +++ b/tgui/packages/tgui/interfaces/RequestManager.tsx @@ -170,11 +170,11 @@ const RequestControls = (props) => { - {/* OCULIS ADDITION START */} + {/* OCULIS EDIT ADDITION START */} - {/* OCULIS ADDITION END */} + {/* OCULIS EDIT ADDITION END */} )} {request.req_type === 'request_internet_sound' && (