/client/proc/hide_most_verbs()//Allows you to keep some functionality while hiding some verbs set name = "Adminverbs - Hide Most" set category = "Admin" verbs.Remove(/client/proc/hide_most_verbs, admin_verbs_hideable) verbs += /client/proc/show_verbs src << "Most of your adminverbs have been hidden." feedback_add_details("admin_verb","HMV") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! return /client/proc/hide_verbs() set name = "Adminverbs - Hide All" set category = "Admin" remove_admin_verbs() verbs += /client/proc/show_verbs src << "Almost all of your adminverbs have been hidden." feedback_add_details("admin_verb","TAVVH") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! return /client/proc/show_verbs() set name = "Adminverbs - Show" set category = "Admin" verbs -= /client/proc/show_verbs add_admin_verbs() src << "All of your adminverbs are now visible." feedback_add_details("admin_verb","TAVVS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/admin_ghost() set category = "Admin" set name = "Aghost" if(!holder) return if(istype(mob,/mob/dead/observer)) //re-enter var/mob/dead/observer/ghost = mob // if(!is_mentor(usr.client)) // ghost.can_reenter_corpse = 1 if(ghost.can_reenter_corpse) ghost.reenter_corpse() else ghost << "Error: Aghost: Can't reenter corpse, mentors that use adminHUD while aghosting are not permitted to enter their corpse again" return feedback_add_details("admin_verb","P") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! else if(istype(mob,/mob/new_player)) src << "Error: Aghost: Can't admin-ghost whilst in the lobby. Join or Observe first." else //first lets see if this works if(!holder.original_mob) holder.original_mob = mob //ghostize var/mob/body = mob body.ghostize(1) if(body && !body.key) body.key = "@[key]" //Haaaaaaaack. But the people have spoken. If it breaks; blame adminbus feedback_add_details("admin_verb","O") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/invisimin() set name = "Invisimin" set category = "Admin" set desc = "Toggles ghost-like invisibility (Don't abuse this)" if(holder && mob) if(mob.invisibility == INVISIBILITY_OBSERVER) mob.invisibility = initial(mob.invisibility) mob << "\red Invisimin off. Invisibility reset." mob.alpha = max(mob.alpha + 100, 255) else mob.invisibility = INVISIBILITY_OBSERVER mob << "\blue Invisimin on. You are now as invisible as a ghost." mob.alpha = max(mob.alpha - 100, 0) /client/proc/player_panel() set name = "Player Panel" set category = "Admin" if(holder) holder.player_panel_old() feedback_add_details("admin_verb","PP") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! return /client/proc/player_panel_new() set name = "Player Panel New" set category = "Admin" if(holder) holder.player_panel_new() feedback_add_details("admin_verb","PPN") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! return /client/proc/check_antagonists() set name = "Check Antagonists" set category = "Admin" if(holder) holder.check_antagonists() log_admin("[key_name(usr)] checked antagonists.") //for tsar~ feedback_add_details("admin_verb","CHA") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! return /client/proc/jobbans() set name = "Display Job bans" set category = "Admin" if(holder) if(config.ban_legacy_system) holder.Jobbans() else holder.DB_ban_panel() feedback_add_details("admin_verb","VJB") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! return /client/proc/unban_panel() set name = "Unban Panel" set category = "Admin" if(holder) if(config.ban_legacy_system) holder.unbanpanel() else holder.DB_ban_panel() feedback_add_details("admin_verb","UBP") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! return /client/proc/game_panel() set name = "Game Panel" set category = "Admin" if(holder) holder.Game() feedback_add_details("admin_verb","GP") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! return /client/proc/secrets() set name = "Secrets" set category = "Admin" if (holder) holder.Secrets() feedback_add_details("admin_verb","S") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! return /client/proc/colorooc() set category = "Fun" set name = "OOC Text Color" if(!holder) return var/new_ooccolor = input(src, "Please select your OOC colour.", "OOC colour") as color|null if(new_ooccolor) prefs.ooccolor = new_ooccolor prefs.save_preferences() feedback_add_details("admin_verb","OC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! return /client/proc/stealth() set category = "Admin" set name = "Stealth Mode" if(holder) if(holder.fakekey) holder.fakekey = null else var/new_key = ckeyEx(input("Enter your desired display name.", "Fake Key", key) as text|null) if(!new_key) return if(length(new_key) >= 26) new_key = copytext(new_key, 1, 26) holder.fakekey = new_key log_admin("[key_name(usr)] has turned stealth mode [holder.fakekey ? "ON" : "OFF"]") message_admins("[key_name_admin(usr)] has turned stealth mode [holder.fakekey ? "ON" : "OFF"]", 1) feedback_add_details("admin_verb","SM") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/drop_bomb() // Some admin dickery that can probably be done better -- TLE set category = "Special Verbs" set name = "Drop Bomb" set desc = "Cause an explosion of varying strength at your location." var/turf/epicenter = mob.loc var/list/choices = list("Small Bomb", "Medium Bomb", "Big Bomb", "Custom Bomb") var/choice = input("What size explosion would you like to produce?") in choices switch(choice) if(null) return 0 if("Small Bomb") explosion(epicenter, 1, 2, 3, 3) if("Medium Bomb") explosion(epicenter, 2, 3, 4, 4) if("Big Bomb") explosion(epicenter, 3, 5, 7, 5) if("Custom Bomb") var/devastation_range = input("Devastation range (in tiles):") as num var/heavy_impact_range = input("Heavy impact range (in tiles):") as num var/light_impact_range = input("Light impact range (in tiles):") as num var/flash_range = input("Flash range (in tiles):") as num explosion(epicenter, devastation_range, heavy_impact_range, light_impact_range, flash_range) message_admins("\blue [ckey] creating an admin explosion at [epicenter.loc].") feedback_add_details("admin_verb","DB") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/give_spell(mob/T as mob in mob_list) // -- Urist set category = "Fun" set name = "Give Spell" set desc = "Gives a spell to a mob." var/list/spell_names = list() for(var/v in spells) // "/obj/effect/proc_holder/spell/" 30 symbols ~Intercross21 spell_names.Add(copytext("[v]", 31, 0)) var/S = input("Choose the spell to give to that guy", "ABRAKADABRA") as null|anything in spell_names if(!S) return var/path = text2path("/obj/effect/proc_holder/spell/[S]") T.spell_list += new path feedback_add_details("admin_verb","GS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! log_admin("[key_name(usr)] gave [key_name(T)] the spell [S].") message_admins("\blue [key_name_admin(usr)] gave [key_name(T)] the spell [S].", 1) /client/proc/give_disease(mob/T as mob in mob_list) // -- Giacom set category = "Fun" set name = "Give Disease (old)" set desc = "Gives a (tg-style) Disease to a mob." var/list/disease_names = list() for(var/v in diseases) // "/datum/disease/" 15 symbols ~Intercross disease_names.Add(copytext("[v]", 16, 0)) var/datum/disease/D = input("Choose the disease to give to that guy", "ACHOO") as null|anything in disease_names if(!D) return var/path = text2path("/datum/disease/[D]") T.contract_disease(new path, 1) feedback_add_details("admin_verb","GD") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! log_admin("[key_name(usr)] gave [key_name(T)] the disease [D].") message_admins("\blue [key_name_admin(usr)] gave [key_name(T)] the disease [D].", 1) /client/proc/give_disease2(mob/T as mob in mob_list) // -- Giacom set category = "Fun" set name = "Give Disease" set desc = "Gives a Disease to a mob." var/datum/disease2/disease/D = new /datum/disease2/disease() var/greater = ((input("Is this a lesser or greater disease?", "Give Disease") in list("Lesser", "Greater")) == "Greater") D.makerandom(greater) if (!greater) D.infectionchance = 1 D.infectionchance = input("How virulent is this disease? (1-100)", "Give Disease", D.infectionchance) as num if(istype(T,/mob/living/carbon/human)) var/mob/living/carbon/human/H = T if (H.species) D.affected_species = list(H.species.name) if(istype(T,/mob/living/carbon/monkey)) var/mob/living/carbon/monkey/M = T D.affected_species = list(M.greaterform) infect_virus2(T,D,1) feedback_add_details("admin_verb","GD2") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! log_admin("[key_name(usr)] gave [key_name(T)] a [(greater)? "greater":"lesser"] disease2 with infection chance [D.infectionchance].") message_admins("\blue [key_name_admin(usr)] gave [key_name(T)] a [(greater)? "greater":"lesser"] disease2 with infection chance [D.infectionchance].", 1) /client/proc/make_sound(var/obj/O in world) // -- TLE set category = "Special Verbs" set name = "Make Sound" set desc = "Display a message to everyone who can hear the target" if(O) var/message = input("What do you want the message to be?", "Make Sound") as text|null if(!message) return for (var/mob/V in hearers(O)) V.show_message(message, 2) log_admin("[key_name(usr)] made [O] at [O.x], [O.y], [O.z]. make a sound ([message])") message_admins("\blue [key_name_admin(usr)] made [O] at [O.x], [O.y], [O.z]. make a sound ([message])", 1) feedback_add_details("admin_verb","MS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/make_area_sound(var/turf/T in world) // -- TLE set category = "Special Verbs" set name = "Make Area Sound" set desc = "Display a message to everyone in the area (Experimental)" if(T) var/message = input("What do you want the message to be?", "Make Area Sound (Experimental)") as text|null if(!message) return var/area/A = get_area(T) if(!A == A.master) A = A.master for(var/area/SubA in A.related) for (var/mob/V in SubA) V.show_message(message, 2) log_admin("[key_name(usr)] made [A.name] make a sound ([message])") message_admins("\blue [key_name_admin(usr)] made [A.name] make a sound ([message])", 1) feedback_add_details("admin_verb","MAS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/togglebuildmodeself() set name = "Toggle Build Mode Self" set category = "Special Verbs" if(src.mob) togglebuildmode(src.mob) feedback_add_details("admin_verb","TBMS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/object_talk(var/msg as text) // -- TLE set category = "Special Verbs" set name = "oSay" set desc = "Display a message to everyone who can hear the target" if(mob.control_object) if(!msg) return for (var/mob/V in hearers(mob.control_object)) V.show_message("[mob.control_object.name] says: \"" + msg + "\"", 2) feedback_add_details("admin_verb","OT") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/kill_air() // -- TLE set category = "Debug" set name = "Kill Air" set desc = "Toggle Air Processing" if(air_processing_killed) air_processing_killed = 0 usr << "Enabled air processing." else air_processing_killed = 1 usr << "Disabled air processing." feedback_add_details("admin_verb","KA") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! log_admin("[key_name(usr)] used 'kill air'.") message_admins("\blue [key_name_admin(usr)] used 'kill air'.", 1) /client/proc/deadmin_self() set name = "De-admin self" set category = "Admin" if(holder) if(alert("Confirm self-deadmin for the round? You can't re-admin yourself without someont promoting you.",,"Yes","No") == "Yes") log_admin("[src] deadmined themself.") message_admins("[src] deadmined themself.", 1) deadmin() src << "You are now a normal player." feedback_add_details("admin_verb","DAS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/toggle_log_hrefs() set name = "Toggle href logging" set category = "Server" if(!holder) return if(config) if(config.log_hrefs) config.log_hrefs = 0 src << "Stopped logging hrefs" else config.log_hrefs = 1 src << "Started logging hrefs" /client/proc/check_ai_laws() set name = "Check AI Laws" set category = "Admin" if(holder) src.holder.output_ai_laws() //---- bs12 verbs ---- /client/proc/mod_panel() set name = "Moderator Panel" set category = "Admin" /* if(holder) holder.mod_panel()*/ // feedback_add_details("admin_verb","MP") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! return /client/proc/editappear(mob/living/carbon/human/M as mob in world) set name = "Edit Appearance" set category = "Fun" if(!check_rights(R_FUN)) return if(!istype(M, /mob/living/carbon/human)) usr << "\red You can only do this to humans!" return switch(alert("Are you sure you wish to edit this mob's appearance? Skrell, Unathi, Vox and Tajaran can result in unintended consequences.",,"Yes","No")) if("No") return var/new_facial = input("Please select facial hair color.", "Character Generation") as color if(new_facial) M.r_facial = hex2num(copytext(new_facial, 2, 4)) M.g_facial = hex2num(copytext(new_facial, 4, 6)) M.b_facial = hex2num(copytext(new_facial, 6, 8)) var/new_hair = input("Please select hair color.", "Character Generation") as color if(new_facial) M.r_hair = hex2num(copytext(new_hair, 2, 4)) M.g_hair = hex2num(copytext(new_hair, 4, 6)) M.b_hair = hex2num(copytext(new_hair, 6, 8)) var/new_eyes = input("Please select eye color.", "Character Generation") as color if(new_eyes) M.r_eyes = hex2num(copytext(new_eyes, 2, 4)) M.g_eyes = hex2num(copytext(new_eyes, 4, 6)) M.b_eyes = hex2num(copytext(new_eyes, 6, 8)) var/new_skin = input("Please select body color. This is for Tajaran, Unathi, and Skrell only!", "Character Generation") as color if(new_skin) M.r_skin = hex2num(copytext(new_skin, 2, 4)) M.g_skin = hex2num(copytext(new_skin, 4, 6)) M.b_skin = hex2num(copytext(new_skin, 6, 8)) var/new_tone = input("Please select skin tone level: 1-220 (1=albino, 35=caucasian, 150=black, 220='very' black)", "Character Generation") as text if (new_tone) M.s_tone = max(min(round(text2num(new_tone)), 220), 1) M.s_tone = -M.s_tone + 35 // hair var/new_hstyle = input(usr, "Select a hair style", "Grooming") as null|anything in hair_styles_list if(new_hstyle) M.h_style = new_hstyle // facial hair var/new_fstyle = input(usr, "Select a facial hair style", "Grooming") as null|anything in facial_hair_styles_list if(new_fstyle) M.f_style = new_fstyle var/new_gender = alert(usr, "Please select gender.", "Character Generation", "Male", "Female") if (new_gender) if(new_gender == "Male") M.gender = MALE else M.gender = FEMALE M.update_hair() M.update_body() M.check_dna(M) /client/proc/playernotes() set name = "Show Player Info" set category = "Admin" if(!check_rights(R_ADMIN|R_MOD)) return if(holder) holder.PlayerNotes() return /client/proc/free_slot() set name = "Free Job Slot" set category = "Admin" if(holder) var/list/jobs = list() for (var/datum/job/J in job_master.occupations) if (J.current_positions >= J.total_positions && J.total_positions != -1) jobs += J.title if (!jobs.len) usr << "There are no fully staffed jobs." return var/job = input("Please select job slot to free", "Free job slot") as null|anything in jobs if (job) job_master.FreeRole(job) return /client/proc/toggleattacklogs() set name = "Toggle Attack Log Messages" set category = "Preferences" prefs.toggles ^= CHAT_ATTACKLOGS if (prefs.toggles & CHAT_ATTACKLOGS) usr << "You now will get attack log messages" else usr << "You now won't get attack log messages" /client/proc/toggleghostwriters() set name = "Toggle ghost writers" set category = "Server" if(!holder) return if(config) if(config.cult_ghostwriter) config.cult_ghostwriter = 0 src << "Disallowed ghost writers." message_admins("Admin [key_name_admin(usr)] has disabled ghost writers.", 1) else config.cult_ghostwriter = 1 src << "Enabled ghost writers." message_admins("Admin [key_name_admin(usr)] has enabled ghost writers.", 1) /client/proc/toggledrones() set name = "Toggle maintenance drones" set category = "Server" if(!holder) return if(config) if(config.allow_drone_spawn) config.allow_drone_spawn = 0 src << "Disallowed maint drones." message_admins("Admin [key_name_admin(usr)] has disabled maint drones.", 1) else config.allow_drone_spawn = 1 src << "Enabled maint drones." message_admins("Admin [key_name_admin(usr)] has enabled maint drones.", 1) /client/proc/toggledebuglogs() set name = "Toggle Debug Log Messages" set category = "Preferences" prefs.toggles ^= CHAT_DEBUGLOGS if (prefs.toggles & CHAT_DEBUGLOGS) usr << "You now will get debug log messages" else usr << "You now won't get debug log messages" /client/proc/man_up(mob/T as mob in mob_list) set category = "Fun" set name = "Man Up" set desc = "Tells mob to man up and deal with it." if(!check_rights(R_ADMIN)) return T << "Man up and deal with it." T << "Move on." log_admin("[key_name(usr)] told [key_name(T)] to man up and deal with it.") message_admins("\blue [key_name_admin(usr)] told [key_name(T)] to man up and deal with it.", 1) /client/proc/global_man_up() set category = "Fun" set name = "Man Up Global" set desc = "Tells everyone to man up and deal with it." if(!check_rights(R_ADMIN)) return for (var/mob/T as mob in mob_list) T << "
Man up.
Deal with it.

Move on.

" T << 'sound/voice/ManUp1.ogg' log_admin("[key_name(usr)] told everyone to man up and deal with it.") message_admins("\blue [key_name_admin(usr)] told everyone to man up and deal with it.", 1) /client/proc/alertlevels() set category = "Admin" set name = "Alert Levels" set desc = "Changing alert levels haven't been easier." var/list/L = list( "Green", "Blue", "Red", "Delta", "Cancel", ) var/current_level = get_security_level() var/input = input("Select the alert level.", "Alert Level -( [current_level] )", null, null) in L if(!input) return switch(input) if("Cancel") return if("Green") set_security_level(SEC_LEVEL_GREEN) if("Blue") set_security_level(SEC_LEVEL_BLUE) if("Red") set_security_level(SEC_LEVEL_RED) if("Delta") if (alert(usr, "Everyone will die, there is no cancelling yet.", "Are you sure you want Code Delta?", "Yes", "No") != "Yes") //Confirmation box incase of miss-clicks return set_security_level(SEC_LEVEL_DELTA) delta_level:active = 1 delta_level.activate() //SoundScopes extra messages, most of which will be almost useless >_> /client/proc/togglescopeslogs() set name = "Toggle Scopes Debug" set category = "Preferences" set desc = "SoundScopes Advanced debug logs, this will create spam for yourself" if(!check_rights(R_DEV)) return if(!check_rights(R_ADMIN)) return prefs.toggles ^= CHAT_SCOPES_DEBUG if (prefs.toggles & CHAT_SCOPES_DEBUG) usr << "You now will get advanced debug logs" else usr << "You now won't get advanced debug logs" /client/proc/cleartox() set category = "Special Verbs" set name = "Clear Toxin/Fire in Zone" if(!check_rights(R_ADMIN)) return var/datum/gas_mixture/environment = usr.loc.return_air() environment.gas["toxins"] = 0 environment.gas["nitrogen"] = 82.1472 environment.gas["oxygen"] = 21.8366 environment.gas["carbon_dioxide"] = 0 environment.gas["sleeping_agent"] = 0 environment.gas["oxygen_agent_b"] = 0 environment.temperature = 293.15 environment.update_values() var/turf/simulated/location = get_turf(usr) if(location.zone) for(var/turf/T in location.zone.contents) for(var/obj/fire/F in T.contents) del(F) for(var/obj/fire/FF in world) del(FF) /client/proc/fillspace() set category = "Special Verbs" set name = "Fill Space with floor" if(!check_rights(R_DEBUG)) return if (alert(usr, "This will break everything if done in space", "Fill Space with floor?", "Yes", "No") != "Yes") //Confirmation box incase of miss-clicks return if (alert(usr, "Seriously not in a space area", "Fill Space with floor?", "Yes", "No") != "Yes") //Confirmation box incase of miss-clicks return var/area/location = get_turf(usr) var/area/A = location.loc A = A.master if(A.name != "Space") for(var/turf/space/S in location.loc) S.ChangeTurf(/turf/simulated/floor/plating) if(A.name == "Space") for(var/turf/space/S in range(2,usr)) S.ChangeTurf(/turf/simulated/floor/plating) /client/proc/hide_activity() set category = "Preferences" set name = "Hide Var Edits" set desc = "Hide Var edit logs from devs" if(!check_rights(R_DEBUG)) holder.hide_activity = 0 return if(holder) holder.hide_activity = !holder.hide_activity if (holder.hide_activity) usr << "Your varedits will now be hidden from developers" else usr << "Your varedits will now be shown to developers" return /client/proc/toggle_visibily() set category = "Server" set name = "Toggle Hub Visibility" set desc = "Toggle between public and hidden" if(!check_rights(R_SERVER|R_STEALTH)) return // var/override // switch (alert(usr, "Do you want this to only affect the current round, or do you want the server to stay [world.visibility ? "hidden" : "public"] until toggled again?",,"Only affect this round.", "Stay as chosen until toggled again.", "Reset override.")) // if ("Only affect this round.") // override = 0 // if ("Stay as chosen until toggled again.") // override = 1 // if ("Reset override.") // world.save_visibility(world.visibility, 0) /// message_admins("[src] has reset the hub [world.visibility ? "public" : "hidden"] override") // return if (alert(usr, "The server is set as [world.visibility ? "public" : "hidden"], do you want to toggle it?",,"Yes","No") == "yes") world.visibility = !world.visibility message_admins("[src] has toggled the hub [world.visibility ? "public" : "hidden"]") world.save_visibility(world.visibility) return