Merge remote-tracking branch 'tgstation/master' into upstream-2025-11-29

# Conflicts:
#	_maps/RandomRuins/SpaceRuins/derelict_sulaco.dmm
#	_maps/RandomRuins/SpaceRuins/garbagetruck2.dmm
#	_maps/map_files/CatwalkStation/CatwalkStation_2023.dmm
#	_maps/map_files/tramstation/tramstation.dmm
#	code/_onclick/hud/new_player.dm
#	code/datums/components/squashable.dm
#	code/datums/diseases/advance/symptoms/heal.dm
#	code/datums/diseases/chronic_illness.dm
#	code/datums/status_effects/buffs.dm
#	code/datums/status_effects/debuffs/drunk.dm
#	code/datums/status_effects/debuffs/stamcrit.dm
#	code/game/machinery/computer/crew.dm
#	code/game/objects/items/devices/scanners/health_analyzer.dm
#	code/game/objects/items/wall_mounted.dm
#	code/game/turfs/closed/indestructible.dm
#	code/modules/admin/view_variables/filterrific.dm
#	code/modules/antagonists/heretic/influences.dm
#	code/modules/cargo/orderconsole.dm
#	code/modules/client/preferences.dm
#	code/modules/events/space_vines/vine_mutations.dm
#	code/modules/mob/dead/new_player/new_player.dm
#	code/modules/mob/living/carbon/human/death.dm
#	code/modules/mob/living/carbon/human/species_types/jellypeople.dm
#	code/modules/mob/living/damage_procs.dm
#	code/modules/mob/living/living.dm
#	code/modules/mob_spawn/ghost_roles/mining_roles.dm
#	code/modules/mob_spawn/mob_spawn.dm
#	code/modules/projectiles/ammunition/energy/laser.dm
#	code/modules/projectiles/guns/ballistic/launchers.dm
#	code/modules/projectiles/guns/energy/laser.dm
#	code/modules/reagents/chemistry/machinery/chem_dispenser.dm
#	code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm
#	code/modules/reagents/chemistry/reagents/drinks/alcohol_reagents.dm
#	code/modules/reagents/chemistry/reagents/medicine_reagents.dm
#	code/modules/surgery/healing.dm
#	code/modules/unit_tests/designs.dm
#	icons/mob/inhands/items_lefthand.dmi
#	icons/mob/inhands/items_righthand.dmi
#	tgui/packages/tgui/interfaces/ChemDispenser.tsx
This commit is contained in:
nevimer
2025-11-29 22:49:21 -05:00
1185 changed files with 39068 additions and 32028 deletions
+7 -5
View File
@@ -129,7 +129,8 @@ ADMIN_VERB_ONLY_CONTEXT_MENU(show_player_panel, R_ADMIN, "Show Player Panel", mo
body += "<A href='byond://?_src_=holder;[HrefToken()];narrateto=[REF(player)]'>Narrate to</A> | "
body += "<A href='byond://?_src_=holder;[HrefToken()];subtlemessage=[REF(player)]'>Subtle message</A> | "
body += "<A href='byond://?_src_=holder;[HrefToken()];playsoundto=[REF(player)]'>Play sound to</A> | "
body += "<A href='byond://?_src_=holder;[HrefToken()];languagemenu=[REF(player)]'>Language Menu</A>"
body += "<A href='byond://?_src_=holder;[HrefToken()];languagemenu=[REF(player)]'>Language Menu</A> | "
body += "<A href='byond://?_src_=holder;[HrefToken()];rpreminder=[REF(player)]'>Roleplay Reminder</A>"
if(player.client)
if(!isnewplayer(player))
@@ -449,8 +450,9 @@ ADMIN_VERB(lag_switch_panel, R_ADMIN, "Show Lag Switches", "Display the controls
user << browse(dat.Join(), "window=lag_switch_panel;size=420x480")
ADMIN_VERB(spawn_panel, R_SPAWN, "Spawn Panel", "Spawn Panel (TGUI).", ADMIN_CATEGORY_GAME)
var/datum/spawnpanel/panel = get_spawnpanel_for_admin(user.mob)
if(panel)
panel.ui_interact(user.mob)
var/datum/spawnpanel/panel = user.holder.spawn_panel
if(!panel)
panel = new()
user.holder.spawn_panel = panel
panel.ui_interact(user.mob)
BLACKBOX_LOG_ADMIN_VERB("Spawn Panel")
+2 -2
View File
@@ -1,6 +1,6 @@
ADMIN_VERB(toggle_game_debug, R_DEBUG, "Debug-Game", "Toggles game debugging.", ADMIN_CATEGORY_DEBUG)
GLOB.Debug2 = !GLOB.Debug2
var/message = "toggled debugging [(GLOB.Debug2 ? "ON" : "OFF")]"
GLOB.debugging_enabled = !GLOB.debugging_enabled
var/message = "toggled debugging [(GLOB.debugging_enabled ? "ON" : "OFF")]"
message_admins("[key_name_admin(user)] [message].")
log_admin("[key_name(user)] [message].")
BLACKBOX_LOG_ADMIN_VERB("Toggle Debug Two")
@@ -0,0 +1,57 @@
ADMIN_VERB(upload_jukebox_music, R_SERVER, "Jukebox Upload Music", "Upload a valid .ogg file to be accessed via the jukebox.", ADMIN_CATEGORY_SERVER)
var/file = input(user, "Select a .ogg file to upload to the jukebox.") as sound|null
if(!file)
return
// we could theorticly support other sound types but OGG is the better format from what I am aware and I am 100% sure its length is properly fetched.
if(!IS_OGG_FILE(file))
tgui_alert(user, "Invalid file type. Please select an OGG file.", "Loading error", list("Ok"))
return
var/list/track_data = splittext(file, "+")
if(track_data.len < 2)
if(tgui_alert(user, "Your song currently does not have a beat in deciseconds added to its title, e.g: SS13+5.ogg. Continue?", "Confirmation", list("Yes", "No")) != "Yes")
return
if(track_data.len > 2)
tgui_alert(user, "Titles should only have its title and beat in deciseconds, e.g: SS13+5.ogg", "Loading error", list("Ok"))
return
var/clean_name = SANITIZE_FILENAME("[file]")
var/save_path = "[CONFIG_JUKEBOX_SOUNDS][clean_name]"
// Copy uploaded file to the server
fcopy(file, save_path)
message_admins("[key_name_admin(user)] uploaded [clean_name] to the jukebox!")
to_chat(user, span_notice("Successfully uploaded [clean_name]!"))
ADMIN_VERB(browse_jukebox_music, R_SERVER, "Jukebox Browse Music", "Browse music files for moderation.", ADMIN_CATEGORY_SERVER)
var/list/files = flist(CONFIG_JUKEBOX_SOUNDS)
// Filter out things that are not sound files, like the exclude
for(var/thing in files)
if(!IS_SOUND_FILE(thing))
files -= thing
if(!files.len)
to_chat(user, span_warning("No uploaded tracks found."))
return
var/choice = tgui_input_list(user, "Select a track:", "Select Jukebox Music", files)
if(!choice)
return
var/path = "[CONFIG_JUKEBOX_SOUNDS][choice]"
switch(tgui_alert(user, "Play, Delete, or Download?", choice, list("Play", "Delete", "Download")))
if ("Play")
SEND_SOUND(user, sound(path))
if ("Delete")
fdel(path)
var/msg = "[key_name_admin(user)] deleted [choice] from the jukebox!"
message_admins(msg)
log_admin(msg)
SSblackbox.record_feedback("associative", "jukebox_deletion", 1, list("round_id" = "[GLOB.round_id]", "deletor" = "[key_name_admin(user)]", "deleted" = "[choice]"))
if ("Download")
user << ftp(file(path))
else
return
+1 -1
View File
@@ -554,7 +554,7 @@ ADMIN_VERB(secrets, R_NONE, "Secrets", "Abuse harder than you ever have before w
SSblackbox.record_feedback("nested tally", "admin_secrets_fun_used", 1, list("Mass Braindamage"))
for(var/mob/living/carbon/human/human_mob in GLOB.player_list)
to_chat(human_mob, span_bolddanger("You suddenly feel stupid."), confidential = TRUE)
human_mob.adjustOrganLoss(ORGAN_SLOT_BRAIN, 60, 80)
human_mob.adjust_organ_loss(ORGAN_SLOT_BRAIN, 60, 80)
message_admins("[key_name_admin(holder)] made everybody brain damaged")
if("floorlava")
SSweather.run_weather(/datum/weather/floor_is_lava)