/client/proc general_report() set category = "Debug" set name = "Show General Report" if(!master_controller) usr << alert("Master_controller not found.") var/mobs = 0 for(var/mob/M in world) mobs++ var/output = {"GENERAL SYSTEMS REPORT
General Processing Data
# of Machines: [machines.len]
# of Pipe Networks: [pipe_networks.len]
# of Processing Items: [processing_objects.len]
# of Power Nets: [powernets.len]
# of Mobs: [mobs]
"} usr << browse(output,"window=generalreport") //feedback_add_details("admin_verb","SGR") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /* air_report() set category = "Debug" set name = "Show Air Report" if(!master_controller || !air_master) alert(usr,"Master_controller or air_master not found.","Air Report") return 0 var/active_groups = 0 var/inactive_groups = 0 var/active_tiles = 0 for(var/datum/air_group/group in air_master.air_groups) if(group.group_processing) active_groups++ else inactive_groups++ active_tiles += group.members.len var/hotspots = 0 for(var/obj/effect/hotspot/hotspot in world) hotspots++ var/output = {"AIR SYSTEMS REPORT
General Processing Data
# of Groups: [air_master.air_groups.len]
---- Active: [active_groups]
---- Inactive: [inactive_groups]
-------- Tiles: [active_tiles]
# of Active Singletons: [air_master.active_singletons.len]

Special Processing Data
Hotspot Processing: [hotspots]
High Temperature Processing: [air_master.active_super_conductivity.len]
High Pressure Processing: [air_master.high_pressure_delta.len] (not yet implemented)

Geometry Processing Data
Group Rebuild: [air_master.groups_to_rebuild.len]
Tile Update: [air_master.tiles_to_update.len]
"} usr << browse(output,"window=airreport") //feedback_add_details("admin_verb","SAR") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! air_status(turf/target as turf) set category = "Debug" set name = "Display Air Status" if(!isturf(target)) return var/datum/gas_mixture/GM = target.return_air() var/burning = 0 if(istype(target, /turf/simulated)) var/turf/simulated/T = target if(T.active_hotspot) burning = 1 usr << "\blue @[target.x],[target.y] ([GM.group_multiplier]): O:[GM.oxygen] T:[GM.toxins] N:[GM.nitrogen] C:[GM.carbon_dioxide] w [GM.temperature] Kelvin, [GM.return_pressure()] kPa [(burning)?("\red BURNING"):(null)]" for(var/datum/gas/trace_gas in GM.trace_gases) usr << "[trace_gas.type]: [trace_gas.moles]" //feedback_add_details("admin_verb","DAST") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! */ fix_next_move() set category = "Debug" set name = "Unfreeze Everyone" var/largest_move_time = 0 var/largest_click_time = 0 var/mob/largest_move_mob = null var/mob/largest_click_mob = null for(var/mob/M in world) if(!M.client) continue if(M.next_move >= largest_move_time) largest_move_mob = M if(M.next_move > world.time) largest_move_time = M.next_move - world.time else largest_move_time = 1 if(M.lastDblClick >= largest_click_time) largest_click_mob = M if(M.lastDblClick > world.time) largest_click_time = M.lastDblClick - world.time else largest_click_time = 0 log_admin("DEBUG: [key_name(M)] next_move = [M.next_move] lastDblClick = [M.lastDblClick] world.time = [world.time]") M.next_move = 1 M.lastDblClick = 0 message_admins("[key_name_admin(largest_move_mob)] had the largest move delay with [largest_move_time] frames / [largest_move_time/10] seconds!", 1) message_admins("[key_name_admin(largest_click_mob)] had the largest click delay with [largest_click_time] frames / [largest_click_time/10] seconds!", 1) message_admins("world.time = [world.time]", 1) //feedback_add_details("admin_verb","UFE") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! return radio_report() set category = "Debug" set name = "Radio report" var/filters = list( "1" = "RADIO_TO_AIRALARM", "2" = "RADIO_FROM_AIRALARM", "3" = "RADIO_CHAT", "4" = "RADIO_ATMOSIA", "5" = "RADIO_NAVBEACONS", "6" = "RADIO_AIRLOCK", "7" = "RADIO_SECBOT", "8" = "RADIO_MULEBOT", "_default" = "NO_FILTER" ) var/output = "Radio Report
" for (var/fq in radio_controller.frequencies) output += "Freq: [fq]
" var/list/datum/radio_frequency/fqs = radio_controller.frequencies[fq] if (!fqs) output += "  ERROR
" continue for (var/filter in fqs.devices) var/list/f = fqs.devices[filter] if (!f) output += "  [filters[filter]]: ERROR
" continue output += "  [filters[filter]]: [f.len]
" for (var/device in f) if (isobj(device)) output += "    [device] ([device:x],[device:y],[device:z] in area [get_area(device:loc)])
" else output += "    [device]
" usr << browse(output,"window=radioreport") //feedback_add_details("admin_verb","RR") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! reload_admins() set name = "Reload Admins" set category = "Debug" if(!(usr.client.holder && usr.client.holder.level >= 6)) // protect and prevent usr << "\red Not a good cop" return message_admins("[usr] manually reloaded admins.txt") usr << "You reload admins.txt" var/text = file2text("config/admins.txt") if (!text) diary << "Failed to reload config/admins.txt\n" else var/list/lines = dd_text2list(text, "\n") for(var/line in lines) if (!line) continue if (copytext(line, 1, 2) == ";") continue var/pos = findtext(line, " - ", 1, null) if (pos) var/m_key = copytext(line, 1, pos) var/a_lev = copytext(line, pos + 3, length(line) + 1) admins[m_key] = a_lev diary << ("ADMIN: [m_key] = [a_lev]") //feedback_add_details("admin_verb","RLDA") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /*jump_to_dead_group() set name = "Jump to dead group" set category = "Debug" if(!holder) src << "Only administrators may use this command." return if(!air_master) usr << "Cannot find air_system" return var/datum/air_group/dead_groups = list() for(var/datum/air_group/group in air_master.air_groups) if (!group.group_processing) dead_groups += group var/datum/air_group/dest_group = pick(dead_groups) usr.loc = pick(dest_group.members) //feedback_add_details("admin_verb","JDAG") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! return kill_airgroup() set name = "Kill Local Airgroup" set desc = "Use this to allow manual manipulation of atmospherics." set category = "Debug" if(!holder) src << "Only administrators may use this command." return if(!air_master) usr << "Cannot find air_system" return var/turf/T = get_turf(usr) if(istype(T, /turf/simulated)) var/datum/air_group/AG = T:parent AG.group_processing = 0 else usr << "Local airgroup is unsimulated!" //feedback_add_details("admin_verb","KLAG") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! */ tension_report() set category = "Debug" set name = "Show Tension Report" if(!master_controller || !tension_master) alert(usr,"Master_controller or tension_master not found.","Tension Report") return 0 if (!tension_master.get_num_players()) alert(usr,"No players found. How the fuck are you calling this?","Tension Report") return 0 var/numghosts = 0 for(var/mob/dead/observer/theghost in world) numghosts ++ var/output = {"TENSION REPORT
General Statistics
Deaths: [tension_master.deaths]
---- Humans: [tension_master.human_deaths]
Explosions: [tension_master.explosions]
Air alarms: [tension_master.air_alarms]
Adminhelps: [tension_master.adminhelps]
Ghosts: [numghosts]

Current Status
Tension: [tension_master.score]
Increase Tension by 50000
Tension per player: [tension_master.score/tension_master.get_num_players()]
Tensioner Debug Data: R1:[tension_master.round1] R2:[tension_master.round2] R3:[tension_master.round3] R4:[tension_master.round4] ES: [tension_master.eversupressed] CD: [tension_master.cooldown]
Current Tensioner Status: [config.Tensioner_Active]. Toggle?
Recommendations: All the modes. All of them. Press all of them.

Make Tratiors
Make Changlings
Make Revs
Make Wizard (Requires Ghosts)
Make Cult
Make Nuke Team (Requires Ghosts)
Make Malf AI
Make Space Ninja (Requires Ghosts)
Make Aliens (Requires Ghosts)
Make Deathsquad (Syndicate) (Requires Ghosts)
Make Deathsquad (Borg) (Requires Ghosts)

"} for(var/game in tension_master.antagonistmodes) output += "Points required/Probability for [game]: [tension_master.antagonistmodes[game]]
" usr << browse(output,"window=tensionreport;size=480x480") feedback_add_details("admin_verb","STR") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!