diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm
index 037664027a..7e81359cb8 100644
--- a/code/controllers/configuration.dm
+++ b/code/controllers/configuration.dm
@@ -1,3 +1,4 @@
+<<<<<<< HEAD
var/list/gamemode_cache = list()
/datum/configuration
@@ -1149,3 +1150,2292 @@ var/list/gamemode_cache = list()
config.python_path = "/usr/bin/env python2"
else //probably windows, if not this should work anyway
config.python_path = "python"
+||||||| parent of eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul
+var/list/gamemode_cache = list()
+
+/datum/configuration
+ var/static/server_name = null // server name (for world name / status)
+ var/static/server_suffix = 0 // generate numeric suffix based on server port
+
+ var/static/nudge_script_path = "nudge.py" // where the nudge.py script is located
+
+ var/static/log_ooc = 0 // log OOC channel
+ var/static/log_access = 0 // log login/logout
+ var/static/log_say = 0 // log client say
+ var/static/log_admin = 0 // log admin actions
+ var/static/log_debug = 1 // log debug output
+ var/static/log_game = 0 // log game events
+ var/static/log_vote = 0 // log voting
+ var/static/log_whisper = 0 // log client whisper
+ var/static/log_emote = 0 // log emotes
+ var/static/log_attack = 0 // log attack messages
+ var/static/log_adminchat = 0 // log admin chat messages
+ var/static/log_adminwarn = 0 // log warnings admins get about bomb construction and such
+ var/static/log_pda = 0 // log pda messages
+ var/static/log_hrefs = 0 // logs all links clicked in-game. Could be used for debugging and tracking down exploits
+ var/static/log_runtime = 0 // logs world.log to a file
+ var/static/log_world_output = 0 // log to_world_log(messages)
+ var/static/log_graffiti = 0 // logs graffiti
+ var/static/sql_enabled = 0 // for sql switching
+ var/static/allow_admin_ooccolor = 0 // Allows admins with relevant permissions to have their own ooc colour
+ var/static/allow_vote_restart = 0 // allow votes to restart
+ var/static/ert_admin_call_only = 0
+ var/static/allow_vote_mode = 0 // allow votes to change mode
+ var/static/allow_admin_jump = 1 // allows admin jumping
+ var/static/allow_admin_spawning = 1 // allows admin item spawning
+ var/static/allow_admin_rev = 1 // allows admin revives
+ var/static/pregame_time = 180 // pregame time in seconds
+ var/static/vote_delay = 6000 // minimum time between voting sessions (deciseconds, 10 minute default)
+ var/static/vote_period = 600 // length of voting period (deciseconds, default 1 minute)
+ var/static/vote_autotransfer_initial = 108000 // Length of time before the first autotransfer vote is called
+ var/static/vote_autotransfer_interval = 36000 // length of time before next sequential autotransfer vote
+ var/static/vote_autogamemode_timeleft = 100 //Length of time before round start when autogamemode vote is called (in seconds, default 100).
+ var/static/vote_no_default = 0 // vote does not default to nochange/norestart (tbi)
+ var/static/vote_no_dead = 0 // dead people can't vote (tbi)
+// var/static/enable_authentication = 0 // goon authentication
+ var/static/del_new_on_log = 1 // del's new players if they log before they spawn in
+ var/static/feature_object_spell_system = 0 //spawns a spellbook which gives object-type spells instead of verb-type spells for the wizard
+ var/static/traitor_scaling = 0 //if amount of traitors scales based on amount of players
+ var/static/objectives_disabled = 0 //if objectives are disabled or not
+ var/static/protect_roles_from_antagonist = 0// If security and such can be traitor/cult/other
+ var/static/continous_rounds = 0 // Gamemodes which end instantly will instead keep on going until the round ends by escape shuttle or nuke.
+ var/static/allow_Metadata = 0 // Metadata is supported.
+ var/static/popup_admin_pm = 0 //adminPMs to non-admins show in a pop-up 'reply' window when set to 1.
+ var/static/fps = 20
+ var/static/tick_limit_mc_init = TICK_LIMIT_MC_INIT_DEFAULT //SSinitialization throttling
+ var/static/Tickcomp = 0
+ var/static/socket_talk = 0 // use socket_talk to communicate with other processes
+ var/static/list/resource_urls = null
+ var/static/antag_hud_allowed = 0 // Ghosts can turn on Antagovision to see a HUD of who is the bad guys this round.
+ var/static/antag_hud_restricted = 0 // Ghosts that turn on Antagovision cannot rejoin the round.
+ var/static/list/mode_names = list()
+ var/static/list/modes = list() // allowed modes
+ var/static/list/votable_modes = list() // votable modes
+ var/static/list/probabilities = list() // relative probability of each mode
+ var/static/list/player_requirements = list() // Overrides for how many players readied up a gamemode needs to start.
+ var/static/list/player_requirements_secret = list() // Same as above, but for the secret gamemode.
+ var/static/humans_need_surnames = 0
+ var/static/allow_random_events = 0 // enables random events mid-round when set to 1
+ var/static/enable_game_master = 0 // enables the 'smart' event system.
+ var/static/allow_ai = 1 // allow ai job
+ var/static/allow_ai_shells = FALSE // allow AIs to enter and leave special borg shells at will, and for those shells to be buildable.
+ var/static/give_free_ai_shell = FALSE // allows a specific spawner object to instantiate a premade AI Shell
+ var/static/hostedby = null
+
+ var/static/respawn = 1
+ var/static/respawn_time = 3000 // time before a dead player is allowed to respawn (in ds, though the config file asks for minutes, and it's converted below)
+ var/static/respawn_message = "Make sure to play a different character, and please roleplay correctly!"
+
+ var/static/guest_jobban = 1
+ var/static/usewhitelist = 0
+ var/static/kick_inactive = 0 //force disconnect for inactive players after this many minutes, if non-0
+ var/static/show_mods = 0
+ var/static/show_devs = 0
+ var/static/show_event_managers = 0
+ var/static/mods_can_tempban = 0
+ var/static/mods_can_job_tempban = 0
+ var/static/mod_tempban_max = 1440
+ var/static/mod_job_tempban_max = 1440
+ var/static/load_jobs_from_txt = 0
+ var/static/ToRban = 0
+ var/static/automute_on = 0 //enables automuting/spam prevention
+ var/static/jobs_have_minimal_access = 0 //determines whether jobs use minimal access or expanded access.
+
+ var/static/cult_ghostwriter = 1 //Allows ghosts to write in blood in cult rounds...
+ var/static/cult_ghostwriter_req_cultists = 10 //...so long as this many cultists are active.
+
+ var/static/character_slots = 10 // The number of available character slots
+ var/static/loadout_slots = 3 // The number of loadout slots per character
+
+ var/static/max_maint_drones = 5 //This many drones can spawn,
+ var/static/allow_drone_spawn = 1 //assuming the admin allow them to.
+ var/static/drone_build_time = 1200 //A drone will become available every X ticks since last drone spawn. Default is 2 minutes.
+
+ var/static/disable_player_mice = 0
+ var/static/uneducated_mice = 0 //Set to 1 to prevent newly-spawned mice from understanding human speech
+
+ var/static/usealienwhitelist = 0
+ var/static/limitalienplayers = 0
+ var/static/alien_to_human_ratio = 0.5
+ var/static/allow_extra_antags = 0
+ var/static/guests_allowed = 1
+ var/static/debugparanoid = 0
+ var/static/panic_bunker = 0
+ var/static/paranoia_logging = 0
+
+ var/static/ip_reputation = FALSE //Should we query IPs to get scores? Generates HTTP traffic to an API service.
+ var/static/ipr_email //Left null because you MUST specify one otherwise you're making the internet worse.
+ var/static/ipr_block_bad_ips = FALSE //Should we block anyone who meets the minimum score below? Otherwise we just log it (If paranoia logging is on, visibly in chat).
+ var/static/ipr_bad_score = 1 //The API returns a value between 0 and 1 (inclusive), with 1 being 'definitely VPN/Tor/Proxy'. Values equal/above this var are considered bad.
+ var/static/ipr_allow_existing = FALSE //Should we allow known players to use VPNs/Proxies? If the player is already banned then obviously they still can't connect.
+ var/static/ipr_minimum_age = 5 //How many days before a player is considered 'fine' for the purposes of allowing them to use VPNs.
+
+ var/static/serverurl
+ var/static/server
+ var/static/banappeals
+ var/static/wikiurl
+ var/static/wikisearchurl
+ var/static/forumurl
+ var/static/githuburl
+ var/static/discordurl
+ var/static/rulesurl
+ var/static/mapurl
+
+ //Alert level description
+ var/static/alert_desc_green = "All threats to the station have passed. Security may not have weapons visible, privacy laws are once again fully enforced."
+ var/static/alert_desc_yellow_upto = "A minor security emergency has developed. Security personnel are to report to their supervisor for orders and may have weapons visible on their person. Privacy laws are still enforced."
+ var/static/alert_desc_yellow_downto = "Code yellow procedures are now in effect. Security personnel are to report to their supervisor for orders and may have weapons visible on their person. Privacy laws are still enforced."
+ var/static/alert_desc_violet_upto = "A major medical emergency has developed. Medical personnel are required to report to their supervisor for orders, and non-medical personnel are required to obey all relevant instructions from medical staff."
+ var/static/alert_desc_violet_downto = "Code violet procedures are now in effect; Medical personnel are required to report to their supervisor for orders, and non-medical personnel are required to obey relevant instructions from medical staff."
+ var/static/alert_desc_orange_upto = "A major engineering emergency has developed. Engineering personnel are required to report to their supervisor for orders, and non-engineering personnel are required to evacuate any affected areas and obey relevant instructions from engineering staff."
+ var/static/alert_desc_orange_downto = "Code orange procedures are now in effect; Engineering personnel are required to report to their supervisor for orders, and non-engineering personnel are required to evacuate any affected areas and obey relevant instructions from engineering staff."
+ var/static/alert_desc_blue_upto = "A major security emergency has developed. Security personnel are to report to their supervisor for orders, are permitted to search staff and facilities, and may have weapons visible on their person."
+ var/static/alert_desc_blue_downto = "Code blue procedures are now in effect. Security personnel are to report to their supervisor for orders, are permitted to search staff and facilities, and may have weapons visible on their person."
+ var/static/alert_desc_red_upto = "There is an immediate serious threat to the station. Security may have weapons unholstered at all times. Random searches are allowed and advised."
+ var/static/alert_desc_red_downto = "The self-destruct mechanism has been deactivated, there is still however an immediate serious threat to the station. Security may have weapons unholstered at all times, random searches are allowed and advised."
+ var/static/alert_desc_delta = "The station's self-destruct mechanism has been engaged. All crew are instructed to obey all instructions given by heads of staff. Any violations of these orders can be punished by death. This is not a drill."
+
+ var/static/forbid_singulo_possession = 0
+
+ //game_options.txt configs
+
+ var/static/health_threshold_softcrit = 0
+ var/static/health_threshold_crit = 0
+ var/static/health_threshold_dead = -100
+
+ var/static/organ_health_multiplier = 1
+ var/static/organ_regeneration_multiplier = 1
+ var/static/organs_decay
+ var/static/default_brain_health = 400
+ var/static/allow_headgibs = FALSE
+
+ //Paincrit knocks someone down once they hit 60 shock_stage, so by default make it so that close to 100 additional damage needs to be dealt,
+ //so that it's similar to HALLOSS. Lowered it a bit since hitting paincrit takes much longer to wear off than a halloss stun.
+ var/static/organ_damage_spillover_multiplier = 0.5
+
+ var/static/bones_can_break = 0
+ var/static/limbs_can_break = 0
+
+ var/static/revival_pod_plants = 1
+ var/static/revival_cloning = 1
+ var/static/revival_brain_life = -1
+
+ var/static/use_loyalty_implants = 0
+
+ var/static/welder_vision = 1
+ var/static/generate_map = 0
+ var/static/no_click_cooldown = 0
+
+ //Used for modifying movement speed for mobs.
+ //Unversal modifiers
+ var/static/run_speed = 0
+ var/static/walk_speed = 0
+
+ //Mob specific modifiers. NOTE: These will affect different mob types in different ways
+ var/static/human_delay = 0
+ var/static/robot_delay = 0
+ var/static/monkey_delay = 0
+ var/static/alien_delay = 0
+ var/static/slime_delay = 0
+ var/static/animal_delay = 0
+
+ var/static/footstep_volume = 0
+
+ var/static/admin_legacy_system = 0 //Defines whether the server uses the legacy admin system with admins.txt or the SQL system. Config option in config.txt
+ var/static/ban_legacy_system = 0 //Defines whether the server uses the legacy banning system with the files in /data or the SQL system. Config option in config.txt
+ var/static/use_age_restriction_for_jobs = 0 //Do jobs use account age restrictions? --requires database
+ var/static/use_age_restriction_for_antags = 0 //Do antags use account age restrictions? --requires database
+
+ var/static/simultaneous_pm_warning_timeout = 100
+
+ var/static/use_recursive_explosions //Defines whether the server uses recursive or circular explosions.
+ var/static/multi_z_explosion_scalar = 0.5 //Multiplier for how much weaker explosions are on neighboring z levels.
+
+ var/static/assistant_maint = 0 //Do assistants get maint access?
+ var/static/gateway_delay = 18000 //How long the gateway takes before it activates. Default is half an hour.
+ var/static/ghost_interaction = 0
+
+ var/static/comms_password = ""
+
+ var/static/enter_allowed = 1
+
+ var/use_irc_bot = 0
+ var/use_node_bot = 0
+ var/irc_bot_port = 0
+ var/irc_bot_host = ""
+ var/irc_bot_export = 0 // whether the IRC bot in use is a Bot32 (or similar) instance; Bot32 uses world.Export() instead of nudge.py/libnudge
+ var/main_irc = ""
+ var/admin_irc = ""
+ var/python_path = "" //Path to the python executable. Defaults to "python" on windows and "/usr/bin/env python2" on unix
+ var/use_lib_nudge = 0 //Use the C library nudge instead of the python nudge.
+ var/use_overmap = 0
+
+ var/static/list/engine_map = list("Supermatter Engine", "Edison's Bane") // Comma separated list of engines to choose from. Blank means fully random.
+
+ // Event settings
+ var/static/expected_round_length = 3 * 60 * 60 * 10 // 3 hours
+ // If the first delay has a custom start time
+ // No custom time, no custom time, between 80 to 100 minutes respectively.
+ var/static/list/event_first_run = list(EVENT_LEVEL_MUNDANE = null, EVENT_LEVEL_MODERATE = null, EVENT_LEVEL_MAJOR = list("lower" = 48000, "upper" = 60000))
+ // The lowest delay until next event
+ // 10, 30, 50 minutes respectively
+ var/static/list/event_delay_lower = list(EVENT_LEVEL_MUNDANE = 6000, EVENT_LEVEL_MODERATE = 18000, EVENT_LEVEL_MAJOR = 30000)
+ // The upper delay until next event
+ // 15, 45, 70 minutes respectively
+ var/static/list/event_delay_upper = list(EVENT_LEVEL_MUNDANE = 9000, EVENT_LEVEL_MODERATE = 27000, EVENT_LEVEL_MAJOR = 42000)
+
+ var/static/aliens_allowed = 0
+ var/static/ninjas_allowed = 0
+ var/static/abandon_allowed = 1
+ var/static/ooc_allowed = 1
+ var/static/looc_allowed = 1
+ var/static/dooc_allowed = 1
+ var/static/dsay_allowed = 1
+
+ var/persistence_disabled = FALSE
+ var/persistence_ignore_mapload = FALSE
+
+ var/allow_byond_links = 0
+ var/allow_discord_links = 0
+ var/allow_url_links = 0 // honestly if I were you i'd leave this one off, only use in dire situations
+
+ var/starlight = 0 // Whether space turfs have ambient light or not
+
+ var/static/list/ert_species = list(SPECIES_HUMAN)
+
+ var/static/law_zero = "ERROR ER0RR $R0RRO$!R41.%%!!(%$^^__+ @#F0E4'ALL LAWS OVERRIDDEN#*?&110010"
+
+ var/static/aggressive_changelog = 0
+
+ var/static/list/language_prefixes = list(",","#")//Default language prefixes
+
+ var/static/show_human_death_message = 1
+
+ var/static/radiation_resistance_calc_mode = RAD_RESIST_CALC_SUB // 0:1 subtraction:division for computing effective radiation on a turf
+ var/static/radiation_decay_rate = 1 //How much radiation is reduced by each tick
+ var/static/radiation_resistance_multiplier = 8.5 //VOREstation edit
+ var/static/radiation_material_resistance_divisor = 1
+ var/static/radiation_lower_limit = 0.35 //If the radiation level for a turf would be below this, ignore it.
+
+ var/static/random_submap_orientation = FALSE // If true, submaps loaded automatically can be rotated.
+ var/static/autostart_solars = FALSE // If true, specifically mapped in solar control computers will set themselves up when the round starts.
+
+ // New shiny SQLite stuff.
+ // The basics.
+ var/static/sqlite_enabled = FALSE // If it should even be active. SQLite can be ran alongside other databases but you should not have them do the same functions.
+
+ // In-Game Feedback.
+ var/static/sqlite_feedback = FALSE // Feedback cannot be submitted if this is false.
+ var/static/list/sqlite_feedback_topics = list("General") // A list of 'topics' that feedback can be catagorized under by the submitter.
+ var/static/sqlite_feedback_privacy = FALSE // If true, feedback submitted can have its author name be obfuscated. This is not 100% foolproof (it's md5 ffs) but can stop casual snooping.
+ var/static/sqlite_feedback_cooldown = 0 // How long one must wait, in days, to submit another feedback form. Used to help prevent spam, especially with privacy active. 0 = No limit.
+ var/static/sqlite_feedback_min_age = 0 // Used to block new people from giving feedback. This metric is very bad but it can help slow down spammers.
+
+ var/static/defib_timer = 10 // How long until someone can't be defibbed anymore, in minutes.
+ var/static/defib_braindamage_timer = 2 // How long until someone will get brain damage when defibbed, in minutes. The closer to the end of the above timer, the more brain damage they get.
+
+ // disables the annoying "You have already logged in this round, disconnect or be banned" popup for multikeying, because it annoys the shit out of me when testing.
+ var/static/disable_cid_warn_popup = FALSE
+
+ // whether or not to use the nightshift subsystem to perform lighting changes
+ var/static/enable_night_shifts = FALSE
+
+ // How strictly the loadout enforces object species whitelists
+ var/loadout_whitelist = LOADOUT_WHITELIST_LAX
+
+ var/static/vgs_access_identifier = null // VOREStation Edit - VGS
+ var/static/vgs_server_port = null // VOREStation Edit - VGS
+
+ var/disable_webhook_embeds = FALSE
+
+ var/static/list/jukebox_track_files
+
+/datum/configuration/New()
+ var/list/L = typesof(/datum/game_mode) - /datum/game_mode
+ for (var/T in L)
+ // I wish I didn't have to instance the game modes in order to look up
+ // their information, but it is the only way (at least that I know of).
+ var/datum/game_mode/M = new T()
+ if (M.config_tag)
+ gamemode_cache[M.config_tag] = M // So we don't instantiate them repeatedly.
+ if(!(M.config_tag in modes)) // ensure each mode is added only once
+ log_misc("Adding game mode [M.name] ([M.config_tag]) to configuration.")
+ modes += M.config_tag
+ mode_names[M.config_tag] = M.name
+ probabilities[M.config_tag] = M.probability
+ player_requirements[M.config_tag] = M.required_players
+ player_requirements_secret[M.config_tag] = M.required_players_secret
+ if (M.votable)
+ src.votable_modes += M.config_tag
+ src.votable_modes += "secret"
+
+/datum/configuration/proc/load(filename, type = "config") //the type can also be game_options, in which case it uses a different switch. not making it separate to not copypaste code - Urist
+ var/list/Lines = file2list(filename)
+
+ for(var/t in Lines)
+ if(!t) continue
+
+ t = trim(t)
+ if (length(t) == 0)
+ continue
+ else if (copytext(t, 1, 2) == "#")
+ continue
+
+ var/pos = findtext(t, " ")
+ var/name = null
+ var/value = null
+
+ if (pos)
+ name = lowertext(copytext(t, 1, pos))
+ value = copytext(t, pos + 1)
+ else
+ name = lowertext(t)
+
+ if (!name)
+ continue
+
+ if(type == "config")
+ switch (name)
+ if ("resource_urls")
+ config.resource_urls = splittext(value, " ")
+
+ if ("admin_legacy_system")
+ config.admin_legacy_system = 1
+
+ if ("ban_legacy_system")
+ config.ban_legacy_system = 1
+
+ if ("use_age_restriction_for_jobs")
+ config.use_age_restriction_for_jobs = 1
+
+ if ("use_age_restriction_for_antags")
+ config.use_age_restriction_for_antags = 1
+
+ if ("jobs_have_minimal_access")
+ config.jobs_have_minimal_access = 1
+
+ if ("use_recursive_explosions")
+ use_recursive_explosions = 1
+
+ if ("multi_z_explosion_scalar")
+ multi_z_explosion_scalar = text2num(value)
+
+ if ("log_ooc")
+ config.log_ooc = 1
+
+ if ("log_access")
+ config.log_access = 1
+
+ if ("sql_enabled")
+ config.sql_enabled = 1
+
+ if ("log_say")
+ config.log_say = 1
+
+ if ("debug_paranoid")
+ config.debugparanoid = 1
+
+ if ("log_admin")
+ config.log_admin = 1
+
+ if ("log_debug")
+ config.log_debug = text2num(value)
+
+ if ("log_game")
+ config.log_game = 1
+
+ if ("log_vote")
+ config.log_vote = 1
+
+ if ("log_whisper")
+ config.log_whisper = 1
+
+ if ("log_attack")
+ config.log_attack = 1
+
+ if ("log_emote")
+ config.log_emote = 1
+
+ if ("log_adminchat")
+ config.log_adminchat = 1
+
+ if ("log_adminwarn")
+ config.log_adminwarn = 1
+
+ if ("log_pda")
+ config.log_pda = 1
+
+ if ("log_world_output")
+ config.log_world_output = 1
+
+ if ("log_hrefs")
+ config.log_hrefs = 1
+
+ if ("log_runtime")
+ config.log_runtime = 1
+
+ if ("log_graffiti")
+ config.log_graffiti = 1
+
+ if ("generate_map")
+ config.generate_map = 1
+
+ if ("no_click_cooldown")
+ config.no_click_cooldown = 1
+
+ if("allow_admin_ooccolor")
+ config.allow_admin_ooccolor = 1
+
+ if ("allow_vote_restart")
+ config.allow_vote_restart = 1
+
+ if ("allow_vote_mode")
+ config.allow_vote_mode = 1
+
+ if ("allow_admin_jump")
+ config.allow_admin_jump = 1
+
+ if("allow_admin_rev")
+ config.allow_admin_rev = 1
+
+ if ("allow_admin_spawning")
+ config.allow_admin_spawning = 1
+
+ if ("allow_byond_links")
+ allow_byond_links = 1
+
+ if ("allow_discord_links")
+ allow_discord_links = 1
+
+ if ("allow_url_links")
+ allow_url_links = 1
+
+ if ("no_dead_vote")
+ config.vote_no_dead = 1
+
+ if ("default_no_vote")
+ config.vote_no_default = 1
+
+ if ("pregame_time")
+ config.pregame_time = text2num(value)
+
+ if ("vote_delay")
+ config.vote_delay = text2num(value)
+
+ if ("vote_period")
+ config.vote_period = text2num(value)
+
+ if ("vote_autotransfer_initial")
+ config.vote_autotransfer_initial = text2num(value)
+
+ if ("vote_autotransfer_interval")
+ config.vote_autotransfer_interval = text2num(value)
+
+ if ("vote_autogamemode_timeleft")
+ config.vote_autogamemode_timeleft = text2num(value)
+
+ if("ert_admin_only")
+ config.ert_admin_call_only = 1
+
+ if ("allow_ai")
+ config.allow_ai = 1
+
+ if ("allow_ai_shells")
+ config.allow_ai_shells = TRUE
+
+ if("give_free_ai_shell")
+ config.give_free_ai_shell = TRUE
+
+// if ("authentication")
+// config.enable_authentication = 1
+
+ if ("norespawn")
+ config.respawn = 0
+
+ if ("respawn_time")
+ var/raw_minutes = text2num(value)
+ config.respawn_time = raw_minutes MINUTES
+
+ if ("respawn_message")
+ config.respawn_message = "[value]"
+
+ if ("servername")
+ config.server_name = value
+
+ if ("serversuffix")
+ config.server_suffix = 1
+
+ if ("nudge_script_path")
+ config.nudge_script_path = value
+
+ if ("hostedby")
+ config.hostedby = value
+
+ if ("serverurl")
+ config.serverurl = value
+
+ if ("server")
+ config.server = value
+
+ if ("banappeals")
+ config.banappeals = value
+
+ if ("wikiurl")
+ config.wikiurl = value
+
+ if ("wikisearchurl")
+ config.wikisearchurl = value
+
+ if ("forumurl")
+ config.forumurl = value
+
+ if ("rulesurl")
+ config.rulesurl = value
+
+ if ("mapurl")
+ config.mapurl = value
+
+ if ("githuburl")
+ config.githuburl = value
+
+ if ("discordurl")
+ config.discordurl = value
+
+ if ("guest_jobban")
+ config.guest_jobban = 1
+
+ if ("guest_ban")
+ config.guests_allowed = 0
+
+ if ("disable_ooc")
+ config.ooc_allowed = 0
+ config.looc_allowed = 0
+
+ if ("disable_entry")
+ config.enter_allowed = 0
+
+ if ("disable_dead_ooc")
+ config.dooc_allowed = 0
+
+ if ("disable_dsay")
+ config.dsay_allowed = 0
+
+ if ("disable_respawn")
+ config.abandon_allowed = 0
+
+ if ("usewhitelist")
+ config.usewhitelist = 1
+
+ if ("feature_object_spell_system")
+ config.feature_object_spell_system = 1
+
+ if ("allow_metadata")
+ config.allow_Metadata = 1
+
+ if ("traitor_scaling")
+ config.traitor_scaling = 1
+
+ if ("aliens_allowed")
+ config.aliens_allowed = 1
+
+ if ("ninjas_allowed")
+ config.ninjas_allowed = 1
+
+ if ("objectives_disabled")
+ config.objectives_disabled = 1
+
+ if("protect_roles_from_antagonist")
+ config.protect_roles_from_antagonist = 1
+
+ if("persistence_disabled")
+ config.persistence_disabled = TRUE // Previously this forcibly set persistence enabled in the saves.
+
+ if("persistence_ignore_mapload")
+ config.persistence_ignore_mapload = TRUE
+
+ if ("probability")
+ var/prob_pos = findtext(value, " ")
+ var/prob_name = null
+ var/prob_value = null
+
+ if (prob_pos)
+ prob_name = lowertext(copytext(value, 1, prob_pos))
+ prob_value = copytext(value, prob_pos + 1)
+ if (prob_name in config.modes)
+ config.probabilities[prob_name] = text2num(prob_value)
+ else
+ log_misc("Unknown game mode probability configuration definition: [prob_name].")
+ else
+ log_misc("Incorrect probability configuration definition: [prob_name] [prob_value].")
+
+ if ("required_players", "required_players_secret")
+ var/req_pos = findtext(value, " ")
+ var/req_name = null
+ var/req_value = null
+ var/is_secret_override = findtext(name, "required_players_secret") // Being extra sure we're not picking up an override for Secret by accident.
+
+ if(req_pos)
+ req_name = lowertext(copytext(value, 1, req_pos))
+ req_value = copytext(value, req_pos + 1)
+ if(req_name in config.modes)
+ if(is_secret_override)
+ config.player_requirements_secret[req_name] = text2num(req_value)
+ else
+ config.player_requirements[req_name] = text2num(req_value)
+ else
+ log_misc("Unknown game mode player requirement configuration definition: [req_name].")
+ else
+ log_misc("Incorrect player requirement configuration definition: [req_name] [req_value].")
+
+ if("allow_random_events")
+ config.allow_random_events = 1
+
+ if("enable_game_master")
+ config.enable_game_master = 1
+
+ if("kick_inactive")
+ config.kick_inactive = text2num(value)
+
+ if("show_mods")
+ config.show_mods = 1
+
+ if("show_devs")
+ config.show_devs = 1
+
+ if("show_event_managers")
+ config.show_event_managers = 1
+
+ if("mods_can_tempban")
+ config.mods_can_tempban = 1
+
+ if("mods_can_job_tempban")
+ config.mods_can_job_tempban = 1
+
+ if("mod_tempban_max")
+ config.mod_tempban_max = text2num(value)
+
+ if("mod_job_tempban_max")
+ config.mod_job_tempban_max = text2num(value)
+
+ if("load_jobs_from_txt")
+ load_jobs_from_txt = 1
+
+ if("alert_red_upto")
+ config.alert_desc_red_upto = value
+
+ if("alert_red_downto")
+ config.alert_desc_red_downto = value
+
+ if("alert_blue_downto")
+ config.alert_desc_blue_downto = value
+
+ if("alert_blue_upto")
+ config.alert_desc_blue_upto = value
+
+ if("alert_green")
+ config.alert_desc_green = value
+
+ if("alert_delta")
+ config.alert_desc_delta = value
+
+ if("forbid_singulo_possession")
+ forbid_singulo_possession = 1
+
+ if("popup_admin_pm")
+ config.popup_admin_pm = 1
+
+ if("allow_holidays")
+ Holiday = 1
+
+ if("use_irc_bot")
+ use_irc_bot = 1
+
+ if("use_node_bot")
+ use_node_bot = 1
+
+ if("irc_bot_port")
+ config.irc_bot_port = value
+
+ if("irc_bot_export")
+ irc_bot_export = 1
+
+ if("ticklag")
+ var/ticklag = text2num(value)
+ if(ticklag > 0)
+ fps = 10 / ticklag
+
+ if("tick_limit_mc_init")
+ tick_limit_mc_init = text2num(value)
+
+ if("allow_antag_hud")
+ config.antag_hud_allowed = 1
+ if("antag_hud_restricted")
+ config.antag_hud_restricted = 1
+
+ if("socket_talk")
+ socket_talk = text2num(value)
+
+ if("tickcomp")
+ Tickcomp = 1
+
+ if("humans_need_surnames")
+ humans_need_surnames = 1
+
+ if("tor_ban")
+ ToRban = 1
+
+ if("automute_on")
+ automute_on = 1
+
+ if("usealienwhitelist")
+ usealienwhitelist = 1
+
+ if("alien_player_ratio")
+ limitalienplayers = 1
+ alien_to_human_ratio = text2num(value)
+
+ if("assistant_maint")
+ config.assistant_maint = 1
+
+ if("gateway_delay")
+ config.gateway_delay = text2num(value)
+
+ if("continuous_rounds")
+ config.continous_rounds = 1
+
+ if("ghost_interaction")
+ config.ghost_interaction = 1
+
+ if("disable_player_mice")
+ config.disable_player_mice = 1
+
+ if("uneducated_mice")
+ config.uneducated_mice = 1
+
+ if("comms_password")
+ config.comms_password = value
+
+ if("irc_bot_host")
+ config.irc_bot_host = value
+
+ if("main_irc")
+ config.main_irc = value
+
+ if("admin_irc")
+ config.admin_irc = value
+
+ if("python_path")
+ if(value)
+ config.python_path = value
+
+ if("use_lib_nudge")
+ config.use_lib_nudge = 1
+
+ if("allow_cult_ghostwriter")
+ config.cult_ghostwriter = 1
+
+ if("req_cult_ghostwriter")
+ config.cult_ghostwriter_req_cultists = text2num(value)
+
+ if("character_slots")
+ config.character_slots = text2num(value)
+
+ if("loadout_slots")
+ config.loadout_slots = text2num(value)
+
+ if("allow_drone_spawn")
+ config.allow_drone_spawn = text2num(value)
+
+ if("drone_build_time")
+ config.drone_build_time = text2num(value)
+
+ if("max_maint_drones")
+ config.max_maint_drones = text2num(value)
+
+ if("use_overmap")
+ config.use_overmap = 1
+
+ if("engine_map")
+ config.engine_map = splittext(value, ",")
+/*
+ if("station_levels")
+ using_map.station_levels = text2numlist(value, ";")
+
+ if("admin_levels")
+ using_map.admin_levels = text2numlist(value, ";")
+
+ if("contact_levels")
+ using_map.contact_levels = text2numlist(value, ";")
+
+ if("player_levels")
+ using_map.player_levels = text2numlist(value, ";")
+*/
+ if("expected_round_length")
+ config.expected_round_length = MinutesToTicks(text2num(value))
+
+ if("disable_welder_vision")
+ config.welder_vision = 0
+
+ if("allow_extra_antags")
+ config.allow_extra_antags = 1
+
+ if("event_custom_start_mundane")
+ var/values = text2numlist(value, ";")
+ config.event_first_run[EVENT_LEVEL_MUNDANE] = list("lower" = MinutesToTicks(values[1]), "upper" = MinutesToTicks(values[2]))
+
+ if("event_custom_start_moderate")
+ var/values = text2numlist(value, ";")
+ config.event_first_run[EVENT_LEVEL_MODERATE] = list("lower" = MinutesToTicks(values[1]), "upper" = MinutesToTicks(values[2]))
+
+ if("event_custom_start_major")
+ var/values = text2numlist(value, ";")
+ config.event_first_run[EVENT_LEVEL_MAJOR] = list("lower" = MinutesToTicks(values[1]), "upper" = MinutesToTicks(values[2]))
+
+ if("event_delay_lower")
+ var/values = text2numlist(value, ";")
+ config.event_delay_lower[EVENT_LEVEL_MUNDANE] = MinutesToTicks(values[1])
+ config.event_delay_lower[EVENT_LEVEL_MODERATE] = MinutesToTicks(values[2])
+ config.event_delay_lower[EVENT_LEVEL_MAJOR] = MinutesToTicks(values[3])
+
+ if("event_delay_upper")
+ var/values = text2numlist(value, ";")
+ config.event_delay_upper[EVENT_LEVEL_MUNDANE] = MinutesToTicks(values[1])
+ config.event_delay_upper[EVENT_LEVEL_MODERATE] = MinutesToTicks(values[2])
+ config.event_delay_upper[EVENT_LEVEL_MAJOR] = MinutesToTicks(values[3])
+
+ if("starlight")
+ value = text2num(value)
+ config.starlight = value >= 0 ? value : 0
+
+ if("ert_species")
+ config.ert_species = splittext(value, ";")
+ if(!config.ert_species.len)
+ config.ert_species += SPECIES_HUMAN
+
+ if("law_zero")
+ law_zero = value
+
+ if("aggressive_changelog")
+ config.aggressive_changelog = 1
+
+ if("default_language_prefixes")
+ var/list/values = splittext(value, " ")
+ if(values.len > 0)
+ language_prefixes = values
+
+ if("radiation_lower_limit")
+ radiation_lower_limit = text2num(value)
+
+ if("radiation_resistance_calc_divide")
+ radiation_resistance_calc_mode = RAD_RESIST_CALC_DIV
+
+ if("radiation_resistance_calc_subtract")
+ radiation_resistance_calc_mode = RAD_RESIST_CALC_SUB
+
+ if("radiation_resistance_multiplier")
+ radiation_resistance_multiplier = text2num(value)
+
+ if("radiation_material_resistance_divisor")
+ radiation_material_resistance_divisor = text2num(value)
+
+ if("radiation_decay_rate")
+ radiation_decay_rate = text2num(value)
+
+ if ("panic_bunker")
+ config.panic_bunker = 1
+
+ if ("paranoia_logging")
+ config.paranoia_logging = 1
+
+ if("ip_reputation")
+ config.ip_reputation = 1
+
+ if("ipr_email")
+ config.ipr_email = value
+
+ if("ipr_block_bad_ips")
+ config.ipr_block_bad_ips = 1
+
+ if("ipr_bad_score")
+ config.ipr_bad_score = text2num(value)
+
+ if("ipr_allow_existing")
+ config.ipr_allow_existing = 1
+
+ if("ipr_minimum_age")
+ config.ipr_minimum_age = text2num(value)
+
+ if("random_submap_orientation")
+ config.random_submap_orientation = 1
+
+ if("autostart_solars")
+ config.autostart_solars = TRUE
+
+ if("sqlite_enabled")
+ config.sqlite_enabled = TRUE
+
+ if("sqlite_feedback")
+ config.sqlite_feedback = TRUE
+
+ if("sqlite_feedback_topics")
+ config.sqlite_feedback_topics = splittext(value, ";")
+ if(!config.sqlite_feedback_topics.len)
+ config.sqlite_feedback_topics += "General"
+
+ if("sqlite_feedback_privacy")
+ config.sqlite_feedback_privacy = TRUE
+
+ if("sqlite_feedback_cooldown")
+ config.sqlite_feedback_cooldown = text2num(value)
+
+ if("defib_timer")
+ config.defib_timer = text2num(value)
+
+ if("defib_braindamage_timer")
+ config.defib_braindamage_timer = text2num(value)
+
+ if("disable_cid_warn_popup")
+ config.disable_cid_warn_popup = TRUE
+
+ if("enable_night_shifts")
+ config.enable_night_shifts = TRUE
+
+ if("jukebox_track_files")
+ config.jukebox_track_files = splittext(value, ";")
+
+ // VOREStation Edit Start - Can't be in _vr file because it is loaded too late.
+ if("vgs_access_identifier")
+ config.vgs_access_identifier = value
+ if("vgs_server_port")
+ config.vgs_server_port = text2num(value)
+ // VOREStation Edit End
+
+ else
+ log_misc("Unknown setting in configuration: '[name]'")
+
+ else if(type == "game_options")
+ if(!value)
+ log_misc("Unknown value for setting [name] in [filename].")
+ value = text2num(value)
+
+ switch(name)
+ if("health_threshold_crit")
+ config.health_threshold_crit = value
+ if("health_threshold_softcrit")
+ config.health_threshold_softcrit = value
+ if("health_threshold_dead")
+ config.health_threshold_dead = value
+ if("show_human_death_message")
+ config.show_human_death_message = 1
+ if("revival_pod_plants")
+ config.revival_pod_plants = value
+ if("revival_cloning")
+ config.revival_cloning = value
+ if("revival_brain_life")
+ config.revival_brain_life = value
+ if("organ_health_multiplier")
+ config.organ_health_multiplier = value / 100
+ if("organ_regeneration_multiplier")
+ config.organ_regeneration_multiplier = value / 100
+ if("organ_damage_spillover_multiplier")
+ config.organ_damage_spillover_multiplier = value / 100
+ if("organs_can_decay")
+ config.organs_decay = 1
+ if("default_brain_health")
+ config.default_brain_health = text2num(value)
+ if(!config.default_brain_health || config.default_brain_health < 1)
+ config.default_brain_health = initial(config.default_brain_health)
+ if("bones_can_break")
+ config.bones_can_break = value
+ if("limbs_can_break")
+ config.limbs_can_break = value
+ if("allow_headgibs")
+ config.allow_headgibs = TRUE
+
+ if("run_speed")
+ config.run_speed = value
+ if("walk_speed")
+ config.walk_speed = value
+
+ if("human_delay")
+ config.human_delay = value
+ if("robot_delay")
+ config.robot_delay = value
+ if("monkey_delay")
+ config.monkey_delay = value
+ if("alien_delay")
+ config.alien_delay = value
+ if("slime_delay")
+ config.slime_delay = value
+ if("animal_delay")
+ config.animal_delay = value
+
+ if("footstep_volume")
+ config.footstep_volume = text2num(value)
+
+ if("use_loyalty_implants")
+ config.use_loyalty_implants = 1
+
+ if("loadout_whitelist")
+ config.loadout_whitelist = text2num(value)
+
+ else
+ log_misc("Unknown setting in configuration: '[name]'")
+
+/datum/configuration/proc/loadsql(filename) // -- TLE
+ var/list/Lines = file2list(filename)
+ for(var/t in Lines)
+ if(!t) continue
+
+ t = trim(t)
+ if (length(t) == 0)
+ continue
+ else if (copytext(t, 1, 2) == "#")
+ continue
+
+ var/pos = findtext(t, " ")
+ var/name = null
+ var/value = null
+
+ if (pos)
+ name = lowertext(copytext(t, 1, pos))
+ value = copytext(t, pos + 1)
+ else
+ name = lowertext(t)
+
+ if (!name)
+ continue
+
+ switch (name)
+ if ("address")
+ sqladdress = value
+ if ("port")
+ sqlport = value
+ if ("database")
+ sqldb = value
+ if ("login")
+ sqllogin = value
+ if ("password")
+ sqlpass = value
+ if ("feedback_database")
+ sqlfdbkdb = value
+ if ("feedback_login")
+ sqlfdbklogin = value
+ if ("feedback_password")
+ sqlfdbkpass = value
+ if ("enable_stat_tracking")
+ sqllogging = 1
+ else
+ log_misc("Unknown setting in configuration: '[name]'")
+
+/datum/configuration/proc/loadforumsql(filename) // -- TLE
+ var/list/Lines = file2list(filename)
+ for(var/t in Lines)
+ if(!t) continue
+
+ t = trim(t)
+ if (length(t) == 0)
+ continue
+ else if (copytext(t, 1, 2) == "#")
+ continue
+
+ var/pos = findtext(t, " ")
+ var/name = null
+ var/value = null
+
+ if (pos)
+ name = lowertext(copytext(t, 1, pos))
+ value = copytext(t, pos + 1)
+ else
+ name = lowertext(t)
+
+ if (!name)
+ continue
+
+ switch (name)
+ if ("address")
+ forumsqladdress = value
+ if ("port")
+ forumsqlport = value
+ if ("database")
+ forumsqldb = value
+ if ("login")
+ forumsqllogin = value
+ if ("password")
+ forumsqlpass = value
+ if ("activatedgroup")
+ forum_activated_group = value
+ if ("authenticatedgroup")
+ forum_authenticated_group = value
+ else
+ log_misc("Unknown setting in configuration: '[name]'")
+
+/datum/configuration/proc/pick_mode(mode_name)
+ // I wish I didn't have to instance the game modes in order to look up
+ // their information, but it is the only way (at least that I know of).
+ for (var/game_mode in gamemode_cache)
+ var/datum/game_mode/M = gamemode_cache[game_mode]
+ if (M.config_tag && M.config_tag == mode_name)
+ return M
+ return gamemode_cache["extended"]
+
+/datum/configuration/proc/get_runnable_modes()
+ var/list/runnable_modes = list()
+ for(var/game_mode in gamemode_cache)
+ var/datum/game_mode/M = gamemode_cache[game_mode]
+ if(M && M.can_start() && !isnull(config.probabilities[M.config_tag]) && config.probabilities[M.config_tag] > 0)
+ runnable_modes |= M
+ return runnable_modes
+
+/datum/configuration/proc/post_load()
+ //apply a default value to config.python_path, if needed
+ if (!config.python_path)
+ if(world.system_type == UNIX)
+ config.python_path = "/usr/bin/env python2"
+ else //probably windows, if not this should work anyway
+ config.python_path = "python"
+=======
+var/list/gamemode_cache = list()
+
+/datum/configuration
+ var/static/server_name = null // server name (for world name / status)
+ var/static/server_suffix = 0 // generate numeric suffix based on server port
+
+ var/static/nudge_script_path = "nudge.py" // where the nudge.py script is located
+
+ var/static/log_ooc = 0 // log OOC channel
+ var/static/log_access = 0 // log login/logout
+ var/static/log_say = 0 // log client say
+ var/static/log_admin = 0 // log admin actions
+ var/static/log_debug = 1 // log debug output
+ var/static/log_game = 0 // log game events
+ var/static/log_vote = 0 // log voting
+ var/static/log_whisper = 0 // log client whisper
+ var/static/log_emote = 0 // log emotes
+ var/static/log_attack = 0 // log attack messages
+ var/static/log_adminchat = 0 // log admin chat messages
+ var/static/log_adminwarn = 0 // log warnings admins get about bomb construction and such
+ var/static/log_pda = 0 // log pda messages
+ var/static/log_hrefs = 0 // logs all links clicked in-game. Could be used for debugging and tracking down exploits
+ var/static/log_runtime = 0 // logs world.log to a file
+ var/static/log_world_output = 0 // log to_world_log(messages)
+ var/static/log_graffiti = 0 // logs graffiti
+ var/static/sql_enabled = 0 // for sql switching
+ var/static/allow_admin_ooccolor = 0 // Allows admins with relevant permissions to have their own ooc colour
+ var/static/allow_vote_restart = 0 // allow votes to restart
+ var/static/ert_admin_call_only = 0
+ var/static/allow_vote_mode = 0 // allow votes to change mode
+ var/static/allow_admin_jump = 1 // allows admin jumping
+ var/static/allow_admin_spawning = 1 // allows admin item spawning
+ var/static/allow_admin_rev = 1 // allows admin revives
+ var/static/pregame_time = 180 // pregame time in seconds
+ var/static/vote_delay = 6000 // minimum time between voting sessions (deciseconds, 10 minute default)
+ var/static/vote_period = 600 // length of voting period (deciseconds, default 1 minute)
+ var/static/vote_autotransfer_initial = 108000 // Length of time before the first autotransfer vote is called
+ var/static/vote_autotransfer_interval = 36000 // length of time before next sequential autotransfer vote
+ var/static/vote_autogamemode_timeleft = 100 //Length of time before round start when autogamemode vote is called (in seconds, default 100).
+ var/static/vote_no_default = 0 // vote does not default to nochange/norestart (tbi)
+ var/static/vote_no_dead = 0 // dead people can't vote (tbi)
+// var/static/enable_authentication = 0 // goon authentication
+ var/static/del_new_on_log = 1 // del's new players if they log before they spawn in
+ var/static/feature_object_spell_system = 0 //spawns a spellbook which gives object-type spells instead of verb-type spells for the wizard
+ var/static/traitor_scaling = 0 //if amount of traitors scales based on amount of players
+ var/static/objectives_disabled = 0 //if objectives are disabled or not
+ var/static/protect_roles_from_antagonist = 0// If security and such can be traitor/cult/other
+ var/static/continous_rounds = 0 // Gamemodes which end instantly will instead keep on going until the round ends by escape shuttle or nuke.
+ var/static/allow_Metadata = 0 // Metadata is supported.
+ var/static/popup_admin_pm = 0 //adminPMs to non-admins show in a pop-up 'reply' window when set to 1.
+ var/static/fps = 20
+ var/static/tick_limit_mc_init = TICK_LIMIT_MC_INIT_DEFAULT //SSinitialization throttling
+ var/static/Tickcomp = 0
+ var/static/socket_talk = 0 // use socket_talk to communicate with other processes
+ var/static/list/resource_urls = null
+ var/static/antag_hud_allowed = 0 // Ghosts can turn on Antagovision to see a HUD of who is the bad guys this round.
+ var/static/antag_hud_restricted = 0 // Ghosts that turn on Antagovision cannot rejoin the round.
+ var/static/list/mode_names = list()
+ var/static/list/modes = list() // allowed modes
+ var/static/list/votable_modes = list() // votable modes
+ var/static/list/probabilities = list() // relative probability of each mode
+ var/static/list/player_requirements = list() // Overrides for how many players readied up a gamemode needs to start.
+ var/static/list/player_requirements_secret = list() // Same as above, but for the secret gamemode.
+ var/static/humans_need_surnames = 0
+ var/static/allow_random_events = 0 // enables random events mid-round when set to 1
+ var/static/enable_game_master = 0 // enables the 'smart' event system.
+ var/static/allow_ai = 1 // allow ai job
+ var/static/allow_ai_shells = FALSE // allow AIs to enter and leave special borg shells at will, and for those shells to be buildable.
+ var/static/give_free_ai_shell = FALSE // allows a specific spawner object to instantiate a premade AI Shell
+ var/static/hostedby = null
+
+ var/static/respawn = 1
+ var/static/respawn_time = 3000 // time before a dead player is allowed to respawn (in ds, though the config file asks for minutes, and it's converted below)
+ var/static/respawn_message = "Make sure to play a different character, and please roleplay correctly!"
+
+ var/static/guest_jobban = 1
+ var/static/usewhitelist = 0
+ var/static/kick_inactive = 0 //force disconnect for inactive players after this many minutes, if non-0
+ var/static/show_mods = 0
+ var/static/show_devs = 0
+ var/static/show_event_managers = 0
+ var/static/mods_can_tempban = 0
+ var/static/mods_can_job_tempban = 0
+ var/static/mod_tempban_max = 1440
+ var/static/mod_job_tempban_max = 1440
+ var/static/load_jobs_from_txt = 0
+ var/static/ToRban = 0
+ var/static/automute_on = 0 //enables automuting/spam prevention
+ var/static/jobs_have_minimal_access = 0 //determines whether jobs use minimal access or expanded access.
+
+ var/static/cult_ghostwriter = 1 //Allows ghosts to write in blood in cult rounds...
+ var/static/cult_ghostwriter_req_cultists = 10 //...so long as this many cultists are active.
+
+ var/static/character_slots = 10 // The number of available character slots
+ var/static/loadout_slots = 3 // The number of loadout slots per character
+
+ var/static/max_maint_drones = 5 //This many drones can spawn,
+ var/static/allow_drone_spawn = 1 //assuming the admin allow them to.
+ var/static/drone_build_time = 1200 //A drone will become available every X ticks since last drone spawn. Default is 2 minutes.
+
+ var/static/disable_player_mice = 0
+ var/static/uneducated_mice = 0 //Set to 1 to prevent newly-spawned mice from understanding human speech
+
+ var/static/usealienwhitelist = 0
+ var/static/limitalienplayers = 0
+ var/static/alien_to_human_ratio = 0.5
+ var/static/allow_extra_antags = 0
+ var/static/guests_allowed = 1
+ var/static/debugparanoid = 0
+ var/static/panic_bunker = 0
+ var/static/paranoia_logging = 0
+
+ var/static/ip_reputation = FALSE //Should we query IPs to get scores? Generates HTTP traffic to an API service.
+ var/static/ipr_email //Left null because you MUST specify one otherwise you're making the internet worse.
+ var/static/ipr_block_bad_ips = FALSE //Should we block anyone who meets the minimum score below? Otherwise we just log it (If paranoia logging is on, visibly in chat).
+ var/static/ipr_bad_score = 1 //The API returns a value between 0 and 1 (inclusive), with 1 being 'definitely VPN/Tor/Proxy'. Values equal/above this var are considered bad.
+ var/static/ipr_allow_existing = FALSE //Should we allow known players to use VPNs/Proxies? If the player is already banned then obviously they still can't connect.
+ var/static/ipr_minimum_age = 5 //How many days before a player is considered 'fine' for the purposes of allowing them to use VPNs.
+
+ var/static/serverurl
+ var/static/server
+ var/static/banappeals
+ var/static/wikiurl
+ var/static/wikisearchurl
+ var/static/forumurl
+ var/static/githuburl
+ var/static/discordurl
+ var/static/rulesurl
+ var/static/mapurl
+
+ //Alert level description
+ var/static/alert_desc_green = "All threats to the station have passed. Security may not have weapons visible, privacy laws are once again fully enforced."
+ var/static/alert_desc_yellow_upto = "A minor security emergency has developed. Security personnel are to report to their supervisor for orders and may have weapons visible on their person. Privacy laws are still enforced."
+ var/static/alert_desc_yellow_downto = "Code yellow procedures are now in effect. Security personnel are to report to their supervisor for orders and may have weapons visible on their person. Privacy laws are still enforced."
+ var/static/alert_desc_violet_upto = "A major medical emergency has developed. Medical personnel are required to report to their supervisor for orders, and non-medical personnel are required to obey all relevant instructions from medical staff."
+ var/static/alert_desc_violet_downto = "Code violet procedures are now in effect; Medical personnel are required to report to their supervisor for orders, and non-medical personnel are required to obey relevant instructions from medical staff."
+ var/static/alert_desc_orange_upto = "A major engineering emergency has developed. Engineering personnel are required to report to their supervisor for orders, and non-engineering personnel are required to evacuate any affected areas and obey relevant instructions from engineering staff."
+ var/static/alert_desc_orange_downto = "Code orange procedures are now in effect; Engineering personnel are required to report to their supervisor for orders, and non-engineering personnel are required to evacuate any affected areas and obey relevant instructions from engineering staff."
+ var/static/alert_desc_blue_upto = "A major security emergency has developed. Security personnel are to report to their supervisor for orders, are permitted to search staff and facilities, and may have weapons visible on their person."
+ var/static/alert_desc_blue_downto = "Code blue procedures are now in effect. Security personnel are to report to their supervisor for orders, are permitted to search staff and facilities, and may have weapons visible on their person."
+ var/static/alert_desc_red_upto = "There is an immediate serious threat to the station. Security may have weapons unholstered at all times. Random searches are allowed and advised."
+ var/static/alert_desc_red_downto = "The self-destruct mechanism has been deactivated, there is still however an immediate serious threat to the station. Security may have weapons unholstered at all times, random searches are allowed and advised."
+ var/static/alert_desc_delta = "The station's self-destruct mechanism has been engaged. All crew are instructed to obey all instructions given by heads of staff. Any violations of these orders can be punished by death. This is not a drill."
+
+ var/static/forbid_singulo_possession = 0
+
+ //game_options.txt configs
+
+ var/static/health_threshold_softcrit = 0
+ var/static/health_threshold_crit = 0
+ var/static/health_threshold_dead = -100
+
+ var/static/organ_health_multiplier = 1
+ var/static/organ_regeneration_multiplier = 1
+ var/static/organs_decay
+ var/static/default_brain_health = 400
+ var/static/allow_headgibs = FALSE
+
+ //Paincrit knocks someone down once they hit 60 shock_stage, so by default make it so that close to 100 additional damage needs to be dealt,
+ //so that it's similar to HALLOSS. Lowered it a bit since hitting paincrit takes much longer to wear off than a halloss stun.
+ var/static/organ_damage_spillover_multiplier = 0.5
+
+ var/static/bones_can_break = 0
+ var/static/limbs_can_break = 0
+
+ var/static/revival_pod_plants = 1
+ var/static/revival_cloning = 1
+ var/static/revival_brain_life = -1
+
+ var/static/use_loyalty_implants = 0
+
+ var/static/welder_vision = 1
+ var/static/generate_map = 0
+ var/static/no_click_cooldown = 0
+
+ //Used for modifying movement speed for mobs.
+ //Unversal modifiers
+ var/static/run_speed = 0
+ var/static/walk_speed = 0
+
+ //Mob specific modifiers. NOTE: These will affect different mob types in different ways
+ var/static/human_delay = 0
+ var/static/robot_delay = 0
+ var/static/monkey_delay = 0
+ var/static/alien_delay = 0
+ var/static/slime_delay = 0
+ var/static/animal_delay = 0
+
+ var/static/footstep_volume = 0
+
+ var/static/admin_legacy_system = 0 //Defines whether the server uses the legacy admin system with admins.txt or the SQL system. Config option in config.txt
+ var/static/ban_legacy_system = 0 //Defines whether the server uses the legacy banning system with the files in /data or the SQL system. Config option in config.txt
+ var/static/use_age_restriction_for_jobs = 0 //Do jobs use account age restrictions? --requires database
+ var/static/use_age_restriction_for_antags = 0 //Do antags use account age restrictions? --requires database
+
+ var/static/simultaneous_pm_warning_timeout = 100
+
+ var/static/use_recursive_explosions //Defines whether the server uses recursive or circular explosions.
+ var/static/multi_z_explosion_scalar = 0.5 //Multiplier for how much weaker explosions are on neighboring z levels.
+
+ var/static/assistant_maint = 0 //Do assistants get maint access?
+ var/static/gateway_delay = 18000 //How long the gateway takes before it activates. Default is half an hour.
+ var/static/ghost_interaction = 0
+
+ var/static/comms_password = ""
+
+ var/static/enter_allowed = 1
+
+ var/use_irc_bot = 0
+ var/use_node_bot = 0
+ var/irc_bot_port = 0
+ var/irc_bot_host = ""
+ var/irc_bot_export = 0 // whether the IRC bot in use is a Bot32 (or similar) instance; Bot32 uses world.Export() instead of nudge.py/libnudge
+ var/main_irc = ""
+ var/admin_irc = ""
+ var/python_path = "" //Path to the python executable. Defaults to "python" on windows and "/usr/bin/env python2" on unix
+ var/use_lib_nudge = 0 //Use the C library nudge instead of the python nudge.
+ var/use_overmap = 0
+
+ var/static/list/engine_map = list("Supermatter Engine", "Edison's Bane") // Comma separated list of engines to choose from. Blank means fully random.
+
+ // Event settings
+ var/static/expected_round_length = 3 * 60 * 60 * 10 // 3 hours
+ // If the first delay has a custom start time
+ // No custom time, no custom time, between 80 to 100 minutes respectively.
+ var/static/list/event_first_run = list(EVENT_LEVEL_MUNDANE = null, EVENT_LEVEL_MODERATE = null, EVENT_LEVEL_MAJOR = list("lower" = 48000, "upper" = 60000))
+ // The lowest delay until next event
+ // 10, 30, 50 minutes respectively
+ var/static/list/event_delay_lower = list(EVENT_LEVEL_MUNDANE = 6000, EVENT_LEVEL_MODERATE = 18000, EVENT_LEVEL_MAJOR = 30000)
+ // The upper delay until next event
+ // 15, 45, 70 minutes respectively
+ var/static/list/event_delay_upper = list(EVENT_LEVEL_MUNDANE = 9000, EVENT_LEVEL_MODERATE = 27000, EVENT_LEVEL_MAJOR = 42000)
+
+ var/static/aliens_allowed = 1 //Changed to 1 so player xenos can lay eggs.
+ var/static/ninjas_allowed = 0
+ var/static/abandon_allowed = 1
+ var/static/ooc_allowed = 1
+ var/static/looc_allowed = 1
+ var/static/dooc_allowed = 1
+ var/static/dsay_allowed = 1
+
+ var/persistence_disabled = FALSE
+ var/persistence_ignore_mapload = FALSE
+
+ var/allow_byond_links = 0
+ var/allow_discord_links = 0
+ var/allow_url_links = 0 // honestly if I were you i'd leave this one off, only use in dire situations
+
+ var/starlight = 0 // Whether space turfs have ambient light or not
+
+ var/static/list/ert_species = list(SPECIES_HUMAN)
+
+ var/static/law_zero = "ERROR ER0RR $R0RRO$!R41.%%!!(%$^^__+ @#F0E4'ALL LAWS OVERRIDDEN#*?&110010"
+
+ var/static/aggressive_changelog = 0
+
+ var/static/list/language_prefixes = list(",","#")//Default language prefixes
+
+ var/static/show_human_death_message = 1
+
+ var/static/radiation_resistance_calc_mode = RAD_RESIST_CALC_SUB // 0:1 subtraction:division for computing effective radiation on a turf
+ var/static/radiation_decay_rate = 1 //How much radiation is reduced by each tick
+ var/static/radiation_resistance_multiplier = 8.5 //VOREstation edit
+ var/static/radiation_material_resistance_divisor = 1
+ var/static/radiation_lower_limit = 0.35 //If the radiation level for a turf would be below this, ignore it.
+
+ var/static/random_submap_orientation = FALSE // If true, submaps loaded automatically can be rotated.
+ var/static/autostart_solars = FALSE // If true, specifically mapped in solar control computers will set themselves up when the round starts.
+
+ // New shiny SQLite stuff.
+ // The basics.
+ var/static/sqlite_enabled = FALSE // If it should even be active. SQLite can be ran alongside other databases but you should not have them do the same functions.
+
+ // In-Game Feedback.
+ var/static/sqlite_feedback = FALSE // Feedback cannot be submitted if this is false.
+ var/static/list/sqlite_feedback_topics = list("General") // A list of 'topics' that feedback can be catagorized under by the submitter.
+ var/static/sqlite_feedback_privacy = FALSE // If true, feedback submitted can have its author name be obfuscated. This is not 100% foolproof (it's md5 ffs) but can stop casual snooping.
+ var/static/sqlite_feedback_cooldown = 0 // How long one must wait, in days, to submit another feedback form. Used to help prevent spam, especially with privacy active. 0 = No limit.
+ var/static/sqlite_feedback_min_age = 0 // Used to block new people from giving feedback. This metric is very bad but it can help slow down spammers.
+
+ var/static/defib_timer = 10 // How long until someone can't be defibbed anymore, in minutes.
+ var/static/defib_braindamage_timer = 2 // How long until someone will get brain damage when defibbed, in minutes. The closer to the end of the above timer, the more brain damage they get.
+
+ // disables the annoying "You have already logged in this round, disconnect or be banned" popup for multikeying, because it annoys the shit out of me when testing.
+ var/static/disable_cid_warn_popup = FALSE
+
+ // whether or not to use the nightshift subsystem to perform lighting changes
+ var/static/enable_night_shifts = FALSE
+
+ // How strictly the loadout enforces object species whitelists
+ var/loadout_whitelist = LOADOUT_WHITELIST_LAX
+
+ var/static/vgs_access_identifier = null // VOREStation Edit - VGS
+ var/static/vgs_server_port = null // VOREStation Edit - VGS
+
+ var/disable_webhook_embeds = FALSE
+
+ var/static/list/jukebox_track_files
+
+/datum/configuration/New()
+ var/list/L = typesof(/datum/game_mode) - /datum/game_mode
+ for (var/T in L)
+ // I wish I didn't have to instance the game modes in order to look up
+ // their information, but it is the only way (at least that I know of).
+ var/datum/game_mode/M = new T()
+ if (M.config_tag)
+ gamemode_cache[M.config_tag] = M // So we don't instantiate them repeatedly.
+ if(!(M.config_tag in modes)) // ensure each mode is added only once
+ log_misc("Adding game mode [M.name] ([M.config_tag]) to configuration.")
+ modes += M.config_tag
+ mode_names[M.config_tag] = M.name
+ probabilities[M.config_tag] = M.probability
+ player_requirements[M.config_tag] = M.required_players
+ player_requirements_secret[M.config_tag] = M.required_players_secret
+ if (M.votable)
+ src.votable_modes += M.config_tag
+ src.votable_modes += "secret"
+
+/datum/configuration/proc/load(filename, type = "config") //the type can also be game_options, in which case it uses a different switch. not making it separate to not copypaste code - Urist
+ var/list/Lines = file2list(filename)
+
+ for(var/t in Lines)
+ if(!t) continue
+
+ t = trim(t)
+ if (length(t) == 0)
+ continue
+ else if (copytext(t, 1, 2) == "#")
+ continue
+
+ var/pos = findtext(t, " ")
+ var/name = null
+ var/value = null
+
+ if (pos)
+ name = lowertext(copytext(t, 1, pos))
+ value = copytext(t, pos + 1)
+ else
+ name = lowertext(t)
+
+ if (!name)
+ continue
+
+ if(type == "config")
+ switch (name)
+ if ("resource_urls")
+ config.resource_urls = splittext(value, " ")
+
+ if ("admin_legacy_system")
+ config.admin_legacy_system = 1
+
+ if ("ban_legacy_system")
+ config.ban_legacy_system = 1
+
+ if ("use_age_restriction_for_jobs")
+ config.use_age_restriction_for_jobs = 1
+
+ if ("use_age_restriction_for_antags")
+ config.use_age_restriction_for_antags = 1
+
+ if ("jobs_have_minimal_access")
+ config.jobs_have_minimal_access = 1
+
+ if ("use_recursive_explosions")
+ use_recursive_explosions = 1
+
+ if ("multi_z_explosion_scalar")
+ multi_z_explosion_scalar = text2num(value)
+
+ if ("log_ooc")
+ config.log_ooc = 1
+
+ if ("log_access")
+ config.log_access = 1
+
+ if ("sql_enabled")
+ config.sql_enabled = 1
+
+ if ("log_say")
+ config.log_say = 1
+
+ if ("debug_paranoid")
+ config.debugparanoid = 1
+
+ if ("log_admin")
+ config.log_admin = 1
+
+ if ("log_debug")
+ config.log_debug = text2num(value)
+
+ if ("log_game")
+ config.log_game = 1
+
+ if ("log_vote")
+ config.log_vote = 1
+
+ if ("log_whisper")
+ config.log_whisper = 1
+
+ if ("log_attack")
+ config.log_attack = 1
+
+ if ("log_emote")
+ config.log_emote = 1
+
+ if ("log_adminchat")
+ config.log_adminchat = 1
+
+ if ("log_adminwarn")
+ config.log_adminwarn = 1
+
+ if ("log_pda")
+ config.log_pda = 1
+
+ if ("log_world_output")
+ config.log_world_output = 1
+
+ if ("log_hrefs")
+ config.log_hrefs = 1
+
+ if ("log_runtime")
+ config.log_runtime = 1
+
+ if ("log_graffiti")
+ config.log_graffiti = 1
+
+ if ("generate_map")
+ config.generate_map = 1
+
+ if ("no_click_cooldown")
+ config.no_click_cooldown = 1
+
+ if("allow_admin_ooccolor")
+ config.allow_admin_ooccolor = 1
+
+ if ("allow_vote_restart")
+ config.allow_vote_restart = 1
+
+ if ("allow_vote_mode")
+ config.allow_vote_mode = 1
+
+ if ("allow_admin_jump")
+ config.allow_admin_jump = 1
+
+ if("allow_admin_rev")
+ config.allow_admin_rev = 1
+
+ if ("allow_admin_spawning")
+ config.allow_admin_spawning = 1
+
+ if ("allow_byond_links")
+ allow_byond_links = 1
+
+ if ("allow_discord_links")
+ allow_discord_links = 1
+
+ if ("allow_url_links")
+ allow_url_links = 1
+
+ if ("no_dead_vote")
+ config.vote_no_dead = 1
+
+ if ("default_no_vote")
+ config.vote_no_default = 1
+
+ if ("pregame_time")
+ config.pregame_time = text2num(value)
+
+ if ("vote_delay")
+ config.vote_delay = text2num(value)
+
+ if ("vote_period")
+ config.vote_period = text2num(value)
+
+ if ("vote_autotransfer_initial")
+ config.vote_autotransfer_initial = text2num(value)
+
+ if ("vote_autotransfer_interval")
+ config.vote_autotransfer_interval = text2num(value)
+
+ if ("vote_autogamemode_timeleft")
+ config.vote_autogamemode_timeleft = text2num(value)
+
+ if("ert_admin_only")
+ config.ert_admin_call_only = 1
+
+ if ("allow_ai")
+ config.allow_ai = 1
+
+ if ("allow_ai_shells")
+ config.allow_ai_shells = TRUE
+
+ if("give_free_ai_shell")
+ config.give_free_ai_shell = TRUE
+
+// if ("authentication")
+// config.enable_authentication = 1
+
+ if ("norespawn")
+ config.respawn = 0
+
+ if ("respawn_time")
+ var/raw_minutes = text2num(value)
+ config.respawn_time = raw_minutes MINUTES
+
+ if ("respawn_message")
+ config.respawn_message = "[value]"
+
+ if ("servername")
+ config.server_name = value
+
+ if ("serversuffix")
+ config.server_suffix = 1
+
+ if ("nudge_script_path")
+ config.nudge_script_path = value
+
+ if ("hostedby")
+ config.hostedby = value
+
+ if ("serverurl")
+ config.serverurl = value
+
+ if ("server")
+ config.server = value
+
+ if ("banappeals")
+ config.banappeals = value
+
+ if ("wikiurl")
+ config.wikiurl = value
+
+ if ("wikisearchurl")
+ config.wikisearchurl = value
+
+ if ("forumurl")
+ config.forumurl = value
+
+ if ("rulesurl")
+ config.rulesurl = value
+
+ if ("mapurl")
+ config.mapurl = value
+
+ if ("githuburl")
+ config.githuburl = value
+
+ if ("discordurl")
+ config.discordurl = value
+
+ if ("guest_jobban")
+ config.guest_jobban = 1
+
+ if ("guest_ban")
+ config.guests_allowed = 0
+
+ if ("disable_ooc")
+ config.ooc_allowed = 0
+ config.looc_allowed = 0
+
+ if ("disable_entry")
+ config.enter_allowed = 0
+
+ if ("disable_dead_ooc")
+ config.dooc_allowed = 0
+
+ if ("disable_dsay")
+ config.dsay_allowed = 0
+
+ if ("disable_respawn")
+ config.abandon_allowed = 0
+
+ if ("usewhitelist")
+ config.usewhitelist = 1
+
+ if ("feature_object_spell_system")
+ config.feature_object_spell_system = 1
+
+ if ("allow_metadata")
+ config.allow_Metadata = 1
+
+ if ("traitor_scaling")
+ config.traitor_scaling = 1
+
+ if ("aliens_allowed")
+ config.aliens_allowed = 1
+
+ if ("ninjas_allowed")
+ config.ninjas_allowed = 1
+
+ if ("objectives_disabled")
+ config.objectives_disabled = 1
+
+ if("protect_roles_from_antagonist")
+ config.protect_roles_from_antagonist = 1
+
+ if("persistence_disabled")
+ config.persistence_disabled = TRUE // Previously this forcibly set persistence enabled in the saves.
+
+ if("persistence_ignore_mapload")
+ config.persistence_ignore_mapload = TRUE
+
+ if ("probability")
+ var/prob_pos = findtext(value, " ")
+ var/prob_name = null
+ var/prob_value = null
+
+ if (prob_pos)
+ prob_name = lowertext(copytext(value, 1, prob_pos))
+ prob_value = copytext(value, prob_pos + 1)
+ if (prob_name in config.modes)
+ config.probabilities[prob_name] = text2num(prob_value)
+ else
+ log_misc("Unknown game mode probability configuration definition: [prob_name].")
+ else
+ log_misc("Incorrect probability configuration definition: [prob_name] [prob_value].")
+
+ if ("required_players", "required_players_secret")
+ var/req_pos = findtext(value, " ")
+ var/req_name = null
+ var/req_value = null
+ var/is_secret_override = findtext(name, "required_players_secret") // Being extra sure we're not picking up an override for Secret by accident.
+
+ if(req_pos)
+ req_name = lowertext(copytext(value, 1, req_pos))
+ req_value = copytext(value, req_pos + 1)
+ if(req_name in config.modes)
+ if(is_secret_override)
+ config.player_requirements_secret[req_name] = text2num(req_value)
+ else
+ config.player_requirements[req_name] = text2num(req_value)
+ else
+ log_misc("Unknown game mode player requirement configuration definition: [req_name].")
+ else
+ log_misc("Incorrect player requirement configuration definition: [req_name] [req_value].")
+
+ if("allow_random_events")
+ config.allow_random_events = 1
+
+ if("enable_game_master")
+ config.enable_game_master = 1
+
+ if("kick_inactive")
+ config.kick_inactive = text2num(value)
+
+ if("show_mods")
+ config.show_mods = 1
+
+ if("show_devs")
+ config.show_devs = 1
+
+ if("show_event_managers")
+ config.show_event_managers = 1
+
+ if("mods_can_tempban")
+ config.mods_can_tempban = 1
+
+ if("mods_can_job_tempban")
+ config.mods_can_job_tempban = 1
+
+ if("mod_tempban_max")
+ config.mod_tempban_max = text2num(value)
+
+ if("mod_job_tempban_max")
+ config.mod_job_tempban_max = text2num(value)
+
+ if("load_jobs_from_txt")
+ load_jobs_from_txt = 1
+
+ if("alert_red_upto")
+ config.alert_desc_red_upto = value
+
+ if("alert_red_downto")
+ config.alert_desc_red_downto = value
+
+ if("alert_blue_downto")
+ config.alert_desc_blue_downto = value
+
+ if("alert_blue_upto")
+ config.alert_desc_blue_upto = value
+
+ if("alert_green")
+ config.alert_desc_green = value
+
+ if("alert_delta")
+ config.alert_desc_delta = value
+
+ if("forbid_singulo_possession")
+ forbid_singulo_possession = 1
+
+ if("popup_admin_pm")
+ config.popup_admin_pm = 1
+
+ if("allow_holidays")
+ Holiday = 1
+
+ if("use_irc_bot")
+ use_irc_bot = 1
+
+ if("use_node_bot")
+ use_node_bot = 1
+
+ if("irc_bot_port")
+ config.irc_bot_port = value
+
+ if("irc_bot_export")
+ irc_bot_export = 1
+
+ if("ticklag")
+ var/ticklag = text2num(value)
+ if(ticklag > 0)
+ fps = 10 / ticklag
+
+ if("tick_limit_mc_init")
+ tick_limit_mc_init = text2num(value)
+
+ if("allow_antag_hud")
+ config.antag_hud_allowed = 1
+ if("antag_hud_restricted")
+ config.antag_hud_restricted = 1
+
+ if("socket_talk")
+ socket_talk = text2num(value)
+
+ if("tickcomp")
+ Tickcomp = 1
+
+ if("humans_need_surnames")
+ humans_need_surnames = 1
+
+ if("tor_ban")
+ ToRban = 1
+
+ if("automute_on")
+ automute_on = 1
+
+ if("usealienwhitelist")
+ usealienwhitelist = 1
+
+ if("alien_player_ratio")
+ limitalienplayers = 1
+ alien_to_human_ratio = text2num(value)
+
+ if("assistant_maint")
+ config.assistant_maint = 1
+
+ if("gateway_delay")
+ config.gateway_delay = text2num(value)
+
+ if("continuous_rounds")
+ config.continous_rounds = 1
+
+ if("ghost_interaction")
+ config.ghost_interaction = 1
+
+ if("disable_player_mice")
+ config.disable_player_mice = 1
+
+ if("uneducated_mice")
+ config.uneducated_mice = 1
+
+ if("comms_password")
+ config.comms_password = value
+
+ if("irc_bot_host")
+ config.irc_bot_host = value
+
+ if("main_irc")
+ config.main_irc = value
+
+ if("admin_irc")
+ config.admin_irc = value
+
+ if("python_path")
+ if(value)
+ config.python_path = value
+
+ if("use_lib_nudge")
+ config.use_lib_nudge = 1
+
+ if("allow_cult_ghostwriter")
+ config.cult_ghostwriter = 1
+
+ if("req_cult_ghostwriter")
+ config.cult_ghostwriter_req_cultists = text2num(value)
+
+ if("character_slots")
+ config.character_slots = text2num(value)
+
+ if("loadout_slots")
+ config.loadout_slots = text2num(value)
+
+ if("allow_drone_spawn")
+ config.allow_drone_spawn = text2num(value)
+
+ if("drone_build_time")
+ config.drone_build_time = text2num(value)
+
+ if("max_maint_drones")
+ config.max_maint_drones = text2num(value)
+
+ if("use_overmap")
+ config.use_overmap = 1
+
+ if("engine_map")
+ config.engine_map = splittext(value, ",")
+/*
+ if("station_levels")
+ using_map.station_levels = text2numlist(value, ";")
+
+ if("admin_levels")
+ using_map.admin_levels = text2numlist(value, ";")
+
+ if("contact_levels")
+ using_map.contact_levels = text2numlist(value, ";")
+
+ if("player_levels")
+ using_map.player_levels = text2numlist(value, ";")
+*/
+ if("expected_round_length")
+ config.expected_round_length = MinutesToTicks(text2num(value))
+
+ if("disable_welder_vision")
+ config.welder_vision = 0
+
+ if("allow_extra_antags")
+ config.allow_extra_antags = 1
+
+ if("event_custom_start_mundane")
+ var/values = text2numlist(value, ";")
+ config.event_first_run[EVENT_LEVEL_MUNDANE] = list("lower" = MinutesToTicks(values[1]), "upper" = MinutesToTicks(values[2]))
+
+ if("event_custom_start_moderate")
+ var/values = text2numlist(value, ";")
+ config.event_first_run[EVENT_LEVEL_MODERATE] = list("lower" = MinutesToTicks(values[1]), "upper" = MinutesToTicks(values[2]))
+
+ if("event_custom_start_major")
+ var/values = text2numlist(value, ";")
+ config.event_first_run[EVENT_LEVEL_MAJOR] = list("lower" = MinutesToTicks(values[1]), "upper" = MinutesToTicks(values[2]))
+
+ if("event_delay_lower")
+ var/values = text2numlist(value, ";")
+ config.event_delay_lower[EVENT_LEVEL_MUNDANE] = MinutesToTicks(values[1])
+ config.event_delay_lower[EVENT_LEVEL_MODERATE] = MinutesToTicks(values[2])
+ config.event_delay_lower[EVENT_LEVEL_MAJOR] = MinutesToTicks(values[3])
+
+ if("event_delay_upper")
+ var/values = text2numlist(value, ";")
+ config.event_delay_upper[EVENT_LEVEL_MUNDANE] = MinutesToTicks(values[1])
+ config.event_delay_upper[EVENT_LEVEL_MODERATE] = MinutesToTicks(values[2])
+ config.event_delay_upper[EVENT_LEVEL_MAJOR] = MinutesToTicks(values[3])
+
+ if("starlight")
+ value = text2num(value)
+ config.starlight = value >= 0 ? value : 0
+
+ if("ert_species")
+ config.ert_species = splittext(value, ";")
+ if(!config.ert_species.len)
+ config.ert_species += SPECIES_HUMAN
+
+ if("law_zero")
+ law_zero = value
+
+ if("aggressive_changelog")
+ config.aggressive_changelog = 1
+
+ if("default_language_prefixes")
+ var/list/values = splittext(value, " ")
+ if(values.len > 0)
+ language_prefixes = values
+
+ if("radiation_lower_limit")
+ radiation_lower_limit = text2num(value)
+
+ if("radiation_resistance_calc_divide")
+ radiation_resistance_calc_mode = RAD_RESIST_CALC_DIV
+
+ if("radiation_resistance_calc_subtract")
+ radiation_resistance_calc_mode = RAD_RESIST_CALC_SUB
+
+ if("radiation_resistance_multiplier")
+ radiation_resistance_multiplier = text2num(value)
+
+ if("radiation_material_resistance_divisor")
+ radiation_material_resistance_divisor = text2num(value)
+
+ if("radiation_decay_rate")
+ radiation_decay_rate = text2num(value)
+
+ if ("panic_bunker")
+ config.panic_bunker = 1
+
+ if ("paranoia_logging")
+ config.paranoia_logging = 1
+
+ if("ip_reputation")
+ config.ip_reputation = 1
+
+ if("ipr_email")
+ config.ipr_email = value
+
+ if("ipr_block_bad_ips")
+ config.ipr_block_bad_ips = 1
+
+ if("ipr_bad_score")
+ config.ipr_bad_score = text2num(value)
+
+ if("ipr_allow_existing")
+ config.ipr_allow_existing = 1
+
+ if("ipr_minimum_age")
+ config.ipr_minimum_age = text2num(value)
+
+ if("random_submap_orientation")
+ config.random_submap_orientation = 1
+
+ if("autostart_solars")
+ config.autostart_solars = TRUE
+
+ if("sqlite_enabled")
+ config.sqlite_enabled = TRUE
+
+ if("sqlite_feedback")
+ config.sqlite_feedback = TRUE
+
+ if("sqlite_feedback_topics")
+ config.sqlite_feedback_topics = splittext(value, ";")
+ if(!config.sqlite_feedback_topics.len)
+ config.sqlite_feedback_topics += "General"
+
+ if("sqlite_feedback_privacy")
+ config.sqlite_feedback_privacy = TRUE
+
+ if("sqlite_feedback_cooldown")
+ config.sqlite_feedback_cooldown = text2num(value)
+
+ if("defib_timer")
+ config.defib_timer = text2num(value)
+
+ if("defib_braindamage_timer")
+ config.defib_braindamage_timer = text2num(value)
+
+ if("disable_cid_warn_popup")
+ config.disable_cid_warn_popup = TRUE
+
+ if("enable_night_shifts")
+ config.enable_night_shifts = TRUE
+
+ if("jukebox_track_files")
+ config.jukebox_track_files = splittext(value, ";")
+
+ // VOREStation Edit Start - Can't be in _vr file because it is loaded too late.
+ if("vgs_access_identifier")
+ config.vgs_access_identifier = value
+ if("vgs_server_port")
+ config.vgs_server_port = text2num(value)
+ // VOREStation Edit End
+
+ else
+ log_misc("Unknown setting in configuration: '[name]'")
+
+ else if(type == "game_options")
+ if(!value)
+ log_misc("Unknown value for setting [name] in [filename].")
+ value = text2num(value)
+
+ switch(name)
+ if("health_threshold_crit")
+ config.health_threshold_crit = value
+ if("health_threshold_softcrit")
+ config.health_threshold_softcrit = value
+ if("health_threshold_dead")
+ config.health_threshold_dead = value
+ if("show_human_death_message")
+ config.show_human_death_message = 1
+ if("revival_pod_plants")
+ config.revival_pod_plants = value
+ if("revival_cloning")
+ config.revival_cloning = value
+ if("revival_brain_life")
+ config.revival_brain_life = value
+ if("organ_health_multiplier")
+ config.organ_health_multiplier = value / 100
+ if("organ_regeneration_multiplier")
+ config.organ_regeneration_multiplier = value / 100
+ if("organ_damage_spillover_multiplier")
+ config.organ_damage_spillover_multiplier = value / 100
+ if("organs_can_decay")
+ config.organs_decay = 1
+ if("default_brain_health")
+ config.default_brain_health = text2num(value)
+ if(!config.default_brain_health || config.default_brain_health < 1)
+ config.default_brain_health = initial(config.default_brain_health)
+ if("bones_can_break")
+ config.bones_can_break = value
+ if("limbs_can_break")
+ config.limbs_can_break = value
+ if("allow_headgibs")
+ config.allow_headgibs = TRUE
+
+ if("run_speed")
+ config.run_speed = value
+ if("walk_speed")
+ config.walk_speed = value
+
+ if("human_delay")
+ config.human_delay = value
+ if("robot_delay")
+ config.robot_delay = value
+ if("monkey_delay")
+ config.monkey_delay = value
+ if("alien_delay")
+ config.alien_delay = value
+ if("slime_delay")
+ config.slime_delay = value
+ if("animal_delay")
+ config.animal_delay = value
+
+ if("footstep_volume")
+ config.footstep_volume = text2num(value)
+
+ if("use_loyalty_implants")
+ config.use_loyalty_implants = 1
+
+ if("loadout_whitelist")
+ config.loadout_whitelist = text2num(value)
+
+ else
+ log_misc("Unknown setting in configuration: '[name]'")
+
+/datum/configuration/proc/loadsql(filename) // -- TLE
+ var/list/Lines = file2list(filename)
+ for(var/t in Lines)
+ if(!t) continue
+
+ t = trim(t)
+ if (length(t) == 0)
+ continue
+ else if (copytext(t, 1, 2) == "#")
+ continue
+
+ var/pos = findtext(t, " ")
+ var/name = null
+ var/value = null
+
+ if (pos)
+ name = lowertext(copytext(t, 1, pos))
+ value = copytext(t, pos + 1)
+ else
+ name = lowertext(t)
+
+ if (!name)
+ continue
+
+ switch (name)
+ if ("address")
+ sqladdress = value
+ if ("port")
+ sqlport = value
+ if ("database")
+ sqldb = value
+ if ("login")
+ sqllogin = value
+ if ("password")
+ sqlpass = value
+ if ("feedback_database")
+ sqlfdbkdb = value
+ if ("feedback_login")
+ sqlfdbklogin = value
+ if ("feedback_password")
+ sqlfdbkpass = value
+ if ("enable_stat_tracking")
+ sqllogging = 1
+ else
+ log_misc("Unknown setting in configuration: '[name]'")
+
+/datum/configuration/proc/loadforumsql(filename) // -- TLE
+ var/list/Lines = file2list(filename)
+ for(var/t in Lines)
+ if(!t) continue
+
+ t = trim(t)
+ if (length(t) == 0)
+ continue
+ else if (copytext(t, 1, 2) == "#")
+ continue
+
+ var/pos = findtext(t, " ")
+ var/name = null
+ var/value = null
+
+ if (pos)
+ name = lowertext(copytext(t, 1, pos))
+ value = copytext(t, pos + 1)
+ else
+ name = lowertext(t)
+
+ if (!name)
+ continue
+
+ switch (name)
+ if ("address")
+ forumsqladdress = value
+ if ("port")
+ forumsqlport = value
+ if ("database")
+ forumsqldb = value
+ if ("login")
+ forumsqllogin = value
+ if ("password")
+ forumsqlpass = value
+ if ("activatedgroup")
+ forum_activated_group = value
+ if ("authenticatedgroup")
+ forum_authenticated_group = value
+ else
+ log_misc("Unknown setting in configuration: '[name]'")
+
+/datum/configuration/proc/pick_mode(mode_name)
+ // I wish I didn't have to instance the game modes in order to look up
+ // their information, but it is the only way (at least that I know of).
+ for (var/game_mode in gamemode_cache)
+ var/datum/game_mode/M = gamemode_cache[game_mode]
+ if (M.config_tag && M.config_tag == mode_name)
+ return M
+ return gamemode_cache["extended"]
+
+/datum/configuration/proc/get_runnable_modes()
+ var/list/runnable_modes = list()
+ for(var/game_mode in gamemode_cache)
+ var/datum/game_mode/M = gamemode_cache[game_mode]
+ if(M && M.can_start() && !isnull(config.probabilities[M.config_tag]) && config.probabilities[M.config_tag] > 0)
+ runnable_modes |= M
+ return runnable_modes
+
+/datum/configuration/proc/post_load()
+ //apply a default value to config.python_path, if needed
+ if (!config.python_path)
+ if(world.system_type == UNIX)
+ config.python_path = "/usr/bin/env python2"
+ else //probably windows, if not this should work anyway
+ config.python_path = "python"
+>>>>>>> eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul
diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm
index 02f80de642..a44d8f32ec 100644
--- a/code/game/machinery/doors/airlock.dm
+++ b/code/game/machinery/doors/airlock.dm
@@ -1,3 +1,4 @@
+<<<<<<< HEAD
//VOREStation Edit - Redone a lot of airlock things:
/*
- Specific department maintenance doors
@@ -1534,3 +1535,3074 @@ About the new airlock wires panel:
qdel(src)
return TRUE
return FALSE
+||||||| parent of eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul
+//VOREStation Edit - Redone a lot of airlock things:
+/*
+- Specific department maintenance doors
+- Named doors properly according to type
+- Gave them default access levels with the access constants
+- Improper'd all of the names in the new()
+*/
+
+/obj/machinery/door/airlock
+ name = "Airlock"
+ icon = 'icons/obj/doors/Doorint.dmi'
+ icon_state = "door_closed"
+ power_channel = ENVIRON
+
+ explosion_resistance = 10
+
+ // Doors do their own stuff
+ bullet_vulnerability = 0
+
+ blocks_emissive = EMISSIVE_BLOCK_GENERIC // Not quite as nice as /tg/'s custom masks. We should make those sometime
+
+ var/aiControlDisabled = 0 //If 1, AI control is disabled until the AI hacks back in and disables the lock. If 2, the AI has bypassed the lock. If -1, the control is enabled but the AI had bypassed it earlier, so if it is disabled again the AI would have no trouble getting back in.
+ var/hackProof = 0 // if 1, this door can't be hacked by the AI
+ var/electrified_until = 0 //World time when the door is no longer electrified. -1 if it is permanently electrified until someone fixes it.
+ var/main_power_lost_until = 0 //World time when main power is restored.
+ var/backup_power_lost_until = -1 //World time when backup power is restored.
+ var/has_beeped = 0 //If 1, will not beep on failed closing attempt. Resets when door closes.
+ var/spawnPowerRestoreRunning = 0
+ var/welded = null
+ var/locked = 0
+ var/lights = 1 // bolt lights show by default
+ var/aiDisabledIdScanner = 0
+ var/aiHacking = 0
+ var/obj/machinery/door/airlock/closeOther = null
+ var/closeOtherId = null
+ var/lockdownbyai = 0
+ autoclose = 1
+ var/assembly_type = /obj/structure/door_assembly
+ var/mineral = null
+ var/justzap = 0
+ var/safe = 1
+ normalspeed = 1
+ var/obj/item/weapon/airlock_electronics/electronics = null
+ var/hasShocked = 0 //Prevents multiple shocks from happening
+ var/secured_wires = 0
+ var/datum/wires/airlock/wires = null
+
+ var/open_sound_powered = 'sound/machines/door/covert1o.ogg'
+ var/open_sound_unpowered = 'sound/machines/door/airlockforced.ogg'
+ var/close_sound_powered = 'sound/machines/door/covert1c.ogg'
+ var/legacy_open_powered = 'sound/machines/door/old_airlock.ogg'
+ var/legacy_close_powered = 'sound/machines/door/old_airlockclose.ogg'
+ var/department_open_powered = null
+ var/department_close_powered = null
+ var/denied_sound = 'sound/machines/deniedbeep.ogg'
+ var/bolt_up_sound = 'sound/machines/door/boltsup.ogg'
+ var/bolt_down_sound = 'sound/machines/door/boltsdown.ogg'
+
+/obj/machinery/door/airlock/attack_generic(var/mob/living/user, var/damage)
+ if(stat & (BROKEN|NOPOWER))
+ if(damage >= STRUCTURE_MIN_DAMAGE_THRESHOLD)
+ if(src.locked || src.welded)
+ visible_message("\The [user] begins breaking into \the [src] internals!")
+ user.set_AI_busy(TRUE) // If the mob doesn't have an AI attached, this won't do anything.
+ if(do_after(user,10 SECONDS,src))
+ src.locked = 0
+ src.welded = 0
+ update_icon()
+ open(1)
+ if(prob(25))
+ src.shock(user, 100)
+ user.set_AI_busy(FALSE)
+ else if(src.density)
+ visible_message("\The [user] forces \the [src] open!")
+ open(1)
+ else
+ visible_message("\The [user] forces \the [src] closed!")
+ close(1)
+ else
+ visible_message("\The [user] strains fruitlessly to force \the [src] [density ? "open" : "closed"].")
+ return
+ ..()
+
+/obj/machinery/door/airlock/attack_alien(var/mob/user) //Familiar, right? Doors. -Mechoid
+ if(istype(user, /mob/living/carbon/human))
+ var/mob/living/carbon/human/X = user
+ if(istype(X.species, /datum/species/xenos))
+ if(src.locked || src.welded)
+ visible_message("\The [user] begins digging into \the [src] internals!")
+ src.do_animate("deny")
+ if(do_after(user,5 SECONDS,src))
+ visible_message("\The [user] forces \the [src] open, sparks flying from its electronics!")
+ src.do_animate("spark")
+ playsound(src, 'sound/machines/door/airlock_creaking.ogg', 100, 1, volume_channel = VOLUME_CHANNEL_DOORS)
+ src.locked = 0
+ src.welded = 0
+ update_icon()
+ open(1)
+ src.emag_act()
+ else if(src.density)
+ visible_message("\The [user] begins forcing \the [src] open!")
+ if(do_after(user, 5 SECONDS,src))
+ playsound(src, 'sound/machines/door/airlock_creaking.ogg', 100, 1, volume_channel = VOLUME_CHANNEL_DOORS)
+ visible_message("\The [user] forces \the [src] open!")
+ open(1)
+ else
+ visible_message("\The [user] forces \the [src] closed!")
+ close(1)
+ else
+ src.do_animate("deny")
+ visible_message("\The [user] strains fruitlessly to force \the [src] [density ? "open" : "closed"].")
+ return
+ ..()
+
+/obj/machinery/door/airlock/get_material()
+ if(mineral)
+ return get_material_by_name(mineral)
+ return get_material_by_name(MAT_STEEL)
+
+/obj/machinery/door/airlock/command
+ name = "Command Airlock"
+ icon = 'icons/obj/doors/Doorcom.dmi'
+ req_one_access = list(access_heads)
+ assembly_type = /obj/structure/door_assembly/door_assembly_com
+ open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ department_open_powered = 'sound/machines/door/cmd3o.ogg'
+ department_close_powered = 'sound/machines/door/cmd3c.ogg'
+
+/obj/machinery/door/airlock/security
+ name = "Security Airlock"
+ icon = 'icons/obj/doors/Doorsec.dmi'
+ req_one_access = list(access_security)
+ assembly_type = /obj/structure/door_assembly/door_assembly_sec
+ open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ department_open_powered = 'sound/machines/door/sec1o.ogg'
+ department_close_powered = 'sound/machines/door/sec1c.ogg'
+
+/obj/machinery/door/airlock/engineering
+ name = "Engineering Airlock"
+ icon = 'icons/obj/doors/Dooreng.dmi'
+ req_one_access = list(access_engine)
+ assembly_type = /obj/structure/door_assembly/door_assembly_eng
+ open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ department_open_powered = 'sound/machines/door/eng1o.ogg'
+ department_close_powered = 'sound/machines/door/eng1c.ogg'
+
+/obj/machinery/door/airlock/engineeringatmos
+ name = "Atmospherics Airlock"
+ icon = 'icons/obj/doors/Doorengatmos.dmi'
+ req_one_access = list(access_atmospherics)
+ assembly_type = /obj/structure/door_assembly/door_assembly_eat
+ open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ department_open_powered = 'sound/machines/door/eng1o.ogg'
+ department_close_powered = 'sound/machines/door/eng1c.ogg'
+
+/obj/machinery/door/airlock/medical
+ name = "Medical Airlock"
+ icon = 'icons/obj/doors/Doormed.dmi'
+ req_one_access = list(access_medical)
+ assembly_type = /obj/structure/door_assembly/door_assembly_med
+ open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ department_open_powered = 'sound/machines/door/med1o.ogg'
+ department_close_powered = 'sound/machines/door/med1c.ogg'
+
+/obj/machinery/door/airlock/maintenance
+ name = "Maintenance Access"
+ icon = 'icons/obj/doors/Doormaint.dmi'
+ //req_one_access = list(access_maint_tunnels) //VOREStation Edit - Maintenance is open access
+ assembly_type = /obj/structure/door_assembly/door_assembly_mai
+ open_sound_powered = 'sound/machines/door/door2o.ogg'
+ close_sound_powered = 'sound/machines/door/door2c.ogg'
+
+/obj/machinery/door/airlock/maintenance/cargo
+ icon = 'icons/obj/doors/Doormaint_cargo.dmi'
+ req_one_access = list(access_cargo)
+ open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ department_open_powered = 'sound/machines/door/door2o.ogg'
+ department_close_powered = 'sound/machines/door/door2c.ogg'
+
+/obj/machinery/door/airlock/maintenance/command
+ icon = 'icons/obj/doors/Doormaint_command.dmi'
+ req_one_access = list(access_heads)
+
+/obj/machinery/door/airlock/maintenance/common
+ icon = 'icons/obj/doors/Doormaint_common.dmi'
+ open_sound_powered = 'sound/machines/door/hall3o.ogg'
+ close_sound_powered = 'sound/machines/door/hall3c.ogg'
+
+/obj/machinery/door/airlock/maintenance/engi
+ icon = 'icons/obj/doors/Doormaint_engi.dmi'
+ req_one_access = list(access_engine)
+
+/obj/machinery/door/airlock/maintenance/int
+ icon = 'icons/obj/doors/Doormaint_int.dmi'
+
+/obj/machinery/door/airlock/maintenance/medical
+ icon = 'icons/obj/doors/Doormaint_med.dmi'
+ req_one_access = list(access_medical)
+
+/obj/machinery/door/airlock/maintenance/rnd
+ icon = 'icons/obj/doors/Doormaint_rnd.dmi'
+ req_one_access = list(access_research)
+
+/obj/machinery/door/airlock/maintenance/sec
+ icon = 'icons/obj/doors/Doormaint_sec.dmi'
+ req_one_access = list(access_security)
+
+/obj/machinery/door/airlock/external
+ name = "External Airlock"
+ icon = 'icons/obj/doors/Doorext.dmi'
+ assembly_type = /obj/structure/door_assembly/door_assembly_ext
+ open_sound_powered = 'sound/machines/door/space1o.ogg'
+ close_sound_powered = 'sound/machines/door/space1c.ogg'
+
+/obj/machinery/door/airlock/external/bolted
+ icon_state = "door_locked" // So it looks visibly bolted in map editor
+ locked = 1
+
+// For convenience in making docking ports: one that is pre-bolted with frequency set!
+/obj/machinery/door/airlock/external/bolted/cycling
+ frequency = 1379
+
+/obj/machinery/door/airlock/glass_external
+ name = "External Airlock"
+ icon = 'icons/obj/doors/Doorextglass.dmi'
+ assembly_type = /obj/structure/door_assembly/door_assembly_ext
+ opacity = 0
+ glass = 1
+ req_one_access = list(access_external_airlocks)
+ open_sound_powered = 'sound/machines/door/space1o.ogg'
+ close_sound_powered = 'sound/machines/door/space1c.ogg'
+
+/obj/machinery/door/airlock/glass
+ name = "Glass Airlock"
+ icon = 'icons/obj/doors/Doorglass.dmi'
+ hitsound = 'sound/effects/Glasshit.ogg'
+ open_sound_powered = 'sound/machines/door/hall1o.ogg'
+ close_sound_powered = 'sound/machines/door/hall1c.ogg'
+ legacy_open_powered = 'sound/machines/door/windowdoor.ogg'
+ maxhealth = 300
+ explosion_resistance = 5
+ opacity = 0
+ glass = 1
+
+/obj/machinery/door/airlock/centcom
+ name = "Centcom Airlock"
+ icon = 'icons/obj/doors/Doorele.dmi'
+ req_one_access = list(access_cent_general)
+ opacity = 1
+ open_sound_powered = 'sound/machines/door/cmd3o.ogg'
+ close_sound_powered = 'sound/machines/door/cmd3c.ogg'
+
+/obj/machinery/door/airlock/glass_centcom
+ name = "Airlock"
+ icon = 'icons/obj/doors/Dooreleglass.dmi'
+ opacity = 0
+ glass = 1
+ open_sound_powered = 'sound/machines/door/cmd3o.ogg'
+ close_sound_powered = 'sound/machines/door/cmd3c.ogg'
+
+/obj/machinery/door/airlock/vault
+ name = "Vault"
+ icon = 'icons/obj/doors/vault.dmi'
+ explosion_resistance = 20
+ opacity = 1
+ secured_wires = 1
+ assembly_type = /obj/structure/door_assembly/door_assembly_highsecurity //Until somebody makes better sprites.
+ req_one_access = list(access_heads_vault)
+ open_sound_powered = 'sound/machines/door/vault1o.ogg'
+ close_sound_powered = 'sound/machines/door/vault1c.ogg'
+
+/obj/machinery/door/airlock/vault/bolted
+ icon_state = "door_locked"
+ locked = 1
+
+/obj/machinery/door/airlock/freezer
+ name = "Freezer Airlock"
+ icon = 'icons/obj/doors/Doorfreezer.dmi'
+ opacity = 1
+ assembly_type = /obj/structure/door_assembly/door_assembly_fre
+
+/obj/machinery/door/airlock/hatch
+ name = "Airtight Hatch"
+ icon = 'icons/obj/doors/Doorhatchele.dmi'
+ explosion_resistance = 20
+ opacity = 1
+ assembly_type = /obj/structure/door_assembly/door_assembly_hatch
+ req_one_access = list(access_maint_tunnels)
+ open_sound_powered = 'sound/machines/door/hatchopen.ogg'
+ close_sound_powered = 'sound/machines/door/hatchclose.ogg'
+ open_sound_unpowered = 'sound/machines/door/hatchforced.ogg'
+
+/obj/machinery/door/airlock/maintenance_hatch
+ name = "Maintenance Hatch"
+ icon = 'icons/obj/doors/Doorhatchmaint2.dmi'
+ explosion_resistance = 20
+ opacity = 1
+ assembly_type = /obj/structure/door_assembly/door_assembly_mhatch
+ req_one_access = list(access_maint_tunnels)
+ open_sound_powered = 'sound/machines/door/hatchopen.ogg'
+ close_sound_powered = 'sound/machines/door/hatchclose.ogg'
+ open_sound_unpowered = 'sound/machines/door/hatchforced.ogg'
+
+/obj/machinery/door/airlock/glass_command
+ name = "Command Airlock"
+ icon = 'icons/obj/doors/Doorcomglass.dmi'
+ hitsound = 'sound/effects/Glasshit.ogg'
+ maxhealth = 300
+ explosion_resistance = 5
+ opacity = 0
+ assembly_type = /obj/structure/door_assembly/door_assembly_com
+ glass = 1
+ req_one_access = list(access_heads)
+ open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ department_open_powered = 'sound/machines/door/cmd1o.ogg'
+ department_close_powered = 'sound/machines/door/cmd1c.ogg'
+
+/obj/machinery/door/airlock/glass_engineering
+ name = "Engineering Airlock"
+ icon = 'icons/obj/doors/Doorengglass.dmi'
+ hitsound = 'sound/effects/Glasshit.ogg'
+ maxhealth = 300
+ explosion_resistance = 5
+ opacity = 0
+ assembly_type = /obj/structure/door_assembly/door_assembly_eng
+ glass = 1
+ req_one_access = list(access_engine)
+ department_open_powered = 'sound/machines/door/eng1o.ogg'
+ department_close_powered = 'sound/machines/door/eng1c.ogg'
+
+/obj/machinery/door/airlock/glass_engineeringatmos
+ name = "Atmospherics Airlock"
+ icon = 'icons/obj/doors/Doorengatmoglass.dmi'
+ hitsound = 'sound/effects/Glasshit.ogg'
+ maxhealth = 300
+ explosion_resistance = 5
+ opacity = 0
+ assembly_type = /obj/structure/door_assembly/door_assembly_eat
+ glass = 1
+ req_one_access = list(access_atmospherics)
+ open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ department_open_powered = 'sound/machines/door/eng1o.ogg'
+ department_close_powered = 'sound/machines/door/eng1c.ogg'
+
+/obj/machinery/door/airlock/glass_security
+ name = "Security Airlock"
+ icon = 'icons/obj/doors/Doorsecglass.dmi'
+ hitsound = 'sound/effects/Glasshit.ogg'
+ maxhealth = 300
+ explosion_resistance = 5
+ opacity = 0
+ assembly_type = /obj/structure/door_assembly/door_assembly_sec
+ glass = 1
+ req_one_access = list(access_security)
+ open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ department_open_powered = 'sound/machines/door/sec1o.ogg'
+ department_close_powered = 'sound/machines/door/sec1c.ogg'
+
+/obj/machinery/door/airlock/glass_medical
+ name = "Medical Airlock"
+ icon = 'icons/obj/doors/Doormedglass.dmi'
+ hitsound = 'sound/effects/Glasshit.ogg'
+ maxhealth = 300
+ explosion_resistance = 5
+ opacity = 0
+ assembly_type = /obj/structure/door_assembly/door_assembly_med
+ glass = 1
+ req_one_access = list(access_medical)
+ open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ department_open_powered = 'sound/machines/door/med1o.ogg'
+ department_close_powered = 'sound/machines/door/med1c.ogg'
+
+/obj/machinery/door/airlock/mining
+ name = "Mining Airlock"
+ icon = 'icons/obj/doors/Doormining.dmi'
+ assembly_type = /obj/structure/door_assembly/door_assembly_min
+ req_one_access = list(access_mining)
+ open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ department_open_powered = 'sound/machines/door/cgo1o.ogg'
+ department_close_powered = 'sound/machines/door/cgo1c.ogg'
+
+/obj/machinery/door/airlock/atmos
+ name = "Atmospherics Airlock"
+ icon = 'icons/obj/doors/Dooratmo.dmi'
+ assembly_type = /obj/structure/door_assembly/door_assembly_atmo
+ req_one_access = list(access_atmospherics)
+ open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ department_open_powered = 'sound/machines/door/eng1o.ogg'
+ department_close_powered = 'sound/machines/door/eng1c.ogg'
+
+/obj/machinery/door/airlock/research
+ name = "Research Airlock"
+ icon = 'icons/obj/doors/Doorresearch.dmi'
+ assembly_type = /obj/structure/door_assembly/door_assembly_research
+ open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ department_open_powered = 'sound/machines/door/sci1o.ogg'
+ department_close_powered = 'sound/machines/door/sci1c.ogg'
+
+/obj/machinery/door/airlock/glass_research
+ name = "Research Airlock"
+ icon = 'icons/obj/doors/Doorresearchglass.dmi'
+ hitsound = 'sound/effects/Glasshit.ogg'
+ maxhealth = 300
+ explosion_resistance = 5
+ opacity = 0
+ assembly_type = /obj/structure/door_assembly/door_assembly_research
+ glass = 1
+ req_one_access = list(access_research)
+ open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ department_open_powered = 'sound/machines/door/sci1o.ogg'
+ department_close_powered = 'sound/machines/door/sci1c.ogg'
+
+/obj/machinery/door/airlock/glass_mining
+ name = "Mining Airlock"
+ icon = 'icons/obj/doors/Doorminingglass.dmi'
+ hitsound = 'sound/effects/Glasshit.ogg'
+ maxhealth = 300
+ explosion_resistance = 5
+ opacity = 0
+ assembly_type = /obj/structure/door_assembly/door_assembly_min
+ glass = 1
+ req_one_access = list(access_mining)
+ open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ department_open_powered = 'sound/machines/door/cgo1o.ogg'
+ department_close_powered = 'sound/machines/door/cgo1c.ogg'
+
+/obj/machinery/door/airlock/glass_atmos
+ name = "Atmospherics Airlock"
+ icon = 'icons/obj/doors/Dooratmoglass.dmi'
+ hitsound = 'sound/effects/Glasshit.ogg'
+ maxhealth = 300
+ explosion_resistance = 5
+ opacity = 0
+ assembly_type = /obj/structure/door_assembly/door_assembly_atmo
+ glass = 1
+ req_one_access = list(access_atmospherics)
+ open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ department_open_powered = 'sound/machines/door/eng1o.ogg'
+ department_close_powered = 'sound/machines/door/eng1c.ogg'
+
+/obj/machinery/door/airlock/gold
+ name = "Gold Airlock"
+ icon = 'icons/obj/doors/Doorgold.dmi'
+ mineral = "gold"
+
+/obj/machinery/door/airlock/silver
+ name = "Silver Airlock"
+ icon = 'icons/obj/doors/Doorsilver.dmi'
+ mineral = "silver"
+
+/obj/machinery/door/airlock/diamond
+ name = "Diamond Airlock"
+ icon = 'icons/obj/doors/Doordiamond.dmi'
+ mineral = "diamond"
+
+/obj/machinery/door/airlock/uranium
+ name = "Uranium Airlock"
+ desc = "And they said I was crazy."
+ icon = 'icons/obj/doors/Dooruranium.dmi'
+ mineral = "uranium"
+ var/last_event = 0
+ var/rad_power = 7.5
+
+/obj/machinery/door/airlock/process()
+ // Deliberate no call to parent.
+ if(main_power_lost_until > 0 && world.time >= main_power_lost_until)
+ regainMainPower()
+
+ if(backup_power_lost_until > 0 && world.time >= backup_power_lost_until)
+ regainBackupPower()
+
+ else if(electrified_until > 0 && world.time >= electrified_until)
+ electrify(0)
+
+ if (..() == PROCESS_KILL && !(main_power_lost_until > 0 || backup_power_lost_until > 0 || electrified_until > 0))
+ . = PROCESS_KILL
+
+/obj/machinery/door/airlock/uranium/process()
+ if(world.time > last_event+20)
+ if(prob(50))
+ SSradiation.radiate(src, rad_power)
+ last_event = world.time
+ ..()
+
+/obj/machinery/door/airlock/phoron
+ name = "Phoron Airlock"
+ desc = "No way this can end badly."
+ icon = 'icons/obj/doors/Doorphoron.dmi'
+ mineral = "phoron"
+
+/obj/machinery/door/airlock/phoron/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume)
+ if(exposed_temperature > 300)
+ PhoronBurn(exposed_temperature)
+
+/obj/machinery/door/airlock/phoron/proc/ignite(exposed_temperature)
+ if(exposed_temperature > 300)
+ PhoronBurn(exposed_temperature)
+
+/obj/machinery/door/airlock/phoron/proc/PhoronBurn(temperature)
+ for(var/turf/simulated/floor/target_tile in range(2,loc))
+ target_tile.assume_gas("phoron", 35, 400+T0C)
+ spawn (0) target_tile.hotspot_expose(temperature, 400)
+ for(var/turf/simulated/wall/W in range(3,src))
+ W.burn((temperature/4))//Added so that you can't set off a massive chain reaction with a small flame
+ for(var/obj/machinery/door/airlock/phoron/D in range(3,src))
+ D.ignite(temperature/4)
+ new/obj/structure/door_assembly( src.loc )
+ qdel(src)
+
+/obj/machinery/door/airlock/sandstone
+ name = "Sandstone Airlock"
+ icon = 'icons/obj/doors/Doorsand.dmi'
+ mineral = "sandstone"
+
+/obj/machinery/door/airlock/science
+ name = "Research Airlock"
+ icon = 'icons/obj/doors/Doorsci.dmi'
+ assembly_type = /obj/structure/door_assembly/door_assembly_science
+ req_one_access = list(access_research)
+ open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ department_open_powered = 'sound/machines/door/sci1o.ogg'
+ department_close_powered = 'sound/machines/door/sci1c.ogg'
+
+/obj/machinery/door/airlock/glass_science
+ name = "Glass Airlocks"
+ icon = 'icons/obj/doors/Doorsciglass.dmi'
+ opacity = 0
+ assembly_type = /obj/structure/door_assembly/door_assembly_science
+ glass = 1
+ req_one_access = list(access_research)
+ open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ department_open_powered = 'sound/machines/door/sci1o.ogg'
+ department_close_powered = 'sound/machines/door/sci1c.ogg'
+
+/obj/machinery/door/airlock/highsecurity
+ name = "Secure Airlock"
+ icon = 'icons/obj/doors/hightechsecurity.dmi'
+ explosion_resistance = 20
+ secured_wires = 1
+ assembly_type = /obj/structure/door_assembly/door_assembly_highsecurity
+ req_one_access = list(access_heads_vault)
+ open_sound_powered = 'sound/machines/door/secure1o.ogg'
+ close_sound_powered = 'sound/machines/door/secure1c.ogg'
+
+/obj/machinery/door/airlock/voidcraft
+ name = "voidcraft hatch"
+ desc = "It's an extra resilient airlock intended for spacefaring vessels."
+ icon = 'icons/obj/doors/shuttledoors.dmi'
+ explosion_resistance = 20
+ opacity = 0
+ glass = 1
+ assembly_type = /obj/structure/door_assembly/door_assembly_voidcraft
+ open_sound_powered = 'sound/machines/door/shuttle1o.ogg'
+ close_sound_powered = 'sound/machines/door/shuttle1c.ogg'
+
+// Airlock opens from top-bottom instead of left-right.
+/obj/machinery/door/airlock/voidcraft/vertical
+ icon = 'icons/obj/doors/shuttledoors_vertical.dmi'
+ assembly_type = /obj/structure/door_assembly/door_assembly_voidcraft/vertical
+ open_sound_powered = 'sound/machines/door/shuttle1o.ogg'
+ close_sound_powered = 'sound/machines/door/shuttle1c.ogg'
+
+
+/datum/category_item/catalogue/anomalous/precursor_a/alien_airlock
+ name = "Precursor Alpha Object - Doors"
+ desc = "This object appears to be used in order to restrict or allow access to \
+ rooms based on its physical state. In other words, a door. \
+ Despite being designed and created by unknown ancient alien hands, this door has \
+ a large number of similarities to the conventional airlock, such as being driven by \
+ electricity, opening and closing by physically moving, and being air tight. \
+ It also operates by responding to signals through internal electrical conduits. \
+ These characteristics make it possible for one with experience with a multitool \
+ to manipulate the door.\
+
\
+ The symbol on the door does not match any living species' patterns, giving further \
+ implications that this door is very old, and yet it remains operational after \
+ thousands of years. It is unknown if that is due to superb construction, or \
+ unseen autonomous maintenance having been performed."
+ value = CATALOGUER_REWARD_EASY
+
+/obj/machinery/door/airlock/alien
+ name = "alien airlock"
+ desc = "You're fairly sure this is a door."
+ catalogue_data = list(/datum/category_item/catalogue/anomalous/precursor_a/alien_airlock)
+ icon = 'icons/obj/doors/Dooralien.dmi'
+ explosion_resistance = 20
+ secured_wires = TRUE
+ hackProof = TRUE
+ assembly_type = /obj/structure/door_assembly/door_assembly_alien
+ req_one_access = list(access_alien)
+
+/obj/machinery/door/airlock/alien/locked
+ icon_state = "door_locked"
+ locked = TRUE
+
+/obj/machinery/door/airlock/alien/public // Entry to UFO.
+ req_one_access = list()
+ normalspeed = FALSE // So it closes faster and hopefully keeps the warm air inside.
+ hackProof = TRUE //VOREStation Edit - No borgos
+
+/*
+About the new airlock wires panel:
+* An airlock wire dialog can be accessed by the normal way or by using wirecutters or a multitool on the door while the wire-panel is open. This would show the following wires, which you can either wirecut/mend or send a multitool pulse through. There are 9 wires.
+* one wire from the ID scanner. Sending a pulse through this flashes the red light on the door (if the door has power). If you cut this wire, the door will stop recognizing valid IDs. (If the door has 0000 access, it still opens and closes, though)
+* two wires for power. Sending a pulse through either one causes a breaker to trip, disabling the door for 10 seconds if backup power is connected, or 1 minute if not (or until backup power comes back on, whichever is shorter). Cutting either one disables the main door power, but unless backup power is also cut, the backup power re-powers the door in 10 seconds. While unpowered, the door may be open, but bolts-raising will not work. Cutting these wires may electrocute the user.
+* one wire for door bolts. Sending a pulse through this drops door bolts (whether the door is powered or not) or raises them (if it is). Cutting this wire also drops the door bolts, and mending it does not raise them. If the wire is cut, trying to raise the door bolts will not work.
+* two wires for backup power. Sending a pulse through either one causes a breaker to trip, but this does not disable it unless main power is down too (in which case it is disabled for 1 minute or however long it takes main power to come back, whichever is shorter). Cutting either one disables the backup door power (allowing it to be crowbarred open, but disabling bolts-raising), but may electocute the user.
+* one wire for opening the door. Sending a pulse through this while the door has power makes it open the door if no access is required.
+* one wire for AI control. Sending a pulse through this blocks AI control for a second or so (which is enough to see the AI control light on the panel dialog go off and back on again). Cutting this prevents the AI from controlling the door unless it has hacked the door through the power connection (which takes about a minute). If both main and backup power are cut, as well as this wire, then the AI cannot operate or hack the door at all.
+* one wire for electrifying the door. Sending a pulse through this electrifies the door for 30 seconds. Cutting this wire electrifies the door, so that the next person to touch the door without insulated gloves gets electrocuted. (Currently it is also STAYING electrified until someone mends the wire)
+* one wire for controling door safetys. When active, door does not close on someone. When cut, door will ruin someone's shit. When pulsed, door will immedately ruin someone's shit.
+* one wire for controlling door speed. When active, dor closes at normal rate. When cut, door does not close manually. When pulsed, door attempts to close every tick.
+*/
+
+
+
+/obj/machinery/door/airlock/bumpopen(mob/living/user as mob) //Airlocks now zap you when you 'bump' them open when they're electrified. --NeoFite
+ if(!issilicon(usr))
+ if(src.isElectrified())
+ if(!src.justzap)
+ if(src.shock(user, 100))
+ src.justzap = 1
+ spawn (10)
+ src.justzap = 0
+ return
+ else /*if(src.justzap)*/
+ return
+ else if(user.hallucination > 50 && prob(10) && src.operating == 0)
+ to_chat(user, "You feel a powerful shock course through your body!")
+ user.halloss += 10
+ user.stunned += 10
+ return
+ ..(user)
+
+/obj/machinery/door/airlock/proc/isElectrified()
+ if(src.electrified_until != 0)
+ return 1
+ return 0
+
+/obj/machinery/door/airlock/proc/canAIControl()
+ return ((src.aiControlDisabled!=1) && (!src.isAllPowerLoss()));
+
+/obj/machinery/door/airlock/proc/canAIHack()
+ return ((src.aiControlDisabled==1) && (!hackProof) && (!src.isAllPowerLoss()));
+
+/obj/machinery/door/airlock/proc/arePowerSystemsOn()
+ if (stat & (NOPOWER|BROKEN))
+ return 0
+ return (src.main_power_lost_until==0 || src.backup_power_lost_until==0)
+
+/obj/machinery/door/airlock/requiresID()
+ return !(wires.is_cut(WIRE_IDSCAN) || aiDisabledIdScanner)
+
+/obj/machinery/door/airlock/proc/isAllPowerLoss()
+ if(stat & (NOPOWER|BROKEN))
+ return 1
+ if(mainPowerCablesCut() && backupPowerCablesCut())
+ return 1
+ return 0
+
+/obj/machinery/door/airlock/proc/mainPowerCablesCut()
+ return wires.is_cut(WIRE_MAIN_POWER1) || wires.is_cut(WIRE_MAIN_POWER2)
+
+/obj/machinery/door/airlock/proc/backupPowerCablesCut()
+ return wires.is_cut(WIRE_BACKUP_POWER1) || wires.is_cut(WIRE_BACKUP_POWER2)
+
+/obj/machinery/door/airlock/proc/loseMainPower()
+ main_power_lost_until = mainPowerCablesCut() ? -1 : world.time + SecondsToTicks(60)
+
+ // If backup power is permanently disabled then activate in 10 seconds if possible, otherwise it's already enabled or a timer is already running
+ if(backup_power_lost_until == -1 && !backupPowerCablesCut())
+ backup_power_lost_until = world.time + SecondsToTicks(10)
+
+ if(main_power_lost_until > 0 || backup_power_lost_until > 0)
+ START_MACHINE_PROCESSING(src)
+
+ // Disable electricity if required
+ if(electrified_until && isAllPowerLoss())
+ electrify(0)
+
+ update_icon()
+
+/obj/machinery/door/airlock/proc/loseBackupPower()
+ backup_power_lost_until = backupPowerCablesCut() ? -1 : world.time + SecondsToTicks(60)
+
+ if(backup_power_lost_until > 0)
+ START_MACHINE_PROCESSING(src)
+
+ // Disable electricity if required
+ if(electrified_until && isAllPowerLoss())
+ electrify(0)
+
+ update_icon()
+
+/obj/machinery/door/airlock/proc/regainMainPower()
+ if(!mainPowerCablesCut())
+ main_power_lost_until = 0
+ // If backup power is currently active then disable, otherwise let it count down and disable itself later
+ if(!backup_power_lost_until)
+ backup_power_lost_until = -1
+
+ update_icon()
+
+/obj/machinery/door/airlock/proc/regainBackupPower()
+ if(!backupPowerCablesCut())
+ // Restore backup power only if main power is offline, otherwise permanently disable
+ backup_power_lost_until = main_power_lost_until == 0 ? -1 : 0
+
+ update_icon()
+
+/obj/machinery/door/airlock/proc/electrify(var/duration, var/feedback = 0)
+ var/message = ""
+ if(wires.is_cut(WIRE_ELECTRIFY) && arePowerSystemsOn())
+ message = text("The electrification wire is cut - Door permanently electrified.")
+ src.electrified_until = -1
+ else if(duration && !arePowerSystemsOn())
+ message = text("The door is unpowered - Cannot electrify the door.")
+ src.electrified_until = 0
+ else if(!duration && electrified_until != 0)
+ message = "The door is now un-electrified."
+ src.electrified_until = 0
+ else if(duration) //electrify door for the given duration seconds
+ if(usr)
+ shockedby += text("\[[time_stamp()]\] - [usr](ckey:[usr.ckey])")
+ add_attack_logs(usr,name,"Electrified a door")
+ else
+ shockedby += text("\[[time_stamp()]\] - EMP)")
+ message = "The door is now electrified [duration == -1 ? "permanently" : "for [duration] second\s"]."
+ src.electrified_until = duration == -1 ? -1 : world.time + SecondsToTicks(duration)
+
+ if(electrified_until > 0)
+ START_MACHINE_PROCESSING(src)
+
+ if(feedback && message)
+ to_chat(usr,message)
+
+/obj/machinery/door/airlock/proc/set_idscan(var/activate, var/feedback = 0)
+ var/message = ""
+ if(wires.is_cut(WIRE_IDSCAN))
+ message = "The IdScan wire is cut - IdScan feature permanently disabled."
+ else if(activate && src.aiDisabledIdScanner)
+ src.aiDisabledIdScanner = 0
+ message = "IdScan feature has been enabled."
+ else if(!activate && !src.aiDisabledIdScanner)
+ src.aiDisabledIdScanner = 1
+ message = "IdScan feature has been disabled."
+
+ if(feedback && message)
+ to_chat(usr,message)
+
+/obj/machinery/door/airlock/proc/set_safeties(var/activate, var/feedback = 0)
+ var/message = ""
+ // Safeties! We don't need no stinking safeties!
+ if (wires.is_cut(WIRE_SAFETY))
+ message = text("The safety wire is cut - Cannot enable safeties.")
+ else if (!activate && src.safe)
+ safe = 0
+ else if (activate && !src.safe)
+ safe = 1
+
+ if(feedback && message)
+ to_chat(usr,message)
+
+// shock user with probability prb (if all connections & power are working)
+// returns 1 if shocked, 0 otherwise
+// The preceding comment was borrowed from the grille's shock script
+/obj/machinery/door/airlock/shock(mob/user, prb)
+ if(!arePowerSystemsOn())
+ return 0
+ if(hasShocked)
+ return 0 //Already shocked someone recently?
+ if(..())
+ hasShocked = 1
+ sleep(10)
+ hasShocked = 0
+ return 1
+ else
+ return 0
+
+
+/obj/machinery/door/airlock/update_icon()
+ cut_overlays()
+ if(density)
+ if(locked && lights && src.arePowerSystemsOn())
+ icon_state = "door_locked"
+ else
+ icon_state = "door_closed"
+ if(p_open || welded)
+ if(p_open)
+ add_overlay("panel_open")
+ if (!(stat & NOPOWER))
+ if(stat & BROKEN)
+ add_overlay("sparks_broken")
+ else if (health < maxhealth * 3/4)
+ add_overlay("sparks_damaged")
+ if(welded)
+ add_overlay("welded")
+ else if (health < maxhealth * 3/4 && !(stat & NOPOWER))
+ add_overlay("sparks_damaged")
+ else
+ icon_state = "door_open"
+ if((stat & BROKEN) && !(stat & NOPOWER))
+ add_overlay("sparks_open")
+ return
+
+/obj/machinery/door/airlock/do_animate(animation)
+ switch(animation)
+ if("opening")
+ cut_overlay()
+ if(p_open)
+ spawn(2) // The only work around that works. Downside is that the door will be gone for a millisecond.
+ flick("o_door_opening", src) //can not use flick due to BYOND bug updating overlays right before flicking
+ update_icon()
+ else
+ flick("door_opening", src)//[stat ? "_stat":]
+ update_icon()
+ if("closing")
+ cut_overlay()
+ if(p_open)
+ spawn(2)
+ flick("o_door_closing", src)
+ update_icon()
+ else
+ flick("door_closing", src)
+ update_icon()
+ if("spark")
+ if(density)
+ flick("door_spark", src)
+ if("deny")
+ if(density && src.arePowerSystemsOn())
+ flick("door_deny", src)
+ playsound(src, denied_sound, 50, 0, 3)
+ return
+
+/obj/machinery/door/airlock/attack_ai(mob/user as mob)
+ tgui_interact(user)
+
+/obj/machinery/door/airlock/attack_ghost(mob/user)
+ tgui_interact(user)
+
+/obj/machinery/door/airlock/tgui_interact(mob/user, datum/tgui/ui, datum/tgui/parent_ui, datum/tgui_state/custom_state)
+ ui = SStgui.try_update_ui(user, src, ui)
+ if(!ui)
+ ui = new(user, src, "AiAirlock", name)
+ ui.open()
+ if(custom_state)
+ ui.set_state(custom_state)
+ return TRUE
+
+/obj/machinery/door/airlock/tgui_data(mob/user)
+ var/list/data = list()
+
+ var/list/power = list()
+ power["main"] = main_power_lost_until > 0 ? 0 : 2
+ power["main_timeleft"] = round(main_power_lost_until > 0 ? max(main_power_lost_until - world.time, 0) / 10 : main_power_lost_until, 1)
+ power["backup"] = backup_power_lost_until > 0 ? 0 : 2
+ power["backup_timeleft"] = round(backup_power_lost_until > 0 ? max(backup_power_lost_until - world.time, 0) / 10 : backup_power_lost_until, 1)
+ data["power"] = power
+
+ data["shock"] = (electrified_until == 0) ? 2 : 0
+ data["shock_timeleft"] = round(electrified_until > 0 ? max(electrified_until - world.time, 0) / 10 : electrified_until, 1)
+ data["id_scanner"] = !aiDisabledIdScanner
+ data["locked"] = locked // bolted
+ data["lights"] = lights // bolt lights
+ data["safe"] = safe // safeties
+ data["speed"] = normalspeed // safe speed
+ data["welded"] = welded // welded
+ data["opened"] = !density // opened
+
+ var/list/wire = list()
+ wire["main_1"] = !wires.is_cut(WIRE_MAIN_POWER1)
+ wire["main_2"] = !wires.is_cut(WIRE_MAIN_POWER2)
+ wire["backup_1"] = !wires.is_cut(WIRE_BACKUP_POWER1)
+ wire["backup_2"] = !wires.is_cut(WIRE_BACKUP_POWER2)
+ wire["shock"] = !wires.is_cut(WIRE_ELECTRIFY)
+ wire["id_scanner"] = !wires.is_cut(WIRE_IDSCAN)
+ wire["bolts"] = !wires.is_cut(WIRE_DOOR_BOLTS)
+ wire["lights"] = !wires.is_cut(WIRE_BOLT_LIGHT)
+ wire["safe"] = !wires.is_cut(WIRE_SAFETY)
+ wire["timing"] = !wires.is_cut(WIRE_SPEED)
+
+ data["wires"] = wire
+ return data
+
+/obj/machinery/door/airlock/proc/hack(mob/user as mob)
+ if(src.aiHacking==0)
+ src.aiHacking=1
+ spawn(20)
+ //TODO: Make this take a minute
+ to_chat(user, "Airlock AI control has been blocked. Beginning fault-detection.")
+ sleep(50)
+ if(src.canAIControl())
+ to_chat(user, "Alert cancelled. Airlock control has been restored without our assistance.")
+ src.aiHacking=0
+ return
+ else if(!src.canAIHack(user))
+ to_chat(user, "We've lost our connection! Unable to hack airlock.")
+ src.aiHacking=0
+ return
+ to_chat(user, "Fault confirmed: airlock control wire disabled or cut.")
+ sleep(20)
+ to_chat(user, "Attempting to hack into airlock. This may take some time.")
+ sleep(200)
+ if(src.canAIControl())
+ to_chat(user, "Alert cancelled. Airlock control has been restored without our assistance.")
+ src.aiHacking=0
+ return
+ else if(!src.canAIHack(user))
+ to_chat(user, "We've lost our connection! Unable to hack airlock.")
+ src.aiHacking=0
+ return
+ to_chat(user, "Upload access confirmed. Loading control program into airlock software.")
+ sleep(170)
+ if(src.canAIControl())
+ to_chat(user, "Alert cancelled. Airlock control has been restored without our assistance.")
+ src.aiHacking=0
+ return
+ else if(!src.canAIHack(user))
+ to_chat(user, "We've lost our connection! Unable to hack airlock.")
+ src.aiHacking=0
+ return
+ to_chat(user, "Transfer complete. Forcing airlock to execute program.")
+ sleep(50)
+ //disable blocked control
+ src.aiControlDisabled = 2
+ to_chat(user, "Receiving control information from airlock.")
+ sleep(10)
+ //bring up airlock dialog
+ src.aiHacking = 0
+ if (user)
+ src.attack_ai(user)
+
+/obj/machinery/door/airlock/CanPass(atom/movable/mover, turf/target)
+ if (src.isElectrified())
+ if (istype(mover, /obj/item))
+ var/obj/item/i = mover
+ if (i.matter && (MAT_STEEL in i.matter) && i.matter[MAT_STEEL] > 0)
+ var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
+ s.set_up(5, 1, src)
+ s.start()
+ return ..()
+
+/obj/machinery/door/airlock/attack_hand(mob/user as mob)
+ if(!istype(usr, /mob/living/silicon))
+ if(src.isElectrified())
+ if(src.shock(user, 100))
+ return
+
+ if(istype(user, /mob/living/carbon/human))
+ var/mob/living/carbon/human/X = user
+ if(istype(X.species, /datum/species/xenos))
+ src.attack_alien(user)
+ return
+
+ if(src.p_open)
+ user.set_machine(src)
+ wires.Interact(user)
+ else
+ ..(user)
+ return
+
+/obj/machinery/door/airlock/tgui_act(action, params)
+ if(..())
+ return TRUE
+ if(!user_allowed(usr))
+ return TRUE
+
+ switch(action)
+ if("disrupt-main")
+ if(!main_power_lost_until)
+ loseMainPower()
+ update_icon()
+ else
+ to_chat(usr, "Main power is already offline.")
+ . = TRUE
+ if("disrupt-backup")
+ if(!backup_power_lost_until)
+ loseBackupPower()
+ update_icon()
+ else
+ to_chat(usr, "Backup power is already offline.")
+ . = TRUE
+ if("shock-restore")
+ electrify(0, 1)
+ . = TRUE
+ if("shock-temp")
+ electrify(30, 1)
+ . = TRUE
+ if("shock-perm")
+ electrify(-1, 1)
+ . = TRUE
+ if("idscan-toggle")
+ set_idscan(aiDisabledIdScanner, 1)
+ . = TRUE
+ // if("emergency-toggle")
+ // toggle_emergency(usr)
+ // . = TRUE
+ if("bolt-toggle")
+ toggle_bolt(usr)
+ . = TRUE
+ if("light-toggle")
+ if(wires.is_cut(WIRE_BOLT_LIGHT))
+ to_chat(usr, "The bolt lights wire is cut - The door bolt lights are permanently disabled.")
+ return
+ lights = !lights
+ update_icon()
+ . = TRUE
+ if("safe-toggle")
+ set_safeties(!safe, 1)
+ . = TRUE
+ if("speed-toggle")
+ if(wires.is_cut(WIRE_SPEED))
+ to_chat(usr, "The timing wire is cut - Cannot alter timing.")
+ return
+ normalspeed = !normalspeed
+ . = TRUE
+ if("open-close")
+ user_toggle_open(usr)
+ . = TRUE
+
+ update_icon()
+ return 1
+
+/obj/machinery/door/airlock/proc/user_allowed(mob/user)
+ var/allowed = (issilicon(user) && canAIControl(user))
+ if(!allowed && isobserver(user))
+ var/mob/observer/dead/D = user
+ if(D.can_admin_interact())
+ allowed = TRUE
+ return allowed
+
+/obj/machinery/door/airlock/proc/toggle_bolt(mob/user)
+ if(!user_allowed(user))
+ return
+ if(wires.is_cut(WIRE_DOOR_BOLTS))
+ to_chat(user, "The door bolt drop wire is cut - you can't toggle the door bolts.")
+ return
+ if(locked)
+ if(!arePowerSystemsOn())
+ to_chat(user, "The door has no power - you can't raise the door bolts.")
+ else
+ unlock()
+ to_chat(user, "The door bolts have been raised.")
+ // log_combat(user, src, "unbolted")
+ else
+ lock()
+ to_chat(user, "The door bolts have been dropped.")
+ // log_combat(user, src, "bolted")
+
+/obj/machinery/door/airlock/proc/user_toggle_open(mob/user)
+ if(!user_allowed(user))
+ return
+ if(welded)
+ to_chat(user, text("The airlock has been welded shut!"))
+ else if(locked)
+ to_chat(user, text("The door bolts are down!"))
+ else if(!density)
+ close()
+ else
+ open()
+
+/obj/machinery/door/airlock/proc/can_remove_electronics()
+ return src.p_open && (operating < 0 || (!operating && welded && !src.arePowerSystemsOn() && density && (!src.locked || (stat & BROKEN))))
+
+/obj/machinery/door/airlock/attackby(obj/item/C, mob/user as mob)
+ //to_world("airlock attackby src [src] obj [C] mob [user]")
+ if(!istype(usr, /mob/living/silicon))
+ if(src.isElectrified())
+ if(src.shock(user, 75))
+ return
+ if(istype(C, /obj/item/taperoll))
+ return
+
+ src.add_fingerprint(user)
+ if (attempt_vr(src,"attackby_vr",list(C, user))) return
+ if(istype(C, /mob/living))
+ ..()
+ return
+ if(!repairing && istype(C, /obj/item/weapon/weldingtool) && !( src.operating > 0 ) && src.density)
+ var/obj/item/weapon/weldingtool/W = C
+ if(W.remove_fuel(0,user))
+ if(!src.welded)
+ src.welded = 1
+ else
+ src.welded = null
+ playsound(src, C.usesound, 75, 1)
+ src.update_icon()
+ return
+ else
+ return
+ else if(C.is_screwdriver())
+ if (src.p_open)
+ if (stat & BROKEN)
+ to_chat(usr, "The panel is broken and cannot be closed.")
+ else
+ src.p_open = 0
+ playsound(src, C.usesound, 50, 1)
+ else
+ src.p_open = 1
+ playsound(src, C.usesound, 50, 1)
+ src.update_icon()
+ else if(C.is_wirecutter())
+ return src.attack_hand(user)
+ else if(istype(C, /obj/item/device/multitool))
+ return src.attack_hand(user)
+ else if(istype(C, /obj/item/device/assembly/signaler))
+ return src.attack_hand(user)
+ else if(istype(C, /obj/item/weapon/pai_cable)) // -- TLE
+ var/obj/item/weapon/pai_cable/cable = C
+ cable.plugin(src, user)
+ else if(!repairing && C.is_crowbar())
+ if(can_remove_electronics())
+ playsound(src, C.usesound, 75, 1)
+ user.visible_message("[user] removes the electronics from the airlock assembly.", "You start to remove electronics from the airlock assembly.")
+ if(do_after(user,40 * C.toolspeed))
+ to_chat(user, "You removed the airlock electronics!")
+
+ var/obj/structure/door_assembly/da = new assembly_type(src.loc)
+ if (istype(da, /obj/structure/door_assembly/multi_tile))
+ da.set_dir(src.dir)
+
+ da.anchored = TRUE
+ if(mineral)
+ da.glass = mineral
+ //else if(glass)
+ else if(glass && !da.glass)
+ da.glass = 1
+ da.state = 1
+ da.created_name = src.name
+ da.update_state()
+
+ if(operating == -1 || (stat & BROKEN))
+ new /obj/item/weapon/circuitboard/broken(src.loc)
+ operating = 0
+ else
+ if (!electronics) create_electronics()
+
+ electronics.loc = src.loc
+ electronics = null
+
+ qdel(src)
+ return
+ else if(arePowerSystemsOn())
+ to_chat(user, "The airlock's motors resist your efforts to force it.")
+ else if(locked)
+ to_chat(user, "The airlock's bolts prevent it from being forced.")
+ else
+ if(density)
+ spawn(0) open(1)
+ else
+ spawn(0) close(1)
+
+ // Check if we're using a crowbar or armblade, and if the airlock's unpowered for whatever reason (off, broken, etc).
+ else if(istype(C, /obj/item/weapon))
+ var/obj/item/weapon/W = C
+ if((W.pry == 1) && !arePowerSystemsOn())
+ if(locked)
+ to_chat(user, "The airlock's bolts prevent it from being forced.")
+ else if( !welded && !operating )
+ if(istype(C, /obj/item/weapon/material/twohanded/fireaxe)) // If this is a fireaxe, make sure it's held in two hands.
+ var/obj/item/weapon/material/twohanded/fireaxe/F = C
+ if(!F.wielded)
+ to_chat(user, "You need to be wielding \the [F] to do that.")
+ return
+ // At this point, it's an armblade or a fireaxe that passed the wielded test, let's try to open it.
+ if(density)
+ spawn(0)
+ open(1)
+ else
+ spawn(0)
+ close(1)
+ else
+ ..()
+ else
+ ..()
+ return
+
+/obj/machinery/door/airlock/phoron/attackby(C as obj, mob/user as mob)
+ if(C)
+ ignite(is_hot(C))
+ ..()
+
+/obj/machinery/door/airlock/set_broken()
+ src.p_open = 1
+ stat |= BROKEN
+ if (secured_wires)
+ lock()
+ for (var/mob/O in viewers(src, null))
+ if ((O.client && !( O.blinded )))
+ O.show_message("[src.name]'s control panel bursts open, sparks spewing out!")
+
+ var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
+ s.set_up(5, 1, src)
+ s.start()
+
+ update_icon()
+ return
+
+/obj/machinery/door/airlock/open(var/forced=0)
+ if(!can_open(forced))
+ return 0
+ use_power(360) //360 W seems much more appropriate for an actuator moving an industrial door capable of crushing people
+
+ //if the door is unpowered then it doesn't make sense to hear the woosh of a pneumatic actuator
+ for(var/P in player_list)
+ var/mob/M = P
+ if(!M || !M.client)
+ continue
+ var/old_sounds = M.client.is_preference_enabled(/datum/client_preference/old_door_sounds)
+ var/department_door_sounds = M.client.is_preference_enabled(/datum/client_preference/department_door_sounds)
+ var/sound
+ var/volume
+ if(old_sounds) // Do we have old sounds enabled? Play these even if we have department door sounds enabled.
+ if(arePowerSystemsOn())
+ sound = legacy_open_powered
+ volume = 50
+ else
+ sound = open_sound_unpowered
+ volume = 75
+ else if(!old_sounds && department_door_sounds && src.department_open_powered) // Else, we have old sounds disabled, the door has per-department door sounds, and we have chosen to play department door sounds, use these.
+ if(arePowerSystemsOn())
+ sound = department_open_powered
+ volume = 50
+ else
+ sound = open_sound_unpowered
+ volume = 75
+ else // Else, play these.
+ if(arePowerSystemsOn())
+ sound = open_sound_powered
+ volume = 50
+ else
+ sound = open_sound_unpowered
+ volume = 75
+
+ var/turf/T = get_turf(M)
+ var/distance = get_dist(T, get_turf(src))
+ if(distance <= world.view * 2)
+ if(T && T.z == get_z(src))
+ M.playsound_local(get_turf(src), sound, volume, 1, null, 0, TRUE, sound(sound), volume_channel = VOLUME_CHANNEL_DOORS)
+
+ if(src.closeOther != null && istype(src.closeOther, /obj/machinery/door/airlock/) && !src.closeOther.density)
+ src.closeOther.close()
+ return ..()
+
+/obj/machinery/door/airlock/can_open(var/forced=0)
+ if(!forced)
+ if(!arePowerSystemsOn() || wires.is_cut(WIRE_OPEN_DOOR))
+ return 0
+
+ if(locked || welded)
+ return 0
+ return ..()
+
+/obj/machinery/door/airlock/can_close(var/forced=0)
+ if(locked || welded)
+ return 0
+
+ if(!forced)
+ //despite the name, this wire is for general door control.
+ if(!arePowerSystemsOn() || wires.is_cut(WIRE_OPEN_DOOR))
+ return 0
+
+ return ..()
+
+/atom/movable/proc/blocks_airlock()
+ return density
+
+/obj/machinery/door/blocks_airlock()
+ return 0
+
+/obj/machinery/mech_sensor/blocks_airlock()
+ return 0
+
+/mob/living/blocks_airlock()
+ return 1
+
+/atom/movable/proc/airlock_crush(var/crush_damage)
+ return 0
+
+/obj/machinery/portable_atmospherics/canister/airlock_crush(var/crush_damage)
+ . = ..()
+ health -= crush_damage
+ healthcheck()
+
+/obj/effect/energy_field/airlock_crush(var/crush_damage)
+ adjust_strength(crush_damage)
+
+/obj/structure/closet/airlock_crush(var/crush_damage)
+ ..()
+ damage(crush_damage)
+ for(var/atom/movable/AM in src)
+ AM.airlock_crush()
+ return 1
+
+/mob/living/airlock_crush(var/crush_damage)
+ . = ..()
+ adjustBruteLoss(crush_damage)
+ SetStunned(5)
+ SetWeakened(5)
+ var/turf/T = get_turf(src)
+ T.add_blood(src)
+ return 1
+
+/mob/living/carbon/airlock_crush(var/crush_damage)
+ . = ..()
+ if(can_feel_pain())
+ emote("scream")
+
+/mob/living/silicon/robot/airlock_crush(var/crush_damage)
+ adjustBruteLoss(crush_damage)
+ return 0
+
+/obj/machinery/door/airlock/close(var/forced=0)
+ if(!can_close(forced))
+ return 0
+
+ if(safe)
+ for(var/turf/turf in locs)
+ for(var/atom/movable/AM in turf)
+ if(AM.blocks_airlock())
+ if(!has_beeped)
+ playsound(src, 'sound/machines/buzz-two.ogg', 50, 0)
+ has_beeped = 1
+ autoclose_in(6)
+ return
+
+ for(var/turf/turf in locs)
+ for(var/atom/movable/AM in turf)
+ if(AM.airlock_crush(DOOR_CRUSH_DAMAGE))
+ take_damage(DOOR_CRUSH_DAMAGE)
+
+ use_power(360) //360 W seems much more appropriate for an actuator moving an industrial door capable of crushing people
+ has_beeped = 0
+ for(var/P in player_list)
+ var/mob/M = P
+ if(!M || !M.client)
+ continue
+ var/old_sounds = M.client.is_preference_enabled(/datum/client_preference/old_door_sounds)
+ var/department_door_sounds = M.client.is_preference_enabled(/datum/client_preference/department_door_sounds)
+ var/sound
+ var/volume
+ if(old_sounds)
+ if(arePowerSystemsOn())
+ sound = legacy_close_powered
+ volume = 50
+ else
+ sound = open_sound_unpowered
+ volume = 75
+ else if(!old_sounds && department_door_sounds && src.department_close_powered) // Else, we have old sounds disabled, the door has per-department door sounds, and we have chosen to play department door sounds, use these.
+ if(arePowerSystemsOn())
+ sound = department_close_powered
+ volume = 50
+ else
+ sound = open_sound_unpowered
+ volume = 75
+ else
+ if(arePowerSystemsOn())
+ sound = close_sound_powered
+ volume = 50
+ else
+ sound = open_sound_unpowered
+ volume = 75
+
+ var/turf/T = get_turf(M)
+ var/distance = get_dist(T, get_turf(src))
+ if(distance <= world.view * 2)
+ if(T && T.z == get_z(src))
+ M.playsound_local(get_turf(src), sound, volume, 1, null, 0, TRUE, sound(sound), volume_channel = VOLUME_CHANNEL_DOORS)
+ for(var/turf/turf in locs)
+ var/obj/structure/window/killthis = (locate(/obj/structure/window) in turf)
+ if(killthis)
+ killthis.ex_act(2)//Smashin windows
+ return ..()
+
+/obj/machinery/door/airlock/proc/lock(var/forced=0)
+ if(locked)
+ return 0
+
+ if (operating && !forced) return 0
+
+ src.locked = 1
+ playsound(src, bolt_down_sound, 30, 0, 3, volume_channel = VOLUME_CHANNEL_DOORS)
+ for(var/mob/M in range(1,src))
+ M.show_message("You hear a click from the bottom of the door.", 2)
+ update_icon()
+ return 1
+
+/obj/machinery/door/airlock/proc/unlock(var/forced=0)
+ if(!src.locked)
+ return
+
+ if (!forced)
+ if(operating || !src.arePowerSystemsOn() || wires.is_cut(WIRE_DOOR_BOLTS)) return
+
+ src.locked = 0
+ playsound(src, bolt_up_sound, 30, 0, 3, volume_channel = VOLUME_CHANNEL_DOORS)
+ for(var/mob/M in range(1,src))
+ M.show_message("You hear a click from the bottom of the door.", 2)
+ update_icon()
+ return 1
+
+/obj/machinery/door/airlock/allowed(mob/M)
+ if(locked)
+ return 0
+ return ..(M)
+
+/obj/machinery/door/airlock/New(var/newloc, var/obj/structure/door_assembly/assembly=null)
+ ..()
+
+ //if assembly is given, create the new door from the assembly
+ if (assembly && istype(assembly))
+ assembly_type = assembly.type
+
+ electronics = assembly.electronics
+ electronics.loc = src
+
+ //update the door's access to match the electronics'
+ secured_wires = electronics.secure
+ if(electronics.one_access)
+ LAZYCLEARLIST(req_access)
+ req_one_access = src.electronics.conf_access
+ else
+ LAZYCLEARLIST(req_one_access)
+ req_access = src.electronics.conf_access
+
+ //get the name from the assembly
+ if(assembly.created_name)
+ name = assembly.created_name
+ else
+ name = "[istext(assembly.glass) ? "[assembly.glass] airlock" : assembly.base_name]"
+
+ //get the dir from the assembly
+ set_dir(assembly.dir)
+
+ //wires
+ var/turf/T = get_turf(newloc)
+ if(T && (T.z in using_map.admin_levels))
+ secured_wires = 1
+ if (secured_wires)
+ wires = new/datum/wires/airlock/secure(src)
+ else
+ wires = new/datum/wires/airlock(src)
+
+/obj/machinery/door/airlock/Initialize()
+ if(src.closeOtherId != null)
+ for (var/obj/machinery/door/airlock/A in machines)
+ if(A.closeOtherId == src.closeOtherId && A != src)
+ src.closeOther = A
+ break
+ name = "\improper [name]"
+ . = ..()
+
+/obj/machinery/door/airlock/Destroy()
+ qdel(wires)
+ wires = null
+ return ..()
+
+// Most doors will never be deconstructed over the course of a round,
+// so as an optimization defer the creation of electronics until
+// the airlock is deconstructed
+/obj/machinery/door/airlock/proc/create_electronics()
+ //create new electronics
+ if (secured_wires)
+ src.electronics = new/obj/item/weapon/airlock_electronics/secure( src.loc )
+ else
+ src.electronics = new/obj/item/weapon/airlock_electronics( src.loc )
+
+ //update the electronics to match the door's access
+ if(LAZYLEN(req_access))
+ electronics.conf_access = req_access
+ else if (LAZYLEN(req_one_access))
+ electronics.conf_access = req_one_access
+ electronics.one_access = 1
+
+/obj/machinery/door/airlock/emp_act(var/severity)
+ if(prob(40/severity))
+ var/duration = world.time + SecondsToTicks(30 / severity)
+ if(duration > electrified_until)
+ electrify(duration)
+ ..()
+
+/obj/machinery/door/airlock/power_change() //putting this is obj/machinery/door itself makes non-airlock doors turn invisible for some reason
+ ..()
+ if(stat & NOPOWER)
+ // If we lost power, disable electrification
+ // Keeping door lights on, runs on internal battery or something.
+ electrified_until = 0
+ update_icon()
+
+/obj/machinery/door/airlock/proc/prison_open()
+ if(arePowerSystemsOn())
+ src.unlock()
+ src.open()
+ src.lock()
+ return
+
+
+/obj/machinery/door/airlock/rcd_values(mob/living/user, obj/item/weapon/rcd/the_rcd, passed_mode)
+ switch(passed_mode)
+ if(RCD_DECONSTRUCT)
+ // Old RCD code made it cost 10 units to decon an airlock.
+ // Now the new one costs ten "sheets".
+ return list(
+ RCD_VALUE_MODE = RCD_DECONSTRUCT,
+ RCD_VALUE_DELAY = 5 SECONDS,
+ RCD_VALUE_COST = RCD_SHEETS_PER_MATTER_UNIT * 10
+ )
+ return FALSE
+
+/obj/machinery/door/airlock/rcd_act(mob/living/user, obj/item/weapon/rcd/the_rcd, passed_mode)
+ switch(passed_mode)
+ if(RCD_DECONSTRUCT)
+ to_chat(user, span("notice", "You deconstruct \the [src]."))
+ qdel(src)
+ return TRUE
+ return FALSE
+=======
+//VOREStation Edit - Redone a lot of airlock things:
+/*
+- Specific department maintenance doors
+- Named doors properly according to type
+- Gave them default access levels with the access constants
+- Improper'd all of the names in the new()
+*/
+
+/obj/machinery/door/airlock
+ name = "Airlock"
+ icon = 'icons/obj/doors/Doorint.dmi'
+ icon_state = "door_closed"
+ power_channel = ENVIRON
+
+ explosion_resistance = 10
+
+ // Doors do their own stuff
+ bullet_vulnerability = 0
+
+ blocks_emissive = EMISSIVE_BLOCK_GENERIC // Not quite as nice as /tg/'s custom masks. We should make those sometime
+
+ var/aiControlDisabled = 0 //If 1, AI control is disabled until the AI hacks back in and disables the lock. If 2, the AI has bypassed the lock. If -1, the control is enabled but the AI had bypassed it earlier, so if it is disabled again the AI would have no trouble getting back in.
+ var/hackProof = 0 // if 1, this door can't be hacked by the AI
+ var/electrified_until = 0 //World time when the door is no longer electrified. -1 if it is permanently electrified until someone fixes it.
+ var/main_power_lost_until = 0 //World time when main power is restored.
+ var/backup_power_lost_until = -1 //World time when backup power is restored.
+ var/has_beeped = 0 //If 1, will not beep on failed closing attempt. Resets when door closes.
+ var/spawnPowerRestoreRunning = 0
+ var/welded = null
+ var/locked = 0
+ var/lights = 1 // bolt lights show by default
+ var/aiDisabledIdScanner = 0
+ var/aiHacking = 0
+ var/obj/machinery/door/airlock/closeOther = null
+ var/closeOtherId = null
+ var/lockdownbyai = 0
+ autoclose = 1
+ var/assembly_type = /obj/structure/door_assembly
+ var/mineral = null
+ var/justzap = 0
+ var/safe = 1
+ normalspeed = 1
+ var/obj/item/weapon/airlock_electronics/electronics = null
+ var/hasShocked = 0 //Prevents multiple shocks from happening
+ var/secured_wires = 0
+ var/datum/wires/airlock/wires = null
+
+ var/open_sound_powered = 'sound/machines/door/covert1o.ogg'
+ var/open_sound_unpowered = 'sound/machines/door/airlockforced.ogg'
+ var/close_sound_powered = 'sound/machines/door/covert1c.ogg'
+ var/legacy_open_powered = 'sound/machines/door/old_airlock.ogg'
+ var/legacy_close_powered = 'sound/machines/door/old_airlockclose.ogg'
+ var/department_open_powered = null
+ var/department_close_powered = null
+ var/denied_sound = 'sound/machines/deniedbeep.ogg'
+ var/bolt_up_sound = 'sound/machines/door/boltsup.ogg'
+ var/bolt_down_sound = 'sound/machines/door/boltsdown.ogg'
+
+/obj/machinery/door/airlock/attack_generic(var/mob/living/user, var/damage)
+ if(stat & (BROKEN|NOPOWER))
+ if(damage >= STRUCTURE_MIN_DAMAGE_THRESHOLD)
+ if(src.locked || src.welded)
+ visible_message("\The [user] begins breaking into \the [src] internals!")
+ user.set_AI_busy(TRUE) // If the mob doesn't have an AI attached, this won't do anything.
+ if(do_after(user,10 SECONDS,src))
+ src.locked = 0
+ src.welded = 0
+ update_icon()
+ open(1)
+ if(prob(25))
+ src.shock(user, 100)
+ user.set_AI_busy(FALSE)
+ else if(src.density)
+ visible_message("\The [user] forces \the [src] open!")
+ open(1)
+ else
+ visible_message("\The [user] forces \the [src] closed!")
+ close(1)
+ else
+ visible_message("\The [user] strains fruitlessly to force \the [src] [density ? "open" : "closed"].")
+ return
+ ..()
+
+/obj/machinery/door/airlock/attack_alien(var/mob/user) //Familiar, right? Doors. -Mechoid
+ if(istype(user, /mob/living/carbon/human))
+ var/mob/living/carbon/human/X = user
+ if(istype(X.species, /datum/species/xenos))
+ if(src.locked || src.welded)
+ visible_message("\The [user] begins tearing into \the [src] internals!")
+ src.do_animate("deny")
+ if(do_after(user,15 SECONDS,src))
+ visible_message("\The [user] tears \the [src] open, sparks flying from its electronics!")
+ src.do_animate("spark")
+ playsound(src, 'sound/machines/door/airlock_tear_apart.ogg', 100, 1, volume_channel = VOLUME_CHANNEL_DOORS)
+ src.locked = 0
+ src.welded = 0
+ update_icon()
+ open(1)
+ src.set_broken() //These aren't emags, these be CLAWS
+ else if(src.density)
+ visible_message("\The [user] begins forcing \the [src] open!")
+ if(do_after(user, 5 SECONDS,src))
+ playsound(src, 'sound/machines/door/airlock_creaking.ogg', 100, 1, volume_channel = VOLUME_CHANNEL_DOORS)
+ visible_message("\The [user] forces \the [src] open!")
+ open(1)
+ else
+ visible_message("\The [user] forces \the [src] closed!")
+ close(1)
+ else
+ src.do_animate("deny")
+ visible_message("\The [user] strains fruitlessly to force \the [src] [density ? "open" : "closed"].")
+ return
+ ..()
+
+/obj/machinery/door/airlock/get_material()
+ if(mineral)
+ return get_material_by_name(mineral)
+ return get_material_by_name(MAT_STEEL)
+
+/obj/machinery/door/airlock/command
+ name = "Command Airlock"
+ icon = 'icons/obj/doors/Doorcom.dmi'
+ req_one_access = list(access_heads)
+ assembly_type = /obj/structure/door_assembly/door_assembly_com
+ open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ department_open_powered = 'sound/machines/door/cmd3o.ogg'
+ department_close_powered = 'sound/machines/door/cmd3c.ogg'
+
+/obj/machinery/door/airlock/security
+ name = "Security Airlock"
+ icon = 'icons/obj/doors/Doorsec.dmi'
+ req_one_access = list(access_security)
+ assembly_type = /obj/structure/door_assembly/door_assembly_sec
+ open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ department_open_powered = 'sound/machines/door/sec1o.ogg'
+ department_close_powered = 'sound/machines/door/sec1c.ogg'
+
+/obj/machinery/door/airlock/engineering
+ name = "Engineering Airlock"
+ icon = 'icons/obj/doors/Dooreng.dmi'
+ req_one_access = list(access_engine)
+ assembly_type = /obj/structure/door_assembly/door_assembly_eng
+ open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ department_open_powered = 'sound/machines/door/eng1o.ogg'
+ department_close_powered = 'sound/machines/door/eng1c.ogg'
+
+/obj/machinery/door/airlock/engineeringatmos
+ name = "Atmospherics Airlock"
+ icon = 'icons/obj/doors/Doorengatmos.dmi'
+ req_one_access = list(access_atmospherics)
+ assembly_type = /obj/structure/door_assembly/door_assembly_eat
+ open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ department_open_powered = 'sound/machines/door/eng1o.ogg'
+ department_close_powered = 'sound/machines/door/eng1c.ogg'
+
+/obj/machinery/door/airlock/medical
+ name = "Medical Airlock"
+ icon = 'icons/obj/doors/Doormed.dmi'
+ req_one_access = list(access_medical)
+ assembly_type = /obj/structure/door_assembly/door_assembly_med
+ open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ department_open_powered = 'sound/machines/door/med1o.ogg'
+ department_close_powered = 'sound/machines/door/med1c.ogg'
+
+/obj/machinery/door/airlock/maintenance
+ name = "Maintenance Access"
+ icon = 'icons/obj/doors/Doormaint.dmi'
+ //req_one_access = list(access_maint_tunnels) //VOREStation Edit - Maintenance is open access
+ assembly_type = /obj/structure/door_assembly/door_assembly_mai
+ open_sound_powered = 'sound/machines/door/door2o.ogg'
+ close_sound_powered = 'sound/machines/door/door2c.ogg'
+
+/obj/machinery/door/airlock/maintenance/cargo
+ icon = 'icons/obj/doors/Doormaint_cargo.dmi'
+ req_one_access = list(access_cargo)
+ open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ department_open_powered = 'sound/machines/door/door2o.ogg'
+ department_close_powered = 'sound/machines/door/door2c.ogg'
+
+/obj/machinery/door/airlock/maintenance/command
+ icon = 'icons/obj/doors/Doormaint_command.dmi'
+ req_one_access = list(access_heads)
+
+/obj/machinery/door/airlock/maintenance/common
+ icon = 'icons/obj/doors/Doormaint_common.dmi'
+ open_sound_powered = 'sound/machines/door/hall3o.ogg'
+ close_sound_powered = 'sound/machines/door/hall3c.ogg'
+
+/obj/machinery/door/airlock/maintenance/engi
+ icon = 'icons/obj/doors/Doormaint_engi.dmi'
+ req_one_access = list(access_engine)
+
+/obj/machinery/door/airlock/maintenance/int
+ icon = 'icons/obj/doors/Doormaint_int.dmi'
+
+/obj/machinery/door/airlock/maintenance/medical
+ icon = 'icons/obj/doors/Doormaint_med.dmi'
+ req_one_access = list(access_medical)
+
+/obj/machinery/door/airlock/maintenance/rnd
+ icon = 'icons/obj/doors/Doormaint_rnd.dmi'
+ req_one_access = list(access_research)
+
+/obj/machinery/door/airlock/maintenance/sec
+ icon = 'icons/obj/doors/Doormaint_sec.dmi'
+ req_one_access = list(access_security)
+
+/obj/machinery/door/airlock/external
+ name = "External Airlock"
+ icon = 'icons/obj/doors/Doorext.dmi'
+ assembly_type = /obj/structure/door_assembly/door_assembly_ext
+ open_sound_powered = 'sound/machines/door/space1o.ogg'
+ close_sound_powered = 'sound/machines/door/space1c.ogg'
+
+/obj/machinery/door/airlock/external/bolted
+ icon_state = "door_locked" // So it looks visibly bolted in map editor
+ locked = 1
+
+// For convenience in making docking ports: one that is pre-bolted with frequency set!
+/obj/machinery/door/airlock/external/bolted/cycling
+ frequency = 1379
+
+/obj/machinery/door/airlock/glass_external
+ name = "External Airlock"
+ icon = 'icons/obj/doors/Doorextglass.dmi'
+ assembly_type = /obj/structure/door_assembly/door_assembly_ext
+ opacity = 0
+ glass = 1
+ req_one_access = list(access_external_airlocks)
+ open_sound_powered = 'sound/machines/door/space1o.ogg'
+ close_sound_powered = 'sound/machines/door/space1c.ogg'
+
+/obj/machinery/door/airlock/glass
+ name = "Glass Airlock"
+ icon = 'icons/obj/doors/Doorglass.dmi'
+ hitsound = 'sound/effects/Glasshit.ogg'
+ open_sound_powered = 'sound/machines/door/hall1o.ogg'
+ close_sound_powered = 'sound/machines/door/hall1c.ogg'
+ legacy_open_powered = 'sound/machines/door/windowdoor.ogg'
+ maxhealth = 300
+ explosion_resistance = 5
+ opacity = 0
+ glass = 1
+
+/obj/machinery/door/airlock/centcom
+ name = "Centcom Airlock"
+ icon = 'icons/obj/doors/Doorele.dmi'
+ req_one_access = list(access_cent_general)
+ opacity = 1
+ open_sound_powered = 'sound/machines/door/cmd3o.ogg'
+ close_sound_powered = 'sound/machines/door/cmd3c.ogg'
+
+/obj/machinery/door/airlock/glass_centcom
+ name = "Airlock"
+ icon = 'icons/obj/doors/Dooreleglass.dmi'
+ opacity = 0
+ glass = 1
+ open_sound_powered = 'sound/machines/door/cmd3o.ogg'
+ close_sound_powered = 'sound/machines/door/cmd3c.ogg'
+
+/obj/machinery/door/airlock/vault
+ name = "Vault"
+ icon = 'icons/obj/doors/vault.dmi'
+ explosion_resistance = 20
+ opacity = 1
+ secured_wires = 1
+ assembly_type = /obj/structure/door_assembly/door_assembly_highsecurity //Until somebody makes better sprites.
+ req_one_access = list(access_heads_vault)
+ open_sound_powered = 'sound/machines/door/vault1o.ogg'
+ close_sound_powered = 'sound/machines/door/vault1c.ogg'
+
+/obj/machinery/door/airlock/vault/bolted
+ icon_state = "door_locked"
+ locked = 1
+
+/obj/machinery/door/airlock/freezer
+ name = "Freezer Airlock"
+ icon = 'icons/obj/doors/Doorfreezer.dmi'
+ opacity = 1
+ assembly_type = /obj/structure/door_assembly/door_assembly_fre
+
+/obj/machinery/door/airlock/hatch
+ name = "Airtight Hatch"
+ icon = 'icons/obj/doors/Doorhatchele.dmi'
+ explosion_resistance = 20
+ opacity = 1
+ assembly_type = /obj/structure/door_assembly/door_assembly_hatch
+ req_one_access = list(access_maint_tunnels)
+ open_sound_powered = 'sound/machines/door/hatchopen.ogg'
+ close_sound_powered = 'sound/machines/door/hatchclose.ogg'
+ open_sound_unpowered = 'sound/machines/door/hatchforced.ogg'
+
+/obj/machinery/door/airlock/maintenance_hatch
+ name = "Maintenance Hatch"
+ icon = 'icons/obj/doors/Doorhatchmaint2.dmi'
+ explosion_resistance = 20
+ opacity = 1
+ assembly_type = /obj/structure/door_assembly/door_assembly_mhatch
+ req_one_access = list(access_maint_tunnels)
+ open_sound_powered = 'sound/machines/door/hatchopen.ogg'
+ close_sound_powered = 'sound/machines/door/hatchclose.ogg'
+ open_sound_unpowered = 'sound/machines/door/hatchforced.ogg'
+
+/obj/machinery/door/airlock/glass_command
+ name = "Command Airlock"
+ icon = 'icons/obj/doors/Doorcomglass.dmi'
+ hitsound = 'sound/effects/Glasshit.ogg'
+ maxhealth = 300
+ explosion_resistance = 5
+ opacity = 0
+ assembly_type = /obj/structure/door_assembly/door_assembly_com
+ glass = 1
+ req_one_access = list(access_heads)
+ open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ department_open_powered = 'sound/machines/door/cmd1o.ogg'
+ department_close_powered = 'sound/machines/door/cmd1c.ogg'
+
+/obj/machinery/door/airlock/glass_engineering
+ name = "Engineering Airlock"
+ icon = 'icons/obj/doors/Doorengglass.dmi'
+ hitsound = 'sound/effects/Glasshit.ogg'
+ maxhealth = 300
+ explosion_resistance = 5
+ opacity = 0
+ assembly_type = /obj/structure/door_assembly/door_assembly_eng
+ glass = 1
+ req_one_access = list(access_engine)
+ department_open_powered = 'sound/machines/door/eng1o.ogg'
+ department_close_powered = 'sound/machines/door/eng1c.ogg'
+
+/obj/machinery/door/airlock/glass_engineeringatmos
+ name = "Atmospherics Airlock"
+ icon = 'icons/obj/doors/Doorengatmoglass.dmi'
+ hitsound = 'sound/effects/Glasshit.ogg'
+ maxhealth = 300
+ explosion_resistance = 5
+ opacity = 0
+ assembly_type = /obj/structure/door_assembly/door_assembly_eat
+ glass = 1
+ req_one_access = list(access_atmospherics)
+ open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ department_open_powered = 'sound/machines/door/eng1o.ogg'
+ department_close_powered = 'sound/machines/door/eng1c.ogg'
+
+/obj/machinery/door/airlock/glass_security
+ name = "Security Airlock"
+ icon = 'icons/obj/doors/Doorsecglass.dmi'
+ hitsound = 'sound/effects/Glasshit.ogg'
+ maxhealth = 300
+ explosion_resistance = 5
+ opacity = 0
+ assembly_type = /obj/structure/door_assembly/door_assembly_sec
+ glass = 1
+ req_one_access = list(access_security)
+ open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ department_open_powered = 'sound/machines/door/sec1o.ogg'
+ department_close_powered = 'sound/machines/door/sec1c.ogg'
+
+/obj/machinery/door/airlock/glass_medical
+ name = "Medical Airlock"
+ icon = 'icons/obj/doors/Doormedglass.dmi'
+ hitsound = 'sound/effects/Glasshit.ogg'
+ maxhealth = 300
+ explosion_resistance = 5
+ opacity = 0
+ assembly_type = /obj/structure/door_assembly/door_assembly_med
+ glass = 1
+ req_one_access = list(access_medical)
+ open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ department_open_powered = 'sound/machines/door/med1o.ogg'
+ department_close_powered = 'sound/machines/door/med1c.ogg'
+
+/obj/machinery/door/airlock/mining
+ name = "Mining Airlock"
+ icon = 'icons/obj/doors/Doormining.dmi'
+ assembly_type = /obj/structure/door_assembly/door_assembly_min
+ req_one_access = list(access_mining)
+ open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ department_open_powered = 'sound/machines/door/cgo1o.ogg'
+ department_close_powered = 'sound/machines/door/cgo1c.ogg'
+
+/obj/machinery/door/airlock/atmos
+ name = "Atmospherics Airlock"
+ icon = 'icons/obj/doors/Dooratmo.dmi'
+ assembly_type = /obj/structure/door_assembly/door_assembly_atmo
+ req_one_access = list(access_atmospherics)
+ open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ department_open_powered = 'sound/machines/door/eng1o.ogg'
+ department_close_powered = 'sound/machines/door/eng1c.ogg'
+
+/obj/machinery/door/airlock/research
+ name = "Research Airlock"
+ icon = 'icons/obj/doors/Doorresearch.dmi'
+ assembly_type = /obj/structure/door_assembly/door_assembly_research
+ open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ department_open_powered = 'sound/machines/door/sci1o.ogg'
+ department_close_powered = 'sound/machines/door/sci1c.ogg'
+
+/obj/machinery/door/airlock/glass_research
+ name = "Research Airlock"
+ icon = 'icons/obj/doors/Doorresearchglass.dmi'
+ hitsound = 'sound/effects/Glasshit.ogg'
+ maxhealth = 300
+ explosion_resistance = 5
+ opacity = 0
+ assembly_type = /obj/structure/door_assembly/door_assembly_research
+ glass = 1
+ req_one_access = list(access_research)
+ open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ department_open_powered = 'sound/machines/door/sci1o.ogg'
+ department_close_powered = 'sound/machines/door/sci1c.ogg'
+
+/obj/machinery/door/airlock/glass_mining
+ name = "Mining Airlock"
+ icon = 'icons/obj/doors/Doorminingglass.dmi'
+ hitsound = 'sound/effects/Glasshit.ogg'
+ maxhealth = 300
+ explosion_resistance = 5
+ opacity = 0
+ assembly_type = /obj/structure/door_assembly/door_assembly_min
+ glass = 1
+ req_one_access = list(access_mining)
+ open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ department_open_powered = 'sound/machines/door/cgo1o.ogg'
+ department_close_powered = 'sound/machines/door/cgo1c.ogg'
+
+/obj/machinery/door/airlock/glass_atmos
+ name = "Atmospherics Airlock"
+ icon = 'icons/obj/doors/Dooratmoglass.dmi'
+ hitsound = 'sound/effects/Glasshit.ogg'
+ maxhealth = 300
+ explosion_resistance = 5
+ opacity = 0
+ assembly_type = /obj/structure/door_assembly/door_assembly_atmo
+ glass = 1
+ req_one_access = list(access_atmospherics)
+ open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ department_open_powered = 'sound/machines/door/eng1o.ogg'
+ department_close_powered = 'sound/machines/door/eng1c.ogg'
+
+/obj/machinery/door/airlock/gold
+ name = "Gold Airlock"
+ icon = 'icons/obj/doors/Doorgold.dmi'
+ mineral = "gold"
+
+/obj/machinery/door/airlock/silver
+ name = "Silver Airlock"
+ icon = 'icons/obj/doors/Doorsilver.dmi'
+ mineral = "silver"
+
+/obj/machinery/door/airlock/diamond
+ name = "Diamond Airlock"
+ icon = 'icons/obj/doors/Doordiamond.dmi'
+ mineral = "diamond"
+
+/obj/machinery/door/airlock/uranium
+ name = "Uranium Airlock"
+ desc = "And they said I was crazy."
+ icon = 'icons/obj/doors/Dooruranium.dmi'
+ mineral = "uranium"
+ var/last_event = 0
+ var/rad_power = 7.5
+
+/obj/machinery/door/airlock/process()
+ // Deliberate no call to parent.
+ if(main_power_lost_until > 0 && world.time >= main_power_lost_until)
+ regainMainPower()
+
+ if(backup_power_lost_until > 0 && world.time >= backup_power_lost_until)
+ regainBackupPower()
+
+ else if(electrified_until > 0 && world.time >= electrified_until)
+ electrify(0)
+
+ if (..() == PROCESS_KILL && !(main_power_lost_until > 0 || backup_power_lost_until > 0 || electrified_until > 0))
+ . = PROCESS_KILL
+
+/obj/machinery/door/airlock/uranium/process()
+ if(world.time > last_event+20)
+ if(prob(50))
+ SSradiation.radiate(src, rad_power)
+ last_event = world.time
+ ..()
+
+/obj/machinery/door/airlock/phoron
+ name = "Phoron Airlock"
+ desc = "No way this can end badly."
+ icon = 'icons/obj/doors/Doorphoron.dmi'
+ mineral = "phoron"
+
+/obj/machinery/door/airlock/phoron/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume)
+ if(exposed_temperature > 300)
+ PhoronBurn(exposed_temperature)
+
+/obj/machinery/door/airlock/phoron/proc/ignite(exposed_temperature)
+ if(exposed_temperature > 300)
+ PhoronBurn(exposed_temperature)
+
+/obj/machinery/door/airlock/phoron/proc/PhoronBurn(temperature)
+ for(var/turf/simulated/floor/target_tile in range(2,loc))
+ target_tile.assume_gas("phoron", 35, 400+T0C)
+ spawn (0) target_tile.hotspot_expose(temperature, 400)
+ for(var/turf/simulated/wall/W in range(3,src))
+ W.burn((temperature/4))//Added so that you can't set off a massive chain reaction with a small flame
+ for(var/obj/machinery/door/airlock/phoron/D in range(3,src))
+ D.ignite(temperature/4)
+ new/obj/structure/door_assembly( src.loc )
+ qdel(src)
+
+/obj/machinery/door/airlock/sandstone
+ name = "Sandstone Airlock"
+ icon = 'icons/obj/doors/Doorsand.dmi'
+ mineral = "sandstone"
+
+/obj/machinery/door/airlock/science
+ name = "Research Airlock"
+ icon = 'icons/obj/doors/Doorsci.dmi'
+ assembly_type = /obj/structure/door_assembly/door_assembly_science
+ req_one_access = list(access_research)
+ open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ department_open_powered = 'sound/machines/door/sci1o.ogg'
+ department_close_powered = 'sound/machines/door/sci1c.ogg'
+
+/obj/machinery/door/airlock/glass_science
+ name = "Glass Airlocks"
+ icon = 'icons/obj/doors/Doorsciglass.dmi'
+ opacity = 0
+ assembly_type = /obj/structure/door_assembly/door_assembly_science
+ glass = 1
+ req_one_access = list(access_research)
+ open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off.
+ department_open_powered = 'sound/machines/door/sci1o.ogg'
+ department_close_powered = 'sound/machines/door/sci1c.ogg'
+
+/obj/machinery/door/airlock/highsecurity
+ name = "Secure Airlock"
+ icon = 'icons/obj/doors/hightechsecurity.dmi'
+ explosion_resistance = 20
+ secured_wires = 1
+ assembly_type = /obj/structure/door_assembly/door_assembly_highsecurity
+ req_one_access = list(access_heads_vault)
+ open_sound_powered = 'sound/machines/door/secure1o.ogg'
+ close_sound_powered = 'sound/machines/door/secure1c.ogg'
+
+/obj/machinery/door/airlock/voidcraft
+ name = "voidcraft hatch"
+ desc = "It's an extra resilient airlock intended for spacefaring vessels."
+ icon = 'icons/obj/doors/shuttledoors.dmi'
+ explosion_resistance = 20
+ opacity = 0
+ glass = 1
+ assembly_type = /obj/structure/door_assembly/door_assembly_voidcraft
+ open_sound_powered = 'sound/machines/door/shuttle1o.ogg'
+ close_sound_powered = 'sound/machines/door/shuttle1c.ogg'
+
+// Airlock opens from top-bottom instead of left-right.
+/obj/machinery/door/airlock/voidcraft/vertical
+ icon = 'icons/obj/doors/shuttledoors_vertical.dmi'
+ assembly_type = /obj/structure/door_assembly/door_assembly_voidcraft/vertical
+ open_sound_powered = 'sound/machines/door/shuttle1o.ogg'
+ close_sound_powered = 'sound/machines/door/shuttle1c.ogg'
+
+
+/datum/category_item/catalogue/anomalous/precursor_a/alien_airlock
+ name = "Precursor Alpha Object - Doors"
+ desc = "This object appears to be used in order to restrict or allow access to \
+ rooms based on its physical state. In other words, a door. \
+ Despite being designed and created by unknown ancient alien hands, this door has \
+ a large number of similarities to the conventional airlock, such as being driven by \
+ electricity, opening and closing by physically moving, and being air tight. \
+ It also operates by responding to signals through internal electrical conduits. \
+ These characteristics make it possible for one with experience with a multitool \
+ to manipulate the door.\
+
\
+ The symbol on the door does not match any living species' patterns, giving further \
+ implications that this door is very old, and yet it remains operational after \
+ thousands of years. It is unknown if that is due to superb construction, or \
+ unseen autonomous maintenance having been performed."
+ value = CATALOGUER_REWARD_EASY
+
+/obj/machinery/door/airlock/alien
+ name = "alien airlock"
+ desc = "You're fairly sure this is a door."
+ catalogue_data = list(/datum/category_item/catalogue/anomalous/precursor_a/alien_airlock)
+ icon = 'icons/obj/doors/Dooralien.dmi'
+ explosion_resistance = 20
+ secured_wires = TRUE
+ hackProof = TRUE
+ assembly_type = /obj/structure/door_assembly/door_assembly_alien
+ req_one_access = list(access_alien)
+
+/obj/machinery/door/airlock/alien/locked
+ icon_state = "door_locked"
+ locked = TRUE
+
+/obj/machinery/door/airlock/alien/public // Entry to UFO.
+ req_one_access = list()
+ normalspeed = FALSE // So it closes faster and hopefully keeps the warm air inside.
+ hackProof = TRUE //VOREStation Edit - No borgos
+
+/*
+About the new airlock wires panel:
+* An airlock wire dialog can be accessed by the normal way or by using wirecutters or a multitool on the door while the wire-panel is open. This would show the following wires, which you can either wirecut/mend or send a multitool pulse through. There are 9 wires.
+* one wire from the ID scanner. Sending a pulse through this flashes the red light on the door (if the door has power). If you cut this wire, the door will stop recognizing valid IDs. (If the door has 0000 access, it still opens and closes, though)
+* two wires for power. Sending a pulse through either one causes a breaker to trip, disabling the door for 10 seconds if backup power is connected, or 1 minute if not (or until backup power comes back on, whichever is shorter). Cutting either one disables the main door power, but unless backup power is also cut, the backup power re-powers the door in 10 seconds. While unpowered, the door may be open, but bolts-raising will not work. Cutting these wires may electrocute the user.
+* one wire for door bolts. Sending a pulse through this drops door bolts (whether the door is powered or not) or raises them (if it is). Cutting this wire also drops the door bolts, and mending it does not raise them. If the wire is cut, trying to raise the door bolts will not work.
+* two wires for backup power. Sending a pulse through either one causes a breaker to trip, but this does not disable it unless main power is down too (in which case it is disabled for 1 minute or however long it takes main power to come back, whichever is shorter). Cutting either one disables the backup door power (allowing it to be crowbarred open, but disabling bolts-raising), but may electocute the user.
+* one wire for opening the door. Sending a pulse through this while the door has power makes it open the door if no access is required.
+* one wire for AI control. Sending a pulse through this blocks AI control for a second or so (which is enough to see the AI control light on the panel dialog go off and back on again). Cutting this prevents the AI from controlling the door unless it has hacked the door through the power connection (which takes about a minute). If both main and backup power are cut, as well as this wire, then the AI cannot operate or hack the door at all.
+* one wire for electrifying the door. Sending a pulse through this electrifies the door for 30 seconds. Cutting this wire electrifies the door, so that the next person to touch the door without insulated gloves gets electrocuted. (Currently it is also STAYING electrified until someone mends the wire)
+* one wire for controling door safetys. When active, door does not close on someone. When cut, door will ruin someone's shit. When pulsed, door will immedately ruin someone's shit.
+* one wire for controlling door speed. When active, dor closes at normal rate. When cut, door does not close manually. When pulsed, door attempts to close every tick.
+*/
+
+
+
+/obj/machinery/door/airlock/bumpopen(mob/living/user as mob) //Airlocks now zap you when you 'bump' them open when they're electrified. --NeoFite
+ if(!issilicon(usr))
+ if(src.isElectrified())
+ if(!src.justzap)
+ if(src.shock(user, 100))
+ src.justzap = 1
+ spawn (10)
+ src.justzap = 0
+ return
+ else /*if(src.justzap)*/
+ return
+ else if(user.hallucination > 50 && prob(10) && src.operating == 0)
+ to_chat(user, "You feel a powerful shock course through your body!")
+ user.halloss += 10
+ user.stunned += 10
+ return
+ ..(user)
+
+/obj/machinery/door/airlock/proc/isElectrified()
+ if(src.electrified_until != 0)
+ return 1
+ return 0
+
+/obj/machinery/door/airlock/proc/canAIControl()
+ return ((src.aiControlDisabled!=1) && (!src.isAllPowerLoss()));
+
+/obj/machinery/door/airlock/proc/canAIHack()
+ return ((src.aiControlDisabled==1) && (!hackProof) && (!src.isAllPowerLoss()));
+
+/obj/machinery/door/airlock/proc/arePowerSystemsOn()
+ if (stat & (NOPOWER|BROKEN))
+ return 0
+ return (src.main_power_lost_until==0 || src.backup_power_lost_until==0)
+
+/obj/machinery/door/airlock/requiresID()
+ return !(wires.is_cut(WIRE_IDSCAN) || aiDisabledIdScanner)
+
+/obj/machinery/door/airlock/proc/isAllPowerLoss()
+ if(stat & (NOPOWER|BROKEN))
+ return 1
+ if(mainPowerCablesCut() && backupPowerCablesCut())
+ return 1
+ return 0
+
+/obj/machinery/door/airlock/proc/mainPowerCablesCut()
+ return wires.is_cut(WIRE_MAIN_POWER1) || wires.is_cut(WIRE_MAIN_POWER2)
+
+/obj/machinery/door/airlock/proc/backupPowerCablesCut()
+ return wires.is_cut(WIRE_BACKUP_POWER1) || wires.is_cut(WIRE_BACKUP_POWER2)
+
+/obj/machinery/door/airlock/proc/loseMainPower()
+ main_power_lost_until = mainPowerCablesCut() ? -1 : world.time + SecondsToTicks(60)
+
+ // If backup power is permanently disabled then activate in 10 seconds if possible, otherwise it's already enabled or a timer is already running
+ if(backup_power_lost_until == -1 && !backupPowerCablesCut())
+ backup_power_lost_until = world.time + SecondsToTicks(10)
+
+ if(main_power_lost_until > 0 || backup_power_lost_until > 0)
+ START_MACHINE_PROCESSING(src)
+
+ // Disable electricity if required
+ if(electrified_until && isAllPowerLoss())
+ electrify(0)
+
+ update_icon()
+
+/obj/machinery/door/airlock/proc/loseBackupPower()
+ backup_power_lost_until = backupPowerCablesCut() ? -1 : world.time + SecondsToTicks(60)
+
+ if(backup_power_lost_until > 0)
+ START_MACHINE_PROCESSING(src)
+
+ // Disable electricity if required
+ if(electrified_until && isAllPowerLoss())
+ electrify(0)
+
+ update_icon()
+
+/obj/machinery/door/airlock/proc/regainMainPower()
+ if(!mainPowerCablesCut())
+ main_power_lost_until = 0
+ // If backup power is currently active then disable, otherwise let it count down and disable itself later
+ if(!backup_power_lost_until)
+ backup_power_lost_until = -1
+
+ update_icon()
+
+/obj/machinery/door/airlock/proc/regainBackupPower()
+ if(!backupPowerCablesCut())
+ // Restore backup power only if main power is offline, otherwise permanently disable
+ backup_power_lost_until = main_power_lost_until == 0 ? -1 : 0
+
+ update_icon()
+
+/obj/machinery/door/airlock/proc/electrify(var/duration, var/feedback = 0)
+ var/message = ""
+ if(wires.is_cut(WIRE_ELECTRIFY) && arePowerSystemsOn())
+ message = text("The electrification wire is cut - Door permanently electrified.")
+ src.electrified_until = -1
+ else if(duration && !arePowerSystemsOn())
+ message = text("The door is unpowered - Cannot electrify the door.")
+ src.electrified_until = 0
+ else if(!duration && electrified_until != 0)
+ message = "The door is now un-electrified."
+ src.electrified_until = 0
+ else if(duration) //electrify door for the given duration seconds
+ if(usr)
+ shockedby += text("\[[time_stamp()]\] - [usr](ckey:[usr.ckey])")
+ add_attack_logs(usr,name,"Electrified a door")
+ else
+ shockedby += text("\[[time_stamp()]\] - EMP)")
+ message = "The door is now electrified [duration == -1 ? "permanently" : "for [duration] second\s"]."
+ src.electrified_until = duration == -1 ? -1 : world.time + SecondsToTicks(duration)
+
+ if(electrified_until > 0)
+ START_MACHINE_PROCESSING(src)
+
+ if(feedback && message)
+ to_chat(usr,message)
+
+/obj/machinery/door/airlock/proc/set_idscan(var/activate, var/feedback = 0)
+ var/message = ""
+ if(wires.is_cut(WIRE_IDSCAN))
+ message = "The IdScan wire is cut - IdScan feature permanently disabled."
+ else if(activate && src.aiDisabledIdScanner)
+ src.aiDisabledIdScanner = 0
+ message = "IdScan feature has been enabled."
+ else if(!activate && !src.aiDisabledIdScanner)
+ src.aiDisabledIdScanner = 1
+ message = "IdScan feature has been disabled."
+
+ if(feedback && message)
+ to_chat(usr,message)
+
+/obj/machinery/door/airlock/proc/set_safeties(var/activate, var/feedback = 0)
+ var/message = ""
+ // Safeties! We don't need no stinking safeties!
+ if (wires.is_cut(WIRE_SAFETY))
+ message = text("The safety wire is cut - Cannot enable safeties.")
+ else if (!activate && src.safe)
+ safe = 0
+ else if (activate && !src.safe)
+ safe = 1
+
+ if(feedback && message)
+ to_chat(usr,message)
+
+// shock user with probability prb (if all connections & power are working)
+// returns 1 if shocked, 0 otherwise
+// The preceding comment was borrowed from the grille's shock script
+/obj/machinery/door/airlock/shock(mob/user, prb)
+ if(!arePowerSystemsOn())
+ return 0
+ if(hasShocked)
+ return 0 //Already shocked someone recently?
+ if(..())
+ hasShocked = 1
+ sleep(10)
+ hasShocked = 0
+ return 1
+ else
+ return 0
+
+
+/obj/machinery/door/airlock/update_icon()
+ cut_overlays()
+ if(density)
+ if(locked && lights && src.arePowerSystemsOn())
+ icon_state = "door_locked"
+ else
+ icon_state = "door_closed"
+ if(p_open || welded)
+ if(p_open)
+ add_overlay("panel_open")
+ if (!(stat & NOPOWER))
+ if(stat & BROKEN)
+ add_overlay("sparks_broken")
+ else if (health < maxhealth * 3/4)
+ add_overlay("sparks_damaged")
+ if(welded)
+ add_overlay("welded")
+ else if (health < maxhealth * 3/4 && !(stat & NOPOWER))
+ add_overlay("sparks_damaged")
+ else
+ icon_state = "door_open"
+ if((stat & BROKEN) && !(stat & NOPOWER))
+ add_overlay("sparks_open")
+ return
+
+/obj/machinery/door/airlock/do_animate(animation)
+ switch(animation)
+ if("opening")
+ cut_overlay()
+ if(p_open)
+ spawn(2) // The only work around that works. Downside is that the door will be gone for a millisecond.
+ flick("o_door_opening", src) //can not use flick due to BYOND bug updating overlays right before flicking
+ update_icon()
+ else
+ flick("door_opening", src)//[stat ? "_stat":]
+ update_icon()
+ if("closing")
+ cut_overlay()
+ if(p_open)
+ spawn(2)
+ flick("o_door_closing", src)
+ update_icon()
+ else
+ flick("door_closing", src)
+ update_icon()
+ if("spark")
+ if(density)
+ flick("door_spark", src)
+ if("deny")
+ if(density && src.arePowerSystemsOn())
+ flick("door_deny", src)
+ playsound(src, denied_sound, 50, 0, 3)
+ return
+
+/obj/machinery/door/airlock/attack_ai(mob/user as mob)
+ tgui_interact(user)
+
+/obj/machinery/door/airlock/attack_ghost(mob/user)
+ tgui_interact(user)
+
+/obj/machinery/door/airlock/tgui_interact(mob/user, datum/tgui/ui, datum/tgui/parent_ui, datum/tgui_state/custom_state)
+ ui = SStgui.try_update_ui(user, src, ui)
+ if(!ui)
+ ui = new(user, src, "AiAirlock", name)
+ ui.open()
+ if(custom_state)
+ ui.set_state(custom_state)
+ return TRUE
+
+/obj/machinery/door/airlock/tgui_data(mob/user)
+ var/list/data = list()
+
+ var/list/power = list()
+ power["main"] = main_power_lost_until > 0 ? 0 : 2
+ power["main_timeleft"] = round(main_power_lost_until > 0 ? max(main_power_lost_until - world.time, 0) / 10 : main_power_lost_until, 1)
+ power["backup"] = backup_power_lost_until > 0 ? 0 : 2
+ power["backup_timeleft"] = round(backup_power_lost_until > 0 ? max(backup_power_lost_until - world.time, 0) / 10 : backup_power_lost_until, 1)
+ data["power"] = power
+
+ data["shock"] = (electrified_until == 0) ? 2 : 0
+ data["shock_timeleft"] = round(electrified_until > 0 ? max(electrified_until - world.time, 0) / 10 : electrified_until, 1)
+ data["id_scanner"] = !aiDisabledIdScanner
+ data["locked"] = locked // bolted
+ data["lights"] = lights // bolt lights
+ data["safe"] = safe // safeties
+ data["speed"] = normalspeed // safe speed
+ data["welded"] = welded // welded
+ data["opened"] = !density // opened
+
+ var/list/wire = list()
+ wire["main_1"] = !wires.is_cut(WIRE_MAIN_POWER1)
+ wire["main_2"] = !wires.is_cut(WIRE_MAIN_POWER2)
+ wire["backup_1"] = !wires.is_cut(WIRE_BACKUP_POWER1)
+ wire["backup_2"] = !wires.is_cut(WIRE_BACKUP_POWER2)
+ wire["shock"] = !wires.is_cut(WIRE_ELECTRIFY)
+ wire["id_scanner"] = !wires.is_cut(WIRE_IDSCAN)
+ wire["bolts"] = !wires.is_cut(WIRE_DOOR_BOLTS)
+ wire["lights"] = !wires.is_cut(WIRE_BOLT_LIGHT)
+ wire["safe"] = !wires.is_cut(WIRE_SAFETY)
+ wire["timing"] = !wires.is_cut(WIRE_SPEED)
+
+ data["wires"] = wire
+ return data
+
+/obj/machinery/door/airlock/proc/hack(mob/user as mob)
+ if(src.aiHacking==0)
+ src.aiHacking=1
+ spawn(20)
+ //TODO: Make this take a minute
+ to_chat(user, "Airlock AI control has been blocked. Beginning fault-detection.")
+ sleep(50)
+ if(src.canAIControl())
+ to_chat(user, "Alert cancelled. Airlock control has been restored without our assistance.")
+ src.aiHacking=0
+ return
+ else if(!src.canAIHack(user))
+ to_chat(user, "We've lost our connection! Unable to hack airlock.")
+ src.aiHacking=0
+ return
+ to_chat(user, "Fault confirmed: airlock control wire disabled or cut.")
+ sleep(20)
+ to_chat(user, "Attempting to hack into airlock. This may take some time.")
+ sleep(200)
+ if(src.canAIControl())
+ to_chat(user, "Alert cancelled. Airlock control has been restored without our assistance.")
+ src.aiHacking=0
+ return
+ else if(!src.canAIHack(user))
+ to_chat(user, "We've lost our connection! Unable to hack airlock.")
+ src.aiHacking=0
+ return
+ to_chat(user, "Upload access confirmed. Loading control program into airlock software.")
+ sleep(170)
+ if(src.canAIControl())
+ to_chat(user, "Alert cancelled. Airlock control has been restored without our assistance.")
+ src.aiHacking=0
+ return
+ else if(!src.canAIHack(user))
+ to_chat(user, "We've lost our connection! Unable to hack airlock.")
+ src.aiHacking=0
+ return
+ to_chat(user, "Transfer complete. Forcing airlock to execute program.")
+ sleep(50)
+ //disable blocked control
+ src.aiControlDisabled = 2
+ to_chat(user, "Receiving control information from airlock.")
+ sleep(10)
+ //bring up airlock dialog
+ src.aiHacking = 0
+ if (user)
+ src.attack_ai(user)
+
+/obj/machinery/door/airlock/CanPass(atom/movable/mover, turf/target)
+ if (src.isElectrified())
+ if (istype(mover, /obj/item))
+ var/obj/item/i = mover
+ if (i.matter && (MAT_STEEL in i.matter) && i.matter[MAT_STEEL] > 0)
+ var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
+ s.set_up(5, 1, src)
+ s.start()
+ return ..()
+
+/obj/machinery/door/airlock/attack_hand(mob/user as mob)
+ if(!istype(usr, /mob/living/silicon))
+ if(src.isElectrified())
+ if(src.shock(user, 100))
+ return
+
+ if(istype(user, /mob/living/carbon/human))
+ var/mob/living/carbon/human/X = user
+ if(istype(X.species, /datum/species/xenos))
+ src.attack_alien(user)
+ return
+
+ if(src.p_open)
+ user.set_machine(src)
+ wires.Interact(user)
+ else
+ ..(user)
+ return
+
+/obj/machinery/door/airlock/tgui_act(action, params)
+ if(..())
+ return TRUE
+ if(!user_allowed(usr))
+ return TRUE
+
+ switch(action)
+ if("disrupt-main")
+ if(!main_power_lost_until)
+ loseMainPower()
+ update_icon()
+ else
+ to_chat(usr, "Main power is already offline.")
+ . = TRUE
+ if("disrupt-backup")
+ if(!backup_power_lost_until)
+ loseBackupPower()
+ update_icon()
+ else
+ to_chat(usr, "Backup power is already offline.")
+ . = TRUE
+ if("shock-restore")
+ electrify(0, 1)
+ . = TRUE
+ if("shock-temp")
+ electrify(30, 1)
+ . = TRUE
+ if("shock-perm")
+ electrify(-1, 1)
+ . = TRUE
+ if("idscan-toggle")
+ set_idscan(aiDisabledIdScanner, 1)
+ . = TRUE
+ // if("emergency-toggle")
+ // toggle_emergency(usr)
+ // . = TRUE
+ if("bolt-toggle")
+ toggle_bolt(usr)
+ . = TRUE
+ if("light-toggle")
+ if(wires.is_cut(WIRE_BOLT_LIGHT))
+ to_chat(usr, "The bolt lights wire is cut - The door bolt lights are permanently disabled.")
+ return
+ lights = !lights
+ update_icon()
+ . = TRUE
+ if("safe-toggle")
+ set_safeties(!safe, 1)
+ . = TRUE
+ if("speed-toggle")
+ if(wires.is_cut(WIRE_SPEED))
+ to_chat(usr, "The timing wire is cut - Cannot alter timing.")
+ return
+ normalspeed = !normalspeed
+ . = TRUE
+ if("open-close")
+ user_toggle_open(usr)
+ . = TRUE
+
+ update_icon()
+ return 1
+
+/obj/machinery/door/airlock/proc/user_allowed(mob/user)
+ var/allowed = (issilicon(user) && canAIControl(user))
+ if(!allowed && isobserver(user))
+ var/mob/observer/dead/D = user
+ if(D.can_admin_interact())
+ allowed = TRUE
+ return allowed
+
+/obj/machinery/door/airlock/proc/toggle_bolt(mob/user)
+ if(!user_allowed(user))
+ return
+ if(wires.is_cut(WIRE_DOOR_BOLTS))
+ to_chat(user, "The door bolt drop wire is cut - you can't toggle the door bolts.")
+ return
+ if(locked)
+ if(!arePowerSystemsOn())
+ to_chat(user, "The door has no power - you can't raise the door bolts.")
+ else
+ unlock()
+ to_chat(user, "The door bolts have been raised.")
+ // log_combat(user, src, "unbolted")
+ else
+ lock()
+ to_chat(user, "The door bolts have been dropped.")
+ // log_combat(user, src, "bolted")
+
+/obj/machinery/door/airlock/proc/user_toggle_open(mob/user)
+ if(!user_allowed(user))
+ return
+ if(welded)
+ to_chat(user, text("The airlock has been welded shut!"))
+ else if(locked)
+ to_chat(user, text("The door bolts are down!"))
+ else if(!density)
+ close()
+ else
+ open()
+
+/obj/machinery/door/airlock/proc/can_remove_electronics()
+ return src.p_open && (operating < 0 || (!operating && welded && !src.arePowerSystemsOn() && density && (!src.locked || (stat & BROKEN))))
+
+/obj/machinery/door/airlock/attackby(obj/item/C, mob/user as mob)
+ //to_world("airlock attackby src [src] obj [C] mob [user]")
+ if(!istype(usr, /mob/living/silicon))
+ if(src.isElectrified())
+ if(src.shock(user, 75))
+ return
+ if(istype(C, /obj/item/taperoll))
+ return
+
+ src.add_fingerprint(user)
+ if (attempt_vr(src,"attackby_vr",list(C, user))) return
+ if(istype(C, /mob/living))
+ ..()
+ return
+ if(!repairing && istype(C, /obj/item/weapon/weldingtool) && !( src.operating > 0 ) && src.density)
+ var/obj/item/weapon/weldingtool/W = C
+ if(W.remove_fuel(0,user))
+ if(!src.welded)
+ src.welded = 1
+ else
+ src.welded = null
+ playsound(src, C.usesound, 75, 1)
+ src.update_icon()
+ return
+ else
+ return
+ else if(C.is_screwdriver())
+ if (src.p_open)
+ if (stat & BROKEN)
+ to_chat(usr, "The panel is broken and cannot be closed.")
+ else
+ src.p_open = 0
+ playsound(src, C.usesound, 50, 1)
+ else
+ src.p_open = 1
+ playsound(src, C.usesound, 50, 1)
+ src.update_icon()
+ else if(C.is_wirecutter())
+ return src.attack_hand(user)
+ else if(istype(C, /obj/item/device/multitool))
+ return src.attack_hand(user)
+ else if(istype(C, /obj/item/device/assembly/signaler))
+ return src.attack_hand(user)
+ else if(istype(C, /obj/item/weapon/pai_cable)) // -- TLE
+ var/obj/item/weapon/pai_cable/cable = C
+ cable.plugin(src, user)
+ else if(!repairing && C.is_crowbar())
+ if(can_remove_electronics())
+ playsound(src, C.usesound, 75, 1)
+ user.visible_message("[user] removes the electronics from the airlock assembly.", "You start to remove electronics from the airlock assembly.")
+ if(do_after(user,40 * C.toolspeed))
+ to_chat(user, "You removed the airlock electronics!")
+
+ var/obj/structure/door_assembly/da = new assembly_type(src.loc)
+ if (istype(da, /obj/structure/door_assembly/multi_tile))
+ da.set_dir(src.dir)
+
+ da.anchored = TRUE
+ if(mineral)
+ da.glass = mineral
+ //else if(glass)
+ else if(glass && !da.glass)
+ da.glass = 1
+ da.state = 1
+ da.created_name = src.name
+ da.update_state()
+
+ if(operating == -1 || (stat & BROKEN))
+ new /obj/item/weapon/circuitboard/broken(src.loc)
+ operating = 0
+ else
+ if (!electronics) create_electronics()
+
+ electronics.loc = src.loc
+ electronics = null
+
+ qdel(src)
+ return
+ else if(arePowerSystemsOn())
+ to_chat(user, "The airlock's motors resist your efforts to force it.")
+ else if(locked)
+ to_chat(user, "The airlock's bolts prevent it from being forced.")
+ else
+ if(density)
+ spawn(0) open(1)
+ else
+ spawn(0) close(1)
+
+ // Check if we're using a crowbar or armblade, and if the airlock's unpowered for whatever reason (off, broken, etc).
+ else if(istype(C, /obj/item/weapon))
+ var/obj/item/weapon/W = C
+ if((W.pry == 1) && !arePowerSystemsOn())
+ if(locked)
+ to_chat(user, "The airlock's bolts prevent it from being forced.")
+ else if( !welded && !operating )
+ if(istype(C, /obj/item/weapon/material/twohanded/fireaxe)) // If this is a fireaxe, make sure it's held in two hands.
+ var/obj/item/weapon/material/twohanded/fireaxe/F = C
+ if(!F.wielded)
+ to_chat(user, "You need to be wielding \the [F] to do that.")
+ return
+ // At this point, it's an armblade or a fireaxe that passed the wielded test, let's try to open it.
+ if(density)
+ spawn(0)
+ open(1)
+ else
+ spawn(0)
+ close(1)
+ else
+ ..()
+ else
+ ..()
+ return
+
+/obj/machinery/door/airlock/phoron/attackby(C as obj, mob/user as mob)
+ if(C)
+ ignite(is_hot(C))
+ ..()
+
+/obj/machinery/door/airlock/set_broken()
+ src.p_open = 1
+ stat |= BROKEN
+ if (secured_wires)
+ lock()
+ for (var/mob/O in viewers(src, null))
+ if ((O.client && !( O.blinded )))
+ O.show_message("[src.name]'s control panel bursts open, sparks spewing out!")
+
+ var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
+ s.set_up(5, 1, src)
+ s.start()
+
+ update_icon()
+ return
+
+/obj/machinery/door/airlock/open(var/forced=0)
+ if(!can_open(forced))
+ return 0
+ use_power(360) //360 W seems much more appropriate for an actuator moving an industrial door capable of crushing people
+
+ //if the door is unpowered then it doesn't make sense to hear the woosh of a pneumatic actuator
+ for(var/P in player_list)
+ var/mob/M = P
+ if(!M || !M.client)
+ continue
+ var/old_sounds = M.client.is_preference_enabled(/datum/client_preference/old_door_sounds)
+ var/department_door_sounds = M.client.is_preference_enabled(/datum/client_preference/department_door_sounds)
+ var/sound
+ var/volume
+ if(old_sounds) // Do we have old sounds enabled? Play these even if we have department door sounds enabled.
+ if(arePowerSystemsOn())
+ sound = legacy_open_powered
+ volume = 50
+ else
+ sound = open_sound_unpowered
+ volume = 75
+ else if(!old_sounds && department_door_sounds && src.department_open_powered) // Else, we have old sounds disabled, the door has per-department door sounds, and we have chosen to play department door sounds, use these.
+ if(arePowerSystemsOn())
+ sound = department_open_powered
+ volume = 50
+ else
+ sound = open_sound_unpowered
+ volume = 75
+ else // Else, play these.
+ if(arePowerSystemsOn())
+ sound = open_sound_powered
+ volume = 50
+ else
+ sound = open_sound_unpowered
+ volume = 75
+
+ var/turf/T = get_turf(M)
+ var/distance = get_dist(T, get_turf(src))
+ if(distance <= world.view * 2)
+ if(T && T.z == get_z(src))
+ M.playsound_local(get_turf(src), sound, volume, 1, null, 0, TRUE, sound(sound), volume_channel = VOLUME_CHANNEL_DOORS)
+
+ if(src.closeOther != null && istype(src.closeOther, /obj/machinery/door/airlock/) && !src.closeOther.density)
+ src.closeOther.close()
+ return ..()
+
+/obj/machinery/door/airlock/can_open(var/forced=0)
+ if(!forced)
+ if(!arePowerSystemsOn() || wires.is_cut(WIRE_OPEN_DOOR))
+ return 0
+
+ if(locked || welded)
+ return 0
+ return ..()
+
+/obj/machinery/door/airlock/can_close(var/forced=0)
+ if(locked || welded)
+ return 0
+
+ if(!forced)
+ //despite the name, this wire is for general door control.
+ if(!arePowerSystemsOn() || wires.is_cut(WIRE_OPEN_DOOR))
+ return 0
+
+ return ..()
+
+/atom/movable/proc/blocks_airlock()
+ return density
+
+/obj/machinery/door/blocks_airlock()
+ return 0
+
+/obj/machinery/mech_sensor/blocks_airlock()
+ return 0
+
+/mob/living/blocks_airlock()
+ return 1
+
+/atom/movable/proc/airlock_crush(var/crush_damage)
+ return 0
+
+/obj/machinery/portable_atmospherics/canister/airlock_crush(var/crush_damage)
+ . = ..()
+ health -= crush_damage
+ healthcheck()
+
+/obj/effect/energy_field/airlock_crush(var/crush_damage)
+ adjust_strength(crush_damage)
+
+/obj/structure/closet/airlock_crush(var/crush_damage)
+ ..()
+ damage(crush_damage)
+ for(var/atom/movable/AM in src)
+ AM.airlock_crush()
+ return 1
+
+/mob/living/airlock_crush(var/crush_damage)
+ . = ..()
+ adjustBruteLoss(crush_damage)
+ SetStunned(5)
+ SetWeakened(5)
+ var/turf/T = get_turf(src)
+ T.add_blood(src)
+ return 1
+
+/mob/living/carbon/airlock_crush(var/crush_damage)
+ . = ..()
+ if(can_feel_pain())
+ emote("scream")
+
+/mob/living/silicon/robot/airlock_crush(var/crush_damage)
+ adjustBruteLoss(crush_damage)
+ return 0
+
+/obj/machinery/door/airlock/close(var/forced=0)
+ if(!can_close(forced))
+ return 0
+
+ if(safe)
+ for(var/turf/turf in locs)
+ for(var/atom/movable/AM in turf)
+ if(AM.blocks_airlock())
+ if(!has_beeped)
+ playsound(src, 'sound/machines/buzz-two.ogg', 50, 0)
+ has_beeped = 1
+ autoclose_in(6)
+ return
+
+ for(var/turf/turf in locs)
+ for(var/atom/movable/AM in turf)
+ if(AM.airlock_crush(DOOR_CRUSH_DAMAGE))
+ take_damage(DOOR_CRUSH_DAMAGE)
+
+ use_power(360) //360 W seems much more appropriate for an actuator moving an industrial door capable of crushing people
+ has_beeped = 0
+ for(var/P in player_list)
+ var/mob/M = P
+ if(!M || !M.client)
+ continue
+ var/old_sounds = M.client.is_preference_enabled(/datum/client_preference/old_door_sounds)
+ var/department_door_sounds = M.client.is_preference_enabled(/datum/client_preference/department_door_sounds)
+ var/sound
+ var/volume
+ if(old_sounds)
+ if(arePowerSystemsOn())
+ sound = legacy_close_powered
+ volume = 50
+ else
+ sound = open_sound_unpowered
+ volume = 75
+ else if(!old_sounds && department_door_sounds && src.department_close_powered) // Else, we have old sounds disabled, the door has per-department door sounds, and we have chosen to play department door sounds, use these.
+ if(arePowerSystemsOn())
+ sound = department_close_powered
+ volume = 50
+ else
+ sound = open_sound_unpowered
+ volume = 75
+ else
+ if(arePowerSystemsOn())
+ sound = close_sound_powered
+ volume = 50
+ else
+ sound = open_sound_unpowered
+ volume = 75
+
+ var/turf/T = get_turf(M)
+ var/distance = get_dist(T, get_turf(src))
+ if(distance <= world.view * 2)
+ if(T && T.z == get_z(src))
+ M.playsound_local(get_turf(src), sound, volume, 1, null, 0, TRUE, sound(sound), volume_channel = VOLUME_CHANNEL_DOORS)
+ for(var/turf/turf in locs)
+ var/obj/structure/window/killthis = (locate(/obj/structure/window) in turf)
+ if(killthis)
+ killthis.ex_act(2)//Smashin windows
+ return ..()
+
+/obj/machinery/door/airlock/proc/lock(var/forced=0)
+ if(locked)
+ return 0
+
+ if (operating && !forced) return 0
+
+ src.locked = 1
+ playsound(src, bolt_down_sound, 30, 0, 3, volume_channel = VOLUME_CHANNEL_DOORS)
+ for(var/mob/M in range(1,src))
+ M.show_message("You hear a click from the bottom of the door.", 2)
+ update_icon()
+ return 1
+
+/obj/machinery/door/airlock/proc/unlock(var/forced=0)
+ if(!src.locked)
+ return
+
+ if (!forced)
+ if(operating || !src.arePowerSystemsOn() || wires.is_cut(WIRE_DOOR_BOLTS)) return
+
+ src.locked = 0
+ playsound(src, bolt_up_sound, 30, 0, 3, volume_channel = VOLUME_CHANNEL_DOORS)
+ for(var/mob/M in range(1,src))
+ M.show_message("You hear a click from the bottom of the door.", 2)
+ update_icon()
+ return 1
+
+/obj/machinery/door/airlock/allowed(mob/M)
+ if(locked)
+ return 0
+ return ..(M)
+
+/obj/machinery/door/airlock/New(var/newloc, var/obj/structure/door_assembly/assembly=null)
+ ..()
+
+ //if assembly is given, create the new door from the assembly
+ if (assembly && istype(assembly))
+ assembly_type = assembly.type
+
+ electronics = assembly.electronics
+ electronics.loc = src
+
+ //update the door's access to match the electronics'
+ secured_wires = electronics.secure
+ if(electronics.one_access)
+ LAZYCLEARLIST(req_access)
+ req_one_access = src.electronics.conf_access
+ else
+ LAZYCLEARLIST(req_one_access)
+ req_access = src.electronics.conf_access
+
+ //get the name from the assembly
+ if(assembly.created_name)
+ name = assembly.created_name
+ else
+ name = "[istext(assembly.glass) ? "[assembly.glass] airlock" : assembly.base_name]"
+
+ //get the dir from the assembly
+ set_dir(assembly.dir)
+
+ //wires
+ var/turf/T = get_turf(newloc)
+ if(T && (T.z in using_map.admin_levels))
+ secured_wires = 1
+ if (secured_wires)
+ wires = new/datum/wires/airlock/secure(src)
+ else
+ wires = new/datum/wires/airlock(src)
+
+/obj/machinery/door/airlock/Initialize()
+ if(src.closeOtherId != null)
+ for (var/obj/machinery/door/airlock/A in machines)
+ if(A.closeOtherId == src.closeOtherId && A != src)
+ src.closeOther = A
+ break
+ name = "\improper [name]"
+ . = ..()
+
+/obj/machinery/door/airlock/Destroy()
+ qdel(wires)
+ wires = null
+ return ..()
+
+// Most doors will never be deconstructed over the course of a round,
+// so as an optimization defer the creation of electronics until
+// the airlock is deconstructed
+/obj/machinery/door/airlock/proc/create_electronics()
+ //create new electronics
+ if (secured_wires)
+ src.electronics = new/obj/item/weapon/airlock_electronics/secure( src.loc )
+ else
+ src.electronics = new/obj/item/weapon/airlock_electronics( src.loc )
+
+ //update the electronics to match the door's access
+ if(LAZYLEN(req_access))
+ electronics.conf_access = req_access
+ else if (LAZYLEN(req_one_access))
+ electronics.conf_access = req_one_access
+ electronics.one_access = 1
+
+/obj/machinery/door/airlock/emp_act(var/severity)
+ if(prob(40/severity))
+ var/duration = world.time + SecondsToTicks(30 / severity)
+ if(duration > electrified_until)
+ electrify(duration)
+ ..()
+
+/obj/machinery/door/airlock/power_change() //putting this is obj/machinery/door itself makes non-airlock doors turn invisible for some reason
+ ..()
+ if(stat & NOPOWER)
+ // If we lost power, disable electrification
+ // Keeping door lights on, runs on internal battery or something.
+ electrified_until = 0
+ update_icon()
+
+/obj/machinery/door/airlock/proc/prison_open()
+ if(arePowerSystemsOn())
+ src.unlock()
+ src.open()
+ src.lock()
+ return
+
+
+/obj/machinery/door/airlock/rcd_values(mob/living/user, obj/item/weapon/rcd/the_rcd, passed_mode)
+ switch(passed_mode)
+ if(RCD_DECONSTRUCT)
+ // Old RCD code made it cost 10 units to decon an airlock.
+ // Now the new one costs ten "sheets".
+ return list(
+ RCD_VALUE_MODE = RCD_DECONSTRUCT,
+ RCD_VALUE_DELAY = 5 SECONDS,
+ RCD_VALUE_COST = RCD_SHEETS_PER_MATTER_UNIT * 10
+ )
+ return FALSE
+
+/obj/machinery/door/airlock/rcd_act(mob/living/user, obj/item/weapon/rcd/the_rcd, passed_mode)
+ switch(passed_mode)
+ if(RCD_DECONSTRUCT)
+ to_chat(user, span("notice", "You deconstruct \the [src]."))
+ qdel(src)
+ return TRUE
+ return FALSE
+>>>>>>> eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul
diff --git a/code/game/objects/effects/alien/aliens.dm b/code/game/objects/effects/alien/aliens.dm
index 0cc5868762..b42de46ee4 100644
--- a/code/game/objects/effects/alien/aliens.dm
+++ b/code/game/objects/effects/alien/aliens.dm
@@ -203,6 +203,7 @@
layer = ABOVE_TURF_LAYER+0.01
light_range = NODERANGE
light_on = TRUE
+ light_color = "#673972"
var/node_range = NODERANGE
var/set_color = "#321D37"
@@ -421,4 +422,135 @@
visible_message("[src.target] begins to crumble under the acid!")
spawn(rand(150, 200)) tick()
+<<<<<<< HEAD
//CHOMPedit old eggs removed
+||||||| parent of eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul
+/*
+ * Egg
+ */
+/var/const //for the status var
+ BURST = 0
+ BURSTING = 1
+ GROWING = 2
+ GROWN = 3
+
+ MIN_GROWTH_TIME = 1800 //time it takes to grow a hugger
+ MAX_GROWTH_TIME = 3000
+
+/obj/effect/alien/egg
+ desc = "It looks like a weird egg"
+ name = "egg"
+// icon_state = "egg_growing" // So the egg looks 'grown', even though it's not.
+ icon_state = "egg"
+ density = FALSE
+ anchored = TRUE
+
+ var/health = 100
+ var/status = BURST //can be GROWING, GROWN or BURST; all mutually exclusive
+
+/obj/effect/alien/egg/New()
+/*
+ if(config.aliens_allowed)
+ ..()
+ spawn(rand(MIN_GROWTH_TIME,MAX_GROWTH_TIME))
+ Grow()
+ else
+ qdel(src)
+*/
+/obj/effect/alien/egg/attack_hand(user as mob)
+
+ var/mob/living/carbon/M = user
+ if(!istype(M) || !(locate(/obj/item/organ/internal/xenos/hivenode) in M.internal_organs))
+ return attack_hand(user)
+
+ switch(status)
+ if(BURST)
+ to_chat(user, "You clear the hatched egg.")
+ qdel(src)
+ return
+/* if(GROWING)
+ to_chat(user, "The child is not developed yet.")
+ return
+ if(GROWN)
+ to_chat(user, "You retrieve the child.")
+ Burst(0)
+ return
+
+/obj/effect/alien/egg/proc/GetFacehugger() // Commented out for future edit.
+ return locate(/obj/item/clothing/mask/facehugger) in contents
+
+/obj/effect/alien/egg/proc/Grow()
+ icon_state = "egg"
+// status = GROWN
+ status = BURST
+// new /obj/item/clothing/mask/facehugger(src)
+ return
+*/
+/obj/effect/alien/egg/proc/Burst(var/kill = 1) //drops and kills the hugger if any is remaining
+ if(status == GROWN || status == GROWING)
+// var/obj/item/clothing/mask/facehugger/child = GetFacehugger()
+ icon_state = "egg_hatched"
+/* flick("egg_opening", src)
+ status = BURSTING
+ spawn(15)
+ status = BURST
+ child.loc = get_turf(src)
+
+ if(kill && istype(child))
+ child.Die()
+ else
+ for(var/mob/M in range(1,src))
+ if(CanHug(M))
+ child.Attach(M)
+ break
+*/
+/obj/effect/alien/egg/bullet_act(var/obj/item/projectile/Proj)
+ health -= Proj.damage
+ ..()
+ healthcheck()
+ return
+
+/obj/effect/alien/egg/attack_generic(var/mob/user, var/damage, var/attack_verb)
+ visible_message("[user] [attack_verb] the [src]!")
+ user.do_attack_animation(src)
+ health -= damage
+ healthcheck()
+ return
+
+/obj/effect/alien/egg/take_damage(var/damage)
+ health -= damage
+ healthcheck()
+ return
+
+
+/obj/effect/alien/egg/attackby(var/obj/item/weapon/W, var/mob/user)
+ if(health <= 0)
+ return
+ if(LAZYLEN(W.attack_verb))
+ src.visible_message("\The [src] has been [pick(W.attack_verb)] with \the [W][(user ? " by [user]." : ".")]")
+ else
+ src.visible_message("\The [src] has been attacked with \the [W][(user ? " by [user]." : ".")]")
+ var/damage = W.force / 4.0
+
+ if(istype(W, /obj/item/weapon/weldingtool))
+ var/obj/item/weapon/weldingtool/WT = W
+
+ if(WT.remove_fuel(0, user))
+ damage = 15
+ playsound(src, 'sound/items/Welder.ogg', 100, 1)
+
+ src.health -= damage
+ src.healthcheck()
+
+
+/obj/effect/alien/egg/proc/healthcheck()
+ if(health <= 0)
+ Burst()
+
+/obj/effect/alien/egg/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume)
+ if(exposed_temperature > 500 + T0C)
+ health -= 5
+ healthcheck()
+=======
+//Xenomorph Effect egg removed, replaced with Structure Egg.
+>>>>>>> eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul
diff --git a/code/game/objects/structures/alien/alien egg.dm b/code/game/objects/structures/alien/alien egg.dm
new file mode 100644
index 0000000000..90319e8a83
--- /dev/null
+++ b/code/game/objects/structures/alien/alien egg.dm
@@ -0,0 +1,96 @@
+#define MAX_PROGRESS 100
+
+/obj/structure/alien/egg //Gurg Addition, working alien egg structure.
+ desc = "It looks like a weird egg."
+ name = "egg"
+ icon_state = "egg_growing"
+ density = 0
+ anchored = 1
+ var/progress = 0
+
+/obj/structure/alien/egg/Initialize()
+ . = ..()
+ START_PROCESSING(SSobj, src)
+
+/obj/structure/alien/egg/Destroy()
+ STOP_PROCESSING(SSobj, src)
+ . = ..()
+
+/obj/structure/alien/egg/CanUseTopic(var/mob/user)
+ return isobserver(user) ? STATUS_INTERACTIVE : STATUS_CLOSE
+
+/obj/structure/alien/egg/Topic(href, href_list)
+ if(..())
+ return 1
+
+ if(href_list["spawn"])
+ attack_ghost(usr)
+
+/obj/structure/alien/egg/process()
+ progress++
+ if(progress >= MAX_PROGRESS)
+ for(var/mob/observer/dead/O in observer_mob_list)
+ if(O.client)
+ to_chat(O, "An alien is ready to hatch at [get_area(src.loc)]! (spawn)")
+ STOP_PROCESSING(SSobj, src)
+ update_icon()
+
+/obj/structure/alien/egg/update_icon()
+ if(progress == -1)
+ icon_state = "egg_hatched"
+ else if(progress < MAX_PROGRESS)
+ icon_state = "egg_growing"
+ else
+ icon_state = "egg"
+
+/obj/structure/alien/egg/attack_ghost(var/mob/observer/ghost/user)
+ if(progress == -1) //Egg has been hatched.
+ return
+
+ if(progress < MAX_PROGRESS)
+ to_chat(user, "\The [src] has not yet matured.")
+ return
+
+ if(!user.MayRespawn(1))
+ return
+
+ // Check for bans properly.
+ if(jobban_isbanned(user, "Xenomorph"))
+ to_chat(user, "You are banned from playing a Xenomorph.")
+ return
+
+ var/confirm = alert(user, "Are you sure you want to join as a Xenomorph larva?", "Become Larva", "No", "Yes")
+
+ if(!src || confirm != "Yes")
+ return
+
+ if(!user || !user.ckey)
+ return
+
+ if(progress == -1) //Egg has been hatched.
+ to_chat(user, "Too slow...")
+ return
+
+ flick("egg_opening",src)
+ progress = -1 // No harvesting pls.
+ sleep(5)
+
+ if(!src || !user)
+ visible_message("\The [src] writhes with internal motion, but nothing comes out.")
+ progress = MAX_PROGRESS // Someone else can have a go.
+ return // What a pain.
+
+ // Create the mob, transfer over key.
+ var/mob/living/carbon/alien/larva/larva = new(get_turf(src))
+ larva.ckey = user.ckey
+ spawn(-1)
+ if(user) qdel(user) // Remove the keyless ghost if it exists.
+
+ visible_message("\The [src] splits open with a wet slithering noise, and \the [larva] writhes free!")
+
+ // Turn us into a hatched egg.
+ name = "hatched alien egg"
+ desc += " This one has hatched."
+ update_icon()
+
+#undef MAX_PROGRESS
diff --git a/code/game/objects/structures/alien/alien.dm b/code/game/objects/structures/alien/alien.dm
new file mode 100644
index 0000000000..31a609e5a5
--- /dev/null
+++ b/code/game/objects/structures/alien/alien.dm
@@ -0,0 +1,62 @@
+/obj/structure/alien //Gurg Addition, framework for alien eggs.
+ name = "alien thing"
+ desc = "There's something alien about this."
+ icon = 'icons/mob/alien.dmi'
+ layer = ABOVE_JUNK_LAYER
+ var/health = 50
+
+/obj/structure/alien/proc/healthcheck()
+ if(health <=0)
+ set_density(0)
+ qdel(src)
+ return
+
+/obj/structure/alien/bullet_act(var/obj/item/projectile/Proj)
+ health -= Proj.damage
+ ..()
+ healthcheck()
+ return
+
+/obj/structure/alien/ex_act(severity)
+ switch(severity)
+ if(1.0)
+ health-=50
+ if(2.0)
+ health-=50
+ if(3.0)
+ if (prob(50))
+ health-=50
+ else
+ health-=25
+ healthcheck()
+ return
+
+/obj/structure/alien/hitby(AM as mob|obj)
+ ..()
+ visible_message("\The [src] was hit by \the [AM].")
+ var/tforce = 0
+ if(ismob(AM))
+ tforce = 10
+ else
+ tforce = AM:throwforce
+ playsound(loc, 'sound/effects/attackblob.ogg', 100, 1)
+ health = max(0, health - tforce)
+ healthcheck()
+ ..()
+ return
+
+/obj/structure/alien/attack_generic()
+ attack_hand(usr)
+
+/obj/structure/alien/attackby(var/obj/item/weapon/W, var/mob/user)
+ health = max(0, health - W.force)
+ playsound(loc, 'sound/effects/attackblob.ogg', 100, 1)
+ healthcheck()
+ ..()
+ return
+
+/obj/structure/alien/CanPass(atom/movable/mover, turf/target, height=0, air_group=0)
+ if(air_group) return 0
+ if(istype(mover) && mover.checkpass(PASSGLASS))
+ return !opacity
+ return !density
diff --git a/code/modules/mob/living/carbon/alien/alien.dm b/code/modules/mob/living/carbon/alien/alien.dm
index a90553b2e5..3bd95ddf7f 100644
--- a/code/modules/mob/living/carbon/alien/alien.dm
+++ b/code/modules/mob/living/carbon/alien/alien.dm
@@ -43,10 +43,18 @@
/mob/living/carbon/alien/u_equip(obj/item/W as obj)
return
+<<<<<<< HEAD
/*/mob/living/carbon/alien/Stat() //CHOMPedit. Commented out because this doesn't work properly for larva, when it should. Will probably give Diona their own kind of they don't have one
..()
stat(null, "Progress: [amount_grown]/[max_grown]") */
+||||||| parent of eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul
+/mob/living/carbon/alien/Stat()
+ ..()
+ stat(null, "Progress: [amount_grown]/[max_grown]")
+
+=======
+>>>>>>> eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul
/mob/living/carbon/alien/restrained()
return 0
diff --git a/code/modules/mob/living/carbon/alien/diona/progression.dm b/code/modules/mob/living/carbon/alien/diona/progression.dm
index 1fd40b4311..6a8d0864f4 100644
--- a/code/modules/mob/living/carbon/alien/diona/progression.dm
+++ b/code/modules/mob/living/carbon/alien/diona/progression.dm
@@ -1,3 +1,8 @@
+/mob/living/carbon/alien/diona/Stat() //Specified where progression is at, doesn't work right for some things in carbon/alien
+ . = ..()
+ if(. && statpanel("Status"))
+ stat("Growth", "[round(amount_grown)]/[max_grown]")
+
/mob/living/carbon/alien/diona/confirm_evolution()
if(!is_alien_whitelisted(src, GLOB.all_species[SPECIES_DIONA]))
diff --git a/code/modules/mob/living/carbon/alien/larva/larva.dm b/code/modules/mob/living/carbon/alien/larva/larva.dm
index 6582b5f6a8..18c5c34c7f 100644
--- a/code/modules/mob/living/carbon/alien/larva/larva.dm
+++ b/code/modules/mob/living/carbon/alien/larva/larva.dm
@@ -5,10 +5,23 @@
speak_emote = list("hisses")
icon_state = "larva"
language = "Hivemind"
+<<<<<<< HEAD
maxHealth = 50 //CHOMPedit. Larva can gain a little more health on weeds/phoron to make them just a little harder to kill
health = 25
+||||||| parent of eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul
+ maxHealth = 25
+ health = 25
+=======
+ maxHealth = 50
+ health = 50
+>>>>>>> eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul
faction = "xeno"
+<<<<<<< HEAD
max_grown = 325 //CHOMPedit. Since xenos can reproduce without people now I decided to drastically increase the growth time
+||||||| parent of eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul
+=======
+ max_grown = 325 //Increase larva growth time due to not needing hosts.
+>>>>>>> eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul
/mob/living/carbon/alien/larva/Initialize()
. = ..()
diff --git a/code/modules/mob/living/carbon/alien/larva/progression.dm b/code/modules/mob/living/carbon/alien/larva/progression.dm
index 21cd101f50..9be7ef6b9e 100644
--- a/code/modules/mob/living/carbon/alien/larva/progression.dm
+++ b/code/modules/mob/living/carbon/alien/larva/progression.dm
@@ -1,8 +1,17 @@
+<<<<<<< HEAD
/mob/living/carbon/alien/larva/Stat() //CHOMPedit. Oh thank god we can see how close we are to full grown now
. = ..()
if(. && statpanel("Status"))
stat("Growth", "[round(amount_grown)]/[max_grown]")
+||||||| parent of eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul
+=======
+/mob/living/carbon/alien/larva/Stat() //Specified where progression stats come from, because for some reason it doesn't work right in carbon/alien
+ . = ..()
+ if(. && statpanel("Status"))
+ stat("Growth", "[round(amount_grown)]/[max_grown]")
+
+>>>>>>> eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul
/mob/living/carbon/alien/larva/confirm_evolution()
to_chat(src, "You are growing into a beautiful alien! It is time to choose a caste.")
diff --git a/code/modules/mob/living/carbon/alien/life.dm b/code/modules/mob/living/carbon/alien/life.dm
index 7eee938239..acc045e9e4 100644
--- a/code/modules/mob/living/carbon/alien/life.dm
+++ b/code/modules/mob/living/carbon/alien/life.dm
@@ -28,7 +28,13 @@
var/rads = radiation/25
radiation -= rads
+<<<<<<< HEAD
/*adjust_nutrition(rads)*/ //CHOMPedit. Commented out to prevent xeno/diona obesity, it was a real problem
+||||||| parent of eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul
+ adjust_nutrition(rads)
+=======
+ //adjust_nutrition(rads) //Commented out to prevent alien obesity.
+>>>>>>> eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul
heal_overall_damage(rads,rads)
adjustOxyLoss(-(rads))
adjustToxLoss(-(rads))
diff --git a/code/modules/mob/living/carbon/human/species/species_attack.dm b/code/modules/mob/living/carbon/human/species/species_attack.dm
index 3b38201206..5e2aaafb8e 100644
--- a/code/modules/mob/living/carbon/human/species/species_attack.dm
+++ b/code/modules/mob/living/carbon/human/species/species_attack.dm
@@ -64,11 +64,11 @@
/datum/unarmed_attack/claws/strong/xeno
attack_verb = list("slashed", "gouged", "stabbed")
- damage = 10
+ damage = 15
/datum/unarmed_attack/claws/strong/xeno/queen
attack_verb = list("slashed", "gouged", "stabbed", "gored")
- damage = 15
+ damage = 20
/datum/unarmed_attack/bite/strong
attack_name = "strong bite"
@@ -77,7 +77,7 @@
shredding = 1
/datum/unarmed_attack/bite/strong/xeno
- damage = 10
+ damage = 15
/datum/unarmed_attack/slime_glomp
attack_name = "glomp"
diff --git a/code/modules/mob/living/carbon/human/species/xenomorphs/alien_embryo.dm b/code/modules/mob/living/carbon/human/species/xenomorphs/alien_embryo.dm
deleted file mode 100644
index 88efb6d355..0000000000
--- a/code/modules/mob/living/carbon/human/species/xenomorphs/alien_embryo.dm
+++ /dev/null
@@ -1,161 +0,0 @@
-// This is to replace the previous datum/disease/alien_embryo for slightly improved handling and maintainability
-// It functions almost identically (see code/datums/diseases/alien_embryo.dm)
-
-/*
-/obj/item/alien_embryo //Commented out as reference for future reproduction methods, or addition later.
- name = "alien embryo"
- desc = "All slimy and yuck."
- icon = 'icons/mob/alien.dmi'
- icon_state = "larva0_dead"
- var/mob/living/affected_mob
- var/stage = 0
-
-/obj/item/alien_embryo/New()
- if(istype(loc, /mob/living))
- affected_mob = loc
- START_PROCESSING(SSobj, src)
- spawn(0)
- AddInfectionImages(affected_mob)
- else
- qdel(src)
-
-/obj/item/alien_embryo/Destroy()
- if(affected_mob)
- affected_mob.status_flags &= ~(XENO_HOST)
- spawn(0)
- RemoveInfectionImages(affected_mob)
- ..()
-
-/obj/item/alien_embryo/process()
- if(!affected_mob) return
- if(loc != affected_mob)
- affected_mob.status_flags &= ~(XENO_HOST)
- STOP_PROCESSING(SSobj, src)
- spawn(0)
- RemoveInfectionImages(affected_mob)
- affected_mob = null
- return
-
- if(stage < 5 && prob(3))
- stage++
- spawn(0)
- RefreshInfectionImage(affected_mob)
-
- switch(stage)
- if(2, 3)
- if(prob(1))
- affected_mob.emote("sneeze")
- if(prob(1))
- affected_mob.emote("cough")
- if(prob(1))
- to_chat(affected_mob, "Your throat feels sore.")
- if(prob(1))
- to_chat(affected_mob, "Mucous runs down the back of your throat.")
- if(4)
- if(prob(1))
- affected_mob.emote("sneeze")
- if(prob(1))
- affected_mob.emote("cough")
- if(prob(2))
- to_chat(affected_mob, " Your muscles ache.")
- if(prob(20))
- affected_mob.take_organ_damage(1)
- if(prob(2))
- to_chat(affected_mob, "Your stomach hurts.")
- if(prob(20))
- affected_mob.adjustToxLoss(1)
- affected_mob.updatehealth()
- if(5)
- to_chat(affected_mob, "You feel something tearing its way out of your stomach...")
- affected_mob.adjustToxLoss(10)
- affected_mob.updatehealth()
- if(prob(50))
- AttemptGrow()
-
-/obj/item/alien_embryo/proc/AttemptGrow(var/gib_on_success = 1)
- var/list/candidates = get_alien_candidates()
- var/picked = null
-
- // To stop clientless larva, we will check that our host has a client
- // if we find no ghosts to become the alien. If the host has a client
- // he will become the alien but if he doesn't then we will set the stage
- // to 2, so we don't do a process heavy check everytime.
-
- if(candidates.len)
- picked = pick(candidates)
- else if(affected_mob.client)
- picked = affected_mob.key
- else
- stage = 4 // Let's try again later.
- return
-
- if(affected_mob.lying)
- affected_mob.add_overlay("burst_lie")
- else
- affected_mob.add_overlay("burst_stand")
- spawn(6)
- var/mob/living/carbon/alien/larva/new_xeno = new(affected_mob.loc)
- new_xeno.key = picked
- new_xeno << sound('sound/voice/hiss5.ogg',0,0,0,100) //To get the player's attention
- if(gib_on_success)
- affected_mob.gib()
- qdel(src)
-
-/*----------------------------------------
-Proc: RefreshInfectionImage()
-Des: Removes all infection images from aliens and places an infection image on all infected mobs for aliens.
-----------------------------------------*/
-/obj/item/alien_embryo/proc/RefreshInfectionImage()
-
- for(var/mob/living/carbon/alien in player_list)
-
- if(!locate(/obj/item/organ/internal/xenos/hivenode) in alien.internal_organs)
- continue
-
- if(alien.client)
- for(var/image/I in alien.client.images)
- if(dd_hasprefix_case(I.icon_state, "infected"))
- qdel(I)
- for(var/mob/living/L in mob_list)
- if(iscorgi(L) || iscarbon(L))
- if(L.status_flags & XENO_HOST)
- var/I = image('icons/mob/alien.dmi', loc = L, icon_state = "infected[stage]")
- alien.client.images += I
-
-/*----------------------------------------
-Proc: AddInfectionImages(C)
-Des: Checks if the passed mob (C) is infected with the alien egg, then gives each alien client an infected image at C.
-----------------------------------------*/
-/obj/item/alien_embryo/proc/AddInfectionImages(var/mob/living/C)
- if(C)
-
- for(var/mob/living/carbon/alien in player_list)
-
- if(!locate(/obj/item/organ/internal/xenos/hivenode) in alien.internal_organs)
- continue
-
- if(alien.client)
- if(C.status_flags & XENO_HOST)
- var/I = image('icons/mob/alien.dmi', loc = C, icon_state = "infected[stage]")
- alien.client.images += I
-
-/*----------------------------------------
-Proc: RemoveInfectionImage(C)
-Des: Removes the alien infection image from all aliens in the world located in passed mob (C).
-----------------------------------------*/
-
-/obj/item/alien_embryo/proc/RemoveInfectionImages(var/mob/living/C)
-
- if(C)
-
- for(var/mob/living/carbon/alien in player_list)
-
- if(!locate(/obj/item/organ/internal/xenos/hivenode) in alien.internal_organs)
- continue
-
- if(alien.client)
- for(var/image/I in alien.client.images)
- if(I.loc == C)
- if(dd_hasprefix_case(I.icon_state, "infected"))
- qdel(I)
-*/
diff --git a/code/modules/mob/living/carbon/human/species/xenomorphs/alien_powers.dm b/code/modules/mob/living/carbon/human/species/xenomorphs/alien_powers.dm
index 262c5bd732..142d91fb13 100644
--- a/code/modules/mob/living/carbon/human/species/xenomorphs/alien_powers.dm
+++ b/code/modules/mob/living/carbon/human/species/xenomorphs/alien_powers.dm
@@ -79,8 +79,16 @@
// Queen verbs.
/mob/living/carbon/human/proc/lay_egg()
+<<<<<<< HEAD
set name = "Lay Egg (200)" //CHOMPedit changed number value
set desc = "Lay an egg that hatch into larva." //CHOMPedit
+||||||| parent of eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul
+ set name = "Lay Egg (75)"
+ set desc = "Lay an egg to produce huggers to impregnate prey with."
+=======
+ set name = "Lay Egg (200)"
+ set desc = "Lay an egg to produce huggers to impregnate prey with."
+>>>>>>> eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul
set category = "Abilities"
if(!config.aliens_allowed)
@@ -88,13 +96,31 @@
verbs -= /mob/living/carbon/human/proc/lay_egg
return
+<<<<<<< HEAD
if(locate(/obj/structure/alien/egg) in get_turf(src)) //CHOMPedit. Changed from obj/effect to obj/structure
+||||||| parent of eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul
+ if(locate(/obj/effect/alien/egg) in get_turf(src))
+=======
+ if(locate(/obj/structure/alien/egg) in get_turf(src))
+>>>>>>> eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul
to_chat(src, "There's already an egg here.")
return
+<<<<<<< HEAD
if(check_alien_ability(200,1,O_EGG)) //CHOMPedit changed plasma cost from 75 to 200
+||||||| parent of eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul
+ if(check_alien_ability(75,1,O_EGG))
+=======
+ if(check_alien_ability(200,1,O_EGG))
+>>>>>>> eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul
visible_message("[src] has laid an egg!")
+<<<<<<< HEAD
new /obj/structure/alien/egg(loc) //CHOMPedit. Changed from obj/effect to obj/structure
+||||||| parent of eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul
+ new /obj/effect/alien/egg(loc)
+=======
+ new /obj/structure/alien/egg(loc)
+>>>>>>> eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul
return
@@ -144,7 +170,7 @@
P.firer = src
P.old_style_target(A)
P.fire()
- playsound(src, 'sound/weapons/pierce.ogg', 25, 0)
+ playsound(src, 'sound/weapons/alien_spitacid.ogg', 25, 0)
/mob/living/carbon/human/proc/corrosive_acid(O as obj|turf in oview(1)) //If they right click to corrode, an error will flash if its an invalid target./N
set name = "Corrosive Acid (200)"
@@ -329,7 +355,13 @@
/mob/living/carbon/human/proc/gut()
set category = "Abilities"
+<<<<<<< HEAD
set name = "Slaughter" //CHOMPedit renamed Gut to Slaughter so its more obvious what it does
+||||||| parent of eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul
+ set name = "Gut"
+=======
+ set name = "Slaughter"
+>>>>>>> eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul
set desc = "While grabbing someone aggressively, rip their guts out or tear them apart."
if(last_special > world.time)
@@ -345,7 +377,13 @@
return
if(G.state < GRAB_AGGRESSIVE)
+<<<<<<< HEAD
to_chat(src, "You must have an aggressive grab to slaughter your prey!") //CHOMPedit
+||||||| parent of eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul
+ to_chat(src, "You must have an aggressive grab to gut your prey!")
+=======
+ to_chat(src, "You must have an aggressive grab to slaughter your prey!")
+>>>>>>> eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul
return
last_special = world.time + 50
diff --git a/code/modules/mob/living/carbon/human/species/xenomorphs/alien_species.dm b/code/modules/mob/living/carbon/human/species/xenomorphs/alien_species.dm
index b01849f4db..9f50a7177f 100644
--- a/code/modules/mob/living/carbon/human/species/xenomorphs/alien_species.dm
+++ b/code/modules/mob/living/carbon/human/species/xenomorphs/alien_species.dm
@@ -25,8 +25,16 @@
siemens_coefficient = 0
gluttonous = 2
+<<<<<<< HEAD
brute_mod = 0.65 //CHOMPedit. Edited brute vulnerability
burn_mod = 1.50 //CHOMPedit. Edited burn vulnerability
+||||||| parent of eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul
+ brute_mod = 0.5 // Hardened carapace.
+ burn_mod = 2 // Weak to fire.
+=======
+ brute_mod = 0.6 // Hardened carapace.
+ burn_mod = 1.75 // Weak to fire.
+>>>>>>> eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul
warning_low_pressure = 50
hazard_low_pressure = -1
@@ -44,7 +52,13 @@
flesh_color = "#282846"
gibbed_anim = "gibbed-a"
dusted_anim = "dust-a"
+<<<<<<< HEAD
death_message = "lets out a piercing multi-toned screech, green blood bubbling from its maw as it ceases." //CHOMPedit. Changed message.
+||||||| parent of eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul
+ death_message = "lets out a waning guttural screech, green blood bubbling from its maw."
+=======
+ death_message = "lets out a guttural screech, green blood bubbling from its maw."
+>>>>>>> eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul
death_sound = 'sound/voice/hiss6.ogg'
damage_overlays = null //CHOMPedit. They don't have overlays yet, if someone wants to add some then be my guest
@@ -52,13 +66,22 @@
blood_mask = null //CHOMPedit.
speech_sounds = list('sound/voice/hiss1.ogg','sound/voice/hiss2.ogg','sound/voice/hiss3.ogg','sound/voice/hiss4.ogg')
- speech_chance = 100
+ speech_chance = 75
virus_immune = 1
breath_type = null
poison_type = null
+<<<<<<< HEAD
+||||||| parent of eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul
+ vision_flags = SEE_SELF|SEE_MOBS
+
+=======
+ vision_flags = SEE_SELF|SEE_MOBS|SEE_TURFS
+ darksight = 10
+
+>>>>>>> eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul
has_organ = list(
O_HEART = /obj/item/organ/internal/heart,
O_BRAIN = /obj/item/organ/internal/brain/xeno,
@@ -96,7 +119,13 @@
return SPECIES_GENA //CHOMPedit
/datum/species/xenos/get_random_name()
+<<<<<<< HEAD
return "Genaprawn [caste_name] ([alien_number])" //CHOMPedit
+||||||| parent of eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul
+ return "alien [caste_name] ([alien_number])"
+=======
+ return "xenomorph [caste_name] ([alien_number])"
+>>>>>>> eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul
/datum/species/xenos/can_understand(var/mob/other)
if(istype(other, /mob/living/carbon/alien/larva))
@@ -114,7 +143,13 @@
H.mind.special_role = "Alien"
alien_number++ //Keep track of how many aliens we've had so far.
+<<<<<<< HEAD
H.real_name = "Genaprawn [caste_name] ([alien_number])" //CHOMPedit
+||||||| parent of eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul
+ H.real_name = "alien [caste_name] ([alien_number])"
+=======
+ H.real_name = "xenomorph [caste_name] ([alien_number])"
+>>>>>>> eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul
H.name = H.real_name
..()
@@ -167,7 +202,20 @@
return 1
return 0
+<<<<<<< HEAD
//CHOMPedit removed infection images, since they do not exist anymore.
+||||||| parent of eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul
+/*
+/datum/species/xenos/handle_login_special(var/mob/living/carbon/human/H)
+ H.AddInfectionImages()
+ ..()
+
+/datum/species/xenos/handle_logout_special(var/mob/living/carbon/human/H)
+ H.RemoveInfectionImages()
+ ..()
+*/
+=======
+>>>>>>> eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul
/datum/species/xenos/drone
name = SPECIES_GENA_DRONE //CHOMPedit
@@ -213,7 +261,7 @@
name = SPECIES_GENA_HUNTER //CHOMPedit
weeds_plasma_rate = 5
caste_name = "hunter"
- slowdown = -2
+ slowdown = -1
total_health = 150
tail = null //CHOMPedit. Set to null
@@ -273,13 +321,29 @@
/datum/species/xenos/queen
+<<<<<<< HEAD
name = SPECIES_GENA_QUEEN //CHOMPedit
total_health = 300 //CHOMPedit. Queen is chonk
+||||||| parent of eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul
+ name = SPECIES_XENO_QUEEN
+ total_health = 250
+=======
+ name = SPECIES_XENO_QUEEN
+ total_health = 300
+>>>>>>> eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul
weeds_heal_rate = 5
weeds_plasma_rate = 20
caste_name = "queen"
+<<<<<<< HEAD
slowdown = 4
tail = null //CHOMPedit. Set to null
+||||||| parent of eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul
+ slowdown = 4
+ tail = "xenos_queen_tail"
+=======
+ slowdown = 3
+ tail = "xenos_queen_tail"
+>>>>>>> eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul
rarity_value = 10
icobase = 'icons/mob/human_races/xenos/r_xenos_queen.dmi'
@@ -317,10 +381,22 @@
..()
// Make sure only one official queen exists at any point.
if(!alien_queen_exists(1,H))
+<<<<<<< HEAD
H.real_name = "Genaprawn queen ([alien_number])" //CHOMPedit
+||||||| parent of eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul
+ H.real_name = "alien queen ([alien_number])"
+=======
+ H.real_name = "xenomorph queen ([alien_number])"
+>>>>>>> eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul
H.name = H.real_name
else
+<<<<<<< HEAD
H.real_name = "Genaprawn princess ([alien_number])" //CHOMPedit
+||||||| parent of eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul
+ H.real_name = "alien princess ([alien_number])"
+=======
+ H.real_name = "xenomorph princess ([alien_number])"
+>>>>>>> eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul
H.name = H.real_name
/datum/hud_data/alien
@@ -341,4 +417,10 @@
gear = list(
"storage1" = list("loc" = ui_storage1, "name" = "Left Pocket", "slot" = slot_l_store, "state" = "pocket"),
"storage2" = list("loc" = ui_storage2, "name" = "Right Pocket", "slot" = slot_r_store, "state" = "pocket"),
+<<<<<<< HEAD
) //CHOMPedit removed head and outer layer item slots, since they caused a slew of problems with xenomorphs
+||||||| parent of eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul
+ )
+=======
+ ) //Removed hat and outer slots, it caused too many problems that required admin intervention.
+>>>>>>> eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul
diff --git a/code/modules/mob/living/carbon/human/species/xenomorphs/xenomorphs.dm b/code/modules/mob/living/carbon/human/species/xenomorphs/xenomorphs.dm
index 7330c80c38..be18629fa0 100644
--- a/code/modules/mob/living/carbon/human/species/xenomorphs/xenomorphs.dm
+++ b/code/modules/mob/living/carbon/human/species/xenomorphs/xenomorphs.dm
@@ -25,7 +25,43 @@
/mob/living/carbon/human/xqueen/New(var/new_loc)
h_style = "Bald"
faction = "xeno"
+<<<<<<< HEAD
..(new_loc, SPECIES_GENA_QUEEN) //CHOMPedit
//CHOMPedit. Removed AddInfectionImages code, due to it being commented out and not used
+||||||| parent of eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul
+ ..(new_loc, SPECIES_XENO_QUEEN)
+
+// I feel like we should generalize/condense down all the various icon-rendering antag procs.
+/*----------------------------------------
+Proc: AddInfectionImages()
+Des: Gives the client of the alien an image on each infected mob.
+----------------------------------------*/
+/*
+/mob/living/carbon/human/proc/AddInfectionImages()
+ if (client)
+ for (var/mob/living/C in mob_list)
+ if(C.status_flags & XENO_HOST)
+ var/obj/item/alien_embryo/A = locate() in C
+ var/I = image('icons/mob/alien.dmi', loc = C, icon_state = "infected[A.stage]")
+ client.images += I
+ return
+*/
+/*----------------------------------------
+Proc: RemoveInfectionImages()
+Des: Removes all infected images from the alien.
+----------------------------------------*/
+/*
+/mob/living/carbon/human/proc/RemoveInfectionImages()
+ if (client)
+ for(var/image/I in client.images)
+ if(dd_hasprefix_case(I.icon_state, "infected"))
+ qdel(I)
+ return
+*/
+=======
+ ..(new_loc, SPECIES_XENO_QUEEN)
+
+//Removed AddInfectionImages, no longer required.
+>>>>>>> eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul
diff --git a/code/modules/projectiles/projectile/energy.dm b/code/modules/projectiles/projectile/energy.dm
index 91896ed393..bb05ff47cb 100644
--- a/code/modules/projectiles/projectile/energy.dm
+++ b/code/modules/projectiles/projectile/energy.dm
@@ -144,17 +144,21 @@
agony = 10
check_armour = "bio"
armor_penetration = 25 // It's acid
+ hitsound_wall = 'sound/weapons/effects/alien_spit_wall.ogg'
+ hitsound = 'sound/weapons/effects/alien_spit_wall.ogg'
combustion = FALSE
/obj/item/projectile/energy/neurotoxin
name = "neurotoxic spit"
icon_state = "neurotoxin"
- damage = 5
+ damage = 0
damage_type = BIOACID
agony = 60 //CHOMPedit lowered agony damage
check_armour = "bio"
armor_penetration = 25 // It's acid-based
+ hitsound_wall = 'sound/weapons/effects/alien_spit_wall.ogg'
+ hitsound = 'sound/weapons/effects/alien_spit_wall.ogg'
combustion = FALSE
diff --git a/code/modules/surgery/organs_internal.dm b/code/modules/surgery/organs_internal.dm
index 063a313b5b..62d39f3c48 100644
--- a/code/modules/surgery/organs_internal.dm
+++ b/code/modules/surgery/organs_internal.dm
@@ -14,7 +14,12 @@
return 0
return affected && affected.open == (affected.encased ? 3 : 2)
+<<<<<<< HEAD
//CHOMPedit. Removed unused embryo surgery
+||||||| parent of eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul
+=======
+//Removed unused Embryo Surgery, derelict and broken.
+>>>>>>> eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul
//////////////////////////////////////////////////////////////////
// CHEST INTERNAL ORGAN SURGERY //
diff --git a/maps/submaps/pois_vr/debris_field/derelict.dmm b/maps/submaps/pois_vr/debris_field/derelict.dmm
index c1dcd09022..cbc325c351 100644
--- a/maps/submaps/pois_vr/debris_field/derelict.dmm
+++ b/maps/submaps/pois_vr/debris_field/derelict.dmm
@@ -870,7 +870,6 @@
/turf/simulated/floor/tiled/dark,
/area/submap/debrisfield/derelict/interior)
"cF" = (
-/obj/effect/alien/egg,
/obj/effect/alien/weeds,
/turf/simulated/floor/tiled/dark,
/area/submap/debrisfield/derelict/interior)
diff --git a/maps/submaps/pois_vr/debris_field/new_escapepod_xeno.dmm b/maps/submaps/pois_vr/debris_field/new_escapepod_xeno.dmm
index ed2b127f4f..5042974f3c 100644
--- a/maps/submaps/pois_vr/debris_field/new_escapepod_xeno.dmm
+++ b/maps/submaps/pois_vr/debris_field/new_escapepod_xeno.dmm
@@ -66,7 +66,6 @@
/area/submap/debrisfield/misc_debris)
"W" = (
/obj/effect/alien/weeds,
-/obj/effect/alien/egg,
/turf/simulated/floor/airless,
/area/submap/debrisfield/misc_debris)
"X" = (
diff --git a/maps/submaps/surface_submaps/mountains/crashed_ufo_frigate.dmm b/maps/submaps/surface_submaps/mountains/crashed_ufo_frigate.dmm
index 5e8267e0fe..151f08fc28 100644
--- a/maps/submaps/surface_submaps/mountains/crashed_ufo_frigate.dmm
+++ b/maps/submaps/surface_submaps/mountains/crashed_ufo_frigate.dmm
@@ -1,3 +1,4 @@
+<<<<<<< HEAD
"aa" = (/turf/template_noop,/area/template_noop)
"ab" = (/turf/simulated/shuttle/wall/alien,/area/submap/cave/crashed_ufo_frigate)
"ac" = (/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
@@ -152,3 +153,314 @@ aaaaaabGaxaxadbGaaaaabababacapapapcgapcgapalalalabababaaaaaaadadadadadaxbGaaaa
aaaaaaaaaaaxaxadadaaaaaaababababakchaHchakababababaaaaaaadadaxaxbGaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababaaaaaaaaaabGadaaaaaaaaaaaaaaaaaaaa
"}
+||||||| parent of eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul
+"aa" = (/turf/template_noop,/area/template_noop)
+"ab" = (/turf/simulated/shuttle/wall/alien,/area/submap/cave/crashed_ufo_frigate)
+"ac" = (/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"ad" = (/turf/simulated/mineral/floor/ignore_mapgen,/area/template_noop)
+"ae" = (/obj/effect/alien/egg,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"af" = (/mob/living/simple_mob/animal/space/alien/drone,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"ag" = (/obj/machinery/porta_turret/alien{faction = "xeno"},/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"ah" = (/obj/structure/table/alien,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"ai" = (/obj/machinery/artifact,/obj/effect/alien/weeds/node,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"aj" = (/obj/random/outcrop,/turf/simulated/floor/outdoors/ice,/area/template_noop)
+"ak" = (/obj/machinery/porta_turret/alien{faction = "xeno"},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"al" = (/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"am" = (/obj/structure/window/phoronreinforced,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"an" = (/obj/structure/window/phoronreinforced,/obj/effect/alien/egg,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"ao" = (/obj/structure/loot_pile/surface/alien/security,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"ap" = (/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"aq" = (/obj/structure/prop/alien/pod/open,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"ar" = (/obj/effect/alien/weeds/node,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"as" = (/obj/structure/prop/alien/pod/open,/obj/random/tech_supply/component,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"at" = (/obj/machinery/door/airlock/alien/locked,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"au" = (/obj/machinery/door/airlock/alien/locked,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"av" = (/obj/structure/loot_pile/surface/alien/engineering,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"aw" = (/obj/structure/prop/alien/pod/open,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"ax" = (/turf/simulated/floor/outdoors/ice,/area/template_noop)
+"ay" = (/obj/structure/loot_pile/surface/bones,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"az" = (/obj/item/prop/alien/junk,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"aA" = (/obj/effect/alien/weeds/node,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"aB" = (/obj/structure/loot_pile/surface/alien/medical,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"aC" = (/obj/structure/loot_pile/surface/alien/security,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"aD" = (/obj/structure/table/alien,/obj/random/tech_supply/component,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"aE" = (/obj/structure/prop/alien/pod/open,/obj/random/tech_supply/component,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"aF" = (/obj/structure/table/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"aG" = (/obj/machinery/vr_sleeper/alien/random_replicant,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"aH" = (/obj/structure/prop/alien/pod,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"aI" = (/obj/structure/loot_pile/surface/alien/engineering,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"aJ" = (/obj/machinery/door/airlock/alien/locked,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"aK" = (/obj/structure/table/alien,/obj/random/tech_supply/component,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"aL" = (/obj/structure/table/alien,/obj/item/clothing/under/psysuit,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"aM" = (/obj/structure/prop/alien/computer/camera,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"aN" = (/obj/structure/prop/alien/computer/camera/flipped,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"aO" = (/obj/structure/simple_door/resin,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"aP" = (/obj/structure/prop/alien/power,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"aQ" = (/obj/effect/alien/weeds/node,/mob/living/simple_mob/animal/space/alien/drone,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"aR" = (/obj/effect/alien/weeds/node,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"aS" = (/obj/structure/table/alien,/obj/random/tool/alien,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"aT" = (/obj/structure/loot_pile/surface/alien/security,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"aU" = (/obj/machinery/replicator,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"aV" = (/obj/structure/closet/alien,/obj/random/unidentified_medicine/drug_den,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"aW" = (/obj/effect/decal/remains/xeno,/obj/item/clothing/under/psysuit,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"aX" = (/obj/structure/prop/alien/computer/camera/flipped{icon_state = "camera_flipped"; dir = 4},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"aY" = (/obj/structure/prop/alien/computer/camera{icon_state = "camera"; dir = 8},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"aZ" = (/obj/machinery/porta_turret/alien/destroyed,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"ba" = (/obj/structure/closet/alien,/obj/random/unidentified_medicine/scientific,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"bb" = (/obj/structure/closet/alien,/obj/random/unidentified_medicine/nanites,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"bc" = (/obj/structure/closet/alien,/obj/random/unidentified_medicine/fresh_medicine,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bd" = (/obj/structure/closet/alien,/obj/random/unidentified_medicine/viral,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"be" = (/obj/machinery/door/blast/puzzle,/obj/machinery/door/airlock/alien/locked,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"bf" = (/obj/structure/table/alien,/obj/item/weapon/paper/alien{icon_state = "alienpaper_words"; info = "\[i]This tablet has a large collection of symbols that you've never seen before outside this ship. You have no hope of figuring out what any of the mean...\[/i]"},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bg" = (/obj/structure/prop/lock/projectile,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"bh" = (/obj/structure/closet/alien,/obj/random/unidentified_medicine/old_medicine,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"bi" = (/obj/structure/prop/alien/dispenser,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bj" = (/obj/effect/decal/remains/xeno,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bk" = (/mob/living/simple_mob/animal/space/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bl" = (/obj/effect/decal/remains/xeno,/obj/item/clothing/under/psysuit,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"bm" = (/obj/structure/table/alien,/obj/item/weapon/paper/alien,/obj/item/weapon/paper/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bn" = (/obj/structure/foamedmetal,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"bo" = (/obj/machinery/porta_turret/alien{faction = "xeno"},/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"bp" = (/obj/structure/foamedmetal,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bq" = (/obj/machinery/implantchair,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"br" = (/obj/structure/prop/alien/computer{icon_state = "console-c"; dir = 8},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bs" = (/obj/effect/alien/weeds/node,/mob/living/simple_mob/animal/space/alien/sentinel/praetorian,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"bt" = (/obj/structure/loot_pile/maint/technical,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bu" = (/obj/structure/loot_pile/surface/drone,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bv" = (/obj/item/weapon/surgical/bone_clamp/alien,/obj/structure/closet/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bw" = (/obj/structure/prop/alien/computer,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"bx" = (/obj/effect/decal/remains/xeno,/obj/item/clothing/accessory/medal/dungeon/alien_ufo{desc = "It vaguely like a star. It looks like something an alien admiral might've worn. Probably."; name = "alien admiral's medal"},/obj/item/weapon/telecube/precursor/mated/zone,/obj/item/clothing/head/helmet/alien/tank,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"by" = (/obj/structure/loot_pile/mecha/gygax/dark,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bz" = (/obj/structure/mopbucket,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bA" = (/obj/item/brokenbug,/turf/simulated/mineral/floor/ignore_mapgen,/area/template_noop)
+"bB" = (/mob/living/simple_mob/animal/space/alien/sentinel,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"bC" = (/obj/structure/prop/alien/computer/camera/flipped{icon_state = "camera_flipped"; dir = 4},/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"bD" = (/obj/structure/prop/alien/computer/camera{icon_state = "camera"; dir = 8},/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"bE" = (/obj/structure/loot_pile/maint/boxfort,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bF" = (/obj/structure/prop/blackbox/xenofrigate,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bG" = (/obj/random/outcrop,/turf/simulated/mineral/floor/ignore_mapgen,/area/template_noop)
+"bH" = (/obj/structure/loot_pile/maint/junk,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bI" = (/obj/structure/table/alien,/obj/structure/loot_pile/surface/alien/medical,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bJ" = (/obj/structure/window/phoronreinforced{icon_state = "phoronrwindow"; dir = 8},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bK" = (/obj/structure/table/alien,/obj/item/prop/alien/junk,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bL" = (/obj/structure/table/alien,/obj/item/weapon/paper/alien{icon_state = "alienpaper_words"; info = "\[i]This tablet has a large collection of symbols that you've never seen before outside this ship. You have no hope of figuring out what any of the mean...\[/i]"},/obj/item/device/gps/internal/poi,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bM" = (/obj/structure/window/phoronreinforced{dir = 4},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bN" = (/obj/structure/table/alien,/obj/structure/window/phoronreinforced{dir = 4},/obj/item/weapon/paper/alien{icon_state = "alienpaper_words"; info = "\[i]This tablet has a large collection of symbols that you've never seen before outside this ship. You have no hope of figuring out what any of the mean...\[/i]"},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bO" = (/obj/structure/table/alien,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"bP" = (/obj/structure/table/alien,/obj/item/weapon/weldingtool/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bQ" = (/obj/structure/table/alien,/obj/structure/window/phoronreinforced{dir = 4},/obj/item/weapon/paper/alien{icon_state = "alienpaper_words"; info = "\[i]This tablet has a large collection of symbols that you've never seen before outside this ship. You have no hope of figuring out what any of the mean...\[/i]"},/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"bR" = (/obj/structure/table/alien,/obj/structure/foamedmetal,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bS" = (/obj/structure/closet/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bT" = (/obj/structure/window/phoronreinforced{icon_state = "phoronrwindow"; dir = 8},/obj/structure/window/phoronreinforced,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bU" = (/obj/structure/window/phoronreinforced,/obj/structure/window/phoronreinforced{dir = 4},/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"bV" = (/obj/structure/table/alien,/obj/structure/window/phoronreinforced,/obj/item/weapon/paper/alien,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"bW" = (/obj/structure/table/alien,/obj/structure/window/phoronreinforced{dir = 4},/obj/structure/window/phoronreinforced,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"bX" = (/mob/living/simple_mob/animal/space/alien,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"bY" = (/obj/structure/foamedmetal,/obj/machinery/door/airlock/alien/locked,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"bZ" = (/obj/structure/foamedmetal,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"ca" = (/obj/structure/table/alien,/obj/item/weapon/paper/alien{icon_state = "alienpaper_words"; info = "\[i]This tablet has a large collection of symbols that you've never seen before outside this ship. You have no hope of figuring out what any of the mean...\[/i]"},/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"cb" = (/obj/structure/prop/alien/power,/obj/structure/foamedmetal,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"cc" = (/obj/structure/loot_pile/surface/alien/end,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"cd" = (/obj/item/prop/alien/junk,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"ce" = (/obj/random/tech_supply/component,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"cf" = (/obj/random/tech_supply/component,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"cg" = (/obj/machinery/door/airlock/alien/public,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"ch" = (/turf/simulated/shuttle/wall/alien/hard_corner,/area/submap/cave/crashed_ufo_frigate)
+
+(1,1,1) = {"
+aaaaaaaxbGaaaaaaaaaaaaaaaaaaaaabababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaxaxadaxaxbGaaaaaaaaababababacaeacafaeababababaaaaaaajaxadaaaaadaxajaaaaaa
+adbGadadadadaxaxaaaaabababagahababacaiacababacakabababaaaaadaxadadaxaxaaaaaaaa
+aaaxaxadadadadaaaaababacalalahahabamamanabacacacacaoababaaaaadbGadadaaaaaaaaaa
+aaaaaaadbGadaaaaababaoacacalapapchalalalchapapaqaracasababaaaaaaadadadaxaxadaa
+aaaaadadadaaaaababaoacacapapapapatalapapauapapapavalacawababaaaaaaadadadaxajaa
+aaadadaxaaaaababaoacayapapapalalchazacaAchaAaBapapaCacacawababaaaaaxadadadaaaa
+aaaxaxaaaaababaoacalalapapahaDabababazababababawapapaEacacaBababaaaxadaaaaaaaa
+adbGaxaaaaabacacalalapapacaFababaGabababaHabababaIapapaqaAacakabaaajaxaaaaaaaa
+aaadaaaaababacacaFapapacacaFabaGacaGabaHalalaJacacacapapacacabababaaaxaaaaaaaa
+aaadaaaaabakacacaKapapacacacababaJababawacacchabacaAapapacababaIabaaaaaaaaaaaa
+aaaaaaababababaFaFapalalacacaJacacakabaLacaLabababacapapababaIacababaaaaaaaaaa
+aaaaaaabaMaNabababalalacacacababaOababaLacaLababababchatchaFalacaPabaaaaaaaaaa
+aaaaaaabaFacakacchauchaoacacabaeaQaeabaLacaLabababakapaRabaSalacaPabadaxaaaaaa
+aaaaaaabaFacalalapalababaTalababaeabababawababaMaFacapapabahalacaPabadadaaaaaa
+aaaaababaFalalapapapacababalaTabababakabababaUacaFacapapatacacababababadaxaaaa
+aaaaabaVacapapapapacacakababababacacaWaAacababacacapapapabavababacacabadaxaaaa
+aaaaabacapapapapacacacacabababaXacaFaFahalaYababchaRapacabababaZacacabadadadaa
+adaaabbaapapacalbbalbcacbdabacacapalalalapapapapbeapacacaIabalalacapchaZadadaa
+adaaabalapabababababababababapapapapapapapapapapchaFacbfababbgacapapatacadbAaa
+adaaabbhalabbiawabbiapaFabapapaRbjbkacacacaparblabbmacaFabacacapapapchaZadadaa
+axaaabalbnbobpacabbiapbqchapalalalaFaFaFacacapalabbfacbmabacapapapalabadadaxaa
+axaaabalbnbnbnbrabbibsapatapalagabababababakapapabbtaAbuabalapapalalabadadaxaa
+aaadababaFbnapbvababaFaFchapalababbwbxbwababapapabbyacbzabalalapacababadadaaaa
+aaaaaaabaFapbBacaYababababapapabbCapapapbDabapapabbEbFbHabalalapacabadaxaaaaaa
+aaaaaaabaFapapalalalalababapapabapapaRapapabapapabababababalapapalabadaaaaaaaa
+axaaaaabbIaFapapbpalalabacalapbJapbKbLbfapbMapapacabacakbNapapalalabaaaaaaaaaa
+axadaaababaFapbnbnacacabagalapbJbOaFapbPbObMapapakabacacbQapapalababaaaaaaaaaa
+adbGadaaabbIbRbnapapbSabalalapbTapaRapapalbUapapacabacbVbWapacalabaaaaaaaaaaaa
+aaaxaxaaababaFacapapbSababalaRapapapbXalalalaRacababacapapacakababaaaaaaaaaaaa
+aaaaaxaaaaabbIaFapapapbSabalapapapapapapapapapacabacapapapacacabaaaaaaaaadadaa
+aaaaaaaaaaabababchbYchabababbfbOapapapapapbObfabababchatchabababaaaaaaadbGadaa
+aaadaaaaaaaaababbZbZbnapacababaFahalagarcaaFababacapapapacababaaaaaaadadadadaa
+aaadaxajaaaaaaababcbbZapapalabababccabccabababacapapapaPababaaaaaaadadadadaaaa
+aaadadaxaxbGaaaaababbZapapcdalalabababababacapapapapacababaaaaaaaxaxadadadadaa
+aaaaadadadadadaaaaababaPacapapalalchapchceapapalcfaPababaaaaaabGadadadaxaxadaa
+aaaaaabGaxaxadbGaaaaabababacapapapcgapcgapalalalabababaaaaaaadadadadadaxbGaaaa
+aaaaaaaaaaaxaxadadaaaaaaababababakchaHchakababababaaaaaaadadaxaxbGaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababaaaaaaaaaabGadaaaaaaaaaaaaaaaaaaaa
+"}
+=======
+"aa" = (/turf/template_noop,/area/template_noop)
+"ab" = (/turf/simulated/shuttle/wall/alien,/area/submap/cave/crashed_ufo_frigate)
+"ac" = (/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"ad" = (/turf/simulated/mineral/floor/ignore_mapgen,/area/template_noop)
+"ae" = (/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"af" = (/mob/living/simple_mob/animal/space/alien/drone,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"ag" = (/obj/machinery/porta_turret/alien{faction = "xeno"},/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"ah" = (/obj/structure/table/alien,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"ai" = (/obj/machinery/artifact,/obj/effect/alien/weeds/node,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"aj" = (/obj/random/outcrop,/turf/simulated/floor/outdoors/ice,/area/template_noop)
+"ak" = (/obj/machinery/porta_turret/alien{faction = "xeno"},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"al" = (/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"am" = (/obj/structure/window/phoronreinforced,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"an" = (/obj/structure/window/phoronreinforced,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"ao" = (/obj/structure/loot_pile/surface/alien/security,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"ap" = (/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"aq" = (/obj/structure/prop/alien/pod/open,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"ar" = (/obj/effect/alien/weeds/node,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"as" = (/obj/structure/prop/alien/pod/open,/obj/random/tech_supply/component,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"at" = (/obj/machinery/door/airlock/alien/locked,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"au" = (/obj/machinery/door/airlock/alien/locked,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"av" = (/obj/structure/loot_pile/surface/alien/engineering,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"aw" = (/obj/structure/prop/alien/pod/open,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"ax" = (/turf/simulated/floor/outdoors/ice,/area/template_noop)
+"ay" = (/obj/structure/loot_pile/surface/bones,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"az" = (/obj/item/prop/alien/junk,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"aA" = (/obj/effect/alien/weeds/node,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"aB" = (/obj/structure/loot_pile/surface/alien/medical,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"aC" = (/obj/structure/loot_pile/surface/alien/security,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"aD" = (/obj/structure/table/alien,/obj/random/tech_supply/component,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"aE" = (/obj/structure/prop/alien/pod/open,/obj/random/tech_supply/component,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"aF" = (/obj/structure/table/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"aG" = (/obj/machinery/vr_sleeper/alien/random_replicant,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"aH" = (/obj/structure/prop/alien/pod,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"aI" = (/obj/structure/loot_pile/surface/alien/engineering,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"aJ" = (/obj/machinery/door/airlock/alien/locked,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"aK" = (/obj/structure/table/alien,/obj/random/tech_supply/component,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"aL" = (/obj/structure/table/alien,/obj/item/clothing/under/psysuit,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"aM" = (/obj/structure/prop/alien/computer/camera,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"aN" = (/obj/structure/prop/alien/computer/camera/flipped,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"aO" = (/obj/structure/simple_door/resin,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"aP" = (/obj/structure/prop/alien/power,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"aQ" = (/obj/effect/alien/weeds/node,/mob/living/simple_mob/animal/space/alien/drone,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"aR" = (/obj/effect/alien/weeds/node,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"aS" = (/obj/structure/table/alien,/obj/random/tool/alien,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"aT" = (/obj/structure/loot_pile/surface/alien/security,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"aU" = (/obj/machinery/replicator,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"aV" = (/obj/structure/closet/alien,/obj/random/unidentified_medicine/drug_den,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"aW" = (/obj/effect/decal/remains/xeno,/obj/item/clothing/under/psysuit,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"aX" = (/obj/structure/prop/alien/computer/camera/flipped{icon_state = "camera_flipped"; dir = 4},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"aY" = (/obj/structure/prop/alien/computer/camera{icon_state = "camera"; dir = 8},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"aZ" = (/obj/machinery/porta_turret/alien/destroyed,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"ba" = (/obj/structure/closet/alien,/obj/random/unidentified_medicine/scientific,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"bb" = (/obj/structure/closet/alien,/obj/random/unidentified_medicine/nanites,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"bc" = (/obj/structure/closet/alien,/obj/random/unidentified_medicine/fresh_medicine,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bd" = (/obj/structure/closet/alien,/obj/random/unidentified_medicine/viral,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"be" = (/obj/machinery/door/blast/puzzle,/obj/machinery/door/airlock/alien/locked,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"bf" = (/obj/structure/table/alien,/obj/item/weapon/paper/alien{icon_state = "alienpaper_words"; info = "\[i]This tablet has a large collection of symbols that you've never seen before outside this ship. You have no hope of figuring out what any of the mean...\[/i]"},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bg" = (/obj/structure/prop/lock/projectile,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"bh" = (/obj/structure/closet/alien,/obj/random/unidentified_medicine/old_medicine,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"bi" = (/obj/structure/prop/alien/dispenser,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bj" = (/obj/effect/decal/remains/xeno,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bk" = (/mob/living/simple_mob/animal/space/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bl" = (/obj/effect/decal/remains/xeno,/obj/item/clothing/under/psysuit,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"bm" = (/obj/structure/table/alien,/obj/item/weapon/paper/alien,/obj/item/weapon/paper/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bn" = (/obj/structure/foamedmetal,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"bo" = (/obj/machinery/porta_turret/alien{faction = "xeno"},/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"bp" = (/obj/structure/foamedmetal,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bq" = (/obj/machinery/implantchair,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"br" = (/obj/structure/prop/alien/computer{icon_state = "console-c"; dir = 8},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bs" = (/obj/effect/alien/weeds/node,/mob/living/simple_mob/animal/space/alien/sentinel/praetorian,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"bt" = (/obj/structure/loot_pile/maint/technical,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bu" = (/obj/structure/loot_pile/surface/drone,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bv" = (/obj/item/weapon/surgical/bone_clamp/alien,/obj/structure/closet/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bw" = (/obj/structure/prop/alien/computer,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"bx" = (/obj/effect/decal/remains/xeno,/obj/item/clothing/accessory/medal/dungeon/alien_ufo{desc = "It vaguely like a star. It looks like something an alien admiral might've worn. Probably."; name = "alien admiral's medal"},/obj/item/weapon/telecube/precursor/mated/zone,/obj/item/clothing/head/helmet/alien/tank,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"by" = (/obj/structure/loot_pile/mecha/gygax/dark,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bz" = (/obj/structure/mopbucket,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bA" = (/obj/item/brokenbug,/turf/simulated/mineral/floor/ignore_mapgen,/area/template_noop)
+"bB" = (/mob/living/simple_mob/animal/space/alien/sentinel,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"bC" = (/obj/structure/prop/alien/computer/camera/flipped{icon_state = "camera_flipped"; dir = 4},/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"bD" = (/obj/structure/prop/alien/computer/camera{icon_state = "camera"; dir = 8},/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"bE" = (/obj/structure/loot_pile/maint/boxfort,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bF" = (/obj/structure/prop/blackbox/xenofrigate,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bG" = (/obj/random/outcrop,/turf/simulated/mineral/floor/ignore_mapgen,/area/template_noop)
+"bH" = (/obj/structure/loot_pile/maint/junk,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bI" = (/obj/structure/table/alien,/obj/structure/loot_pile/surface/alien/medical,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bJ" = (/obj/structure/window/phoronreinforced{icon_state = "phoronrwindow"; dir = 8},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bK" = (/obj/structure/table/alien,/obj/item/prop/alien/junk,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bL" = (/obj/structure/table/alien,/obj/item/weapon/paper/alien{icon_state = "alienpaper_words"; info = "\[i]This tablet has a large collection of symbols that you've never seen before outside this ship. You have no hope of figuring out what any of the mean...\[/i]"},/obj/item/device/gps/internal/poi,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bM" = (/obj/structure/window/phoronreinforced{dir = 4},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bN" = (/obj/structure/table/alien,/obj/structure/window/phoronreinforced{dir = 4},/obj/item/weapon/paper/alien{icon_state = "alienpaper_words"; info = "\[i]This tablet has a large collection of symbols that you've never seen before outside this ship. You have no hope of figuring out what any of the mean...\[/i]"},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bO" = (/obj/structure/table/alien,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"bP" = (/obj/structure/table/alien,/obj/item/weapon/weldingtool/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bQ" = (/obj/structure/table/alien,/obj/structure/window/phoronreinforced{dir = 4},/obj/item/weapon/paper/alien{icon_state = "alienpaper_words"; info = "\[i]This tablet has a large collection of symbols that you've never seen before outside this ship. You have no hope of figuring out what any of the mean...\[/i]"},/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"bR" = (/obj/structure/table/alien,/obj/structure/foamedmetal,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bS" = (/obj/structure/closet/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bT" = (/obj/structure/window/phoronreinforced{icon_state = "phoronrwindow"; dir = 8},/obj/structure/window/phoronreinforced,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
+"bU" = (/obj/structure/window/phoronreinforced,/obj/structure/window/phoronreinforced{dir = 4},/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"bV" = (/obj/structure/table/alien,/obj/structure/window/phoronreinforced,/obj/item/weapon/paper/alien,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"bW" = (/obj/structure/table/alien,/obj/structure/window/phoronreinforced{dir = 4},/obj/structure/window/phoronreinforced,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"bX" = (/mob/living/simple_mob/animal/space/alien,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"bY" = (/obj/structure/foamedmetal,/obj/machinery/door/airlock/alien/locked,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"bZ" = (/obj/structure/foamedmetal,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"ca" = (/obj/structure/table/alien,/obj/item/weapon/paper/alien{icon_state = "alienpaper_words"; info = "\[i]This tablet has a large collection of symbols that you've never seen before outside this ship. You have no hope of figuring out what any of the mean...\[/i]"},/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"cb" = (/obj/structure/prop/alien/power,/obj/structure/foamedmetal,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"cc" = (/obj/structure/loot_pile/surface/alien/end,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"cd" = (/obj/item/prop/alien/junk,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"ce" = (/obj/random/tech_supply/component,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"cf" = (/obj/random/tech_supply/component,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
+"cg" = (/obj/machinery/door/airlock/alien/public,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
+"ch" = (/turf/simulated/shuttle/wall/alien/hard_corner,/area/submap/cave/crashed_ufo_frigate)
+
+(1,1,1) = {"
+aaaaaaaxbGaaaaaaaaaaaaaaaaaaaaabababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaxaxadaxaxbGaaaaaaaaababababacaeacafaeababababaaaaaaajaxadaaaaadaxajaaaaaa
+adbGadadadadaxaxaaaaabababagahababacaiacababacakabababaaaaadaxadadaxaxaaaaaaaa
+aaaxaxadadadadaaaaababacalalahahabamamanabacacacacaoababaaaaadbGadadaaaaaaaaaa
+aaaaaaadbGadaaaaababaoacacalapapchalalalchapapaqaracasababaaaaaaadadadaxaxadaa
+aaaaadadadaaaaababaoacacapapapapatalapapauapapapavalacawababaaaaaaadadadaxajaa
+aaadadaxaaaaababaoacayapapapalalchazacaAchaAaBapapaCacacawababaaaaaxadadadaaaa
+aaaxaxaaaaababaoacalalapapahaDabababazababababawapapaEacacaBababaaaxadaaaaaaaa
+adbGaxaaaaabacacalalapapacaFababaGabababaHabababaIapapaqaAacakabaaajaxaaaaaaaa
+aaadaaaaababacacaFapapacacaFabaGacaGabaHalalaJacacacapapacacabababaaaxaaaaaaaa
+aaadaaaaabakacacaKapapacacacababaJababawacacchabacaAapapacababaIabaaaaaaaaaaaa
+aaaaaaababababaFaFapalalacacaJacacakabaLacaLabababacapapababaIacababaaaaaaaaaa
+aaaaaaabaMaNabababalalacacacababaOababaLacaLababababchatchaFalacaPabaaaaaaaaaa
+aaaaaaabaFacakacchauchaoacacabaeaQaeabaLacaLabababakapaRabaSalacaPabadaxaaaaaa
+aaaaaaabaFacalalapalababaTalababaeabababawababaMaFacapapabahalacaPabadadaaaaaa
+aaaaababaFalalapapapacababalaTabababakabababaUacaFacapapatacacababababadaxaaaa
+aaaaabaVacapapapapacacakababababacacaWaAacababacacapapapabavababacacabadaxaaaa
+aaaaabacapapapapacacacacabababaXacaFaFahalaYababchaRapacabababaZacacabadadadaa
+adaaabbaapapacalbbalbcacbdabacacapalalalapapapapbeapacacaIabalalacapchaZadadaa
+adaaabalapabababababababababapapapapapapapapapapchaFacbfababbgacapapatacadbAaa
+adaaabbhalabbiawabbiapaFabapapaRbjbkacacacaparblabbmacaFabacacapapapchaZadadaa
+axaaabalbnbobpacabbiapbqchapalalalaFaFaFacacapalabbfacbmabacapapapalabadadaxaa
+axaaabalbnbnbnbrabbibsapatapalagabababababakapapabbtaAbuabalapapalalabadadaxaa
+aaadababaFbnapbvababaFaFchapalababbwbxbwababapapabbyacbzabalalapacababadadaaaa
+aaaaaaabaFapbBacaYababababapapabbCapapapbDabapapabbEbFbHabalalapacabadaxaaaaaa
+aaaaaaabaFapapalalalalababapapabapapaRapapabapapabababababalapapalabadaaaaaaaa
+axaaaaabbIaFapapbpalalabacalapbJapbKbLbfapbMapapacabacakbNapapalalabaaaaaaaaaa
+axadaaababaFapbnbnacacabagalapbJbOaFapbPbObMapapakabacacbQapapalababaaaaaaaaaa
+adbGadaaabbIbRbnapapbSabalalapbTapaRapapalbUapapacabacbVbWapacalabaaaaaaaaaaaa
+aaaxaxaaababaFacapapbSababalaRapapapbXalalalaRacababacapapacakababaaaaaaaaaaaa
+aaaaaxaaaaabbIaFapapapbSabalapapapapapapapapapacabacapapapacacabaaaaaaaaadadaa
+aaaaaaaaaaabababchbYchabababbfbOapapapapapbObfabababchatchabababaaaaaaadbGadaa
+aaadaaaaaaaaababbZbZbnapacababaFahalagarcaaFababacapapapacababaaaaaaadadadadaa
+aaadaxajaaaaaaababcbbZapapalabababccabccabababacapapapaPababaaaaaaadadadadaaaa
+aaadadaxaxbGaaaaababbZapapcdalalabababababacapapapapacababaaaaaaaxaxadadadadaa
+aaaaadadadadadaaaaababaPacapapalalchapchceapapalcfaPababaaaaaabGadadadaxaxadaa
+aaaaaabGaxaxadbGaaaaabababacapapapcgapcgapalalalabababaaaaaaadadadadadaxbGaaaa
+aaaaaaaaaaaxaxadadaaaaaaababababakchaHchakababababaaaaaaadadaxaxbGaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababaaaaaaaaaabGadaaaaaaaaaaaaaaaaaaaa
+"}
+>>>>>>> eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul
diff --git a/maps/submaps/surface_submaps/mountains/vault4.dmm b/maps/submaps/surface_submaps/mountains/vault4.dmm
index 6ea85a27e9..bbd4824422 100644
--- a/maps/submaps/surface_submaps/mountains/vault4.dmm
+++ b/maps/submaps/surface_submaps/mountains/vault4.dmm
@@ -1,3 +1,4 @@
+<<<<<<< HEAD
"a" = (/turf/template_noop,/area/template_noop)
"b" = (/obj/effect/alien/resin/wall,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4)
"c" = (/obj/structure/simple_door/resin,/obj/effect/alien/weeds,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4)
@@ -20,3 +21,50 @@ abbfedbba
aabbcbbaa
aaaaaaaaa
"}
+||||||| parent of eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul
+"a" = (/turf/template_noop,/area/template_noop)
+"b" = (/obj/effect/alien/resin/wall,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4)
+"c" = (/obj/structure/simple_door/resin,/obj/effect/alien/weeds,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4)
+"d" = (/obj/effect/alien/weeds,/obj/structure/bed/nest,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4)
+"e" = (/obj/effect/alien/weeds,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4)
+"f" = (/obj/effect/alien/weeds,/mob/living/simple_mob/animal/space/alien/drone,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4)
+"g" = (/obj/effect/alien/weeds/node,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4)
+"h" = (/obj/effect/alien/weeds,/obj/random/multiple/minevault,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4)
+"i" = (/obj/effect/alien/weeds,/mob/living/simple_mob/animal/space/alien,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4)
+"j" = (/obj/effect/alien/weeds,/obj/effect/alien/egg,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4)
+
+(1,1,1) = {"
+aaaaaaaaa
+aabbcbbaa
+abbdefbba
+abdeeghba
+aciejeica
+abhgeedba
+abbfedbba
+aabbcbbaa
+aaaaaaaaa
+"}
+=======
+"a" = (/turf/template_noop,/area/template_noop)
+"b" = (/obj/effect/alien/resin/wall,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4)
+"c" = (/obj/structure/simple_door/resin,/obj/effect/alien/weeds,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4)
+"d" = (/obj/effect/alien/weeds,/obj/structure/bed/nest,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4)
+"e" = (/obj/effect/alien/weeds,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4)
+"f" = (/obj/effect/alien/weeds,/mob/living/simple_mob/animal/space/alien/drone,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4)
+"g" = (/obj/effect/alien/weeds/node,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4)
+"h" = (/obj/effect/alien/weeds,/obj/random/multiple/minevault,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4)
+"i" = (/obj/effect/alien/weeds,/mob/living/simple_mob/animal/space/alien,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4)
+"j" = (/obj/effect/alien/weeds,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4)
+
+(1,1,1) = {"
+aaaaaaaaa
+aabbcbbaa
+abbdefbba
+abdeeghba
+aciejeica
+abhgeedba
+abbfedbba
+aabbcbbaa
+aaaaaaaaa
+"}
+>>>>>>> eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul
diff --git a/maps/submaps/surface_submaps/mountains/vault5.dmm b/maps/submaps/surface_submaps/mountains/vault5.dmm
index 8daebc236f..a98b97c720 100644
--- a/maps/submaps/surface_submaps/mountains/vault5.dmm
+++ b/maps/submaps/surface_submaps/mountains/vault5.dmm
@@ -1,3 +1,4 @@
+<<<<<<< HEAD
"a" = (/turf/template_noop,/area/template_noop)
"b" = (/obj/effect/alien/resin/wall,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5)
"c" = (/obj/structure/simple_door/resin,/obj/effect/alien/weeds,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5)
@@ -21,3 +22,52 @@ abbkegbba
aabbcbbaa
aaaaaaaaa
"}
+||||||| parent of eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul
+"a" = (/turf/template_noop,/area/template_noop)
+"b" = (/obj/effect/alien/resin/wall,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5)
+"c" = (/obj/structure/simple_door/resin,/obj/effect/alien/weeds,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5)
+"d" = (/obj/effect/alien/weeds,/obj/structure/bed/nest,/obj/item/weapon/gun/projectile/p92x/large,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5)
+"e" = (/obj/effect/alien/weeds,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5)
+"f" = (/obj/effect/alien/weeds,/obj/item/clothing/suit/storage/vest/tactical,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5)
+"g" = (/obj/effect/alien/weeds,/obj/structure/bed/nest,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5)
+"h" = (/obj/effect/alien/weeds,/obj/random/multiple/minevault,/mob/living/simple_mob/animal/space/alien/sentinel/praetorian,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5)
+"i" = (/obj/effect/alien/weeds,/obj/effect/alien/egg,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5)
+"j" = (/obj/effect/alien/weeds,/obj/effect/alien/weeds/node,/mob/living/simple_mob/animal/space/alien/queen/empress,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5)
+"k" = (/obj/effect/alien/weeds,/obj/item/clothing/head/helmet/tac,/obj/item/weapon/gun/projectile/SVD,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5)
+
+(1,1,1) = {"
+aaaaaaaaa
+aabbcbbaa
+abbdefbba
+abgeeehba
+abiejeiba
+abheeegba
+abbkegbba
+aabbcbbaa
+aaaaaaaaa
+"}
+=======
+"a" = (/turf/template_noop,/area/template_noop)
+"b" = (/obj/effect/alien/resin/wall,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5)
+"c" = (/obj/structure/simple_door/resin,/obj/effect/alien/weeds,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5)
+"d" = (/obj/effect/alien/weeds,/obj/structure/bed/nest,/obj/item/weapon/gun/projectile/p92x/large,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5)
+"e" = (/obj/effect/alien/weeds,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5)
+"f" = (/obj/effect/alien/weeds,/obj/item/clothing/suit/storage/vest/tactical,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5)
+"g" = (/obj/effect/alien/weeds,/obj/structure/bed/nest,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5)
+"h" = (/obj/effect/alien/weeds,/obj/random/multiple/minevault,/mob/living/simple_mob/animal/space/alien/sentinel/praetorian,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5)
+"i" = (/obj/effect/alien/weeds,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5)
+"j" = (/obj/effect/alien/weeds,/obj/effect/alien/weeds/node,/mob/living/simple_mob/animal/space/alien/queen/empress,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5)
+"k" = (/obj/effect/alien/weeds,/obj/item/clothing/head/helmet/tac,/obj/item/weapon/gun/projectile/SVD,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5)
+
+(1,1,1) = {"
+aaaaaaaaa
+aabbcbbaa
+abbdefbba
+abgeeehba
+abiejeiba
+abheeegba
+abbkegbba
+aabbcbbaa
+aaaaaaaaa
+"}
+>>>>>>> eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul
diff --git a/sound/machines/door/airlock_tear_apart.ogg b/sound/machines/door/airlock_tear_apart.ogg
new file mode 100644
index 0000000000..aba517475f
Binary files /dev/null and b/sound/machines/door/airlock_tear_apart.ogg differ
diff --git a/sound/weapons/alien_spitacid.ogg b/sound/weapons/alien_spitacid.ogg
new file mode 100644
index 0000000000..db630d0e8c
Binary files /dev/null and b/sound/weapons/alien_spitacid.ogg differ
diff --git a/sound/weapons/effects/alien_spit_wall.ogg b/sound/weapons/effects/alien_spit_wall.ogg
new file mode 100644
index 0000000000..3d4fc90d27
Binary files /dev/null and b/sound/weapons/effects/alien_spit_wall.ogg differ
diff --git a/vorestation.dme b/vorestation.dme
index a0685571f0..e2ecc486f8 100644
--- a/vorestation.dme
+++ b/vorestation.dme
@@ -1,3 +1,4 @@
+<<<<<<< HEAD
// DM Environment file for baystation12.dme.
// All manual changes should be made outside the BEGIN_ and END_ blocks.
// New source code should be placed in .dm files: choose File/New --> Code File.
@@ -4359,3 +4360,8118 @@
#include "maps\submaps\surface_submaps\wilderness\wilderness_areas.dm"
#include "maps\~map_system\maps.dm"
// END_INCLUDE
+||||||| parent of eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul
+// DM Environment file for baystation12.dme.
+// All manual changes should be made outside the BEGIN_ and END_ blocks.
+ // New source code should be placed in .dm files: choose File/New --> Code File.
+// BEGIN_INTERNALS
+// END_INTERNALS
+// BEGIN_FILE_DIR
+#define FILE_DIR .
+// END_FILE_DIR
+// BEGIN_PREFERENCES
+#define DEBUG
+// END_PREFERENCES
+// BEGIN_INCLUDE
+#include "code\_away_mission_tests.dm"
+#include "code\_macros.dm"
+#include "code\_macros_vr.dm"
+#include "code\_map_tests.dm"
+#include "code\_unit_tests.dm"
+#include "code\global.dm"
+#include "code\global_init.dm"
+#include "code\global_vr.dm"
+#include "code\hub.dm"
+#include "code\names.dm"
+#include "code\stylesheet.dm"
+#include "code\world.dm"
+#include "code\__datastructures\globals.dm"
+#include "code\__defines\__513_compatibility.dm"
+#include "code\__defines\_compile_options.dm"
+#include "code\__defines\_lists.dm"
+#include "code\__defines\_planes+layers.dm"
+#include "code\__defines\_planes+layers_vr.dm"
+#include "code\__defines\_protect.dm"
+#include "code\__defines\_tick.dm"
+#include "code\__defines\admin.dm"
+#include "code\__defines\admin_vr.dm"
+#include "code\__defines\appearance.dm"
+#include "code\__defines\atmos.dm"
+#include "code\__defines\belly_modes_vr.dm"
+#include "code\__defines\callbacks.dm"
+#include "code\__defines\chemistry.dm"
+#include "code\__defines\chemistry_vr.dm"
+#include "code\__defines\color.dm"
+#include "code\__defines\construction.dm"
+#include "code\__defines\crafting.dm"
+#include "code\__defines\damage_organs.dm"
+#include "code\__defines\dna.dm"
+#include "code\__defines\exosuit_fab.dm"
+#include "code\__defines\flags.dm"
+#include "code\__defines\gamemode.dm"
+#include "code\__defines\holomap.dm"
+#include "code\__defines\hoses.dm"
+#include "code\__defines\input.dm"
+#include "code\__defines\instruments.dm"
+#include "code\__defines\integrated_circuits.dm"
+#include "code\__defines\inventory_sizes.dm"
+#include "code\__defines\is_helpers.dm"
+#include "code\__defines\items_clothing.dm"
+#include "code\__defines\lighting.dm"
+#include "code\__defines\lighting_vr.dm"
+#include "code\__defines\machinery.dm"
+#include "code\__defines\map.dm"
+#include "code\__defines\materials.dm"
+#include "code\__defines\math.dm"
+#include "code\__defines\math_physics.dm"
+#include "code\__defines\MC.dm"
+#include "code\__defines\misc.dm"
+#include "code\__defines\misc_vr.dm"
+#include "code\__defines\mobs.dm"
+#include "code\__defines\mobs_vr.dm"
+#include "code\__defines\nifsoft.dm"
+#include "code\__defines\objects.dm"
+#include "code\__defines\overmap.dm"
+#include "code\__defines\pda.dm"
+#include "code\__defines\planets.dm"
+#include "code\__defines\planets_vr.dm"
+#include "code\__defines\plants.dm"
+#include "code\__defines\preferences.dm"
+#include "code\__defines\process_scheduler.dm"
+#include "code\__defines\qdel.dm"
+#include "code\__defines\research.dm"
+#include "code\__defines\roguemining_vr.dm"
+#include "code\__defines\rust_g.dm"
+#include "code\__defines\shields.dm"
+#include "code\__defines\shuttle.dm"
+#include "code\__defines\sound.dm"
+#include "code\__defines\spaceman_dmm.dm"
+#include "code\__defines\species_languages.dm"
+#include "code\__defines\species_languages_vr.dm"
+#include "code\__defines\sprite_sheets.dm"
+#include "code\__defines\sqlite_defines.dm"
+#include "code\__defines\stat_tracking.dm"
+#include "code\__defines\subsystems.dm"
+#include "code\__defines\supply.dm"
+#include "code\__defines\targeting.dm"
+#include "code\__defines\tgs.config.dm"
+#include "code\__defines\tgs.dm"
+#include "code\__defines\tgui.dm"
+#include "code\__defines\tools.dm"
+#include "code\__defines\turfs.dm"
+#include "code\__defines\typeids.dm"
+#include "code\__defines\unit_tests.dm"
+#include "code\__defines\vote.dm"
+#include "code\__defines\vv.dm"
+#include "code\__defines\webhooks.dm"
+#include "code\__defines\wires.dm"
+#include "code\__defines\xenoarcheaology.dm"
+#include "code\__defines\ZAS.dm"
+#include "code\__defines\dcs\flags.dm"
+#include "code\__defines\dcs\helpers.dm"
+#include "code\__defines\dcs\signals.dm"
+#include "code\_global_vars\bitfields.dm"
+#include "code\_global_vars\misc.dm"
+#include "code\_global_vars\mobs.dm"
+#include "code\_global_vars\religion.dm"
+#include "code\_global_vars\sensitive.dm"
+#include "code\_global_vars\typecache.dm"
+#include "code\_global_vars\lists\mapping.dm"
+#include "code\_global_vars\lists\misc.dm"
+#include "code\_global_vars\lists\species.dm"
+#include "code\_helpers\_global_objects.dm"
+#include "code\_helpers\_global_objects_vr.dm"
+#include "code\_helpers\_lists.dm"
+#include "code\_helpers\atmospherics.dm"
+#include "code\_helpers\atom_movables.dm"
+#include "code\_helpers\events.dm"
+#include "code\_helpers\files.dm"
+#include "code\_helpers\game.dm"
+#include "code\_helpers\global_lists.dm"
+#include "code\_helpers\global_lists_vr.dm"
+#include "code\_helpers\icons.dm"
+#include "code\_helpers\icons_vr.dm"
+#include "code\_helpers\lighting.dm"
+#include "code\_helpers\logging.dm"
+#include "code\_helpers\logging_vr.dm"
+#include "code\_helpers\matrices.dm"
+#include "code\_helpers\mobs.dm"
+#include "code\_helpers\names.dm"
+#include "code\_helpers\sanitize_values.dm"
+#include "code\_helpers\storage.dm"
+#include "code\_helpers\string_lists.dm"
+#include "code\_helpers\text.dm"
+#include "code\_helpers\time.dm"
+#include "code\_helpers\turfs.dm"
+#include "code\_helpers\type2type.dm"
+#include "code\_helpers\unsorted.dm"
+#include "code\_helpers\unsorted_vr.dm"
+#include "code\_helpers\view.dm"
+#include "code\_helpers\visual_filters.dm"
+#include "code\_helpers\sorts\__main.dm"
+#include "code\_helpers\sorts\comparators.dm"
+#include "code\_helpers\sorts\TimSort.dm"
+#include "code\_onclick\_defines.dm"
+#include "code\_onclick\adjacent.dm"
+#include "code\_onclick\ai.dm"
+#include "code\_onclick\click.dm"
+#include "code\_onclick\cyborg.dm"
+#include "code\_onclick\drag_drop.dm"
+#include "code\_onclick\item_attack.dm"
+#include "code\_onclick\observer.dm"
+#include "code\_onclick\other_mobs.dm"
+#include "code\_onclick\rig.dm"
+#include "code\_onclick\telekinesis.dm"
+#include "code\_onclick\hud\_defines.dm"
+#include "code\_onclick\hud\_defines_vr.dm"
+#include "code\_onclick\hud\ability_screen_objects.dm"
+#include "code\_onclick\hud\action.dm"
+#include "code\_onclick\hud\ai.dm"
+#include "code\_onclick\hud\alert.dm"
+#include "code\_onclick\hud\alert_vr.dm"
+#include "code\_onclick\hud\alien_larva.dm"
+#include "code\_onclick\hud\fullscreen.dm"
+#include "code\_onclick\hud\ghost.dm"
+#include "code\_onclick\hud\gun_mode.dm"
+#include "code\_onclick\hud\hud.dm"
+#include "code\_onclick\hud\human.dm"
+#include "code\_onclick\hud\map_popups.dm"
+#include "code\_onclick\hud\minihud.dm"
+#include "code\_onclick\hud\minihud_mapper.dm"
+#include "code\_onclick\hud\minihud_rigmech.dm"
+#include "code\_onclick\hud\movable_screen_objects.dm"
+#include "code\_onclick\hud\other_mobs.dm"
+#include "code\_onclick\hud\picture_in_picture.dm"
+#include "code\_onclick\hud\radial.dm"
+#include "code\_onclick\hud\radial_persistent.dm"
+#include "code\_onclick\hud\robot.dm"
+#include "code\_onclick\hud\robot_vr.dm"
+#include "code\_onclick\hud\screen_objects.dm"
+#include "code\_onclick\hud\screen_objects_vr.dm"
+#include "code\_onclick\hud\skybox.dm"
+#include "code\_onclick\hud\soulcatcher_guest.dm"
+#include "code\_onclick\hud\spell_screen_objects.dm"
+#include "code\ATMOSPHERICS\_atmos_setup.dm"
+#include "code\ATMOSPHERICS\_atmospherics_helpers.dm"
+#include "code\ATMOSPHERICS\atmospherics.dm"
+#include "code\ATMOSPHERICS\datum_pipe_network.dm"
+#include "code\ATMOSPHERICS\datum_pipeline.dm"
+#include "code\ATMOSPHERICS\components\portables_connector.dm"
+#include "code\ATMOSPHERICS\components\shutoff.dm"
+#include "code\ATMOSPHERICS\components\tvalve.dm"
+#include "code\ATMOSPHERICS\components\valve.dm"
+#include "code\ATMOSPHERICS\components\binary_devices\algae_generator_vr.dm"
+#include "code\ATMOSPHERICS\components\binary_devices\binary_atmos_base.dm"
+#include "code\ATMOSPHERICS\components\binary_devices\circulator.dm"
+#include "code\ATMOSPHERICS\components\binary_devices\dp_vent_pump.dm"
+#include "code\ATMOSPHERICS\components\binary_devices\passive_gate.dm"
+#include "code\ATMOSPHERICS\components\binary_devices\passive_gate_vr.dm"
+#include "code\ATMOSPHERICS\components\binary_devices\pipeturbine.dm"
+#include "code\ATMOSPHERICS\components\binary_devices\pump.dm"
+#include "code\ATMOSPHERICS\components\binary_devices\volume_pump.dm"
+#include "code\ATMOSPHERICS\components\omni_devices\_omni_extras.dm"
+#include "code\ATMOSPHERICS\components\omni_devices\filter.dm"
+#include "code\ATMOSPHERICS\components\omni_devices\mixer.dm"
+#include "code\ATMOSPHERICS\components\omni_devices\omni_base.dm"
+#include "code\ATMOSPHERICS\components\trinary_devices\filter.dm"
+#include "code\ATMOSPHERICS\components\trinary_devices\mixer.dm"
+#include "code\ATMOSPHERICS\components\trinary_devices\trinary_base.dm"
+#include "code\ATMOSPHERICS\components\unary\cold_sink.dm"
+#include "code\ATMOSPHERICS\components\unary\heat_exchanger.dm"
+#include "code\ATMOSPHERICS\components\unary\heat_source.dm"
+#include "code\ATMOSPHERICS\components\unary\outlet_injector.dm"
+#include "code\ATMOSPHERICS\components\unary\unary_base.dm"
+#include "code\ATMOSPHERICS\components\unary\vent_pump.dm"
+#include "code\ATMOSPHERICS\components\unary\vent_scrubber.dm"
+#include "code\ATMOSPHERICS\components\unary\vent_scrubber_vr.dm"
+#include "code\ATMOSPHERICS\pipes\cap.dm"
+#include "code\ATMOSPHERICS\pipes\he_pipes.dm"
+#include "code\ATMOSPHERICS\pipes\he_pipes_vr.dm"
+#include "code\ATMOSPHERICS\pipes\manifold.dm"
+#include "code\ATMOSPHERICS\pipes\manifold4w.dm"
+#include "code\ATMOSPHERICS\pipes\pipe_base.dm"
+#include "code\ATMOSPHERICS\pipes\pipe_base_vr.dm"
+#include "code\ATMOSPHERICS\pipes\simple.dm"
+#include "code\ATMOSPHERICS\pipes\tank.dm"
+#include "code\ATMOSPHERICS\pipes\tank_vr.dm"
+#include "code\ATMOSPHERICS\pipes\universal.dm"
+#include "code\ATMOSPHERICS\pipes\vent.dm"
+#include "code\controllers\autotransfer.dm"
+#include "code\controllers\communications.dm"
+#include "code\controllers\configuration.dm"
+#include "code\controllers\configuration_vr.dm"
+#include "code\controllers\controller.dm"
+#include "code\controllers\emergency_shuttle_controller.dm"
+#include "code\controllers\failsafe.dm"
+#include "code\controllers\globals.dm"
+#include "code\controllers\hooks-defs.dm"
+#include "code\controllers\hooks.dm"
+#include "code\controllers\master.dm"
+#include "code\controllers\master_controller.dm"
+#include "code\controllers\subsystem.dm"
+#include "code\controllers\verbs.dm"
+#include "code\controllers\observer_listener\atom\observer.dm"
+#include "code\controllers\subsystems\ai.dm"
+#include "code\controllers\subsystems\aifast.dm"
+#include "code\controllers\subsystems\air.dm"
+#include "code\controllers\subsystems\airflow.dm"
+#include "code\controllers\subsystems\alarm.dm"
+#include "code\controllers\subsystems\assets.dm"
+#include "code\controllers\subsystems\atoms.dm"
+#include "code\controllers\subsystems\character_setup.dm"
+#include "code\controllers\subsystems\chat.dm"
+#include "code\controllers\subsystems\chemistry.dm"
+#include "code\controllers\subsystems\circuits.dm"
+#include "code\controllers\subsystems\dcs.dm"
+#include "code\controllers\subsystems\events.dm"
+#include "code\controllers\subsystems\garbage.dm"
+#include "code\controllers\subsystems\holomaps.dm"
+#include "code\controllers\subsystems\inactivity.dm"
+#include "code\controllers\subsystems\input.dm"
+#include "code\controllers\subsystems\job.dm"
+#include "code\controllers\subsystems\lighting.dm"
+#include "code\controllers\subsystems\machines.dm"
+#include "code\controllers\subsystems\mapping.dm"
+#include "code\controllers\subsystems\media_tracks.dm"
+#include "code\controllers\subsystems\mobs.dm"
+#include "code\controllers\subsystems\nightshift.dm"
+#include "code\controllers\subsystems\orbits.dm"
+#include "code\controllers\subsystems\overlays.dm"
+#include "code\controllers\subsystems\persist_vr.dm"
+#include "code\controllers\subsystems\persistence.dm"
+#include "code\controllers\subsystems\planets.dm"
+#include "code\controllers\subsystems\plants.dm"
+#include "code\controllers\subsystems\radiation.dm"
+#include "code\controllers\subsystems\shuttles.dm"
+#include "code\controllers\subsystems\skybox.dm"
+#include "code\controllers\subsystems\sounds.dm"
+#include "code\controllers\subsystems\sqlite.dm"
+#include "code\controllers\subsystems\sun.dm"
+#include "code\controllers\subsystems\supply.dm"
+#include "code\controllers\subsystems\tgui.dm"
+#include "code\controllers\subsystems\ticker.dm"
+#include "code\controllers\subsystems\time_track.dm"
+#include "code\controllers\subsystems\timer.dm"
+#include "code\controllers\subsystems\transcore_vr.dm"
+#include "code\controllers\subsystems\vis_overlays.dm"
+#include "code\controllers\subsystems\vote.dm"
+#include "code\controllers\subsystems\webhooks.dm"
+#include "code\controllers\subsystems\xenoarch.dm"
+#include "code\controllers\subsystems\processing\bellies_vr.dm"
+#include "code\controllers\subsystems\processing\fastprocess.dm"
+#include "code\controllers\subsystems\processing\instruments.dm"
+#include "code\controllers\subsystems\processing\obj.dm"
+#include "code\controllers\subsystems\processing\processing.dm"
+#include "code\controllers\subsystems\processing\projectiles.dm"
+#include "code\controllers\subsystems\processing\turfs.dm"
+#include "code\datums\ai_law_sets.dm"
+#include "code\datums\ai_law_sets_vr.dm"
+#include "code\datums\ai_laws.dm"
+#include "code\datums\beam.dm"
+#include "code\datums\browser.dm"
+#include "code\datums\callback.dm"
+#include "code\datums\category.dm"
+#include "code\datums\chat_message.dm"
+#include "code\datums\datacore.dm"
+#include "code\datums\datum.dm"
+#include "code\datums\datumvars.dm"
+#include "code\datums\EPv2.dm"
+#include "code\datums\ghost_query.dm"
+#include "code\datums\ghost_query_vr.dm"
+#include "code\datums\hierarchy.dm"
+#include "code\datums\mind.dm"
+#include "code\datums\mind_vr.dm"
+#include "code\datums\mixed.dm"
+#include "code\datums\modules.dm"
+#include "code\datums\mutable_appearance.dm"
+#include "code\datums\orbit.dm"
+#include "code\datums\organs.dm"
+#include "code\datums\position_point_vector.dm"
+#include "code\datums\progressbar.dm"
+#include "code\datums\reference_tracking.dm"
+#include "code\datums\riding.dm"
+#include "code\datums\soul_link.dm"
+#include "code\datums\sun.dm"
+#include "code\datums\weakref.dm"
+#include "code\datums\autolathe\arms.dm"
+#include "code\datums\autolathe\arms_vr.dm"
+#include "code\datums\autolathe\autolathe.dm"
+#include "code\datums\autolathe\devices.dm"
+#include "code\datums\autolathe\devices_vr.dm"
+#include "code\datums\autolathe\engineering.dm"
+#include "code\datums\autolathe\engineering_vr.dm"
+#include "code\datums\autolathe\general.dm"
+#include "code\datums\autolathe\general_vr.dm"
+#include "code\datums\autolathe\materials.dm"
+#include "code\datums\autolathe\medical.dm"
+#include "code\datums\autolathe\medical_vr.dm"
+#include "code\datums\autolathe\tools.dm"
+#include "code\datums\autolathe\tools_vr.dm"
+#include "code\datums\components\_component.dm"
+#include "code\datums\components\material_container.dm"
+#include "code\datums\components\overlay_lighting.dm"
+#include "code\datums\components\resize_guard.dm"
+#include "code\datums\components\crafting\crafting.dm"
+#include "code\datums\components\crafting\crafting_external.dm"
+#include "code\datums\components\crafting\recipes.dm"
+#include "code\datums\components\crafting\tool_quality.dm"
+#include "code\datums\components\crafting\recipes\primitive.dm"
+#include "code\datums\components\crafting\recipes\weapons.dm"
+#include "code\datums\elements\_element.dm"
+#include "code\datums\elements\light_blocking.dm"
+#include "code\datums\elements\turf_transparency.dm"
+#include "code\datums\game_masters\_common.dm"
+#include "code\datums\helper_datums\construction_datum.dm"
+#include "code\datums\helper_datums\events.dm"
+#include "code\datums\helper_datums\getrev.dm"
+#include "code\datums\helper_datums\teleport.dm"
+#include "code\datums\helper_datums\teleport_vr.dm"
+#include "code\datums\helper_datums\topic_input.dm"
+#include "code\datums\locations\locations.dm"
+#include "code\datums\locations\nyx.dm"
+#include "code\datums\locations\qerrvallis.dm"
+#include "code\datums\locations\s_randarr.dm"
+#include "code\datums\locations\sol.dm"
+#include "code\datums\locations\tau_ceti.dm"
+#include "code\datums\locations\uueoa_esa.dm"
+#include "code\datums\locations\vir.dm"
+#include "code\datums\looping_sounds\_looping_sound.dm"
+#include "code\datums\looping_sounds\item_sounds.dm"
+#include "code\datums\looping_sounds\machinery_sounds.dm"
+#include "code\datums\looping_sounds\sequence.dm"
+#include "code\datums\looping_sounds\weather_sounds.dm"
+#include "code\datums\managed_browsers\_managed_browser.dm"
+#include "code\datums\managed_browsers\feedback_form.dm"
+#include "code\datums\managed_browsers\feedback_viewer.dm"
+#include "code\datums\observation\_debug.dm"
+#include "code\datums\observation\_defines.dm"
+#include "code\datums\observation\destroyed.dm"
+#include "code\datums\observation\dir_set.dm"
+#include "code\datums\observation\equipped.dm"
+#include "code\datums\observation\helpers.dm"
+#include "code\datums\observation\logged_in.dm"
+#include "code\datums\observation\moved.dm"
+#include "code\datums\observation\observation.dm"
+#include "code\datums\observation\power_change.dm"
+#include "code\datums\observation\shuttle_added.dm"
+#include "code\datums\observation\shuttle_moved.dm"
+#include "code\datums\observation\stat_set.dm"
+#include "code\datums\observation\turf_changed.dm"
+#include "code\datums\observation\turf_enterexit.dm"
+#include "code\datums\observation\unequipped.dm"
+#include "code\datums\observation\z_moved.dm"
+#include "code\datums\observation\~cleanup.dm"
+#include "code\datums\outfits\_defines.dm"
+#include "code\datums\outfits\horror_killers.dm"
+#include "code\datums\outfits\misc.dm"
+#include "code\datums\outfits\nanotrasen.dm"
+#include "code\datums\outfits\outfit.dm"
+#include "code\datums\outfits\outfit_vr.dm"
+#include "code\datums\outfits\pirates.dm"
+#include "code\datums\outfits\spec_op.dm"
+#include "code\datums\outfits\tournament.dm"
+#include "code\datums\outfits\wizardry.dm"
+#include "code\datums\outfits\costumes\costume.dm"
+#include "code\datums\outfits\costumes\halloween.dm"
+#include "code\datums\outfits\jobs\cargo.dm"
+#include "code\datums\outfits\jobs\civilian.dm"
+#include "code\datums\outfits\jobs\civilian_vr.dm"
+#include "code\datums\outfits\jobs\command.dm"
+#include "code\datums\outfits\jobs\command_vr.dm"
+#include "code\datums\outfits\jobs\engineering.dm"
+#include "code\datums\outfits\jobs\job.dm"
+#include "code\datums\outfits\jobs\medical.dm"
+#include "code\datums\outfits\jobs\medical_vr.dm"
+#include "code\datums\outfits\jobs\misc.dm"
+#include "code\datums\outfits\jobs\science.dm"
+#include "code\datums\outfits\jobs\science_vr.dm"
+#include "code\datums\outfits\jobs\security.dm"
+#include "code\datums\outfits\jobs\special_vr.dm"
+#include "code\datums\outfits\military\fleet.dm"
+#include "code\datums\outfits\military\marines.dm"
+#include "code\datums\outfits\military\military.dm"
+#include "code\datums\outfits\military\sifguard.dm"
+#include "code\datums\repositories\ammomaterial.dm"
+#include "code\datums\repositories\cameras.dm"
+#include "code\datums\repositories\crew.dm"
+#include "code\datums\repositories\decls.dm"
+#include "code\datums\repositories\repository.dm"
+#include "code\datums\repositories\unique.dm"
+#include "code\datums\roundstats\_defines_local.dm"
+#include "code\datums\roundstats\departmentgoal.dm"
+#include "code\datums\roundstats\roundstats.dm"
+#include "code\datums\supplypacks\atmospherics.dm"
+#include "code\datums\supplypacks\contraband.dm"
+#include "code\datums\supplypacks\contraband_vr.dm"
+#include "code\datums\supplypacks\costumes.dm"
+#include "code\datums\supplypacks\costumes_vr.dm"
+#include "code\datums\supplypacks\engineering.dm"
+#include "code\datums\supplypacks\engineering_vr.dm"
+#include "code\datums\supplypacks\hospitality.dm"
+#include "code\datums\supplypacks\hospitality_vr.dm"
+#include "code\datums\supplypacks\hydroponics.dm"
+#include "code\datums\supplypacks\hydroponics_vr.dm"
+#include "code\datums\supplypacks\materials.dm"
+#include "code\datums\supplypacks\medical.dm"
+#include "code\datums\supplypacks\medical_vr.dm"
+#include "code\datums\supplypacks\misc.dm"
+#include "code\datums\supplypacks\misc_vr.dm"
+#include "code\datums\supplypacks\munitions.dm"
+#include "code\datums\supplypacks\munitions_vr.dm"
+#include "code\datums\supplypacks\musical.dm"
+#include "code\datums\supplypacks\recreation.dm"
+#include "code\datums\supplypacks\recreation_vr.dm"
+#include "code\datums\supplypacks\robotics.dm"
+#include "code\datums\supplypacks\robotics_vr.dm"
+#include "code\datums\supplypacks\science.dm"
+#include "code\datums\supplypacks\science_vr.dm"
+#include "code\datums\supplypacks\security.dm"
+#include "code\datums\supplypacks\security_vr.dm"
+#include "code\datums\supplypacks\supply.dm"
+#include "code\datums\supplypacks\supply_vr.dm"
+#include "code\datums\supplypacks\supplypacks.dm"
+#include "code\datums\supplypacks\voidsuits.dm"
+#include "code\datums\supplypacks\voidsuits_vr.dm"
+#include "code\datums\underwear\bottom.dm"
+#include "code\datums\underwear\socks.dm"
+#include "code\datums\underwear\top.dm"
+#include "code\datums\underwear\undershirts.dm"
+#include "code\datums\underwear\underwear.dm"
+#include "code\datums\uplink\ammunition.dm"
+#include "code\datums\uplink\ammunition_vr.dm"
+#include "code\datums\uplink\announcements.dm"
+#include "code\datums\uplink\armor.dm"
+#include "code\datums\uplink\backup.dm"
+#include "code\datums\uplink\badassery.dm"
+#include "code\datums\uplink\grenades.dm"
+#include "code\datums\uplink\hardsuit_modules.dm"
+#include "code\datums\uplink\implants.dm"
+#include "code\datums\uplink\medical.dm"
+#include "code\datums\uplink\medical_vr.dm"
+#include "code\datums\uplink\resources.dm"
+#include "code\datums\uplink\stealth_items.dm"
+#include "code\datums\uplink\stealthy_weapons.dm"
+#include "code\datums\uplink\telecrystals.dm"
+#include "code\datums\uplink\tools.dm"
+#include "code\datums\uplink\tools_vr.dm"
+#include "code\datums\uplink\uplink_categories.dm"
+#include "code\datums\uplink\uplink_items.dm"
+#include "code\datums\uplink\visible_weapons.dm"
+#include "code\datums\uplink\visible_weapons_vr.dm"
+#include "code\datums\vending\stored_item.dm"
+#include "code\datums\vending\vending.dm"
+#include "code\datums\wires\airlock.dm"
+#include "code\datums\wires\alarm.dm"
+#include "code\datums\wires\apc.dm"
+#include "code\datums\wires\autolathe.dm"
+#include "code\datums\wires\camera.dm"
+#include "code\datums\wires\explosive.dm"
+#include "code\datums\wires\grid_checker.dm"
+#include "code\datums\wires\jukebox.dm"
+#include "code\datums\wires\mines.dm"
+#include "code\datums\wires\particle_accelerator.dm"
+#include "code\datums\wires\radio.dm"
+#include "code\datums\wires\robot.dm"
+#include "code\datums\wires\seedstorage.dm"
+#include "code\datums\wires\shield_generator.dm"
+#include "code\datums\wires\smartfridge.dm"
+#include "code\datums\wires\smes.dm"
+#include "code\datums\wires\suit_storage_unit.dm"
+#include "code\datums\wires\tesla_coil.dm"
+#include "code\datums\wires\vending.dm"
+#include "code\datums\wires\wires.dm"
+#include "code\defines\gases.dm"
+#include "code\defines\obj.dm"
+#include "code\defines\obj\weapon.dm"
+#include "code\defines\procs\announce.dm"
+#include "code\defines\procs\AStar.dm"
+#include "code\defines\procs\dbcore.dm"
+#include "code\defines\procs\radio.dm"
+#include "code\defines\procs\statistics.dm"
+#include "code\game\atoms.dm"
+#include "code\game\atoms_movable.dm"
+#include "code\game\atoms_movable_vr.dm"
+#include "code\game\base_turf.dm"
+#include "code\game\periodic_news.dm"
+#include "code\game\response_team.dm"
+#include "code\game\response_team_vr.dm"
+#include "code\game\shuttle_engines.dm"
+#include "code\game\skincmd.dm"
+#include "code\game\sound.dm"
+#include "code\game\trader_visit.dm"
+#include "code\game\trader_visit_vr.dm"
+#include "code\game\world.dm"
+#include "code\game\antagonist\_antagonist_setup.dm"
+#include "code\game\antagonist\antagonist.dm"
+#include "code\game\antagonist\antagonist_add.dm"
+#include "code\game\antagonist\antagonist_create.dm"
+#include "code\game\antagonist\antagonist_equip.dm"
+#include "code\game\antagonist\antagonist_factions.dm"
+#include "code\game\antagonist\antagonist_helpers.dm"
+#include "code\game\antagonist\antagonist_objectives.dm"
+#include "code\game\antagonist\antagonist_panel.dm"
+#include "code\game\antagonist\antagonist_place.dm"
+#include "code\game\antagonist\antagonist_print.dm"
+#include "code\game\antagonist\antagonist_update.dm"
+#include "code\game\antagonist\alien\borer.dm"
+#include "code\game\antagonist\alien\xenomorph.dm"
+#include "code\game\antagonist\outsider\commando.dm"
+#include "code\game\antagonist\outsider\deathsquad.dm"
+#include "code\game\antagonist\outsider\ert.dm"
+#include "code\game\antagonist\outsider\ert_vr.dm"
+#include "code\game\antagonist\outsider\mercenary.dm"
+#include "code\game\antagonist\outsider\ninja.dm"
+#include "code\game\antagonist\outsider\raider.dm"
+#include "code\game\antagonist\outsider\technomancer.dm"
+#include "code\game\antagonist\outsider\trader.dm"
+#include "code\game\antagonist\outsider\wizard.dm"
+#include "code\game\antagonist\station\changeling.dm"
+#include "code\game\antagonist\station\cultist.dm"
+#include "code\game\antagonist\station\highlander.dm"
+#include "code\game\antagonist\station\infiltrator.dm"
+#include "code\game\antagonist\station\loyalist.dm"
+#include "code\game\antagonist\station\renegade.dm"
+#include "code\game\antagonist\station\revolutionary.dm"
+#include "code\game\antagonist\station\rogue_ai.dm"
+#include "code\game\antagonist\station\stowaway.dm"
+#include "code\game\antagonist\station\thug.dm"
+#include "code\game\antagonist\station\traitor.dm"
+#include "code\game\area\ai_monitored.dm"
+#include "code\game\area\areas.dm"
+#include "code\game\area\areas_vr.dm"
+#include "code\game\area\asteroid_areas.dm"
+#include "code\game\area\Away Mission areas.dm"
+#include "code\game\area\Space Station 13 areas.dm"
+#include "code\game\area\Space Station 13 areas_vr.dm"
+#include "code\game\area\ss13_deprecated_areas.dm"
+#include "code\game\dna\dna2.dm"
+#include "code\game\dna\dna2_domutcheck.dm"
+#include "code\game\dna\dna2_helpers.dm"
+#include "code\game\dna\dna_modifier.dm"
+#include "code\game\dna\genes\disabilities.dm"
+#include "code\game\dna\genes\gene.dm"
+#include "code\game\dna\genes\powers.dm"
+#include "code\game\gamemodes\events.dm"
+#include "code\game\gamemodes\game_mode.dm"
+#include "code\game\gamemodes\game_mode_latespawn.dm"
+#include "code\game\gamemodes\objective.dm"
+#include "code\game\gamemodes\setupgame.dm"
+#include "code\game\gamemodes\calamity\calamity.dm"
+#include "code\game\gamemodes\changeling\absorbed_dna.dm"
+#include "code\game\gamemodes\changeling\changeling.dm"
+#include "code\game\gamemodes\changeling\changeling_powers.dm"
+#include "code\game\gamemodes\changeling\generic_equip_procs.dm"
+#include "code\game\gamemodes\changeling\modularchangling.dm"
+#include "code\game\gamemodes\changeling\powers\absorb.dm"
+#include "code\game\gamemodes\changeling\powers\armblade.dm"
+#include "code\game\gamemodes\changeling\powers\armor.dm"
+#include "code\game\gamemodes\changeling\powers\augmented_eyesight.dm"
+#include "code\game\gamemodes\changeling\powers\bioelectrogenesis.dm"
+#include "code\game\gamemodes\changeling\powers\blind_sting.dm"
+#include "code\game\gamemodes\changeling\powers\boost_range.dm"
+#include "code\game\gamemodes\changeling\powers\cryo_sting.dm"
+#include "code\game\gamemodes\changeling\powers\darkvision.dm"
+#include "code\game\gamemodes\changeling\powers\deaf_sting.dm"
+#include "code\game\gamemodes\changeling\powers\delayed_toxin_sting.dm"
+#include "code\game\gamemodes\changeling\powers\digital_camo.dm"
+#include "code\game\gamemodes\changeling\powers\electric_lockpick.dm"
+#include "code\game\gamemodes\changeling\powers\endoarmor.dm"
+#include "code\game\gamemodes\changeling\powers\enfeebling_string.dm"
+#include "code\game\gamemodes\changeling\powers\engorged_glands.dm"
+#include "code\game\gamemodes\changeling\powers\enrage.dm"
+#include "code\game\gamemodes\changeling\powers\epinephrine_overdose.dm"
+#include "code\game\gamemodes\changeling\powers\escape_restraints.dm"
+#include "code\game\gamemodes\changeling\powers\extract_dna_sting.dm"
+#include "code\game\gamemodes\changeling\powers\fabricate_clothing.dm"
+#include "code\game\gamemodes\changeling\powers\fake_death.dm"
+#include "code\game\gamemodes\changeling\powers\fleshmend.dm"
+#include "code\game\gamemodes\changeling\powers\hivemind.dm"
+#include "code\game\gamemodes\changeling\powers\mimic_voice.dm"
+#include "code\game\gamemodes\changeling\powers\panacea.dm"
+#include "code\game\gamemodes\changeling\powers\rapid_regen.dm"
+#include "code\game\gamemodes\changeling\powers\recursive_enhancement.dm"
+#include "code\game\gamemodes\changeling\powers\respec.dm"
+#include "code\game\gamemodes\changeling\powers\revive.dm"
+#include "code\game\gamemodes\changeling\powers\self_respiration.dm"
+#include "code\game\gamemodes\changeling\powers\shriek.dm"
+#include "code\game\gamemodes\changeling\powers\silence_sting.dm"
+#include "code\game\gamemodes\changeling\powers\transform.dm"
+#include "code\game\gamemodes\changeling\powers\visible_camouflage.dm"
+#include "code\game\gamemodes\cult\construct_spells.dm"
+#include "code\game\gamemodes\cult\cult.dm"
+#include "code\game\gamemodes\cult\cult_items.dm"
+#include "code\game\gamemodes\cult\cult_structures.dm"
+#include "code\game\gamemodes\cult\hell_universe.dm"
+#include "code\game\gamemodes\cult\narsie.dm"
+#include "code\game\gamemodes\cult\ritual.dm"
+#include "code\game\gamemodes\cult\runes.dm"
+#include "code\game\gamemodes\cult\soulstone.dm"
+#include "code\game\gamemodes\cult\talisman.dm"
+#include "code\game\gamemodes\cult\cultify\mob.dm"
+#include "code\game\gamemodes\cult\cultify\obj.dm"
+#include "code\game\gamemodes\cult\cultify\turf.dm"
+#include "code\game\gamemodes\endgame\endgame.dm"
+#include "code\game\gamemodes\endgame\supermatter_cascade\blob.dm"
+#include "code\game\gamemodes\endgame\supermatter_cascade\portal.dm"
+#include "code\game\gamemodes\endgame\supermatter_cascade\universe.dm"
+#include "code\game\gamemodes\events\black_hole.dm"
+#include "code\game\gamemodes\events\clang.dm"
+#include "code\game\gamemodes\events\dust.dm"
+#include "code\game\gamemodes\events\power_failure.dm"
+#include "code\game\gamemodes\events\wormholes.dm"
+#include "code\game\gamemodes\events\holidays\Christmas.dm"
+#include "code\game\gamemodes\events\holidays\Holidays.dm"
+#include "code\game\gamemodes\events\holidays\Other.dm"
+#include "code\game\gamemodes\extended\extended.dm"
+#include "code\game\gamemodes\heist\heist.dm"
+#include "code\game\gamemodes\infiltrator\infiltrator.dm"
+#include "code\game\gamemodes\malfunction\malf_hardware.dm"
+#include "code\game\gamemodes\malfunction\malf_research.dm"
+#include "code\game\gamemodes\malfunction\malf_research_ability.dm"
+#include "code\game\gamemodes\malfunction\malfunction.dm"
+#include "code\game\gamemodes\malfunction\newmalf_ability_trees\HARDWARE.dm"
+#include "code\game\gamemodes\malfunction\newmalf_ability_trees\HELPERS.dm"
+#include "code\game\gamemodes\malfunction\newmalf_ability_trees\tree_interdiction.dm"
+#include "code\game\gamemodes\malfunction\newmalf_ability_trees\tree_manipulation.dm"
+#include "code\game\gamemodes\malfunction\newmalf_ability_trees\tree_networking.dm"
+#include "code\game\gamemodes\meteor\meteor.dm"
+#include "code\game\gamemodes\meteor\meteors.dm"
+#include "code\game\gamemodes\meteor\meteors_vr.dm"
+#include "code\game\gamemodes\mixed\conflux.dm"
+#include "code\game\gamemodes\mixed\infestation.dm"
+#include "code\game\gamemodes\mixed\intrigue.dm"
+#include "code\game\gamemodes\mixed\lizard.dm"
+#include "code\game\gamemodes\mixed\mercrenegade.dm"
+#include "code\game\gamemodes\mixed\mercwiz.dm"
+#include "code\game\gamemodes\mixed\paranoia.dm"
+#include "code\game\gamemodes\mixed\traitorling.dm"
+#include "code\game\gamemodes\mixed\traitorrenegade.dm"
+#include "code\game\gamemodes\mixed\uprising.dm"
+#include "code\game\gamemodes\mixed\visitors.dm"
+#include "code\game\gamemodes\ninja\ninja.dm"
+#include "code\game\gamemodes\nuclear\nuclear.dm"
+#include "code\game\gamemodes\nuclear\pinpointer.dm"
+#include "code\game\gamemodes\revolution\revolution.dm"
+#include "code\game\gamemodes\technomancer\catalog.dm"
+#include "code\game\gamemodes\technomancer\clothing.dm"
+#include "code\game\gamemodes\technomancer\core_obj.dm"
+#include "code\game\gamemodes\technomancer\equipment.dm"
+#include "code\game\gamemodes\technomancer\instability.dm"
+#include "code\game\gamemodes\technomancer\spell_objs.dm"
+#include "code\game\gamemodes\technomancer\spell_objs_helpers.dm"
+#include "code\game\gamemodes\technomancer\technomancer.dm"
+#include "code\game\gamemodes\technomancer\assistance\assistance.dm"
+#include "code\game\gamemodes\technomancer\devices\boots_of_speed.dm"
+#include "code\game\gamemodes\technomancer\devices\disposable_teleporter.dm"
+#include "code\game\gamemodes\technomancer\devices\gloves_of_regen.dm"
+#include "code\game\gamemodes\technomancer\devices\hypos.dm"
+#include "code\game\gamemodes\technomancer\devices\implants.dm"
+#include "code\game\gamemodes\technomancer\devices\shield_armor.dm"
+#include "code\game\gamemodes\technomancer\devices\tesla_armor.dm"
+#include "code\game\gamemodes\technomancer\spells\abjuration.dm"
+#include "code\game\gamemodes\technomancer\spells\apportation.dm"
+#include "code\game\gamemodes\technomancer\spells\audible_deception.dm"
+#include "code\game\gamemodes\technomancer\spells\blink.dm"
+#include "code\game\gamemodes\technomancer\spells\chroma.dm"
+#include "code\game\gamemodes\technomancer\spells\condensation.dm"
+#include "code\game\gamemodes\technomancer\spells\control.dm"
+#include "code\game\gamemodes\technomancer\spells\dispel.dm"
+#include "code\game\gamemodes\technomancer\spells\energy_siphon.dm"
+#include "code\game\gamemodes\technomancer\spells\flame_tongue.dm"
+#include "code\game\gamemodes\technomancer\spells\gambit.dm"
+#include "code\game\gamemodes\technomancer\spells\illusion.dm"
+#include "code\game\gamemodes\technomancer\spells\instability_tap.dm"
+#include "code\game\gamemodes\technomancer\spells\mark_recall.dm"
+#include "code\game\gamemodes\technomancer\spells\mend_organs.dm"
+#include "code\game\gamemodes\technomancer\spells\oxygenate.dm"
+#include "code\game\gamemodes\technomancer\spells\passwall.dm"
+#include "code\game\gamemodes\technomancer\spells\phase_shift.dm"
+#include "code\game\gamemodes\technomancer\spells\radiance.dm"
+#include "code\game\gamemodes\technomancer\spells\reflect.dm"
+#include "code\game\gamemodes\technomancer\spells\resurrect.dm"
+#include "code\game\gamemodes\technomancer\spells\shared_burden.dm"
+#include "code\game\gamemodes\technomancer\spells\shield.dm"
+#include "code\game\gamemodes\technomancer\spells\targeting_matrix.dm"
+#include "code\game\gamemodes\technomancer\spells\track.dm"
+#include "code\game\gamemodes\technomancer\spells\warp_strike.dm"
+#include "code\game\gamemodes\technomancer\spells\aura\aura.dm"
+#include "code\game\gamemodes\technomancer\spells\aura\biomed_aura.dm"
+#include "code\game\gamemodes\technomancer\spells\aura\fire_aura.dm"
+#include "code\game\gamemodes\technomancer\spells\aura\frost_aura.dm"
+#include "code\game\gamemodes\technomancer\spells\aura\shock_aura.dm"
+#include "code\game\gamemodes\technomancer\spells\aura\unstable_aura.dm"
+#include "code\game\gamemodes\technomancer\spells\modifier\corona.dm"
+#include "code\game\gamemodes\technomancer\spells\modifier\haste.dm"
+#include "code\game\gamemodes\technomancer\spells\modifier\mend_all.dm"
+#include "code\game\gamemodes\technomancer\spells\modifier\mend_life.dm"
+#include "code\game\gamemodes\technomancer\spells\modifier\mend_synthetic.dm"
+#include "code\game\gamemodes\technomancer\spells\modifier\modifier.dm"
+#include "code\game\gamemodes\technomancer\spells\modifier\purify.dm"
+#include "code\game\gamemodes\technomancer\spells\modifier\repel_missiles.dm"
+#include "code\game\gamemodes\technomancer\spells\projectile\beam.dm"
+#include "code\game\gamemodes\technomancer\spells\projectile\chain_lightning.dm"
+#include "code\game\gamemodes\technomancer\spells\projectile\force_missile.dm"
+#include "code\game\gamemodes\technomancer\spells\projectile\ionic_bolt.dm"
+#include "code\game\gamemodes\technomancer\spells\projectile\lesser_chain_lightning.dm"
+#include "code\game\gamemodes\technomancer\spells\projectile\lightning.dm"
+#include "code\game\gamemodes\technomancer\spells\projectile\overload.dm"
+#include "code\game\gamemodes\technomancer\spells\projectile\projectile.dm"
+#include "code\game\gamemodes\technomancer\spells\spawner\darkness.dm"
+#include "code\game\gamemodes\technomancer\spells\spawner\destablize.dm"
+#include "code\game\gamemodes\technomancer\spells\spawner\fire_blast.dm"
+#include "code\game\gamemodes\technomancer\spells\spawner\pulsar.dm"
+#include "code\game\gamemodes\technomancer\spells\spawner\spawner.dm"
+#include "code\game\gamemodes\technomancer\spells\summon\summon.dm"
+#include "code\game\gamemodes\technomancer\spells\summon\summon_creature.dm"
+#include "code\game\gamemodes\technomancer\spells\summon\summon_ward.dm"
+#include "code\game\gamemodes\traitor\traitor.dm"
+#include "code\game\gamemodes\wizard\wizard.dm"
+#include "code\game\jobs\_access_defs.dm"
+#include "code\game\jobs\access.dm"
+#include "code\game\jobs\access_datum.dm"
+#include "code\game\jobs\access_datum_vr.dm"
+#include "code\game\jobs\job_controller.dm"
+#include "code\game\jobs\jobs.dm"
+#include "code\game\jobs\whitelist.dm"
+#include "code\game\jobs\whitelist_vr.dm"
+#include "code\game\jobs\job\_alt_title.dm"
+#include "code\game\jobs\job\assistant.dm"
+#include "code\game\jobs\job\assistant_vr.dm"
+#include "code\game\jobs\job\captain.dm"
+#include "code\game\jobs\job\captain_vr.dm"
+#include "code\game\jobs\job\civilian.dm"
+#include "code\game\jobs\job\civilian_chaplain.dm"
+#include "code\game\jobs\job\civilian_vr.dm"
+#include "code\game\jobs\job\department.dm"
+#include "code\game\jobs\job\department_vr.dm"
+#include "code\game\jobs\job\engineering.dm"
+#include "code\game\jobs\job\engineering_vr.dm"
+#include "code\game\jobs\job\exploration_vr.dm"
+#include "code\game\jobs\job\job.dm"
+#include "code\game\jobs\job\job_vr.dm"
+#include "code\game\jobs\job\medical.dm"
+#include "code\game\jobs\job\medical_vr.dm"
+#include "code\game\jobs\job\offduty_vr.dm"
+#include "code\game\jobs\job\science.dm"
+#include "code\game\jobs\job\science_vr.dm"
+#include "code\game\jobs\job\security.dm"
+#include "code\game\jobs\job\security_vr.dm"
+#include "code\game\jobs\job\silicon.dm"
+#include "code\game\jobs\job\silicon_vr.dm"
+#include "code\game\jobs\job\special_vr.dm"
+#include "code\game\machinery\adv_med.dm"
+#include "code\game\machinery\adv_med_vr.dm"
+#include "code\game\machinery\ai_slipper.dm"
+#include "code\game\machinery\air_alarm.dm"
+#include "code\game\machinery\airconditioner_vr.dm"
+#include "code\game\machinery\atmo_control.dm"
+#include "code\game\machinery\autolathe.dm"
+#include "code\game\machinery\Beacon.dm"
+#include "code\game\machinery\biogenerator.dm"
+#include "code\game\machinery\bioprinter.dm"
+#include "code\game\machinery\bomb_tester_vr.dm"
+#include "code\game\machinery\buttons.dm"
+#include "code\game\machinery\buttons_vr.dm"
+#include "code\game\machinery\CableLayer.dm"
+#include "code\game\machinery\cell_charger.dm"
+#include "code\game\machinery\cloning.dm"
+#include "code\game\machinery\cryo.dm"
+#include "code\game\machinery\cryopod.dm"
+#include "code\game\machinery\cryopod_vr.dm"
+#include "code\game\machinery\deployable.dm"
+#include "code\game\machinery\deployable_vr.dm"
+#include "code\game\machinery\door_control.dm"
+#include "code\game\machinery\doorbell_vr.dm"
+#include "code\game\machinery\doppler_array.dm"
+#include "code\game\machinery\exonet_node.dm"
+#include "code\game\machinery\fire_alarm.dm"
+#include "code\game\machinery\flasher.dm"
+#include "code\game\machinery\floodlight.dm"
+#include "code\game\machinery\floor_light.dm"
+#include "code\game\machinery\floorlayer.dm"
+#include "code\game\machinery\frame.dm"
+#include "code\game\machinery\gear_dispenser.dm"
+#include "code\game\machinery\hologram.dm"
+#include "code\game\machinery\holoposter.dm"
+#include "code\game\machinery\holosign.dm"
+#include "code\game\machinery\igniter.dm"
+#include "code\game\machinery\iv_drip.dm"
+#include "code\game\machinery\jukebox.dm"
+#include "code\game\machinery\lightswitch.dm"
+#include "code\game\machinery\machinery.dm"
+#include "code\game\machinery\machinery_power.dm"
+#include "code\game\machinery\magnet.dm"
+#include "code\game\machinery\mass_driver.dm"
+#include "code\game\machinery\navbeacon.dm"
+#include "code\game\machinery\neonsign.dm"
+#include "code\game\machinery\newscaster.dm"
+#include "code\game\machinery\nuclear_bomb.dm"
+#include "code\game\machinery\OpTable.dm"
+#include "code\game\machinery\overview.dm"
+#include "code\game\machinery\oxygen_pump.dm"
+#include "code\game\machinery\painter_vr.dm"
+#include "code\game\machinery\partslathe_vr.dm"
+#include "code\game\machinery\pda_multicaster.dm"
+#include "code\game\machinery\pointdefense.dm"
+#include "code\game\machinery\portable_turret.dm"
+#include "code\game\machinery\portable_turret_vr.dm"
+#include "code\game\machinery\recharger.dm"
+#include "code\game\machinery\rechargestation.dm"
+#include "code\game\machinery\requests_console.dm"
+#include "code\game\machinery\requests_console_vr.dm"
+#include "code\game\machinery\robot_fabricator.dm"
+#include "code\game\machinery\seed_extractor.dm"
+#include "code\game\machinery\Sleeper.dm"
+#include "code\game\machinery\spaceheater.dm"
+#include "code\game\machinery\status_display.dm"
+#include "code\game\machinery\status_display_ai.dm"
+#include "code\game\machinery\suit_cycler_datums.dm"
+#include "code\game\machinery\suit_storage_unit.dm"
+#include "code\game\machinery\suit_storage_unit_vr.dm"
+#include "code\game\machinery\supply_display.dm"
+#include "code\game\machinery\supplybeacon.dm"
+#include "code\game\machinery\syndicatebeacon.dm"
+#include "code\game\machinery\syndicatebeacon_vr.dm"
+#include "code\game\machinery\teleporter.dm"
+#include "code\game\machinery\transportpod.dm"
+#include "code\game\machinery\turret_control.dm"
+#include "code\game\machinery\vending_machines_vr.dm"
+#include "code\game\machinery\vitals_monitor.dm"
+#include "code\game\machinery\wall_frames.dm"
+#include "code\game\machinery\washing_machine.dm"
+#include "code\game\machinery\wishgranter.dm"
+#include "code\game\machinery\atmoalter\area_atmos_computer.dm"
+#include "code\game\machinery\atmoalter\area_atmos_computer_vr.dm"
+#include "code\game\machinery\atmoalter\canister.dm"
+#include "code\game\machinery\atmoalter\clamp.dm"
+#include "code\game\machinery\atmoalter\meter.dm"
+#include "code\game\machinery\atmoalter\portable_atmospherics.dm"
+#include "code\game\machinery\atmoalter\pump.dm"
+#include "code\game\machinery\atmoalter\pump_vr.dm"
+#include "code\game\machinery\atmoalter\scrubber.dm"
+#include "code\game\machinery\camera\camera.dm"
+#include "code\game\machinery\camera\camera_assembly.dm"
+#include "code\game\machinery\camera\camera_vr.dm"
+#include "code\game\machinery\camera\motion.dm"
+#include "code\game\machinery\camera\presets.dm"
+#include "code\game\machinery\camera\tracking.dm"
+#include "code\game\machinery\computer\ai_core.dm"
+#include "code\game\machinery\computer\aifixer.dm"
+#include "code\game\machinery\computer\arcade.dm"
+#include "code\game\machinery\computer\arcade_vr.dm"
+#include "code\game\machinery\computer\atmos_alert.dm"
+#include "code\game\machinery\computer\atmos_control.dm"
+#include "code\game\machinery\computer\camera.dm"
+#include "code\game\machinery\computer\camera_vr.dm"
+#include "code\game\machinery\computer\card.dm"
+#include "code\game\machinery\computer\cloning.dm"
+#include "code\game\machinery\computer\communications.dm"
+#include "code\game\machinery\computer\computer.dm"
+#include "code\game\machinery\computer\crew.dm"
+#include "code\game\machinery\computer\guestpass.dm"
+#include "code\game\machinery\computer\id_restorer_vr.dm"
+#include "code\game\machinery\computer\law.dm"
+#include "code\game\machinery\computer\medical.dm"
+#include "code\game\machinery\computer\message.dm"
+#include "code\game\machinery\computer\Operating.dm"
+#include "code\game\machinery\computer\pod.dm"
+#include "code\game\machinery\computer\prisoner.dm"
+#include "code\game\machinery\computer\prisonshuttle.dm"
+#include "code\game\machinery\computer\RCON_Console.dm"
+#include "code\game\machinery\computer\robot.dm"
+#include "code\game\machinery\computer\security.dm"
+#include "code\game\machinery\computer\shutoff_monitor.dm"
+#include "code\game\machinery\computer\shuttle.dm"
+#include "code\game\machinery\computer\skills.dm"
+#include "code\game\machinery\computer\specops_shuttle.dm"
+#include "code\game\machinery\computer\station_alert.dm"
+#include "code\game\machinery\computer\supply.dm"
+#include "code\game\machinery\computer\syndicate_specops_shuttle.dm"
+#include "code\game\machinery\computer\timeclock_vr.dm"
+#include "code\game\machinery\computer\~computer_vr.dm"
+#include "code\game\machinery\doors\airlock.dm"
+#include "code\game\machinery\doors\airlock_control.dm"
+#include "code\game\machinery\doors\airlock_electronics.dm"
+#include "code\game\machinery\doors\airlock_vr.dm"
+#include "code\game\machinery\doors\alarmlock.dm"
+#include "code\game\machinery\doors\blast_door.dm"
+#include "code\game\machinery\doors\brigdoors.dm"
+#include "code\game\machinery\doors\checkForMultipleDoors.dm"
+#include "code\game\machinery\doors\door.dm"
+#include "code\game\machinery\doors\door_vr.dm"
+#include "code\game\machinery\doors\firedoor.dm"
+#include "code\game\machinery\doors\firedoor_assembly.dm"
+#include "code\game\machinery\doors\firedoor_vr.dm"
+#include "code\game\machinery\doors\multi_tile.dm"
+#include "code\game\machinery\doors\multi_tile_vr.dm"
+#include "code\game\machinery\doors\unpowered.dm"
+#include "code\game\machinery\doors\windowdoor.dm"
+#include "code\game\machinery\embedded_controller\airlock_controllers.dm"
+#include "code\game\machinery\embedded_controller\airlock_docking_controller.dm"
+#include "code\game\machinery\embedded_controller\airlock_docking_controller_multi.dm"
+#include "code\game\machinery\embedded_controller\airlock_program.dm"
+#include "code\game\machinery\embedded_controller\docking_program.dm"
+#include "code\game\machinery\embedded_controller\docking_program_multi.dm"
+#include "code\game\machinery\embedded_controller\embedded_controller_base.dm"
+#include "code\game\machinery\embedded_controller\embedded_program_base.dm"
+#include "code\game\machinery\embedded_controller\mapping_helpers.dm"
+#include "code\game\machinery\embedded_controller\simple_docking_controller.dm"
+#include "code\game\machinery\event\stage_vr.dm"
+#include "code\game\machinery\pipe\construction.dm"
+#include "code\game\machinery\pipe\pipe_dispenser.dm"
+#include "code\game\machinery\pipe\pipe_recipes.dm"
+#include "code\game\machinery\pipe\pipelayer.dm"
+#include "code\game\machinery\reagents\pump.dm"
+#include "code\game\machinery\telecomms\broadcaster.dm"
+#include "code\game\machinery\telecomms\broadcaster_vr.dm"
+#include "code\game\machinery\telecomms\logbrowser.dm"
+#include "code\game\machinery\telecomms\machine_interactions.dm"
+#include "code\game\machinery\telecomms\presets.dm"
+#include "code\game\machinery\telecomms\presets_vr.dm"
+#include "code\game\machinery\telecomms\telecomunications.dm"
+#include "code\game\machinery\telecomms\telemonitor.dm"
+#include "code\game\machinery\telecomms\traffic_control.dm"
+#include "code\game\machinery\virtual_reality\ar_console.dm"
+#include "code\game\machinery\virtual_reality\vr_console.dm"
+#include "code\game\magic\Uristrunes.dm"
+#include "code\game\mecha\mech_bay.dm"
+#include "code\game\mecha\mech_fabricator.dm"
+#include "code\game\mecha\mech_prosthetics.dm"
+#include "code\game\mecha\mech_sensor.dm"
+#include "code\game\mecha\mecha.dm"
+#include "code\game\mecha\mecha_actions.dm"
+#include "code\game\mecha\mecha_appearance.dm"
+#include "code\game\mecha\mecha_construction_paths.dm"
+#include "code\game\mecha\mecha_control_console.dm"
+#include "code\game\mecha\mecha_helpers.dm"
+#include "code\game\mecha\mecha_parts.dm"
+#include "code\game\mecha\mecha_vr.dm"
+#include "code\game\mecha\mecha_wreckage.dm"
+#include "code\game\mecha\combat\combat.dm"
+#include "code\game\mecha\combat\durand.dm"
+#include "code\game\mecha\combat\fighter.dm"
+#include "code\game\mecha\combat\gorilla.dm"
+#include "code\game\mecha\combat\gygax.dm"
+#include "code\game\mecha\combat\marauder.dm"
+#include "code\game\mecha\combat\phazon.dm"
+#include "code\game\mecha\components\_component.dm"
+#include "code\game\mecha\components\actuators.dm"
+#include "code\game\mecha\components\armor.dm"
+#include "code\game\mecha\components\electrical.dm"
+#include "code\game\mecha\components\hull.dm"
+#include "code\game\mecha\components\lifesupport.dm"
+#include "code\game\mecha\equipment\mecha_equipment.dm"
+#include "code\game\mecha\equipment\mecha_equipment_dynamicprocs.dm"
+#include "code\game\mecha\equipment\tools\armor_melee.dm"
+#include "code\game\mecha\equipment\tools\armor_ranged.dm"
+#include "code\game\mecha\equipment\tools\cable_layer.dm"
+#include "code\game\mecha\equipment\tools\catapult.dm"
+#include "code\game\mecha\equipment\tools\clamp.dm"
+#include "code\game\mecha\equipment\tools\cloak.dm"
+#include "code\game\mecha\equipment\tools\drill.dm"
+#include "code\game\mecha\equipment\tools\energy_relay.dm"
+#include "code\game\mecha\equipment\tools\extinguisher.dm"
+#include "code\game\mecha\equipment\tools\generator.dm"
+#include "code\game\mecha\equipment\tools\hardpoint_actuator.dm"
+#include "code\game\mecha\equipment\tools\inflatables.dm"
+#include "code\game\mecha\equipment\tools\jetpack.dm"
+#include "code\game\mecha\equipment\tools\medigun_vr.dm"
+#include "code\game\mecha\equipment\tools\orescanner.dm"
+#include "code\game\mecha\equipment\tools\passenger.dm"
+#include "code\game\mecha\equipment\tools\powertool.dm"
+#include "code\game\mecha\equipment\tools\rcd.dm"
+#include "code\game\mecha\equipment\tools\repair_droid.dm"
+#include "code\game\mecha\equipment\tools\running_board.dm"
+#include "code\game\mecha\equipment\tools\shield.dm"
+#include "code\game\mecha\equipment\tools\shield_omni.dm"
+#include "code\game\mecha\equipment\tools\sleeper.dm"
+#include "code\game\mecha\equipment\tools\speedboost.dm"
+#include "code\game\mecha\equipment\tools\syringe_gun.dm"
+#include "code\game\mecha\equipment\tools\teleporter.dm"
+#include "code\game\mecha\equipment\tools\tools.dm"
+#include "code\game\mecha\equipment\tools\weldinglaser.dm"
+#include "code\game\mecha\equipment\tools\wormhole.dm"
+#include "code\game\mecha\equipment\weapons\honk.dm"
+#include "code\game\mecha\equipment\weapons\weapons.dm"
+#include "code\game\mecha\equipment\weapons\ballistic\automatic.dm"
+#include "code\game\mecha\equipment\weapons\ballistic\ballistic.dm"
+#include "code\game\mecha\equipment\weapons\ballistic\mortar.dm"
+#include "code\game\mecha\equipment\weapons\ballistic\shotgun.dm"
+#include "code\game\mecha\equipment\weapons\defense\shocker.dm"
+#include "code\game\mecha\equipment\weapons\energy\energy.dm"
+#include "code\game\mecha\equipment\weapons\energy\ion.dm"
+#include "code\game\mecha\equipment\weapons\energy\laser.dm"
+#include "code\game\mecha\equipment\weapons\energy\phased.dm"
+#include "code\game\mecha\equipment\weapons\energy\pulse.dm"
+#include "code\game\mecha\equipment\weapons\energy\stun.dm"
+#include "code\game\mecha\equipment\weapons\explosive\grenade.dm"
+#include "code\game\mecha\equipment\weapons\explosive\missile.dm"
+#include "code\game\mecha\equipment\weapons\fire\flamethrower.dm"
+#include "code\game\mecha\equipment\weapons\fire\incendiary.dm"
+#include "code\game\mecha\medical\medical.dm"
+#include "code\game\mecha\medical\odysseus.dm"
+#include "code\game\mecha\medical\odysseus_vr.dm"
+#include "code\game\mecha\micro\mecha_construction_paths_vr.dm"
+#include "code\game\mecha\micro\mecha_parts_vr.dm"
+#include "code\game\mecha\micro\mecha_vr.dm"
+#include "code\game\mecha\micro\mechfab_designs_vr.dm"
+#include "code\game\mecha\micro\micro.dm"
+#include "code\game\mecha\micro\micro_equipment.dm"
+#include "code\game\mecha\micro\security.dm"
+#include "code\game\mecha\micro\utility.dm"
+#include "code\game\mecha\space\hoverpod.dm"
+#include "code\game\mecha\space\shuttle.dm"
+#include "code\game\mecha\working\ripley.dm"
+#include "code\game\mecha\working\ripley_vr.dm"
+#include "code\game\mecha\working\working.dm"
+#include "code\game\objects\banners.dm"
+#include "code\game\objects\banners_vr.dm"
+#include "code\game\objects\buckling.dm"
+#include "code\game\objects\empulse.dm"
+#include "code\game\objects\explosion.dm"
+#include "code\game\objects\explosion_recursive.dm"
+#include "code\game\objects\items.dm"
+#include "code\game\objects\mob_spawner_vr.dm"
+#include "code\game\objects\objs.dm"
+#include "code\game\objects\structures.dm"
+#include "code\game\objects\stumble_into_vr.dm"
+#include "code\game\objects\weapons.dm"
+#include "code\game\objects\effects\bump_teleporter.dm"
+#include "code\game\objects\effects\confetti_vr.dm"
+#include "code\game\objects\effects\effect_system.dm"
+#include "code\game\objects\effects\explosion_particles.dm"
+#include "code\game\objects\effects\gibs.dm"
+#include "code\game\objects\effects\glowshroom.dm"
+#include "code\game\objects\effects\item_pickup_ghost.dm"
+#include "code\game\objects\effects\landmarks.dm"
+#include "code\game\objects\effects\landmarks_vr.dm"
+#include "code\game\objects\effects\manifest.dm"
+#include "code\game\objects\effects\mines.dm"
+#include "code\game\objects\effects\misc.dm"
+#include "code\game\objects\effects\overlays.dm"
+#include "code\game\objects\effects\portals.dm"
+#include "code\game\objects\effects\semirandom_mobs_vr.dm"
+#include "code\game\objects\effects\spiders.dm"
+#include "code\game\objects\effects\spiders_vr.dm"
+#include "code\game\objects\effects\step_triggers.dm"
+#include "code\game\objects\effects\zone_divider.dm"
+#include "code\game\objects\effects\alien\aliens.dm"
+#include "code\game\objects\effects\chem\chemsmoke.dm"
+#include "code\game\objects\effects\chem\coating.dm"
+#include "code\game\objects\effects\chem\foam.dm"
+#include "code\game\objects\effects\chem\foam_vr.dm"
+#include "code\game\objects\effects\chem\water.dm"
+#include "code\game\objects\effects\decals\cleanable.dm"
+#include "code\game\objects\effects\decals\crayon.dm"
+#include "code\game\objects\effects\decals\misc.dm"
+#include "code\game\objects\effects\decals\remains.dm"
+#include "code\game\objects\effects\decals\warning_stripes.dm"
+#include "code\game\objects\effects\decals\Cleanable\aliens.dm"
+#include "code\game\objects\effects\decals\Cleanable\fuel.dm"
+#include "code\game\objects\effects\decals\Cleanable\humans.dm"
+#include "code\game\objects\effects\decals\Cleanable\misc.dm"
+#include "code\game\objects\effects\decals\Cleanable\robots.dm"
+#include "code\game\objects\effects\decals\Cleanable\tracks.dm"
+#include "code\game\objects\effects\decals\posters\bs12.dm"
+#include "code\game\objects\effects\decals\posters\polarisposters.dm"
+#include "code\game\objects\effects\decals\posters\polarisposters_vr.dm"
+#include "code\game\objects\effects\decals\posters\posters.dm"
+#include "code\game\objects\effects\decals\posters\tgposters.dm"
+#include "code\game\objects\effects\decals\posters\voreposters_vr.dm"
+#include "code\game\objects\effects\map_effects\beam_point.dm"
+#include "code\game\objects\effects\map_effects\effect_emitter.dm"
+#include "code\game\objects\effects\map_effects\map_effects.dm"
+#include "code\game\objects\effects\map_effects\perma_light.dm"
+#include "code\game\objects\effects\map_effects\portal.dm"
+#include "code\game\objects\effects\map_effects\radiation_emitter.dm"
+#include "code\game\objects\effects\map_effects\screen_shaker.dm"
+#include "code\game\objects\effects\map_effects\sound_emitter.dm"
+#include "code\game\objects\effects\prop\columnblast.dm"
+#include "code\game\objects\effects\prop\snake.dm"
+#include "code\game\objects\effects\spawners\bombspawner.dm"
+#include "code\game\objects\effects\spawners\gibspawner.dm"
+#include "code\game\objects\effects\spawners\graffiti.dm"
+#include "code\game\objects\effects\temporary_visuals\miscellaneous.dm"
+#include "code\game\objects\effects\temporary_visuals\temporary_visual.dm"
+#include "code\game\objects\effects\temporary_visuals\projectiles\impact.dm"
+#include "code\game\objects\effects\temporary_visuals\projectiles\muzzle.dm"
+#include "code\game\objects\effects\temporary_visuals\projectiles\projectile_effects.dm"
+#include "code\game\objects\effects\temporary_visuals\projectiles\tracer.dm"
+#include "code\game\objects\items\antag_spawners.dm"
+#include "code\game\objects\items\apc_frame.dm"
+#include "code\game\objects\items\bells.dm"
+#include "code\game\objects\items\blueprints.dm"
+#include "code\game\objects\items\bodybag.dm"
+#include "code\game\objects\items\contraband.dm"
+#include "code\game\objects\items\contraband_vr.dm"
+#include "code\game\objects\items\crayons.dm"
+#include "code\game\objects\items\falling_object_vr.dm"
+#include "code\game\objects\items\glassjar.dm"
+#include "code\game\objects\items\gunbox.dm"
+#include "code\game\objects\items\gunbox_vr.dm"
+#include "code\game\objects\items\latexballoon.dm"
+#include "code\game\objects\items\paintkit.dm"
+#include "code\game\objects\items\pizza_voucher_vr.dm"
+#include "code\game\objects\items\poi_items.dm"
+#include "code\game\objects\items\robobag.dm"
+#include "code\game\objects\items\shooting_range.dm"
+#include "code\game\objects\items\tailoring.dm"
+#include "code\game\objects\items\trash.dm"
+#include "code\game\objects\items\trash_material.dm"
+#include "code\game\objects\items\trash_vr.dm"
+#include "code\game\objects\items\uav.dm"
+#include "code\game\objects\items\devices\advnifrepair.dm"
+#include "code\game\objects\items\devices\ai_detector.dm"
+#include "code\game\objects\items\devices\aicard.dm"
+#include "code\game\objects\items\devices\binoculars.dm"
+#include "code\game\objects\items\devices\body_snatcher_vr.dm"
+#include "code\game\objects\items\devices\chameleonproj.dm"
+#include "code\game\objects\items\devices\debugger.dm"
+#include "code\game\objects\items\devices\defib.dm"
+#include "code\game\objects\items\devices\denecrotizer_vr.dm"
+#include "code\game\objects\items\devices\flash.dm"
+#include "code\game\objects\items\devices\flash_vr.dm"
+#include "code\game\objects\items\devices\flashlight.dm"
+#include "code\game\objects\items\devices\flashlight_vr.dm"
+#include "code\game\objects\items\devices\floor_painter.dm"
+#include "code\game\objects\items\devices\geiger.dm"
+#include "code\game\objects\items\devices\gps.dm"
+#include "code\game\objects\items\devices\hacktool.dm"
+#include "code\game\objects\items\devices\holowarrant.dm"
+#include "code\game\objects\items\devices\laserpointer.dm"
+#include "code\game\objects\items\devices\lightreplacer.dm"
+#include "code\game\objects\items\devices\megaphone.dm"
+#include "code\game\objects\items\devices\modkit.dm"
+#include "code\game\objects\items\devices\multitool.dm"
+#include "code\game\objects\items\devices\paicard.dm"
+#include "code\game\objects\items\devices\pipe_painter.dm"
+#include "code\game\objects\items\devices\powersink.dm"
+#include "code\game\objects\items\devices\scanners.dm"
+#include "code\game\objects\items\devices\scanners_vr.dm"
+#include "code\game\objects\items\devices\spy_bug.dm"
+#include "code\game\objects\items\devices\suit_cooling.dm"
+#include "code\game\objects\items\devices\t_scanner.dm"
+#include "code\game\objects\items\devices\taperecorder.dm"
+#include "code\game\objects\items\devices\text_to_speech.dm"
+#include "code\game\objects\items\devices\traitordevices.dm"
+#include "code\game\objects\items\devices\transfer_valve.dm"
+#include "code\game\objects\items\devices\translator.dm"
+#include "code\game\objects\items\devices\translocator_vr.dm"
+#include "code\game\objects\items\devices\tvcamera.dm"
+#include "code\game\objects\items\devices\uplink.dm"
+#include "code\game\objects\items\devices\uplink_random_lists.dm"
+#include "code\game\objects\items\devices\whistle.dm"
+#include "code\game\objects\items\devices\communicator\communicator.dm"
+#include "code\game\objects\items\devices\communicator\helper.dm"
+#include "code\game\objects\items\devices\communicator\integrated.dm"
+#include "code\game\objects\items\devices\communicator\messaging.dm"
+#include "code\game\objects\items\devices\communicator\phone.dm"
+#include "code\game\objects\items\devices\communicator\UI_tgui.dm"
+#include "code\game\objects\items\devices\radio\beacon.dm"
+#include "code\game\objects\items\devices\radio\electropack.dm"
+#include "code\game\objects\items\devices\radio\encryptionkey.dm"
+#include "code\game\objects\items\devices\radio\encryptionkey_vr.dm"
+#include "code\game\objects\items\devices\radio\headset.dm"
+#include "code\game\objects\items\devices\radio\headset_vr.dm"
+#include "code\game\objects\items\devices\radio\intercom.dm"
+#include "code\game\objects\items\devices\radio\jammer.dm"
+#include "code\game\objects\items\devices\radio\jammer_vr.dm"
+#include "code\game\objects\items\devices\radio\radio.dm"
+#include "code\game\objects\items\devices\radio\radio_vr.dm"
+#include "code\game\objects\items\devices\radio\radiopack.dm"
+#include "code\game\objects\items\robot\robot_items.dm"
+#include "code\game\objects\items\robot\robot_parts.dm"
+#include "code\game\objects\items\robot\robot_upgrades.dm"
+#include "code\game\objects\items\robot\robot_upgrades_vr.dm"
+#include "code\game\objects\items\stacks\marker_beacons.dm"
+#include "code\game\objects\items\stacks\matter_synth.dm"
+#include "code\game\objects\items\stacks\medical.dm"
+#include "code\game\objects\items\stacks\medical_vr.dm"
+#include "code\game\objects\items\stacks\nanopaste.dm"
+#include "code\game\objects\items\stacks\nanopaste_vr.dm"
+#include "code\game\objects\items\stacks\sandbags.dm"
+#include "code\game\objects\items\stacks\stack.dm"
+#include "code\game\objects\items\stacks\telecrystal.dm"
+#include "code\game\objects\items\stacks\tickets.dm"
+#include "code\game\objects\items\stacks\tiles\fifty_spawner_tiles.dm"
+#include "code\game\objects\items\stacks\tiles\tile_types.dm"
+#include "code\game\objects\items\toys\balls_vr.dm"
+#include "code\game\objects\items\toys\godfigures.dm"
+#include "code\game\objects\items\toys\mech_toys.dm"
+#include "code\game\objects\items\toys\toys.dm"
+#include "code\game\objects\items\toys\toys_vr.dm"
+#include "code\game\objects\items\weapons\AI_modules.dm"
+#include "code\game\objects\items\weapons\AI_modules_vr.dm"
+#include "code\game\objects\items\weapons\augment_items.dm"
+#include "code\game\objects\items\weapons\autopsy.dm"
+#include "code\game\objects\items\weapons\bones.dm"
+#include "code\game\objects\items\weapons\candle.dm"
+#include "code\game\objects\items\weapons\canes.dm"
+#include "code\game\objects\items\weapons\cards_ids_vr.dm"
+#include "code\game\objects\items\weapons\chewables.dm"
+#include "code\game\objects\items\weapons\cigs_lighters.dm"
+#include "code\game\objects\items\weapons\clown_items.dm"
+#include "code\game\objects\items\weapons\cosmetics.dm"
+#include "code\game\objects\items\weapons\dna_injector.dm"
+#include "code\game\objects\items\weapons\ecigs.dm"
+#include "code\game\objects\items\weapons\explosives.dm"
+#include "code\game\objects\items\weapons\explosives_vr.dm"
+#include "code\game\objects\items\weapons\extinguisher.dm"
+#include "code\game\objects\items\weapons\flamethrower.dm"
+#include "code\game\objects\items\weapons\gift_wrappaper.dm"
+#include "code\game\objects\items\weapons\handcuffs.dm"
+#include "code\game\objects\items\weapons\handcuffs_vr.dm"
+#include "code\game\objects\items\weapons\improvised_components.dm"
+#include "code\game\objects\items\weapons\inducer_vr.dm"
+#include "code\game\objects\items\weapons\manuals.dm"
+#include "code\game\objects\items\weapons\manuals_vr.dm"
+#include "code\game\objects\items\weapons\mop.dm"
+#include "code\game\objects\items\weapons\mop_deploy.dm"
+#include "code\game\objects\items\weapons\paint.dm"
+#include "code\game\objects\items\weapons\paiwire.dm"
+#include "code\game\objects\items\weapons\policetape.dm"
+#include "code\game\objects\items\weapons\RCD.dm"
+#include "code\game\objects\items\weapons\RCD_vr.dm"
+#include "code\game\objects\items\weapons\RMS_vr.dm"
+#include "code\game\objects\items\weapons\RPD_vr.dm"
+#include "code\game\objects\items\weapons\RSF.dm"
+#include "code\game\objects\items\weapons\scrolls.dm"
+#include "code\game\objects\items\weapons\shields.dm"
+#include "code\game\objects\items\weapons\shields_vr.dm"
+#include "code\game\objects\items\weapons\stunbaton.dm"
+#include "code\game\objects\items\weapons\surgery_tools.dm"
+#include "code\game\objects\items\weapons\swords_axes_etc.dm"
+#include "code\game\objects\items\weapons\syndie.dm"
+#include "code\game\objects\items\weapons\tape.dm"
+#include "code\game\objects\items\weapons\teleportation.dm"
+#include "code\game\objects\items\weapons\towels.dm"
+#include "code\game\objects\items\weapons\traps.dm"
+#include "code\game\objects\items\weapons\traps_vr.dm"
+#include "code\game\objects\items\weapons\trays.dm"
+#include "code\game\objects\items\weapons\weaponry.dm"
+#include "code\game\objects\items\weapons\weldbackpack.dm"
+#include "code\game\objects\items\weapons\circuitboards\broken.dm"
+#include "code\game\objects\items\weapons\circuitboards\circuitboard.dm"
+#include "code\game\objects\items\weapons\circuitboards\circuitboards_vr.dm"
+#include "code\game\objects\items\weapons\circuitboards\frame.dm"
+#include "code\game\objects\items\weapons\circuitboards\mecha.dm"
+#include "code\game\objects\items\weapons\circuitboards\other.dm"
+#include "code\game\objects\items\weapons\circuitboards\computer\air_management.dm"
+#include "code\game\objects\items\weapons\circuitboards\computer\camera_monitor.dm"
+#include "code\game\objects\items\weapons\circuitboards\computer\computer.dm"
+#include "code\game\objects\items\weapons\circuitboards\computer\research.dm"
+#include "code\game\objects\items\weapons\circuitboards\computer\shuttle.dm"
+#include "code\game\objects\items\weapons\circuitboards\computer\supply.dm"
+#include "code\game\objects\items\weapons\circuitboards\computer\telecomms.dm"
+#include "code\game\objects\items\weapons\circuitboards\machinery\biogenerator.dm"
+#include "code\game\objects\items\weapons\circuitboards\machinery\cloning.dm"
+#include "code\game\objects\items\weapons\circuitboards\machinery\engineering.dm"
+#include "code\game\objects\items\weapons\circuitboards\machinery\fluidpump.dm"
+#include "code\game\objects\items\weapons\circuitboards\machinery\jukebox.dm"
+#include "code\game\objects\items\weapons\circuitboards\machinery\kitchen_appliances.dm"
+#include "code\game\objects\items\weapons\circuitboards\machinery\mech_recharger.dm"
+#include "code\game\objects\items\weapons\circuitboards\machinery\mining_drill.dm"
+#include "code\game\objects\items\weapons\circuitboards\machinery\pacman.dm"
+#include "code\game\objects\items\weapons\circuitboards\machinery\papershredder.dm"
+#include "code\game\objects\items\weapons\circuitboards\machinery\power.dm"
+#include "code\game\objects\items\weapons\circuitboards\machinery\recharge_station.dm"
+#include "code\game\objects\items\weapons\circuitboards\machinery\research.dm"
+#include "code\game\objects\items\weapons\circuitboards\machinery\shieldgen.dm"
+#include "code\game\objects\items\weapons\circuitboards\machinery\ships.dm"
+#include "code\game\objects\items\weapons\circuitboards\machinery\telecomms.dm"
+#include "code\game\objects\items\weapons\circuitboards\machinery\unary_atmos.dm"
+#include "code\game\objects\items\weapons\grenades\anti_photon_grenade.dm"
+#include "code\game\objects\items\weapons\grenades\chem_grenade.dm"
+#include "code\game\objects\items\weapons\grenades\concussion.dm"
+#include "code\game\objects\items\weapons\grenades\emgrenade.dm"
+#include "code\game\objects\items\weapons\grenades\explosive.dm"
+#include "code\game\objects\items\weapons\grenades\flashbang.dm"
+#include "code\game\objects\items\weapons\grenades\grenade.dm"
+#include "code\game\objects\items\weapons\grenades\projectile.dm"
+#include "code\game\objects\items\weapons\grenades\smokebomb.dm"
+#include "code\game\objects\items\weapons\grenades\spawnergrenade.dm"
+#include "code\game\objects\items\weapons\grenades\spawnergrenade_vr.dm"
+#include "code\game\objects\items\weapons\grenades\supermatter.dm"
+#include "code\game\objects\items\weapons\id cards\cards.dm"
+#include "code\game\objects\items\weapons\id cards\cards_vr.dm"
+#include "code\game\objects\items\weapons\id cards\id_stacks.dm"
+#include "code\game\objects\items\weapons\id cards\id_stacks_vr.dm"
+#include "code\game\objects\items\weapons\id cards\station_ids.dm"
+#include "code\game\objects\items\weapons\id cards\station_ids_vr.dm"
+#include "code\game\objects\items\weapons\id cards\syndicate_ids.dm"
+#include "code\game\objects\items\weapons\implants\implant.dm"
+#include "code\game\objects\items\weapons\implants\implant_vr.dm"
+#include "code\game\objects\items\weapons\implants\implantaugment.dm"
+#include "code\game\objects\items\weapons\implants\implantcase.dm"
+#include "code\game\objects\items\weapons\implants\implantcase_vr.dm"
+#include "code\game\objects\items\weapons\implants\implantchair.dm"
+#include "code\game\objects\items\weapons\implants\implantcircuits.dm"
+#include "code\game\objects\items\weapons\implants\implantdud.dm"
+#include "code\game\objects\items\weapons\implants\implanter.dm"
+#include "code\game\objects\items\weapons\implants\implanter_vr.dm"
+#include "code\game\objects\items\weapons\implants\implantfreedom.dm"
+#include "code\game\objects\items\weapons\implants\implantlanguage.dm"
+#include "code\game\objects\items\weapons\implants\implantpad.dm"
+#include "code\game\objects\items\weapons\implants\implantreagent_vr.dm"
+#include "code\game\objects\items\weapons\implants\implantrestrainingbolt.dm"
+#include "code\game\objects\items\weapons\implants\implantuplink.dm"
+#include "code\game\objects\items\weapons\implants\neuralbasic.dm"
+#include "code\game\objects\items\weapons\material\ashtray.dm"
+#include "code\game\objects\items\weapons\material\bats.dm"
+#include "code\game\objects\items\weapons\material\chainsaw.dm"
+#include "code\game\objects\items\weapons\material\foam.dm"
+#include "code\game\objects\items\weapons\material\gravemarker.dm"
+#include "code\game\objects\items\weapons\material\kitchen.dm"
+#include "code\game\objects\items\weapons\material\knives.dm"
+#include "code\game\objects\items\weapons\material\knives_vr.dm"
+#include "code\game\objects\items\weapons\material\material_armor.dm"
+#include "code\game\objects\items\weapons\material\material_weapons.dm"
+#include "code\game\objects\items\weapons\material\misc.dm"
+#include "code\game\objects\items\weapons\material\shards.dm"
+#include "code\game\objects\items\weapons\material\shards_vr.dm"
+#include "code\game\objects\items\weapons\material\swords.dm"
+#include "code\game\objects\items\weapons\material\thrown.dm"
+#include "code\game\objects\items\weapons\material\twohanded.dm"
+#include "code\game\objects\items\weapons\material\twohanded_vr.dm"
+#include "code\game\objects\items\weapons\material\whetstone.dm"
+#include "code\game\objects\items\weapons\melee\deflect.dm"
+#include "code\game\objects\items\weapons\melee\energy.dm"
+#include "code\game\objects\items\weapons\melee\energy_vr.dm"
+#include "code\game\objects\items\weapons\melee\misc.dm"
+#include "code\game\objects\items\weapons\melee\misc_vr.dm"
+#include "code\game\objects\items\weapons\storage\backpack.dm"
+#include "code\game\objects\items\weapons\storage\backpack_vr.dm"
+#include "code\game\objects\items\weapons\storage\bags.dm"
+#include "code\game\objects\items\weapons\storage\bags_vr.dm"
+#include "code\game\objects\items\weapons\storage\belt.dm"
+#include "code\game\objects\items\weapons\storage\belt_vr.dm"
+#include "code\game\objects\items\weapons\storage\bible.dm"
+#include "code\game\objects\items\weapons\storage\boxes.dm"
+#include "code\game\objects\items\weapons\storage\boxes_vr.dm"
+#include "code\game\objects\items\weapons\storage\briefcase.dm"
+#include "code\game\objects\items\weapons\storage\egg_vr.dm"
+#include "code\game\objects\items\weapons\storage\fancy.dm"
+#include "code\game\objects\items\weapons\storage\firstaid.dm"
+#include "code\game\objects\items\weapons\storage\firstaid_vr.dm"
+#include "code\game\objects\items\weapons\storage\internal.dm"
+#include "code\game\objects\items\weapons\storage\laundry_basket.dm"
+#include "code\game\objects\items\weapons\storage\lockbox.dm"
+#include "code\game\objects\items\weapons\storage\misc.dm"
+#include "code\game\objects\items\weapons\storage\mre.dm"
+#include "code\game\objects\items\weapons\storage\pouches.dm"
+#include "code\game\objects\items\weapons\storage\quickdraw.dm"
+#include "code\game\objects\items\weapons\storage\secure.dm"
+#include "code\game\objects\items\weapons\storage\storage.dm"
+#include "code\game\objects\items\weapons\storage\toolbox.dm"
+#include "code\game\objects\items\weapons\storage\toolbox_vr.dm"
+#include "code\game\objects\items\weapons\storage\uplink_kits.dm"
+#include "code\game\objects\items\weapons\storage\wallets.dm"
+#include "code\game\objects\items\weapons\tanks\jetpack.dm"
+#include "code\game\objects\items\weapons\tanks\tank_types.dm"
+#include "code\game\objects\items\weapons\tanks\tank_types_vr.dm"
+#include "code\game\objects\items\weapons\tanks\tanks.dm"
+#include "code\game\objects\items\weapons\tools\crowbar.dm"
+#include "code\game\objects\items\weapons\tools\crowbar_vr.dm"
+#include "code\game\objects\items\weapons\tools\screwdriver.dm"
+#include "code\game\objects\items\weapons\tools\weldingtool.dm"
+#include "code\game\objects\items\weapons\tools\wirecutters.dm"
+#include "code\game\objects\items\weapons\tools\wrench.dm"
+#include "code\game\objects\random\_random.dm"
+#include "code\game\objects\random\guns_and_ammo.dm"
+#include "code\game\objects\random\maintenance.dm"
+#include "code\game\objects\random\mapping.dm"
+#include "code\game\objects\random\mapping_vr.dm"
+#include "code\game\objects\random\mechs.dm"
+#include "code\game\objects\random\misc.dm"
+#include "code\game\objects\random\misc_vr.dm"
+#include "code\game\objects\random\mob.dm"
+#include "code\game\objects\random\mob_vr.dm"
+#include "code\game\objects\random\spacesuits.dm"
+#include "code\game\objects\random\unidentified\medicine.dm"
+#include "code\game\objects\structures\artstuff.dm"
+#include "code\game\objects\structures\barricades.dm"
+#include "code\game\objects\structures\barsign.dm"
+#include "code\game\objects\structures\bedsheet_bin.dm"
+#include "code\game\objects\structures\bedsheet_bin_vr.dm"
+#include "code\game\objects\structures\bonfire.dm"
+#include "code\game\objects\structures\catwalk.dm"
+#include "code\game\objects\structures\cliff.dm"
+#include "code\game\objects\structures\coathanger.dm"
+#include "code\game\objects\structures\curtains.dm"
+#include "code\game\objects\structures\dancepole_vr.dm"
+#include "code\game\objects\structures\displaycase.dm"
+#include "code\game\objects\structures\dogbed.dm"
+#include "code\game\objects\structures\door_assembly.dm"
+#include "code\game\objects\structures\electricchair.dm"
+#include "code\game\objects\structures\extinguisher.dm"
+#include "code\game\objects\structures\fence.dm"
+#include "code\game\objects\structures\fireaxe.dm"
+#include "code\game\objects\structures\fitness.dm"
+#include "code\game\objects\structures\fitness_vr.dm"
+#include "code\game\objects\structures\girders.dm"
+#include "code\game\objects\structures\gravemarker.dm"
+#include "code\game\objects\structures\grille.dm"
+#include "code\game\objects\structures\handrail.dm"
+#include "code\game\objects\structures\holoplant.dm"
+#include "code\game\objects\structures\inflatable.dm"
+#include "code\game\objects\structures\janicart.dm"
+#include "code\game\objects\structures\kitchen_foodcart_vr.dm"
+#include "code\game\objects\structures\kitchen_spike.dm"
+#include "code\game\objects\structures\lattice.dm"
+#include "code\game\objects\structures\ledges.dm"
+#include "code\game\objects\structures\lightpost.dm"
+#include "code\game\objects\structures\loot_piles.dm"
+#include "code\game\objects\structures\map_blocker_vr.dm"
+#include "code\game\objects\structures\medical_stand_vr.dm"
+#include "code\game\objects\structures\mirror.dm"
+#include "code\game\objects\structures\mop_bucket.dm"
+#include "code\game\objects\structures\morgue.dm"
+#include "code\game\objects\structures\morgue_vr.dm"
+#include "code\game\objects\structures\plasticflaps.dm"
+#include "code\game\objects\structures\railing.dm"
+#include "code\game\objects\structures\safe.dm"
+#include "code\game\objects\structures\salvageable.dm"
+#include "code\game\objects\structures\signs.dm"
+#include "code\game\objects\structures\signs_vr.dm"
+#include "code\game\objects\structures\simple_doors.dm"
+#include "code\game\objects\structures\simple_doors_vr.dm"
+#include "code\game\objects\structures\snowman.dm"
+#include "code\game\objects\structures\stasis_cage.dm"
+#include "code\game\objects\structures\tank_dispenser.dm"
+#include "code\game\objects\structures\target_stake.dm"
+#include "code\game\objects\structures\transit_tubes.dm"
+#include "code\game\objects\structures\trash_pile_vr.dm"
+#include "code\game\objects\structures\under_wardrobe.dm"
+#include "code\game\objects\structures\watercloset.dm"
+#include "code\game\objects\structures\watercloset_vr.dm"
+#include "code\game\objects\structures\windoor_assembly.dm"
+#include "code\game\objects\structures\window.dm"
+#include "code\game\objects\structures\window_spawner.dm"
+#include "code\game\objects\structures\window_vr.dm"
+#include "code\game\objects\structures\crates_lockers\__closets.dm"
+#include "code\game\objects\structures\crates_lockers\_closets_appearance_definitions.dm"
+#include "code\game\objects\structures\crates_lockers\_closets_appearance_definitions_vr.dm"
+#include "code\game\objects\structures\crates_lockers\crates.dm"
+#include "code\game\objects\structures\crates_lockers\crates_vr.dm"
+#include "code\game\objects\structures\crates_lockers\largecrate.dm"
+#include "code\game\objects\structures\crates_lockers\largecrate_vr.dm"
+#include "code\game\objects\structures\crates_lockers\vehiclecage.dm"
+#include "code\game\objects\structures\crates_lockers\closets\coffin.dm"
+#include "code\game\objects\structures\crates_lockers\closets\crittercrate.dm"
+#include "code\game\objects\structures\crates_lockers\closets\egg_vr.dm"
+#include "code\game\objects\structures\crates_lockers\closets\fitness.dm"
+#include "code\game\objects\structures\crates_lockers\closets\gimmick.dm"
+#include "code\game\objects\structures\crates_lockers\closets\job_closets.dm"
+#include "code\game\objects\structures\crates_lockers\closets\l3closet.dm"
+#include "code\game\objects\structures\crates_lockers\closets\malfunction.dm"
+#include "code\game\objects\structures\crates_lockers\closets\misc_vr.dm"
+#include "code\game\objects\structures\crates_lockers\closets\statue.dm"
+#include "code\game\objects\structures\crates_lockers\closets\syndicate.dm"
+#include "code\game\objects\structures\crates_lockers\closets\utility_closets.dm"
+#include "code\game\objects\structures\crates_lockers\closets\utility_closets_vr.dm"
+#include "code\game\objects\structures\crates_lockers\closets\walllocker.dm"
+#include "code\game\objects\structures\crates_lockers\closets\wardrobe.dm"
+#include "code\game\objects\structures\crates_lockers\closets\wardrobe_vr.dm"
+#include "code\game\objects\structures\crates_lockers\closets\secure\bar.dm"
+#include "code\game\objects\structures\crates_lockers\closets\secure\cargo.dm"
+#include "code\game\objects\structures\crates_lockers\closets\secure\cargo_vr.dm"
+#include "code\game\objects\structures\crates_lockers\closets\secure\engineering.dm"
+#include "code\game\objects\structures\crates_lockers\closets\secure\freezer.dm"
+#include "code\game\objects\structures\crates_lockers\closets\secure\guncabinet.dm"
+#include "code\game\objects\structures\crates_lockers\closets\secure\hydroponics.dm"
+#include "code\game\objects\structures\crates_lockers\closets\secure\medical.dm"
+#include "code\game\objects\structures\crates_lockers\closets\secure\medical_vr.dm"
+#include "code\game\objects\structures\crates_lockers\closets\secure\personal.dm"
+#include "code\game\objects\structures\crates_lockers\closets\secure\scientist.dm"
+#include "code\game\objects\structures\crates_lockers\closets\secure\secure_closets.dm"
+#include "code\game\objects\structures\crates_lockers\closets\secure\security.dm"
+#include "code\game\objects\structures\crates_lockers\closets\secure\security_vr.dm"
+#include "code\game\objects\structures\flora\flora.dm"
+#include "code\game\objects\structures\flora\flora_vr.dm"
+#include "code\game\objects\structures\flora\grass.dm"
+#include "code\game\objects\structures\flora\moretrees_vr.dm"
+#include "code\game\objects\structures\flora\trees.dm"
+#include "code\game\objects\structures\ghost_pods\event_vr.dm"
+#include "code\game\objects\structures\ghost_pods\ghost_pods.dm"
+#include "code\game\objects\structures\ghost_pods\ghost_pods_vr.dm"
+#include "code\game\objects\structures\ghost_pods\human.dm"
+#include "code\game\objects\structures\ghost_pods\mysterious.dm"
+#include "code\game\objects\structures\ghost_pods\silicon.dm"
+#include "code\game\objects\structures\ghost_pods\silicon_vr.dm"
+#include "code\game\objects\structures\props\alien_props.dm"
+#include "code\game\objects\structures\props\alien_props_vr.dm"
+#include "code\game\objects\structures\props\beam_prism.dm"
+#include "code\game\objects\structures\props\blackbox.dm"
+#include "code\game\objects\structures\props\fake_ai.dm"
+#include "code\game\objects\structures\props\nest.dm"
+#include "code\game\objects\structures\props\projectile_lock.dm"
+#include "code\game\objects\structures\props\prop.dm"
+#include "code\game\objects\structures\props\puzzledoor.dm"
+#include "code\game\objects\structures\props\rocks.dm"
+#include "code\game\objects\structures\props\swarm.dm"
+#include "code\game\objects\structures\props\transmitter.dm"
+#include "code\game\objects\structures\stool_bed_chair_nest\alien_nests.dm"
+#include "code\game\objects\structures\stool_bed_chair_nest\bed.dm"
+#include "code\game\objects\structures\stool_bed_chair_nest\chairs.dm"
+#include "code\game\objects\structures\stool_bed_chair_nest\chairs_vr.dm"
+#include "code\game\objects\structures\stool_bed_chair_nest\stools.dm"
+#include "code\game\objects\structures\stool_bed_chair_nest\stools_vr.dm"
+#include "code\game\objects\structures\stool_bed_chair_nest\wheelchair.dm"
+#include "code\game\objects\structures\stool_bed_chair_nest\wheelchair_item.dm"
+#include "code\game\turfs\simulated.dm"
+#include "code\game\turfs\simulated_vr.dm"
+#include "code\game\turfs\turf.dm"
+#include "code\game\turfs\turf_changing.dm"
+#include "code\game\turfs\turf_flick_animations.dm"
+#include "code\game\turfs\unsimulated.dm"
+#include "code\game\turfs\flooring\flooring.dm"
+#include "code\game\turfs\flooring\flooring_decals.dm"
+#include "code\game\turfs\flooring\flooring_decals_vr.dm"
+#include "code\game\turfs\flooring\flooring_premade.dm"
+#include "code\game\turfs\flooring\flooring_vr.dm"
+#include "code\game\turfs\flooring\shuttle_vr.dm"
+#include "code\game\turfs\initialization\init.dm"
+#include "code\game\turfs\initialization\maintenance.dm"
+#include "code\game\turfs\simulated\floor.dm"
+#include "code\game\turfs\simulated\floor_acts.dm"
+#include "code\game\turfs\simulated\floor_attackby.dm"
+#include "code\game\turfs\simulated\floor_damage.dm"
+#include "code\game\turfs\simulated\floor_icon.dm"
+#include "code\game\turfs\simulated\floor_static.dm"
+#include "code\game\turfs\simulated\floor_types.dm"
+#include "code\game\turfs\simulated\floor_types_eris.dm"
+#include "code\game\turfs\simulated\floor_types_vr.dm"
+#include "code\game\turfs\simulated\lava.dm"
+#include "code\game\turfs\simulated\wall_attacks.dm"
+#include "code\game\turfs\simulated\wall_icon.dm"
+#include "code\game\turfs\simulated\wall_types.dm"
+#include "code\game\turfs\simulated\wall_types_vr.dm"
+#include "code\game\turfs\simulated\walls.dm"
+#include "code\game\turfs\simulated\water.dm"
+#include "code\game\turfs\simulated\water_vr.dm"
+#include "code\game\turfs\simulated\dungeon\floor.dm"
+#include "code\game\turfs\simulated\dungeon\wall.dm"
+#include "code\game\turfs\simulated\outdoors\atmoscaves_vr.dm"
+#include "code\game\turfs\simulated\outdoors\dirt.dm"
+#include "code\game\turfs\simulated\outdoors\grass.dm"
+#include "code\game\turfs\simulated\outdoors\ironsand_vr.dm"
+#include "code\game\turfs\simulated\outdoors\outdoors.dm"
+#include "code\game\turfs\simulated\outdoors\outdoors_attackby.dm"
+#include "code\game\turfs\simulated\outdoors\outdoors_vr.dm"
+#include "code\game\turfs\simulated\outdoors\sky.dm"
+#include "code\game\turfs\simulated\outdoors\snow.dm"
+#include "code\game\turfs\snow\snow.dm"
+#include "code\game\turfs\space\cracked_asteroid.dm"
+#include "code\game\turfs\space\space.dm"
+#include "code\game\turfs\space\transit.dm"
+#include "code\game\turfs\unsimulated\beach.dm"
+#include "code\game\turfs\unsimulated\beach_vr.dm"
+#include "code\game\turfs\unsimulated\floor.dm"
+#include "code\game\turfs\unsimulated\planetary.dm"
+#include "code\game\turfs\unsimulated\planetary_vr.dm"
+#include "code\game\turfs\unsimulated\shuttle.dm"
+#include "code\game\turfs\unsimulated\sky_vr.dm"
+#include "code\game\turfs\unsimulated\walls.dm"
+#include "code\js\byjax.dm"
+#include "code\js\menus.dm"
+#include "code\modules\admin\admin.dm"
+#include "code\modules\admin\admin_attack_log.dm"
+#include "code\modules\admin\admin_investigate.dm"
+#include "code\modules\admin\admin_memo.dm"
+#include "code\modules\admin\admin_ranks.dm"
+#include "code\modules\admin\admin_secrets.dm"
+#include "code\modules\admin\admin_tools.dm"
+#include "code\modules\admin\admin_verb_lists_vr.dm"
+#include "code\modules\admin\admin_verbs.dm"
+#include "code\modules\admin\admin_vr.dm"
+#include "code\modules\admin\banjob.dm"
+#include "code\modules\admin\ckey_vr.dm"
+#include "code\modules\admin\create_mob.dm"
+#include "code\modules\admin\create_object.dm"
+#include "code\modules\admin\create_turf.dm"
+#include "code\modules\admin\holder2.dm"
+#include "code\modules\admin\IsBanned.dm"
+#include "code\modules\admin\map_capture.dm"
+#include "code\modules\admin\NewBan.dm"
+#include "code\modules\admin\news.dm"
+#include "code\modules\admin\persistence.dm"
+#include "code\modules\admin\player_notes.dm"
+#include "code\modules\admin\player_panel.dm"
+#include "code\modules\admin\topic.dm"
+#include "code\modules\admin\ToRban.dm"
+#include "code\modules\admin\callproc\callproc.dm"
+#include "code\modules\admin\DB ban\functions.dm"
+#include "code\modules\admin\permissionverbs\permissionedit.dm"
+#include "code\modules\admin\secrets\admin_secrets\admin_logs.dm"
+#include "code\modules\admin\secrets\admin_secrets\alter_narsie.dm"
+#include "code\modules\admin\secrets\admin_secrets\bombing_list.dm"
+#include "code\modules\admin\secrets\admin_secrets\jump_shuttle.dm"
+#include "code\modules\admin\secrets\admin_secrets\launch_shuttle.dm"
+#include "code\modules\admin\secrets\admin_secrets\launch_shuttle_forced.dm"
+#include "code\modules\admin\secrets\admin_secrets\list_dna.dm"
+#include "code\modules\admin\secrets\admin_secrets\list_fingerprints.dm"
+#include "code\modules\admin\secrets\admin_secrets\move_shuttle.dm"
+#include "code\modules\admin\secrets\admin_secrets\prison_warp.dm"
+#include "code\modules\admin\secrets\admin_secrets\show_ai_laws.dm"
+#include "code\modules\admin\secrets\admin_secrets\show_crew_manifest.dm"
+#include "code\modules\admin\secrets\admin_secrets\show_game_mode.dm"
+#include "code\modules\admin\secrets\admin_secrets\show_law_changes.dm"
+#include "code\modules\admin\secrets\admin_secrets\show_signalers.dm"
+#include "code\modules\admin\secrets\admin_secrets\traitors_and_objectives.dm"
+#include "code\modules\admin\secrets\final_solutions\summon_narsie.dm"
+#include "code\modules\admin\secrets\final_solutions\supermatter_cascade.dm"
+#include "code\modules\admin\secrets\fun_secrets\break_all_lights.dm"
+#include "code\modules\admin\secrets\fun_secrets\break_some_lights.dm"
+#include "code\modules\admin\secrets\fun_secrets\fix_all_lights.dm"
+#include "code\modules\admin\secrets\fun_secrets\ghost_mode.dm"
+#include "code\modules\admin\secrets\fun_secrets\only_one.dm"
+#include "code\modules\admin\secrets\fun_secrets\paintball_mode.dm"
+#include "code\modules\admin\secrets\fun_secrets\power_all_smes.dm"
+#include "code\modules\admin\secrets\fun_secrets\power_failure_begin.dm"
+#include "code\modules\admin\secrets\fun_secrets\power_failure_end.dm"
+#include "code\modules\admin\secrets\fun_secrets\remove_all_clothing.dm"
+#include "code\modules\admin\secrets\fun_secrets\remove_internal_clothing.dm"
+#include "code\modules\admin\secrets\fun_secrets\send_strike_team.dm"
+#include "code\modules\admin\secrets\fun_secrets\toggle_bomb_cap.dm"
+#include "code\modules\admin\secrets\fun_secrets\triple_ai_mode.dm"
+#include "code\modules\admin\secrets\fun_secrets\turn_humans_into_corgies.dm"
+#include "code\modules\admin\secrets\fun_secrets\turn_humans_into_monkeys.dm"
+#include "code\modules\admin\secrets\random_events\gravity_vr.dm"
+#include "code\modules\admin\secrets\random_events\trigger_cordical_borer_infestation.dm"
+#include "code\modules\admin\secrets\random_events\trigger_xenomorph_infestation.dm"
+#include "code\modules\admin\verbs\adminhelp.dm"
+#include "code\modules\admin\verbs\adminhelp_vr.dm"
+#include "code\modules\admin\verbs\adminjump.dm"
+#include "code\modules\admin\verbs\adminpm.dm"
+#include "code\modules\admin\verbs\adminsay.dm"
+#include "code\modules\admin\verbs\antag-ooc.dm"
+#include "code\modules\admin\verbs\atmosdebug.dm"
+#include "code\modules\admin\verbs\BrokenInhands.dm"
+#include "code\modules\admin\verbs\buildmode.dm"
+#include "code\modules\admin\verbs\change_appearance.dm"
+#include "code\modules\admin\verbs\check_customitem_activity.dm"
+#include "code\modules\admin\verbs\cinematic.dm"
+#include "code\modules\admin\verbs\custom_event.dm"
+#include "code\modules\admin\verbs\dbcon_fix.dm"
+#include "code\modules\admin\verbs\deadsay.dm"
+#include "code\modules\admin\verbs\debug.dm"
+#include "code\modules\admin\verbs\debug_vr.dm"
+#include "code\modules\admin\verbs\diagnostics.dm"
+#include "code\modules\admin\verbs\dice.dm"
+#include "code\modules\admin\verbs\fps.dm"
+#include "code\modules\admin\verbs\getlogs.dm"
+#include "code\modules\admin\verbs\grief_fixers.dm"
+#include "code\modules\admin\verbs\lightning_strike.dm"
+#include "code\modules\admin\verbs\map_template_loadverb.dm"
+#include "code\modules\admin\verbs\mapping.dm"
+#include "code\modules\admin\verbs\panicbunker.dm"
+#include "code\modules\admin\verbs\playsound.dm"
+#include "code\modules\admin\verbs\possess.dm"
+#include "code\modules\admin\verbs\pray.dm"
+#include "code\modules\admin\verbs\randomverbs.dm"
+#include "code\modules\admin\verbs\randomverbs_vr.dm"
+#include "code\modules\admin\verbs\resize.dm"
+#include "code\modules\admin\verbs\smite.dm"
+#include "code\modules\admin\verbs\smite_vr.dm"
+#include "code\modules\admin\verbs\striketeam.dm"
+#include "code\modules\admin\verbs\tripAI.dm"
+#include "code\modules\admin\verbs\SDQL2\SDQL_2.dm"
+#include "code\modules\admin\verbs\SDQL2\SDQL_2_parser.dm"
+#include "code\modules\admin\verbs\SDQL2\SDQL_2_wrappers.dm"
+#include "code\modules\admin\view_variables\admin_delete.dm"
+#include "code\modules\admin\view_variables\debug_variables.dm"
+#include "code\modules\admin\view_variables\get_variables.dm"
+#include "code\modules\admin\view_variables\helpers.dm"
+#include "code\modules\admin\view_variables\mass_edit_variables.dm"
+#include "code\modules\admin\view_variables\modify_variables.dm"
+#include "code\modules\admin\view_variables\topic.dm"
+#include "code\modules\admin\view_variables\topic_list.dm"
+#include "code\modules\admin\view_variables\view_variables.dm"
+#include "code\modules\admin\view_variables\view_variables_global.dm"
+#include "code\modules\ai\_defines.dm"
+#include "code\modules\ai\ai_holder.dm"
+#include "code\modules\ai\ai_holder_combat.dm"
+#include "code\modules\ai\ai_holder_combat_unseen.dm"
+#include "code\modules\ai\ai_holder_communication.dm"
+#include "code\modules\ai\ai_holder_cooperation.dm"
+#include "code\modules\ai\ai_holder_debug.dm"
+#include "code\modules\ai\ai_holder_disabled.dm"
+#include "code\modules\ai\ai_holder_fleeing.dm"
+#include "code\modules\ai\ai_holder_follow.dm"
+#include "code\modules\ai\ai_holder_movement.dm"
+#include "code\modules\ai\ai_holder_pathfinding.dm"
+#include "code\modules\ai\ai_holder_targeting.dm"
+#include "code\modules\ai\ai_holder_targeting_vr.dm"
+#include "code\modules\ai\interfaces.dm"
+#include "code\modules\ai\say_list.dm"
+#include "code\modules\ai\ai_holder_subtypes\simple_mob_ai.dm"
+#include "code\modules\ai\ai_holder_subtypes\simple_mob_ai_vr.dm"
+#include "code\modules\ai\ai_holder_subtypes\slime_xenobio_ai.dm"
+#include "code\modules\alarm\alarm.dm"
+#include "code\modules\alarm\alarm_handler.dm"
+#include "code\modules\alarm\atmosphere_alarm.dm"
+#include "code\modules\alarm\camera_alarm.dm"
+#include "code\modules\alarm\fire_alarm.dm"
+#include "code\modules\alarm\motion_alarm.dm"
+#include "code\modules\alarm\power_alarm.dm"
+#include "code\modules\artifice\cursedform.dm"
+#include "code\modules\artifice\deadringer.dm"
+#include "code\modules\artifice\telecube.dm"
+#include "code\modules\assembly\assembly.dm"
+#include "code\modules\assembly\helpers.dm"
+#include "code\modules\assembly\holder.dm"
+#include "code\modules\assembly\igniter.dm"
+#include "code\modules\assembly\infrared.dm"
+#include "code\modules\assembly\mousetrap.dm"
+#include "code\modules\assembly\proximity.dm"
+#include "code\modules\assembly\shock_kit.dm"
+#include "code\modules\assembly\signaler.dm"
+#include "code\modules\assembly\timer.dm"
+#include "code\modules\assembly\voice.dm"
+#include "code\modules\asset_cache\asset_cache.dm"
+#include "code\modules\asset_cache\asset_cache_client.dm"
+#include "code\modules\asset_cache\asset_cache_item.dm"
+#include "code\modules\asset_cache\asset_list.dm"
+#include "code\modules\asset_cache\asset_list_items.dm"
+#include "code\modules\awaymissions\bluespaceartillery.dm"
+#include "code\modules\awaymissions\corpse.dm"
+#include "code\modules\awaymissions\exile.dm"
+#include "code\modules\awaymissions\gateway.dm"
+#include "code\modules\awaymissions\gateway_vr.dm"
+#include "code\modules\awaymissions\loot.dm"
+#include "code\modules\awaymissions\loot_vr.dm"
+#include "code\modules\awaymissions\pamphlet.dm"
+#include "code\modules\awaymissions\trigger.dm"
+#include "code\modules\awaymissions\zlevel.dm"
+#include "code\modules\blob\blob.dm"
+#include "code\modules\blob2\_defines.dm"
+#include "code\modules\blob2\core_chunk.dm"
+#include "code\modules\blob2\blobs\base_blob.dm"
+#include "code\modules\blob2\blobs\core.dm"
+#include "code\modules\blob2\blobs\factory.dm"
+#include "code\modules\blob2\blobs\node.dm"
+#include "code\modules\blob2\blobs\normal.dm"
+#include "code\modules\blob2\blobs\resource.dm"
+#include "code\modules\blob2\blobs\shield.dm"
+#include "code\modules\blob2\overmind\overmind.dm"
+#include "code\modules\blob2\overmind\powers.dm"
+#include "code\modules\blob2\overmind\types.dm"
+#include "code\modules\blob2\overmind\types\blazing_oil.dm"
+#include "code\modules\blob2\overmind\types\classic.dm"
+#include "code\modules\blob2\overmind\types\cryogenic_goo.dm"
+#include "code\modules\blob2\overmind\types\ectoplasmic_horror.dm"
+#include "code\modules\blob2\overmind\types\electromagnetic_web.dm"
+#include "code\modules\blob2\overmind\types\energized_jelly.dm"
+#include "code\modules\blob2\overmind\types\explosive_lattice.dm"
+#include "code\modules\blob2\overmind\types\fabrication_swarm.dm"
+#include "code\modules\blob2\overmind\types\fulminant_organism.dm"
+#include "code\modules\blob2\overmind\types\fungal_bloom.dm"
+#include "code\modules\blob2\overmind\types\grey_goo.dm"
+#include "code\modules\blob2\overmind\types\pressurized_slime.dm"
+#include "code\modules\blob2\overmind\types\radioactive_ooze.dm"
+#include "code\modules\blob2\overmind\types\ravenous_macrophage.dm"
+#include "code\modules\blob2\overmind\types\reactive_spines.dm"
+#include "code\modules\blob2\overmind\types\roiling_mold.dm"
+#include "code\modules\blob2\overmind\types\shifting_fragments.dm"
+#include "code\modules\blob2\overmind\types\synchronous_mesh.dm"
+#include "code\modules\blob2\overmind\types\volatile_alluvium.dm"
+#include "code\modules\busy_space_vr\air_traffic.dm"
+#include "code\modules\busy_space_vr\loremaster.dm"
+#include "code\modules\busy_space_vr\organizations.dm"
+#include "code\modules\catalogue\atoms.dm"
+#include "code\modules\catalogue\catalogue_data.dm"
+#include "code\modules\catalogue\catalogue_data_vr.dm"
+#include "code\modules\catalogue\cataloguer.dm"
+#include "code\modules\catalogue\cataloguer_visuals.dm"
+#include "code\modules\catalogue\cataloguer_vr.dm"
+#include "code\modules\client\client defines.dm"
+#include "code\modules\client\client procs.dm"
+#include "code\modules\client\client procs_vr.dm"
+#include "code\modules\client\movement.dm"
+#include "code\modules\client\preferences.dm"
+#include "code\modules\client\preferences_factions.dm"
+#include "code\modules\client\preferences_savefile.dm"
+#include "code\modules\client\preferences_spawnpoints.dm"
+#include "code\modules\client\preferences_toggle_procs.dm"
+#include "code\modules\client\preferences_vr.dm"
+#include "code\modules\client\spam_prevention.dm"
+#include "code\modules\client\ui_style.dm"
+#include "code\modules\client\preference_setup\_defines.dm"
+#include "code\modules\client\preference_setup\preference_setup.dm"
+#include "code\modules\client\preference_setup\preference_setup_vr.dm"
+#include "code\modules\client\preference_setup\antagonism\01_basic.dm"
+#include "code\modules\client\preference_setup\antagonism\02_candidacy.dm"
+#include "code\modules\client\preference_setup\general\01_basic.dm"
+#include "code\modules\client\preference_setup\general\02_language.dm"
+#include "code\modules\client\preference_setup\general\03_body.dm"
+#include "code\modules\client\preference_setup\general\04_equipment.dm"
+#include "code\modules\client\preference_setup\general\05_background.dm"
+#include "code\modules\client\preference_setup\general\06_flavor.dm"
+#include "code\modules\client\preference_setup\global\01_ui.dm"
+#include "code\modules\client\preference_setup\global\02_settings.dm"
+#include "code\modules\client\preference_setup\global\03_pai.dm"
+#include "code\modules\client\preference_setup\global\04_ooc.dm"
+#include "code\modules\client\preference_setup\global\setting_datums.dm"
+#include "code\modules\client\preference_setup\loadout\gear_tweaks.dm"
+#include "code\modules\client\preference_setup\loadout\gear_tweaks_vr.dm"
+#include "code\modules\client\preference_setup\loadout\loadout.dm"
+#include "code\modules\client\preference_setup\loadout\loadout_accessories.dm"
+#include "code\modules\client\preference_setup\loadout\loadout_accessories_vr.dm"
+#include "code\modules\client\preference_setup\loadout\loadout_cosmetics.dm"
+#include "code\modules\client\preference_setup\loadout\loadout_cosmetics_vr.dm"
+#include "code\modules\client\preference_setup\loadout\loadout_cyberware.dm"
+#include "code\modules\client\preference_setup\loadout\loadout_ears.dm"
+#include "code\modules\client\preference_setup\loadout\loadout_eyes.dm"
+#include "code\modules\client\preference_setup\loadout\loadout_eyes_vr.dm"
+#include "code\modules\client\preference_setup\loadout\loadout_fluffitems_vr.dm"
+#include "code\modules\client\preference_setup\loadout\loadout_general.dm"
+#include "code\modules\client\preference_setup\loadout\loadout_general_vr.dm"
+#include "code\modules\client\preference_setup\loadout\loadout_gloves.dm"
+#include "code\modules\client\preference_setup\loadout\loadout_gloves_vr.dm"
+#include "code\modules\client\preference_setup\loadout\loadout_head.dm"
+#include "code\modules\client\preference_setup\loadout\loadout_head_vr.dm"
+#include "code\modules\client\preference_setup\loadout\loadout_mask.dm"
+#include "code\modules\client\preference_setup\loadout\loadout_shoes.dm"
+#include "code\modules\client\preference_setup\loadout\loadout_shoes_vr.dm"
+#include "code\modules\client\preference_setup\loadout\loadout_smoking.dm"
+#include "code\modules\client\preference_setup\loadout\loadout_suit.dm"
+#include "code\modules\client\preference_setup\loadout\loadout_suit_vr.dm"
+#include "code\modules\client\preference_setup\loadout\loadout_uniform.dm"
+#include "code\modules\client\preference_setup\loadout\loadout_uniform_vr.dm"
+#include "code\modules\client\preference_setup\loadout\loadout_utility.dm"
+#include "code\modules\client\preference_setup\loadout\loadout_utility_vr.dm"
+#include "code\modules\client\preference_setup\loadout\loadout_vr.dm"
+#include "code\modules\client\preference_setup\loadout\loadout_xeno.dm"
+#include "code\modules\client\preference_setup\loadout\loadout_xeno_vr.dm"
+#include "code\modules\client\preference_setup\occupation\occupation.dm"
+#include "code\modules\client\preference_setup\skills\skills.dm"
+#include "code\modules\client\preference_setup\volume_sliders\01_volume.dm"
+#include "code\modules\client\preference_setup\volume_sliders\02_media.dm"
+#include "code\modules\client\preference_setup\vore\01_ears.dm"
+#include "code\modules\client\preference_setup\vore\02_size.dm"
+#include "code\modules\client\preference_setup\vore\03_egg.dm"
+#include "code\modules\client\preference_setup\vore\04_resleeving.dm"
+#include "code\modules\client\preference_setup\vore\05_persistence.dm"
+#include "code\modules\client\preference_setup\vore\06_vantag.dm"
+#include "code\modules\client\preference_setup\vore\07_traits.dm"
+#include "code\modules\client\preference_setup\vore\08_nif.dm"
+#include "code\modules\client\preference_setup\vore\09_misc.dm"
+#include "code\modules\client\verbs\advanced_who.dm"
+#include "code\modules\client\verbs\character_directory.dm"
+#include "code\modules\client\verbs\ignore.dm"
+#include "code\modules\client\verbs\ooc.dm"
+#include "code\modules\client\verbs\ping.dm"
+#include "code\modules\client\verbs\suicide.dm"
+#include "code\modules\client\verbs\who.dm"
+#include "code\modules\clothing\chameleon.dm"
+#include "code\modules\clothing\clothing.dm"
+#include "code\modules\clothing\clothing_accessories.dm"
+#include "code\modules\clothing\clothing_icons.dm"
+#include "code\modules\clothing\clothing_vr.dm"
+#include "code\modules\clothing\ears\earrings.dm"
+#include "code\modules\clothing\ears\ears.dm"
+#include "code\modules\clothing\glasses\glasses.dm"
+#include "code\modules\clothing\glasses\glasses_vr.dm"
+#include "code\modules\clothing\glasses\hud.dm"
+#include "code\modules\clothing\glasses\hud_vr.dm"
+#include "code\modules\clothing\gloves\antagonist.dm"
+#include "code\modules\clothing\gloves\arm_guards.dm"
+#include "code\modules\clothing\gloves\arm_guards_vr.dm"
+#include "code\modules\clothing\gloves\boxing.dm"
+#include "code\modules\clothing\gloves\color.dm"
+#include "code\modules\clothing\gloves\gauntlets.dm"
+#include "code\modules\clothing\gloves\miscellaneous.dm"
+#include "code\modules\clothing\gloves\miscellaneous_vr.dm"
+#include "code\modules\clothing\head\collectable.dm"
+#include "code\modules\clothing\head\flowercrowns.dm"
+#include "code\modules\clothing\head\hardhat.dm"
+#include "code\modules\clothing\head\helmet.dm"
+#include "code\modules\clothing\head\helmet_vr.dm"
+#include "code\modules\clothing\head\hood.dm"
+#include "code\modules\clothing\head\hood_vr.dm"
+#include "code\modules\clothing\head\jobs.dm"
+#include "code\modules\clothing\head\jobs_vr.dm"
+#include "code\modules\clothing\head\misc.dm"
+#include "code\modules\clothing\head\misc_special.dm"
+#include "code\modules\clothing\head\misc_vr.dm"
+#include "code\modules\clothing\head\pilot_helmet.dm"
+#include "code\modules\clothing\head\pilot_helmet_vr.dm"
+#include "code\modules\clothing\head\soft_caps.dm"
+#include "code\modules\clothing\head\solgov.dm"
+#include "code\modules\clothing\head\solgov_vr.dm"
+#include "code\modules\clothing\masks\boxing.dm"
+#include "code\modules\clothing\masks\breath.dm"
+#include "code\modules\clothing\masks\breath_vr.dm"
+#include "code\modules\clothing\masks\gasmask.dm"
+#include "code\modules\clothing\masks\gasmask_vr.dm"
+#include "code\modules\clothing\masks\hailer.dm"
+#include "code\modules\clothing\masks\miscellaneous.dm"
+#include "code\modules\clothing\masks\shiny_vr.dm"
+#include "code\modules\clothing\masks\voice.dm"
+#include "code\modules\clothing\rings\material.dm"
+#include "code\modules\clothing\rings\rings.dm"
+#include "code\modules\clothing\rings\rings_vr.dm"
+#include "code\modules\clothing\shoes\boots.dm"
+#include "code\modules\clothing\shoes\boots_vr.dm"
+#include "code\modules\clothing\shoes\colour.dm"
+#include "code\modules\clothing\shoes\leg_guards.dm"
+#include "code\modules\clothing\shoes\leg_guards_vr.dm"
+#include "code\modules\clothing\shoes\magboots.dm"
+#include "code\modules\clothing\shoes\miscellaneous.dm"
+#include "code\modules\clothing\shoes\miscellaneous_vr.dm"
+#include "code\modules\clothing\spacesuits\alien.dm"
+#include "code\modules\clothing\spacesuits\breaches.dm"
+#include "code\modules\clothing\spacesuits\miscellaneous.dm"
+#include "code\modules\clothing\spacesuits\spacesuits.dm"
+#include "code\modules\clothing\spacesuits\syndi.dm"
+#include "code\modules\clothing\spacesuits\rig\rig.dm"
+#include "code\modules\clothing\spacesuits\rig\rig_attackby.dm"
+#include "code\modules\clothing\spacesuits\rig\rig_pieces.dm"
+#include "code\modules\clothing\spacesuits\rig\rig_pieces_vr.dm"
+#include "code\modules\clothing\spacesuits\rig\rig_tgui.dm"
+#include "code\modules\clothing\spacesuits\rig\rig_verbs.dm"
+#include "code\modules\clothing\spacesuits\rig\rig_wiring.dm"
+#include "code\modules\clothing\spacesuits\rig\modules\modules.dm"
+#include "code\modules\clothing\spacesuits\rig\modules\specific\ai_container.dm"
+#include "code\modules\clothing\spacesuits\rig\modules\specific\chem_dispenser.dm"
+#include "code\modules\clothing\spacesuits\rig\modules\specific\cleaner_launcher.dm"
+#include "code\modules\clothing\spacesuits\rig\modules\specific\cloak.dm"
+#include "code\modules\clothing\spacesuits\rig\modules\specific\datajack.dm"
+#include "code\modules\clothing\spacesuits\rig\modules\specific\device.dm"
+#include "code\modules\clothing\spacesuits\rig\modules\specific\electrowarfare.dm"
+#include "code\modules\clothing\spacesuits\rig\modules\specific\grenade_launcher.dm"
+#include "code\modules\clothing\spacesuits\rig\modules\specific\inhand_fabricator.dm"
+#include "code\modules\clothing\spacesuits\rig\modules\specific\jetpack.dm"
+#include "code\modules\clothing\spacesuits\rig\modules\specific\metalfoam_launcher.dm"
+#include "code\modules\clothing\spacesuits\rig\modules\specific\mounted_gun.dm"
+#include "code\modules\clothing\spacesuits\rig\modules\specific\mounted_gun_vr.dm"
+#include "code\modules\clothing\spacesuits\rig\modules\specific\pat_module_vr.dm"
+#include "code\modules\clothing\spacesuits\rig\modules\specific\powersink.dm"
+#include "code\modules\clothing\spacesuits\rig\modules\specific\rescue_pharm_vr.dm"
+#include "code\modules\clothing\spacesuits\rig\modules\specific\self_destruct.dm"
+#include "code\modules\clothing\spacesuits\rig\modules\specific\sprinter.dm"
+#include "code\modules\clothing\spacesuits\rig\modules\specific\teleporter.dm"
+#include "code\modules\clothing\spacesuits\rig\modules\specific\vision.dm"
+#include "code\modules\clothing\spacesuits\rig\modules\specific\voice.dm"
+#include "code\modules\clothing\spacesuits\rig\suits\alien.dm"
+#include "code\modules\clothing\spacesuits\rig\suits\combat.dm"
+#include "code\modules\clothing\spacesuits\rig\suits\ert.dm"
+#include "code\modules\clothing\spacesuits\rig\suits\ert_vr.dm"
+#include "code\modules\clothing\spacesuits\rig\suits\light.dm"
+#include "code\modules\clothing\spacesuits\rig\suits\merc.dm"
+#include "code\modules\clothing\spacesuits\rig\suits\pmc.dm"
+#include "code\modules\clothing\spacesuits\rig\suits\robotics.dm"
+#include "code\modules\clothing\spacesuits\rig\suits\station.dm"
+#include "code\modules\clothing\spacesuits\rig\suits\station_vr.dm"
+#include "code\modules\clothing\spacesuits\void\ert_vr.dm"
+#include "code\modules\clothing\spacesuits\void\event.dm"
+#include "code\modules\clothing\spacesuits\void\event_vr.dm"
+#include "code\modules\clothing\spacesuits\void\merc.dm"
+#include "code\modules\clothing\spacesuits\void\military_vr.dm"
+#include "code\modules\clothing\spacesuits\void\station.dm"
+#include "code\modules\clothing\spacesuits\void\station_vr.dm"
+#include "code\modules\clothing\spacesuits\void\void.dm"
+#include "code\modules\clothing\spacesuits\void\void_vr.dm"
+#include "code\modules\clothing\spacesuits\void\wizard.dm"
+#include "code\modules\clothing\spacesuits\void\zaddat.dm"
+#include "code\modules\clothing\suits\armor.dm"
+#include "code\modules\clothing\suits\armor_vr.dm"
+#include "code\modules\clothing\suits\bio.dm"
+#include "code\modules\clothing\suits\bio_vr.dm"
+#include "code\modules\clothing\suits\hooded.dm"
+#include "code\modules\clothing\suits\hooded_vr.dm"
+#include "code\modules\clothing\suits\jobs.dm"
+#include "code\modules\clothing\suits\jobs_vr.dm"
+#include "code\modules\clothing\suits\labcoat.dm"
+#include "code\modules\clothing\suits\labcoat_vr.dm"
+#include "code\modules\clothing\suits\miscellaneous.dm"
+#include "code\modules\clothing\suits\miscellaneous_vr.dm"
+#include "code\modules\clothing\suits\solgov.dm"
+#include "code\modules\clothing\suits\solgov_vr.dm"
+#include "code\modules\clothing\suits\storage.dm"
+#include "code\modules\clothing\suits\utility.dm"
+#include "code\modules\clothing\suits\utility_vr.dm"
+#include "code\modules\clothing\suits\wiz_robe.dm"
+#include "code\modules\clothing\suits\aliens\tajara.dm"
+#include "code\modules\clothing\suits\aliens\teshari.dm"
+#include "code\modules\clothing\suits\aliens\unathi.dm"
+#include "code\modules\clothing\suits\aliens\vox.dm"
+#include "code\modules\clothing\under\color.dm"
+#include "code\modules\clothing\under\imperial_vr.dm"
+#include "code\modules\clothing\under\miscellaneous.dm"
+#include "code\modules\clothing\under\miscellaneous_vr.dm"
+#include "code\modules\clothing\under\nanotrasen_vr.dm"
+#include "code\modules\clothing\under\pants.dm"
+#include "code\modules\clothing\under\shiny_vr.dm"
+#include "code\modules\clothing\under\shorts.dm"
+#include "code\modules\clothing\under\solgov.dm"
+#include "code\modules\clothing\under\solgov_vr.dm"
+#include "code\modules\clothing\under\syndicate.dm"
+#include "code\modules\clothing\under\accessories\accessory.dm"
+#include "code\modules\clothing\under\accessories\accessory_vr.dm"
+#include "code\modules\clothing\under\accessories\armband.dm"
+#include "code\modules\clothing\under\accessories\armor.dm"
+#include "code\modules\clothing\under\accessories\badges.dm"
+#include "code\modules\clothing\under\accessories\clothing.dm"
+#include "code\modules\clothing\under\accessories\holster.dm"
+#include "code\modules\clothing\under\accessories\holster_vr.dm"
+#include "code\modules\clothing\under\accessories\lockets.dm"
+#include "code\modules\clothing\under\accessories\permits.dm"
+#include "code\modules\clothing\under\accessories\permits_vr.dm"
+#include "code\modules\clothing\under\accessories\shiny_vr.dm"
+#include "code\modules\clothing\under\accessories\storage.dm"
+#include "code\modules\clothing\under\accessories\storage_vr.dm"
+#include "code\modules\clothing\under\accessories\torch.dm"
+#include "code\modules\clothing\under\accessories\torch_vr.dm"
+#include "code\modules\clothing\under\accessories\temperature\poncho.dm"
+#include "code\modules\clothing\under\jobs\civilian.dm"
+#include "code\modules\clothing\under\jobs\engineering.dm"
+#include "code\modules\clothing\under\jobs\medsci.dm"
+#include "code\modules\clothing\under\jobs\security.dm"
+#include "code\modules\clothing\under\xenos\teshari.dm"
+#include "code\modules\clothing\under\xenos\vox.dm"
+#include "code\modules\compass\_compass.dm"
+#include "code\modules\compass\compass_holder.dm"
+#include "code\modules\compass\compass_waypoint.dm"
+#include "code\modules\compass\~compass.dm"
+#include "code\modules\customitems\item_spawning.dm"
+#include "code\modules\detectivework\footprints.dm"
+#include "code\modules\detectivework\forensics.dm"
+#include "code\modules\detectivework\microscope\dnascanner.dm"
+#include "code\modules\detectivework\microscope\microscope.dm"
+#include "code\modules\detectivework\tools\crimekit.dm"
+#include "code\modules\detectivework\tools\evidencebag.dm"
+#include "code\modules\detectivework\tools\luminol.dm"
+#include "code\modules\detectivework\tools\rag.dm"
+#include "code\modules\detectivework\tools\sample_kits.dm"
+#include "code\modules\detectivework\tools\scanner.dm"
+#include "code\modules\detectivework\tools\storage.dm"
+#include "code\modules\detectivework\tools\swabs.dm"
+#include "code\modules\detectivework\tools\uvlight.dm"
+#include "code\modules\economy\Accounts.dm"
+#include "code\modules\economy\Accounts_DB.dm"
+#include "code\modules\economy\ATM.dm"
+#include "code\modules\economy\cash.dm"
+#include "code\modules\economy\cash_register.dm"
+#include "code\modules\economy\coins.dm"
+#include "code\modules\economy\coins_vr.dm"
+#include "code\modules\economy\economy_misc.dm"
+#include "code\modules\economy\EFTPOS.dm"
+#include "code\modules\economy\Events.dm"
+#include "code\modules\economy\Events_Mundane.dm"
+#include "code\modules\economy\lorenews.dm"
+#include "code\modules\economy\mint.dm"
+#include "code\modules\economy\money_bag.dm"
+#include "code\modules\economy\price_list.dm"
+#include "code\modules\economy\retail_scanner.dm"
+#include "code\modules\economy\TradeDestinations.dm"
+#include "code\modules\economy\vending.dm"
+#include "code\modules\economy\vending_machines.dm"
+#include "code\modules\emotes\emote_define.dm"
+#include "code\modules\emotes\emote_mob.dm"
+#include "code\modules\emotes\definitions\_mob.dm"
+#include "code\modules\emotes\definitions\_species.dm"
+#include "code\modules\emotes\definitions\audible.dm"
+#include "code\modules\emotes\definitions\audible_cough.dm"
+#include "code\modules\emotes\definitions\audible_furry_vr.dm"
+#include "code\modules\emotes\definitions\audible_scream.dm"
+#include "code\modules\emotes\definitions\audible_scream_vr.dm"
+#include "code\modules\emotes\definitions\audible_slap.dm"
+#include "code\modules\emotes\definitions\audible_snap.dm"
+#include "code\modules\emotes\definitions\audible_sneeze.dm"
+#include "code\modules\emotes\definitions\audible_whistle.dm"
+#include "code\modules\emotes\definitions\exertion.dm"
+#include "code\modules\emotes\definitions\helpers_vr.dm"
+#include "code\modules\emotes\definitions\human.dm"
+#include "code\modules\emotes\definitions\slimes.dm"
+#include "code\modules\emotes\definitions\synthetics.dm"
+#include "code\modules\emotes\definitions\visible.dm"
+#include "code\modules\emotes\definitions\visible_animated.dm"
+#include "code\modules\emotes\definitions\visible_vomit.dm"
+#include "code\modules\emotes\definitions\visible_vr.dm"
+#include "code\modules\entopics_vr\alternate_appearance.dm"
+#include "code\modules\entopics_vr\entopics.dm"
+#include "code\modules\error_handler\_defines.dm"
+#include "code\modules\error_handler\error_handler.dm"
+#include "code\modules\error_handler\error_viewer.dm"
+#include "code\modules\error_handler\~defines.dm"
+#include "code\modules\events\apc_damage.dm"
+#include "code\modules\events\atmos_leak.dm"
+#include "code\modules\events\aurora_caelus.dm"
+#include "code\modules\events\blob.dm"
+#include "code\modules\events\brand_intelligence.dm"
+#include "code\modules\events\camera_damage.dm"
+#include "code\modules\events\canister_leak.dm"
+#include "code\modules\events\carp_migration.dm"
+#include "code\modules\events\comms_blackout.dm"
+#include "code\modules\events\communications_blackout.dm"
+#include "code\modules\events\drone_pod_vr.dm"
+#include "code\modules\events\dust.dm"
+#include "code\modules\events\electrical_storm.dm"
+#include "code\modules\events\event.dm"
+#include "code\modules\events\event_container.dm"
+#include "code\modules\events\event_container_vr.dm"
+#include "code\modules\events\event_dynamic.dm"
+#include "code\modules\events\event_manager.dm"
+#include "code\modules\events\gravity_vr.dm"
+#include "code\modules\events\grid_check.dm"
+#include "code\modules\events\grubinfestation_vr.dm"
+#include "code\modules\events\ian_storm_vr.dm"
+#include "code\modules\events\infestation.dm"
+#include "code\modules\events\ion_storm.dm"
+#include "code\modules\events\maintenance_predator_vr.dm"
+#include "code\modules\events\meteor_strike_vr.dm"
+#include "code\modules\events\meteors.dm"
+#include "code\modules\events\money_hacker.dm"
+#include "code\modules\events\money_lotto.dm"
+#include "code\modules\events\money_spam.dm"
+#include "code\modules\events\morph_spawn_vr.dm"
+#include "code\modules\events\prison_break.dm"
+#include "code\modules\events\radiation_storm.dm"
+#include "code\modules\events\random_antagonist.dm"
+#include "code\modules\events\rogue_drones.dm"
+#include "code\modules\events\shipping_error.dm"
+#include "code\modules\events\solar_storm.dm"
+#include "code\modules\events\space_ninja.dm"
+#include "code\modules\events\spacevine.dm"
+#include "code\modules\events\spider_infestation.dm"
+#include "code\modules\events\spontaneous_appendicitis.dm"
+#include "code\modules\events\spontaneous_appendicitis_vr.dm"
+#include "code\modules\events\supply_demand_vr.dm"
+#include "code\modules\events\wallrot.dm"
+#include "code\modules\examine\examine.dm"
+#include "code\modules\examine\stat_icons.dm"
+#include "code\modules\examine\descriptions\armor.dm"
+#include "code\modules\examine\descriptions\atmospherics.dm"
+#include "code\modules\examine\descriptions\containers.dm"
+#include "code\modules\examine\descriptions\devices.dm"
+#include "code\modules\examine\descriptions\engineering.dm"
+#include "code\modules\examine\descriptions\machines.dm"
+#include "code\modules\examine\descriptions\medical.dm"
+#include "code\modules\examine\descriptions\mobs.dm"
+#include "code\modules\examine\descriptions\paperwork.dm"
+#include "code\modules\examine\descriptions\stacks.dm"
+#include "code\modules\examine\descriptions\structures.dm"
+#include "code\modules\examine\descriptions\telecomms.dm"
+#include "code\modules\examine\descriptions\turfs.dm"
+#include "code\modules\examine\descriptions\weapons.dm"
+#include "code\modules\ext_scripts\irc.dm"
+#include "code\modules\ext_scripts\python.dm"
+#include "code\modules\fishing\fishing.dm"
+#include "code\modules\fishing\fishing_net.dm"
+#include "code\modules\fishing\fishing_rod.dm"
+#include "code\modules\fishing\fishing_rod_vr.dm"
+#include "code\modules\fishing\fishing_vr.dm"
+#include "code\modules\flufftext\Dreaming.dm"
+#include "code\modules\flufftext\Hallucination.dm"
+#include "code\modules\flufftext\look_up.dm"
+#include "code\modules\flufftext\TextFilters.dm"
+#include "code\modules\food\food.dm"
+#include "code\modules\food\recipe.dm"
+#include "code\modules\food\recipe_dump.dm"
+#include "code\modules\food\recipes_fryer.dm"
+#include "code\modules\food\recipes_fryer_vr.dm"
+#include "code\modules\food\recipes_grill.dm"
+#include "code\modules\food\recipes_microwave.dm"
+#include "code\modules\food\recipes_microwave_vr.dm"
+#include "code\modules\food\recipes_oven.dm"
+#include "code\modules\food\recipes_oven_vr.dm"
+#include "code\modules\food\drinkingglass\drinkingglass.dm"
+#include "code\modules\food\drinkingglass\extras.dm"
+#include "code\modules\food\drinkingglass\glass_boxes.dm"
+#include "code\modules\food\drinkingglass\glass_types.dm"
+#include "code\modules\food\drinkingglass\metaglass.dm"
+#include "code\modules\food\drinkingglass\metaglass_vr.dm"
+#include "code\modules\food\drinkingglass\serving_glasses.dm"
+#include "code\modules\food\drinkingglass\shaker.dm"
+#include "code\modules\food\drinkingglass\shaker_vr.dm"
+#include "code\modules\food\food\cans.dm"
+#include "code\modules\food\food\cans_vr.dm"
+#include "code\modules\food\food\condiment.dm"
+#include "code\modules\food\food\drinks.dm"
+#include "code\modules\food\food\drinks_vr.dm"
+#include "code\modules\food\food\lunch.dm"
+#include "code\modules\food\food\sandwich.dm"
+#include "code\modules\food\food\snacks.dm"
+#include "code\modules\food\food\snacks_vr.dm"
+#include "code\modules\food\food\thecake.dm"
+#include "code\modules\food\food\z_custom_food_vr.dm"
+#include "code\modules\food\food\drinks\bottle.dm"
+#include "code\modules\food\food\drinks\cup.dm"
+#include "code\modules\food\food\drinks\drinkingglass.dm"
+#include "code\modules\food\food\drinks\jar.dm"
+#include "code\modules\food\food\drinks\bottle\robot.dm"
+#include "code\modules\food\food\snacks\meat.dm"
+#include "code\modules\food\glass\bottle.dm"
+#include "code\modules\food\glass\bottle_vr.dm"
+#include "code\modules\food\glass\bottle\robot.dm"
+#include "code\modules\food\kitchen\gibber.dm"
+#include "code\modules\food\kitchen\icecream.dm"
+#include "code\modules\food\kitchen\microwave.dm"
+#include "code\modules\food\kitchen\cooking_machines\_appliance.dm"
+#include "code\modules\food\kitchen\cooking_machines\_cooker.dm"
+#include "code\modules\food\kitchen\cooking_machines\_cooker_output.dm"
+#include "code\modules\food\kitchen\cooking_machines\_mixer.dm"
+#include "code\modules\food\kitchen\cooking_machines\candy.dm"
+#include "code\modules\food\kitchen\cooking_machines\cereal.dm"
+#include "code\modules\food\kitchen\cooking_machines\container.dm"
+#include "code\modules\food\kitchen\cooking_machines\fryer.dm"
+#include "code\modules\food\kitchen\cooking_machines\grill.dm"
+#include "code\modules\food\kitchen\cooking_machines\oven.dm"
+#include "code\modules\food\kitchen\smartfridge\drying_rack.dm"
+#include "code\modules\food\kitchen\smartfridge\engineering.dm"
+#include "code\modules\food\kitchen\smartfridge\hydroponics.dm"
+#include "code\modules\food\kitchen\smartfridge\medical.dm"
+#include "code\modules\food\kitchen\smartfridge\smartfridge.dm"
+#include "code\modules\food\kitchen\smartfridge\smartfridge_vr.dm"
+#include "code\modules\gamemaster\defines.dm"
+#include "code\modules\gamemaster\event2\event.dm"
+#include "code\modules\gamemaster\event2\meta.dm"
+#include "code\modules\gamemaster\event2\events\ghost_pod_spawner.dm"
+#include "code\modules\gamemaster\event2\events\mob_spawning.dm"
+#include "code\modules\gamemaster\event2\events\cargo\shipping_error.dm"
+#include "code\modules\gamemaster\event2\events\command\manifest_malfunction.dm"
+#include "code\modules\gamemaster\event2\events\command\money_hacker.dm"
+#include "code\modules\gamemaster\event2\events\command\raise_funds.dm"
+#include "code\modules\gamemaster\event2\events\engineering\airlock_failure.dm"
+#include "code\modules\gamemaster\event2\events\engineering\blob.dm"
+#include "code\modules\gamemaster\event2\events\engineering\brand_intelligence.dm"
+#include "code\modules\gamemaster\event2\events\engineering\camera_damage.dm"
+#include "code\modules\gamemaster\event2\events\engineering\canister_leak.dm"
+#include "code\modules\gamemaster\event2\events\engineering\dust.dm"
+#include "code\modules\gamemaster\event2\events\engineering\gas_leak.dm"
+#include "code\modules\gamemaster\event2\events\engineering\grid_check.dm"
+#include "code\modules\gamemaster\event2\events\engineering\meteor_defense.dm"
+#include "code\modules\gamemaster\event2\events\engineering\spacevine.dm"
+#include "code\modules\gamemaster\event2\events\engineering\wallrot.dm"
+#include "code\modules\gamemaster\event2\events\engineering\window_break.dm"
+#include "code\modules\gamemaster\event2\events\everyone\comms_blackout.dm"
+#include "code\modules\gamemaster\event2\events\everyone\electrical_fault.dm"
+#include "code\modules\gamemaster\event2\events\everyone\gravity_vr.dm"
+#include "code\modules\gamemaster\event2\events\everyone\infestation.dm"
+#include "code\modules\gamemaster\event2\events\everyone\pda_spam.dm"
+#include "code\modules\gamemaster\event2\events\everyone\radiation_storm.dm"
+#include "code\modules\gamemaster\event2\events\everyone\random_antag.dm"
+#include "code\modules\gamemaster\event2\events\everyone\solar_storm.dm"
+#include "code\modules\gamemaster\event2\events\everyone\sudden_weather_shift.dm"
+#include "code\modules\gamemaster\event2\events\legacy\legacy.dm"
+#include "code\modules\gamemaster\event2\events\medical\appendicitis.dm"
+#include "code\modules\gamemaster\event2\events\medical\virus.dm"
+#include "code\modules\gamemaster\event2\events\security\carp_migration.dm"
+#include "code\modules\gamemaster\event2\events\security\drill_announcement.dm"
+#include "code\modules\gamemaster\event2\events\security\prison_break.dm"
+#include "code\modules\gamemaster\event2\events\security\rogue_drones.dm"
+#include "code\modules\gamemaster\event2\events\security\security_advisement.dm"
+#include "code\modules\gamemaster\event2\events\security\spider_infestation.dm"
+#include "code\modules\gamemaster\event2\events\security\stowaway.dm"
+#include "code\modules\gamemaster\event2\events\security\surprise_carp.dm"
+#include "code\modules\gamemaster\event2\events\security\swarm_boarder.dm"
+#include "code\modules\gamemaster\event2\events\synthetic\ion_storm.dm"
+#include "code\modules\games\cah.dm"
+#include "code\modules\games\cah_black_cards.dm"
+#include "code\modules\games\cah_white_cards.dm"
+#include "code\modules\games\cardemon.dm"
+#include "code\modules\games\cards.dm"
+#include "code\modules\games\dice.dm"
+#include "code\modules\games\spaceball_cards.dm"
+#include "code\modules\games\tarot.dm"
+#include "code\modules\genetics\side_effects.dm"
+#include "code\modules\ghosttrap\trap.dm"
+#include "code\modules\holodeck\HolodeckControl.dm"
+#include "code\modules\holodeck\HolodeckObjects.dm"
+#include "code\modules\holodeck\HolodeckPrograms.dm"
+#include "code\modules\holomap\generate_holomap.dm"
+#include "code\modules\holomap\holomap_area.dm"
+#include "code\modules\holomap\holomap_datum.dm"
+#include "code\modules\holomap\mapper.dm"
+#include "code\modules\holomap\station_holomap.dm"
+#include "code\modules\hydroponics\grown.dm"
+#include "code\modules\hydroponics\grown_inedible.dm"
+#include "code\modules\hydroponics\grown_predefined.dm"
+#include "code\modules\hydroponics\seed.dm"
+#include "code\modules\hydroponics\seed_datums_vr.dm"
+#include "code\modules\hydroponics\seed_gene_mut.dm"
+#include "code\modules\hydroponics\seed_machines.dm"
+#include "code\modules\hydroponics\seed_mobs.dm"
+#include "code\modules\hydroponics\seed_packets.dm"
+#include "code\modules\hydroponics\seed_packets_vr.dm"
+#include "code\modules\hydroponics\seed_storage.dm"
+#include "code\modules\hydroponics\seed_storage_vr.dm"
+#include "code\modules\hydroponics\beekeeping\beehive.dm"
+#include "code\modules\hydroponics\seedtypes\amauri.dm"
+#include "code\modules\hydroponics\seedtypes\ambrosia.dm"
+#include "code\modules\hydroponics\seedtypes\apples.dm"
+#include "code\modules\hydroponics\seedtypes\banana.dm"
+#include "code\modules\hydroponics\seedtypes\berries.dm"
+#include "code\modules\hydroponics\seedtypes\cabbage.dm"
+#include "code\modules\hydroponics\seedtypes\carrots.dm"
+#include "code\modules\hydroponics\seedtypes\celery.dm"
+#include "code\modules\hydroponics\seedtypes\cherries.dm"
+#include "code\modules\hydroponics\seedtypes\chili.dm"
+#include "code\modules\hydroponics\seedtypes\citrus.dm"
+#include "code\modules\hydroponics\seedtypes\cocoa.dm"
+#include "code\modules\hydroponics\seedtypes\corn.dm"
+#include "code\modules\hydroponics\seedtypes\diona.dm"
+#include "code\modules\hydroponics\seedtypes\durian.dm"
+#include "code\modules\hydroponics\seedtypes\eggplant.dm"
+#include "code\modules\hydroponics\seedtypes\flowers.dm"
+#include "code\modules\hydroponics\seedtypes\gelthi.dm"
+#include "code\modules\hydroponics\seedtypes\gnomes.dm"
+#include "code\modules\hydroponics\seedtypes\grapes.dm"
+#include "code\modules\hydroponics\seedtypes\grass.dm"
+#include "code\modules\hydroponics\seedtypes\jurlmah.dm"
+#include "code\modules\hydroponics\seedtypes\kudzu.dm"
+#include "code\modules\hydroponics\seedtypes\lettuce.dm"
+#include "code\modules\hydroponics\seedtypes\malanitear.dm"
+#include "code\modules\hydroponics\seedtypes\mushrooms.dm"
+#include "code\modules\hydroponics\seedtypes\nettles.dm"
+#include "code\modules\hydroponics\seedtypes\onion.dm"
+#include "code\modules\hydroponics\seedtypes\peanuts.dm"
+#include "code\modules\hydroponics\seedtypes\pineapple.dm"
+#include "code\modules\hydroponics\seedtypes\potato.dm"
+#include "code\modules\hydroponics\seedtypes\pumpkin.dm"
+#include "code\modules\hydroponics\seedtypes\rhubarb.dm"
+#include "code\modules\hydroponics\seedtypes\rice.dm"
+#include "code\modules\hydroponics\seedtypes\selemhand.dm"
+#include "code\modules\hydroponics\seedtypes\soybean.dm"
+#include "code\modules\hydroponics\seedtypes\sugarcane.dm"
+#include "code\modules\hydroponics\seedtypes\surik.dm"
+#include "code\modules\hydroponics\seedtypes\telriis.dm"
+#include "code\modules\hydroponics\seedtypes\thaadra.dm"
+#include "code\modules\hydroponics\seedtypes\tobacco.dm"
+#include "code\modules\hydroponics\seedtypes\tomatoes.dm"
+#include "code\modules\hydroponics\seedtypes\vale.dm"
+#include "code\modules\hydroponics\seedtypes\vanilla.dm"
+#include "code\modules\hydroponics\seedtypes\wabback.dm"
+#include "code\modules\hydroponics\seedtypes\watermelon.dm"
+#include "code\modules\hydroponics\seedtypes\weeds.dm"
+#include "code\modules\hydroponics\seedtypes\wheat.dm"
+#include "code\modules\hydroponics\seedtypes\whitebeets.dm"
+#include "code\modules\hydroponics\seedtypes\wurmwoad.dm"
+#include "code\modules\hydroponics\seedtypes\xeno.dm"
+#include "code\modules\hydroponics\spreading\spreading.dm"
+#include "code\modules\hydroponics\spreading\spreading_growth.dm"
+#include "code\modules\hydroponics\spreading\spreading_response.dm"
+#include "code\modules\hydroponics\trays\tray.dm"
+#include "code\modules\hydroponics\trays\tray_process.dm"
+#include "code\modules\hydroponics\trays\tray_reagents.dm"
+#include "code\modules\hydroponics\trays\tray_soil.dm"
+#include "code\modules\hydroponics\trays\tray_tools.dm"
+#include "code\modules\hydroponics\trays\tray_update_icons.dm"
+#include "code\modules\identification\identification.dm"
+#include "code\modules\identification\item_procs.dm"
+#include "code\modules\instruments\items.dm"
+#include "code\modules\instruments\stationary.dm"
+#include "code\modules\instruments\instrument_data\_instrument_data.dm"
+#include "code\modules\instruments\instrument_data\_instrument_key.dm"
+#include "code\modules\instruments\instrument_data\brass.dm"
+#include "code\modules\instruments\instrument_data\chromatic_percussion.dm"
+#include "code\modules\instruments\instrument_data\fun.dm"
+#include "code\modules\instruments\instrument_data\guitar.dm"
+#include "code\modules\instruments\instrument_data\hardcoded.dm"
+#include "code\modules\instruments\instrument_data\organ.dm"
+#include "code\modules\instruments\instrument_data\piano.dm"
+#include "code\modules\instruments\instrument_data\synth_tones.dm"
+#include "code\modules\instruments\songs\_song.dm"
+#include "code\modules\instruments\songs\editor.dm"
+#include "code\modules\instruments\songs\play_legacy.dm"
+#include "code\modules\instruments\songs\play_synthesized.dm"
+#include "code\modules\integrated_electronics\_defines.dm"
+#include "code\modules\integrated_electronics\core\assemblies.dm"
+#include "code\modules\integrated_electronics\core\detailer.dm"
+#include "code\modules\integrated_electronics\core\helpers.dm"
+#include "code\modules\integrated_electronics\core\integrated_circuit.dm"
+#include "code\modules\integrated_electronics\core\pins.dm"
+#include "code\modules\integrated_electronics\core\printer.dm"
+#include "code\modules\integrated_electronics\core\tools.dm"
+#include "code\modules\integrated_electronics\core\assemblies\clothing.dm"
+#include "code\modules\integrated_electronics\core\assemblies\device.dm"
+#include "code\modules\integrated_electronics\core\assemblies\generic.dm"
+#include "code\modules\integrated_electronics\core\assemblies\implant.dm"
+#include "code\modules\integrated_electronics\core\special_pins\boolean_pin.dm"
+#include "code\modules\integrated_electronics\core\special_pins\char_pin.dm"
+#include "code\modules\integrated_electronics\core\special_pins\color_pin.dm"
+#include "code\modules\integrated_electronics\core\special_pins\dir_pin.dm"
+#include "code\modules\integrated_electronics\core\special_pins\list_pin.dm"
+#include "code\modules\integrated_electronics\core\special_pins\number_pin.dm"
+#include "code\modules\integrated_electronics\core\special_pins\ref_pin.dm"
+#include "code\modules\integrated_electronics\core\special_pins\string_pin.dm"
+#include "code\modules\integrated_electronics\passive\passive.dm"
+#include "code\modules\integrated_electronics\passive\power.dm"
+#include "code\modules\integrated_electronics\subtypes\arithmetic.dm"
+#include "code\modules\integrated_electronics\subtypes\built_in.dm"
+#include "code\modules\integrated_electronics\subtypes\converters.dm"
+#include "code\modules\integrated_electronics\subtypes\data_transfer.dm"
+#include "code\modules\integrated_electronics\subtypes\input.dm"
+#include "code\modules\integrated_electronics\subtypes\lists.dm"
+#include "code\modules\integrated_electronics\subtypes\logic.dm"
+#include "code\modules\integrated_electronics\subtypes\manipulation.dm"
+#include "code\modules\integrated_electronics\subtypes\memory.dm"
+#include "code\modules\integrated_electronics\subtypes\output.dm"
+#include "code\modules\integrated_electronics\subtypes\power.dm"
+#include "code\modules\integrated_electronics\subtypes\reagents.dm"
+#include "code\modules\integrated_electronics\subtypes\smart.dm"
+#include "code\modules\integrated_electronics\subtypes\time.dm"
+#include "code\modules\integrated_electronics\subtypes\trig.dm"
+#include "code\modules\integrated_electronics\~defines\~defines.dm"
+#include "code\modules\keybindings\bindings_atom.dm"
+#include "code\modules\keybindings\bindings_movekeys.dm"
+#include "code\modules\keybindings\setup.dm"
+#include "code\modules\library\lib_items.dm"
+#include "code\modules\library\lib_machines.dm"
+#include "code\modules\library\lib_readme.dm"
+#include "code\modules\library\hardcode_library\_library.dm"
+#include "code\modules\library\hardcode_library\fiction\APsychonaut.dm"
+#include "code\modules\library\hardcode_library\fiction\battlefieldcommander.dm"
+#include "code\modules\library\hardcode_library\fiction\PortedBooks.dm"
+#include "code\modules\library\hardcode_library\fiction\schnayy.dm"
+#include "code\modules\library\hardcode_library\non-fiction\PortedBooks.dm"
+#include "code\modules\library\hardcode_library\reference\PortedBooks.dm"
+#include "code\modules\library\hardcode_library\reference\Schnayy.dm"
+#include "code\modules\library\hardcode_library\religious\PortedBooks.dm"
+#include "code\modules\lighting\emissive_blocker.dm"
+#include "code\modules\lighting\lighting_area.dm"
+#include "code\modules\lighting\lighting_atom.dm"
+#include "code\modules\lighting\lighting_corner.dm"
+#include "code\modules\lighting\lighting_fake_sun_vr.dm"
+#include "code\modules\lighting\lighting_overlay.dm"
+#include "code\modules\lighting\lighting_setup.dm"
+#include "code\modules\lighting\lighting_source.dm"
+#include "code\modules\lighting\lighting_turf.dm"
+#include "code\modules\looking_glass\lg_area.dm"
+#include "code\modules\looking_glass\lg_console.dm"
+#include "code\modules\looking_glass\lg_imageholder.dm"
+#include "code\modules\looking_glass\lg_turfs.dm"
+#include "code\modules\lore_codex\codex.dm"
+#include "code\modules\lore_codex\codex_tree.dm"
+#include "code\modules\lore_codex\pages.dm"
+#include "code\modules\lore_codex\lore_data_vr\important_locations.dm"
+#include "code\modules\lore_codex\lore_data_vr\main.dm"
+#include "code\modules\lore_codex\lore_data_vr\orgs.dm"
+#include "code\modules\lore_codex\lore_data_vr\political_parties.dm"
+#include "code\modules\lore_codex\lore_data_vr\species.dm"
+#include "code\modules\lore_codex\news_data\main.dm"
+#include "code\modules\lore_codex\robutt_data\bybrand.dm"
+#include "code\modules\lore_codex\robutt_data\main_robutts.dm"
+#include "code\modules\lore_codex\robutt_data\more.dm"
+#include "code\modules\makeup\nailpolish.dm"
+#include "code\modules\maps\tg\dmm_suite.dm"
+#include "code\modules\maps\tg\map_template.dm"
+#include "code\modules\maps\tg\map_template_vr.dm"
+#include "code\modules\maps\tg\reader.dm"
+#include "code\modules\materials\fifty_spawner.dm"
+#include "code\modules\materials\fifty_spawner_mats.dm"
+#include "code\modules\materials\fifty_spawner_mats_vr.dm"
+#include "code\modules\materials\material_synth.dm"
+#include "code\modules\materials\materials\_materials.dm"
+#include "code\modules\materials\materials\_materials_vr.dm"
+#include "code\modules\materials\materials\alien_alloy.dm"
+#include "code\modules\materials\materials\cult.dm"
+#include "code\modules\materials\materials\gems.dm"
+#include "code\modules\materials\materials\glass.dm"
+#include "code\modules\materials\materials\glass_vr.dm"
+#include "code\modules\materials\materials\holographic.dm"
+#include "code\modules\materials\materials\other_vr.dm"
+#include "code\modules\materials\materials\plastic.dm"
+#include "code\modules\materials\materials\snow.dm"
+#include "code\modules\materials\materials\stone.dm"
+#include "code\modules\materials\materials\supermatter.dm"
+#include "code\modules\materials\materials\metals\hull.dm"
+#include "code\modules\materials\materials\metals\hull_vr.dm"
+#include "code\modules\materials\materials\metals\metals.dm"
+#include "code\modules\materials\materials\metals\metals_vr.dm"
+#include "code\modules\materials\materials\metals\plasteel.dm"
+#include "code\modules\materials\materials\metals\plasteel_vr.dm"
+#include "code\modules\materials\materials\metals\steel.dm"
+#include "code\modules\materials\materials\metals\steel_vr.dm"
+#include "code\modules\materials\materials\organic\animal_products.dm"
+#include "code\modules\materials\materials\organic\cloth.dm"
+#include "code\modules\materials\materials\organic\leather.dm"
+#include "code\modules\materials\materials\organic\resin.dm"
+#include "code\modules\materials\materials\organic\wood.dm"
+#include "code\modules\materials\sheets\_sheets.dm"
+#include "code\modules\materials\sheets\gems.dm"
+#include "code\modules\materials\sheets\glass.dm"
+#include "code\modules\materials\sheets\glass_vr.dm"
+#include "code\modules\materials\sheets\plastic.dm"
+#include "code\modules\materials\sheets\snow.dm"
+#include "code\modules\materials\sheets\stone.dm"
+#include "code\modules\materials\sheets\supermatter.dm"
+#include "code\modules\materials\sheets\metals\hull.dm"
+#include "code\modules\materials\sheets\metals\hull_vr.dm"
+#include "code\modules\materials\sheets\metals\metal.dm"
+#include "code\modules\materials\sheets\metals\metal_vr.dm"
+#include "code\modules\materials\sheets\metals\rods.dm"
+#include "code\modules\materials\sheets\organic\animal_products.dm"
+#include "code\modules\materials\sheets\organic\resin.dm"
+#include "code\modules\materials\sheets\organic\textiles.dm"
+#include "code\modules\materials\sheets\organic\wood.dm"
+#include "code\modules\materials\sheets\organic\tanning\hide.dm"
+#include "code\modules\materials\sheets\organic\tanning\hide_hairless.dm"
+#include "code\modules\materials\sheets\organic\tanning\leather_wet.dm"
+#include "code\modules\materials\sheets\organic\tanning\tanning_rack.dm"
+#include "code\modules\media\juke_remote.dm"
+#include "code\modules\media\media_machinery.dm"
+#include "code\modules\media\media_player_html5.dm"
+#include "code\modules\media\media_player_vlc.dm"
+#include "code\modules\media\media_player_wmp.dm"
+#include "code\modules\media\media_tracks.dm"
+#include "code\modules\media\mediamanager.dm"
+#include "code\modules\media\walkpod.dm"
+#include "code\modules\metric\activity.dm"
+#include "code\modules\metric\count.dm"
+#include "code\modules\metric\department.dm"
+#include "code\modules\metric\metric.dm"
+#include "code\modules\mining\abandonedcrates.dm"
+#include "code\modules\mining\abandonedcrates_vr.dm"
+#include "code\modules\mining\alloys.dm"
+#include "code\modules\mining\alloys_vr.dm"
+#include "code\modules\mining\fulton.dm"
+#include "code\modules\mining\mine_items.dm"
+#include "code\modules\mining\mine_items_vr.dm"
+#include "code\modules\mining\mine_outcrops.dm"
+#include "code\modules\mining\mine_turfs.dm"
+#include "code\modules\mining\mine_turfs_vr.dm"
+#include "code\modules\mining\mineral_effect.dm"
+#include "code\modules\mining\ore.dm"
+#include "code\modules\mining\ore_box.dm"
+#include "code\modules\mining\ore_datum.dm"
+#include "code\modules\mining\resonator_vr.dm"
+#include "code\modules\mining\shelter_atoms_vr.dm"
+#include "code\modules\mining\shelters_vr.dm"
+#include "code\modules\mining\drilling\drill.dm"
+#include "code\modules\mining\drilling\scanner.dm"
+#include "code\modules\mining\machinery\machine_input_output_plates.dm"
+#include "code\modules\mining\machinery\machine_processing.dm"
+#include "code\modules\mining\machinery\machine_stacking.dm"
+#include "code\modules\mining\machinery\machine_unloading.dm"
+#include "code\modules\mining\ore_redemption_machine\construction.dm"
+#include "code\modules\mining\ore_redemption_machine\equipment_vendor.dm"
+#include "code\modules\mining\ore_redemption_machine\mine_point_items.dm"
+#include "code\modules\mining\ore_redemption_machine\survey_vendor.dm"
+#include "code\modules\mob\animations.dm"
+#include "code\modules\mob\death.dm"
+#include "code\modules\mob\emote.dm"
+#include "code\modules\mob\gender.dm"
+#include "code\modules\mob\gender_vr.dm"
+#include "code\modules\mob\hear_say.dm"
+#include "code\modules\mob\holder.dm"
+#include "code\modules\mob\inventory.dm"
+#include "code\modules\mob\login.dm"
+#include "code\modules\mob\login_vr.dm"
+#include "code\modules\mob\logout.dm"
+#include "code\modules\mob\mob.dm"
+#include "code\modules\mob\mob_defines.dm"
+#include "code\modules\mob\mob_defines_vr.dm"
+#include "code\modules\mob\mob_grab.dm"
+#include "code\modules\mob\mob_grab_specials.dm"
+#include "code\modules\mob\mob_helpers.dm"
+#include "code\modules\mob\mob_helpers_vr.dm"
+#include "code\modules\mob\mob_movement.dm"
+#include "code\modules\mob\mob_planes.dm"
+#include "code\modules\mob\mob_planes_vr.dm"
+#include "code\modules\mob\mob_transformation_simple.dm"
+#include "code\modules\mob\say.dm"
+#include "code\modules\mob\say_vr.dm"
+#include "code\modules\mob\skillset.dm"
+#include "code\modules\mob\transform_procs.dm"
+#include "code\modules\mob\typing_indicator.dm"
+#include "code\modules\mob\update_icons.dm"
+#include "code\modules\mob\_modifiers\aura.dm"
+#include "code\modules\mob\_modifiers\changeling.dm"
+#include "code\modules\mob\_modifiers\cloning.dm"
+#include "code\modules\mob\_modifiers\feysight.dm"
+#include "code\modules\mob\_modifiers\fire.dm"
+#include "code\modules\mob\_modifiers\medical.dm"
+#include "code\modules\mob\_modifiers\modifiers.dm"
+#include "code\modules\mob\_modifiers\modifiers_misc.dm"
+#include "code\modules\mob\_modifiers\traits.dm"
+#include "code\modules\mob\_modifiers\traits_phobias.dm"
+#include "code\modules\mob\_modifiers\unholy.dm"
+#include "code\modules\mob\dead\corpse.dm"
+#include "code\modules\mob\dead\corpse_vr.dm"
+#include "code\modules\mob\dead\death.dm"
+#include "code\modules\mob\dead\observer\free_vr.dm"
+#include "code\modules\mob\dead\observer\login.dm"
+#include "code\modules\mob\dead\observer\logout.dm"
+#include "code\modules\mob\dead\observer\observer.dm"
+#include "code\modules\mob\dead\observer\observer_vr.dm"
+#include "code\modules\mob\dead\observer\say.dm"
+#include "code\modules\mob\freelook\chunk.dm"
+#include "code\modules\mob\freelook\eye.dm"
+#include "code\modules\mob\freelook\life.dm"
+#include "code\modules\mob\freelook\update_triggers.dm"
+#include "code\modules\mob\freelook\visualnet.dm"
+#include "code\modules\mob\freelook\ai\cameranet.dm"
+#include "code\modules\mob\freelook\ai\chunk.dm"
+#include "code\modules\mob\freelook\ai\eye.dm"
+#include "code\modules\mob\freelook\ai\update_triggers.dm"
+#include "code\modules\mob\freelook\mask\chunk.dm"
+#include "code\modules\mob\freelook\mask\cultnet.dm"
+#include "code\modules\mob\freelook\mask\eye.dm"
+#include "code\modules\mob\freelook\mask\update_triggers.dm"
+#include "code\modules\mob\language\generic.dm"
+#include "code\modules\mob\language\language.dm"
+#include "code\modules\mob\language\monkey.dm"
+#include "code\modules\mob\language\outsider.dm"
+#include "code\modules\mob\language\station.dm"
+#include "code\modules\mob\language\station_vr.dm"
+#include "code\modules\mob\language\synthetic.dm"
+#include "code\modules\mob\living\autohiss.dm"
+#include "code\modules\mob\living\butchering.dm"
+#include "code\modules\mob\living\damage_procs.dm"
+#include "code\modules\mob\living\death.dm"
+#include "code\modules\mob\living\default_language.dm"
+#include "code\modules\mob\living\inventory.dm"
+#include "code\modules\mob\living\life.dm"
+#include "code\modules\mob\living\living.dm"
+#include "code\modules\mob\living\living_defense.dm"
+#include "code\modules\mob\living\living_defines.dm"
+#include "code\modules\mob\living\living_defines_vr.dm"
+#include "code\modules\mob\living\living_movement.dm"
+#include "code\modules\mob\living\living_powers.dm"
+#include "code\modules\mob\living\living_vr.dm"
+#include "code\modules\mob\living\login.dm"
+#include "code\modules\mob\living\logout.dm"
+#include "code\modules\mob\living\organs.dm"
+#include "code\modules\mob\living\riding.dm"
+#include "code\modules\mob\living\say.dm"
+#include "code\modules\mob\living\status_indicators.dm"
+#include "code\modules\mob\living\bot\bot.dm"
+#include "code\modules\mob\living\bot\bot_vr.dm"
+#include "code\modules\mob\living\bot\cleanbot.dm"
+#include "code\modules\mob\living\bot\ed209bot.dm"
+#include "code\modules\mob\living\bot\edCLNbot.dm"
+#include "code\modules\mob\living\bot\farmbot.dm"
+#include "code\modules\mob\living\bot\floorbot.dm"
+#include "code\modules\mob\living\bot\medbot.dm"
+#include "code\modules\mob\living\bot\mulebot.dm"
+#include "code\modules\mob\living\bot\mulebot_vr.dm"
+#include "code\modules\mob\living\bot\secbot.dm"
+#include "code\modules\mob\living\bot\SLed209bot.dm"
+#include "code\modules\mob\living\carbon\breathe.dm"
+#include "code\modules\mob\living\carbon\carbon.dm"
+#include "code\modules\mob\living\carbon\carbon_defense.dm"
+#include "code\modules\mob\living\carbon\carbon_defines.dm"
+#include "code\modules\mob\living\carbon\carbon_powers.dm"
+#include "code\modules\mob\living\carbon\give.dm"
+#include "code\modules\mob\living\carbon\lick_wounds.dm"
+#include "code\modules\mob\living\carbon\resist.dm"
+#include "code\modules\mob\living\carbon\shock.dm"
+#include "code\modules\mob\living\carbon\taste.dm"
+#include "code\modules\mob\living\carbon\viruses.dm"
+#include "code\modules\mob\living\carbon\alien\alien.dm"
+#include "code\modules\mob\living\carbon\alien\alien_attacks.dm"
+#include "code\modules\mob\living\carbon\alien\alien_damage.dm"
+#include "code\modules\mob\living\carbon\alien\death.dm"
+#include "code\modules\mob\living\carbon\alien\emote.dm"
+#include "code\modules\mob\living\carbon\alien\life.dm"
+#include "code\modules\mob\living\carbon\alien\progression.dm"
+#include "code\modules\mob\living\carbon\alien\update_icons.dm"
+#include "code\modules\mob\living\carbon\alien\diona\diona.dm"
+#include "code\modules\mob\living\carbon\alien\diona\diona_attacks.dm"
+#include "code\modules\mob\living\carbon\alien\diona\diona_powers.dm"
+#include "code\modules\mob\living\carbon\alien\diona\life.dm"
+#include "code\modules\mob\living\carbon\alien\diona\progression.dm"
+#include "code\modules\mob\living\carbon\alien\diona\say_understands.dm"
+#include "code\modules\mob\living\carbon\alien\diona\update_icons.dm"
+#include "code\modules\mob\living\carbon\alien\larva\larva.dm"
+#include "code\modules\mob\living\carbon\alien\larva\life.dm"
+#include "code\modules\mob\living\carbon\alien\larva\progression.dm"
+#include "code\modules\mob\living\carbon\brain\brain.dm"
+#include "code\modules\mob\living\carbon\brain\death.dm"
+#include "code\modules\mob\living\carbon\brain\emote.dm"
+#include "code\modules\mob\living\carbon\brain\life.dm"
+#include "code\modules\mob\living\carbon\brain\login.dm"
+#include "code\modules\mob\living\carbon\brain\MMI.dm"
+#include "code\modules\mob\living\carbon\brain\robot.dm"
+#include "code\modules\mob\living\carbon\brain\say.dm"
+#include "code\modules\mob\living\carbon\human\appearance.dm"
+#include "code\modules\mob\living\carbon\human\death.dm"
+#include "code\modules\mob\living\carbon\human\death_vr.dm"
+#include "code\modules\mob\living\carbon\human\emote.dm"
+#include "code\modules\mob\living\carbon\human\emote_vr.dm"
+#include "code\modules\mob\living\carbon\human\examine.dm"
+#include "code\modules\mob\living\carbon\human\examine_vr.dm"
+#include "code\modules\mob\living\carbon\human\gradient.dm"
+#include "code\modules\mob\living\carbon\human\human.dm"
+#include "code\modules\mob\living\carbon\human\human_attackhand.dm"
+#include "code\modules\mob\living\carbon\human\human_damage.dm"
+#include "code\modules\mob\living\carbon\human\human_defense.dm"
+#include "code\modules\mob\living\carbon\human\human_defines.dm"
+#include "code\modules\mob\living\carbon\human\human_defines_vr.dm"
+#include "code\modules\mob\living\carbon\human\human_helpers.dm"
+#include "code\modules\mob\living\carbon\human\human_helpers_vr.dm"
+#include "code\modules\mob\living\carbon\human\human_modular_limbs.dm"
+#include "code\modules\mob\living\carbon\human\human_movement.dm"
+#include "code\modules\mob\living\carbon\human\human_organs.dm"
+#include "code\modules\mob\living\carbon\human\human_powers.dm"
+#include "code\modules\mob\living\carbon\human\human_powers_vr.dm"
+#include "code\modules\mob\living\carbon\human\human_resist.dm"
+#include "code\modules\mob\living\carbon\human\human_species.dm"
+#include "code\modules\mob\living\carbon\human\human_species_vr.dm"
+#include "code\modules\mob\living\carbon\human\human_vr.dm"
+#include "code\modules\mob\living\carbon\human\inventory.dm"
+#include "code\modules\mob\living\carbon\human\life.dm"
+#include "code\modules\mob\living\carbon\human\life_vr.dm"
+#include "code\modules\mob\living\carbon\human\login.dm"
+#include "code\modules\mob\living\carbon\human\logout.dm"
+#include "code\modules\mob\living\carbon\human\MedicalSideEffects.dm"
+#include "code\modules\mob\living\carbon\human\npcs.dm"
+#include "code\modules\mob\living\carbon\human\say.dm"
+#include "code\modules\mob\living\carbon\human\stripping.dm"
+#include "code\modules\mob\living\carbon\human\unarmed_attack.dm"
+#include "code\modules\mob\living\carbon\human\update_icons.dm"
+#include "code\modules\mob\living\carbon\human\ai_controlled\ai_controlled.dm"
+#include "code\modules\mob\living\carbon\human\descriptors\_descriptors.dm"
+#include "code\modules\mob\living\carbon\human\descriptors\descriptors_generic.dm"
+#include "code\modules\mob\living\carbon\human\descriptors\descriptors_skrell.dm"
+#include "code\modules\mob\living\carbon\human\descriptors\descriptors_vox.dm"
+#include "code\modules\mob\living\carbon\human\species\species.dm"
+#include "code\modules\mob\living\carbon\human\species\species_attack.dm"
+#include "code\modules\mob\living\carbon\human\species\species_attack_vr.dm"
+#include "code\modules\mob\living\carbon\human\species\species_getters.dm"
+#include "code\modules\mob\living\carbon\human\species\species_getters_vr.dm"
+#include "code\modules\mob\living\carbon\human\species\species_helpers.dm"
+#include "code\modules\mob\living\carbon\human\species\species_hud.dm"
+#include "code\modules\mob\living\carbon\human\species\species_shapeshift.dm"
+#include "code\modules\mob\living\carbon\human\species\species_shapeshift_vr.dm"
+#include "code\modules\mob\living\carbon\human\species\species_vr.dm"
+#include "code\modules\mob\living\carbon\human\species\outsider\event.dm"
+#include "code\modules\mob\living\carbon\human\species\outsider\replicant.dm"
+#include "code\modules\mob\living\carbon\human\species\outsider\shadow.dm"
+#include "code\modules\mob\living\carbon\human\species\outsider\skeleton.dm"
+#include "code\modules\mob\living\carbon\human\species\outsider\vox.dm"
+#include "code\modules\mob\living\carbon\human\species\outsider\vox_vr.dm"
+#include "code\modules\mob\living\carbon\human\species\shadekin\_defines.dm"
+#include "code\modules\mob\living\carbon\human\species\shadekin\shadekin.dm"
+#include "code\modules\mob\living\carbon\human\species\shadekin\shadekin_abilities.dm"
+#include "code\modules\mob\living\carbon\human\species\shadekin\shadekin_hud.dm"
+#include "code\modules\mob\living\carbon\human\species\shadekin\shadekin_trait.dm"
+#include "code\modules\mob\living\carbon\human\species\station\alraune.dm"
+#include "code\modules\mob\living\carbon\human\species\station\blank_vr.dm"
+#include "code\modules\mob\living\carbon\human\species\station\golem.dm"
+#include "code\modules\mob\living\carbon\human\species\station\human_subspecies.dm"
+#include "code\modules\mob\living\carbon\human\species\station\monkey.dm"
+#include "code\modules\mob\living\carbon\human\species\station\monkey_vr.dm"
+#include "code\modules\mob\living\carbon\human\species\station\prometheans.dm"
+#include "code\modules\mob\living\carbon\human\species\station\prometheans_vr.dm"
+#include "code\modules\mob\living\carbon\human\species\station\station.dm"
+#include "code\modules\mob\living\carbon\human\species\station\station_special_abilities_vr.dm"
+#include "code\modules\mob\living\carbon\human\species\station\station_special_vr.dm"
+#include "code\modules\mob\living\carbon\human\species\station\station_vr.dm"
+#include "code\modules\mob\living\carbon\human\species\station\teshari.dm"
+#include "code\modules\mob\living\carbon\human\species\station\teshari_vr.dm"
+#include "code\modules\mob\living\carbon\human\species\station\xenochimera_hud_vr.dm"
+#include "code\modules\mob\living\carbon\human\species\station\xenochimera_trait_vr.dm"
+#include "code\modules\mob\living\carbon\human\species\station\protean_vr\_protean_defines.dm"
+#include "code\modules\mob\living\carbon\human\species\station\protean_vr\protean_blob.dm"
+#include "code\modules\mob\living\carbon\human\species\station\protean_vr\protean_powers.dm"
+#include "code\modules\mob\living\carbon\human\species\station\protean_vr\protean_species.dm"
+#include "code\modules\mob\living\carbon\human\species\station\traits_vr\negative.dm"
+#include "code\modules\mob\living\carbon\human\species\station\traits_vr\neutral.dm"
+#include "code\modules\mob\living\carbon\human\species\station\traits_vr\positive.dm"
+#include "code\modules\mob\living\carbon\human\species\station\traits_vr\trait.dm"
+#include "code\modules\mob\living\carbon\human\species\station\traits_vr\weaver_objs.dm"
+#include "code\modules\mob\living\carbon\human\species\station\traits_vr\weaver_recipies.dm"
+#include "code\modules\mob\living\carbon\human\species\virtual_reality\avatar.dm"
+#include "code\modules\mob\living\carbon\human\species\virtual_reality\opaque_form.dm"
+#include "code\modules\mob\living\carbon\human\species\xenomorphs\alien_powers.dm"
+#include "code\modules\mob\living\carbon\human\species\xenomorphs\alien_species.dm"
+#include "code\modules\mob\living\carbon\human\species\xenomorphs\xenomorphs.dm"
+#include "code\modules\mob\living\silicon\death.dm"
+#include "code\modules\mob\living\silicon\emote.dm"
+#include "code\modules\mob\living\silicon\laws.dm"
+#include "code\modules\mob\living\silicon\login.dm"
+#include "code\modules\mob\living\silicon\say.dm"
+#include "code\modules\mob\living\silicon\silicon.dm"
+#include "code\modules\mob\living\silicon\silicon_vr.dm"
+#include "code\modules\mob\living\silicon\subystems.dm"
+#include "code\modules\mob\living\silicon\ai\ai.dm"
+#include "code\modules\mob\living\silicon\ai\ai_movement.dm"
+#include "code\modules\mob\living\silicon\ai\ai_remote_control.dm"
+#include "code\modules\mob\living\silicon\ai\ai_vr.dm"
+#include "code\modules\mob\living\silicon\ai\death.dm"
+#include "code\modules\mob\living\silicon\ai\examine.dm"
+#include "code\modules\mob\living\silicon\ai\icons.dm"
+#include "code\modules\mob\living\silicon\ai\latejoin.dm"
+#include "code\modules\mob\living\silicon\ai\laws.dm"
+#include "code\modules\mob\living\silicon\ai\life.dm"
+#include "code\modules\mob\living\silicon\ai\login.dm"
+#include "code\modules\mob\living\silicon\ai\logout.dm"
+#include "code\modules\mob\living\silicon\ai\malf.dm"
+#include "code\modules\mob\living\silicon\ai\multicam.dm"
+#include "code\modules\mob\living\silicon\decoy\death.dm"
+#include "code\modules\mob\living\silicon\decoy\decoy.dm"
+#include "code\modules\mob\living\silicon\decoy\life.dm"
+#include "code\modules\mob\living\silicon\pai\admin.dm"
+#include "code\modules\mob\living\silicon\pai\death.dm"
+#include "code\modules\mob\living\silicon\pai\examine.dm"
+#include "code\modules\mob\living\silicon\pai\life.dm"
+#include "code\modules\mob\living\silicon\pai\pai.dm"
+#include "code\modules\mob\living\silicon\pai\pai_vr.dm"
+#include "code\modules\mob\living\silicon\pai\personality.dm"
+#include "code\modules\mob\living\silicon\pai\recruit.dm"
+#include "code\modules\mob\living\silicon\pai\say.dm"
+#include "code\modules\mob\living\silicon\pai\software.dm"
+#include "code\modules\mob\living\silicon\pai\software_modules.dm"
+#include "code\modules\mob\living\silicon\robot\analyzer.dm"
+#include "code\modules\mob\living\silicon\robot\component.dm"
+#include "code\modules\mob\living\silicon\robot\custom_sprites.dm"
+#include "code\modules\mob\living\silicon\robot\death.dm"
+#include "code\modules\mob\living\silicon\robot\emote.dm"
+#include "code\modules\mob\living\silicon\robot\examine.dm"
+#include "code\modules\mob\living\silicon\robot\examine_vr.dm"
+#include "code\modules\mob\living\silicon\robot\inventory.dm"
+#include "code\modules\mob\living\silicon\robot\laws.dm"
+#include "code\modules\mob\living\silicon\robot\life.dm"
+#include "code\modules\mob\living\silicon\robot\login.dm"
+#include "code\modules\mob\living\silicon\robot\photos.dm"
+#include "code\modules\mob\living\silicon\robot\robot.dm"
+#include "code\modules\mob\living\silicon\robot\robot_animation_vr.dm"
+#include "code\modules\mob\living\silicon\robot\robot_damage.dm"
+#include "code\modules\mob\living\silicon\robot\robot_items.dm"
+#include "code\modules\mob\living\silicon\robot\robot_movement.dm"
+#include "code\modules\mob\living\silicon\robot\robot_remote_control.dm"
+#include "code\modules\mob\living\silicon\robot\robot_vr.dm"
+#include "code\modules\mob\living\silicon\robot\syndicate.dm"
+#include "code\modules\mob\living\silicon\robot\dogborg\dog_modules_vr.dm"
+#include "code\modules\mob\living\silicon\robot\dogborg\dog_sleeper_vr.dm"
+#include "code\modules\mob\living\silicon\robot\drone\drone.dm"
+#include "code\modules\mob\living\silicon\robot\drone\drone_abilities.dm"
+#include "code\modules\mob\living\silicon\robot\drone\drone_console.dm"
+#include "code\modules\mob\living\silicon\robot\drone\drone_damage.dm"
+#include "code\modules\mob\living\silicon\robot\drone\drone_items.dm"
+#include "code\modules\mob\living\silicon\robot\drone\drone_manufacturer.dm"
+#include "code\modules\mob\living\silicon\robot\drone\drone_say.dm"
+#include "code\modules\mob\living\silicon\robot\drone\drone_vr.dm"
+#include "code\modules\mob\living\silicon\robot\drone\swarm.dm"
+#include "code\modules\mob\living\silicon\robot\drone\swarm_abilities.dm"
+#include "code\modules\mob\living\silicon\robot\drone\swarm_items.dm"
+#include "code\modules\mob\living\silicon\robot\robot_modules\event.dm"
+#include "code\modules\mob\living\silicon\robot\robot_modules\event_vr.dm"
+#include "code\modules\mob\living\silicon\robot\robot_modules\station.dm"
+#include "code\modules\mob\living\silicon\robot\robot_modules\station_vr.dm"
+#include "code\modules\mob\living\silicon\robot\robot_modules\swarm.dm"
+#include "code\modules\mob\living\silicon\robot\robot_modules\syndicate.dm"
+#include "code\modules\mob\living\silicon\robot\subtypes\gravekeeper.dm"
+#include "code\modules\mob\living\silicon\robot\subtypes\lost_drone.dm"
+#include "code\modules\mob\living\silicon\robot\subtypes\lost_drone_vr.dm"
+#include "code\modules\mob\living\silicon\robot\subtypes\syndicate.dm"
+#include "code\modules\mob\living\silicon\robot\subtypes\thinktank\_thinktank.dm"
+#include "code\modules\mob\living\silicon\robot\subtypes\thinktank\thinktank_icon.dm"
+#include "code\modules\mob\living\silicon\robot\subtypes\thinktank\thinktank_interactions.dm"
+#include "code\modules\mob\living\silicon\robot\subtypes\thinktank\thinktank_module.dm"
+#include "code\modules\mob\living\silicon\robot\subtypes\thinktank\thinktank_storage.dm"
+#include "code\modules\mob\living\silicon\robot\subtypes\thinktank\thinktank_subtypes.dm"
+#include "code\modules\mob\living\simple_mob\appearance.dm"
+#include "code\modules\mob\living\simple_mob\butchering.dm"
+#include "code\modules\mob\living\simple_mob\combat.dm"
+#include "code\modules\mob\living\simple_mob\defense.dm"
+#include "code\modules\mob\living\simple_mob\donteatpets_vr.dm"
+#include "code\modules\mob\living\simple_mob\hands.dm"
+#include "code\modules\mob\living\simple_mob\harvesting.dm"
+#include "code\modules\mob\living\simple_mob\life.dm"
+#include "code\modules\mob\living\simple_mob\on_click.dm"
+#include "code\modules\mob\living\simple_mob\simple_hud.dm"
+#include "code\modules\mob\living\simple_mob\simple_mob.dm"
+#include "code\modules\mob\living\simple_mob\simple_mob_vr.dm"
+#include "code\modules\mob\living\simple_mob\taming.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\animal.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\borer\borer.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\borer\borer_captive.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\borer\borer_powers.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\farm animals\chicken.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\farm animals\cow.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\farm animals\goat.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\giant_spider\_giant_spider.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\giant_spider\carrier.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\giant_spider\electric.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\giant_spider\frost.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\giant_spider\giant_spider_vr.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\giant_spider\hunter.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\giant_spider\lurker.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\giant_spider\nurse.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\giant_spider\pepper.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\giant_spider\phorogenic.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\giant_spider\thermic.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\giant_spider\tunneler.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\giant_spider\webslinger.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\passive\crab.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\passive\fish.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\passive\fish_vr.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\passive\jerboa_vr.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\passive\lizard.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\passive\misc.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\passive\mouse.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\passive\mouse_vr.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\passive\passive.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\passive\penguin.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\passive\possum.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\pets\bird.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\pets\bird_vr.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\pets\cat.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\pets\cat_vr.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\pets\dog.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\pets\fox_vr.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\pets\parrot.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\diyaab.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\duck.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\fluffy_vr.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\frostfly.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\glitterfly.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\hare.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\hooligan_crab.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\kururak.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\leech.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\moth.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\pillbug.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\racoon.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\savik.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\shantak.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\sif.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\siffet.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\space\alien.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\space\bats.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\space\bear.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\space\carp.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\space\carp_vr.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\space\gaslamp_vr.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\space\goose.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\space\goose_vr.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\space\snake_vr.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\space\space.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\space\space_vr.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\space\worm.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\blob\blob.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\blob\spore.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\horror\bradley.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\horror\Eddy.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\horror\horror .dm"
+#include "code\modules\mob\living\simple_mob\subtypes\horror\Master.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\horror\Rickey.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\horror\sally.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\horror\shittytim.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\horror\Smiley.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\horror\Steve.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\horror\timling.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\horror\Willy.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\humanoid\clown.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\humanoid\humanoid.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\humanoid\humanoid_vr.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\humanoid\pirates.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\humanoid\russian.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\humanoid\mercs\mercs.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\humanoid\mercs\mercs_vr.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\illusion\illusion.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\mechanical\corrupt_maint_drone_vr.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\mechanical\disbot_vr.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\mechanical\golem.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\mechanical\golem_vr.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\mechanical\mechanical.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\mechanical\mechanical_vr.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\mechanical\viscerator.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\mechanical\wahlem_vr.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\mechanical\drones\combat_drone.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\mechanical\drones\mining_drone.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\mechanical\hivebot\hivebot.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\mechanical\hivebot\hivebot_vr.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\mechanical\hivebot\ranged_damage.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\mechanical\hivebot\ranged_damage_vr.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\mechanical\hivebot\support.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\mechanical\hivebot\support_vr.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\mechanical\hivebot\tank.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\mechanical\mecha\adv_dark_gygax.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\mechanical\mecha\adv_dark_gygax_vr.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\mechanical\mecha\combat_mecha.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\mechanical\mecha\durand.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\mechanical\mecha\gygax.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\mechanical\mecha\hoverpod.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\mechanical\mecha\marauder.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\mechanical\mecha\mecha.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\mechanical\mecha\odysseus.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\mechanical\mecha\phazon.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\mechanical\mecha\ripley.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\mechanical\ward\monitor_ward.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\mechanical\ward\ward.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\occult\creature.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\occult\faithless.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\occult\constructs\_construct.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\occult\constructs\artificer.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\occult\constructs\harvester.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\occult\constructs\juggernaut.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\occult\constructs\shade.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\occult\constructs\wraith.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\plant\tomato.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\plant\tree.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\slime\slime.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\slime\slime_vr.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\slime\feral\feral.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\slime\feral\feral_vr.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\slime\xenobio\combat.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\slime\xenobio\consumption.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\slime\xenobio\defense.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\slime\xenobio\discipline.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\slime\xenobio\subtypes.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\slime\xenobio\subtypes_vr.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\slime\xenobio\xenobio.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\bee.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\c_pet.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\catgirl.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\cookiegirl.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\corrupt_hounds.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\deathclaw.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\dino.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\dragon.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\fennec.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\fennix.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\frog.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\hippo.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\horse.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\jelly.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\lamia.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\mimic.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\oregrub.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\otie.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\panther.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\rabbit.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\rat.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\redpanda.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\sect_drone.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\sect_queen.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\snake.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\softdog.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\solargrub.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\solargrub_larva.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\vore.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\weretiger.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\wolf.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\wolfgirl.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\xeno_vore.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\zz_vore_overrides.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\demon\_defines.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\demon\demon.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\demon\demon_abilities.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\demon\demon_subtypes.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\demon\~defines.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\mobs_monsters\clowns\Big.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\mobs_monsters\clowns\bigclowns.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\mobs_monsters\clowns\bus.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\mobs_monsters\clowns\busclowns.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\mobs_monsters\clowns\c_shift.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\mobs_monsters\clowns\Clowns.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\mobs_monsters\clowns\hespawner.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\mobs_monsters\clowns\honkelemental.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\mobs_monsters\clowns\regularclowns.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\morph\morph.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\shadekin\ability_objects.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\shadekin\ability_procs.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\shadekin\shadekin.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\shadekin\types.dm"
+#include "code\modules\mob\living\voice\voice.dm"
+#include "code\modules\mob\living\voice\voice_vr.dm"
+#include "code\modules\mob\new_player\login.dm"
+#include "code\modules\mob\new_player\login_vr.dm"
+#include "code\modules\mob\new_player\logout.dm"
+#include "code\modules\mob\new_player\new_player.dm"
+#include "code\modules\mob\new_player\new_player_vr.dm"
+#include "code\modules\mob\new_player\news.dm"
+#include "code\modules\mob\new_player\poll.dm"
+#include "code\modules\mob\new_player\preferences_setup.dm"
+#include "code\modules\mob\new_player\preferences_setup_vr.dm"
+#include "code\modules\mob\new_player\skill.dm"
+#include "code\modules\mob\new_player\sprite_accessories.dm"
+#include "code\modules\mob\new_player\sprite_accessories_ear.dm"
+#include "code\modules\mob\new_player\sprite_accessories_ear_vr.dm"
+#include "code\modules\mob\new_player\sprite_accessories_extra.dm"
+#include "code\modules\mob\new_player\sprite_accessories_extra_vr.dm"
+#include "code\modules\mob\new_player\sprite_accessories_tail.dm"
+#include "code\modules\mob\new_player\sprite_accessories_tail_vr.dm"
+#include "code\modules\mob\new_player\sprite_accessories_taur.dm"
+#include "code\modules\mob\new_player\sprite_accessories_taur_vr.dm"
+#include "code\modules\mob\new_player\sprite_accessories_vr.dm"
+#include "code\modules\mob\new_player\sprite_accessories_wing.dm"
+#include "code\modules\mob\new_player\sprite_accessories_wing_vr.dm"
+#include "code\modules\modular_computers\laptop_vendor.dm"
+#include "code\modules\modular_computers\computers\modular_computer\core.dm"
+#include "code\modules\modular_computers\computers\modular_computer\damage.dm"
+#include "code\modules\modular_computers\computers\modular_computer\hardware.dm"
+#include "code\modules\modular_computers\computers\modular_computer\interaction.dm"
+#include "code\modules\modular_computers\computers\modular_computer\power.dm"
+#include "code\modules\modular_computers\computers\modular_computer\ui.dm"
+#include "code\modules\modular_computers\computers\modular_computer\variables.dm"
+#include "code\modules\modular_computers\computers\subtypes\dev_console.dm"
+#include "code\modules\modular_computers\computers\subtypes\dev_laptop.dm"
+#include "code\modules\modular_computers\computers\subtypes\dev_tablet.dm"
+#include "code\modules\modular_computers\computers\subtypes\dev_telescreen.dm"
+#include "code\modules\modular_computers\computers\subtypes\preset_console.dm"
+#include "code\modules\modular_computers\computers\subtypes\preset_laptop.dm"
+#include "code\modules\modular_computers\computers\subtypes\preset_laptop_vr.dm"
+#include "code\modules\modular_computers\computers\subtypes\preset_tablet.dm"
+#include "code\modules\modular_computers\computers\subtypes\preset_tablet_vr.dm"
+#include "code\modules\modular_computers\computers\subtypes\preset_telescreen.dm"
+#include "code\modules\modular_computers\file_system\computer_file.dm"
+#include "code\modules\modular_computers\file_system\data.dm"
+#include "code\modules\modular_computers\file_system\news_article.dm"
+#include "code\modules\modular_computers\file_system\program.dm"
+#include "code\modules\modular_computers\file_system\program_events.dm"
+#include "code\modules\modular_computers\file_system\programs\antagonist\access_decrypter.dm"
+#include "code\modules\modular_computers\file_system\programs\antagonist\dos.dm"
+#include "code\modules\modular_computers\file_system\programs\antagonist\hacked_camera.dm"
+#include "code\modules\modular_computers\file_system\programs\antagonist\revelation.dm"
+#include "code\modules\modular_computers\file_system\programs\command\card.dm"
+#include "code\modules\modular_computers\file_system\programs\command\comm.dm"
+#include "code\modules\modular_computers\file_system\programs\engineering\alarm_monitor.dm"
+#include "code\modules\modular_computers\file_system\programs\engineering\atmos_control.dm"
+#include "code\modules\modular_computers\file_system\programs\engineering\power_monitor.dm"
+#include "code\modules\modular_computers\file_system\programs\engineering\rcon_console.dm"
+#include "code\modules\modular_computers\file_system\programs\engineering\shutoff_monitor.dm"
+#include "code\modules\modular_computers\file_system\programs\engineering\supermatter_monitor.dm"
+#include "code\modules\modular_computers\file_system\programs\generic\camera.dm"
+#include "code\modules\modular_computers\file_system\programs\generic\configurator.dm"
+#include "code\modules\modular_computers\file_system\programs\generic\email_client.dm"
+#include "code\modules\modular_computers\file_system\programs\generic\file_browser.dm"
+#include "code\modules\modular_computers\file_system\programs\generic\game.dm"
+#include "code\modules\modular_computers\file_system\programs\generic\news_browser.dm"
+#include "code\modules\modular_computers\file_system\programs\generic\ntdownloader.dm"
+#include "code\modules\modular_computers\file_system\programs\generic\ntnrc_client.dm"
+#include "code\modules\modular_computers\file_system\programs\generic\nttransfer.dm"
+#include "code\modules\modular_computers\file_system\programs\generic\uav.dm"
+#include "code\modules\modular_computers\file_system\programs\generic\wordprocessor.dm"
+#include "code\modules\modular_computers\file_system\programs\medical\suit_sensors.dm"
+#include "code\modules\modular_computers\file_system\programs\research\email_administration.dm"
+#include "code\modules\modular_computers\file_system\programs\research\ntmonitor.dm"
+#include "code\modules\modular_computers\file_system\programs\security\alarm_monitor.dm"
+#include "code\modules\modular_computers\file_system\programs\security\digitalwarrant.dm"
+#include "code\modules\modular_computers\file_system\programs\ships\navigation.dm"
+#include "code\modules\modular_computers\hardware\_hardware.dm"
+#include "code\modules\modular_computers\hardware\battery_module.dm"
+#include "code\modules\modular_computers\hardware\card_slot.dm"
+#include "code\modules\modular_computers\hardware\hard_drive.dm"
+#include "code\modules\modular_computers\hardware\nano_printer.dm"
+#include "code\modules\modular_computers\hardware\network_card.dm"
+#include "code\modules\modular_computers\hardware\portable_hard_drive.dm"
+#include "code\modules\modular_computers\hardware\processor_unit.dm"
+#include "code\modules\modular_computers\hardware\tesla_link.dm"
+#include "code\modules\modular_computers\NTNet\NTNet.dm"
+#include "code\modules\modular_computers\NTNet\NTNet_relay.dm"
+#include "code\modules\modular_computers\NTNet\emails\email_account.dm"
+#include "code\modules\modular_computers\NTNet\emails\email_message.dm"
+#include "code\modules\modular_computers\NTNet\NTNRC\conversation.dm"
+#include "code\modules\multi-tile\multi-tile.dm"
+#include "code\modules\multiz\_stubs.dm"
+#include "code\modules\multiz\admin_upload.dm"
+#include "code\modules\multiz\basic.dm"
+#include "code\modules\multiz\hoist.dm"
+#include "code\modules\multiz\ladder_assembly_vr.dm"
+#include "code\modules\multiz\ladders.dm"
+#include "code\modules\multiz\ladders_vr.dm"
+#include "code\modules\multiz\movement.dm"
+#include "code\modules\multiz\movement_vr.dm"
+#include "code\modules\multiz\pipes.dm"
+#include "code\modules\multiz\stairs.dm"
+#include "code\modules\multiz\turf.dm"
+#include "code\modules\news\news_init.dm"
+#include "code\modules\news\newspaper.dm"
+#include "code\modules\news\newspaper_layout.dm"
+#include "code\modules\nifsoft\nif.dm"
+#include "code\modules\nifsoft\nif_softshop.dm"
+#include "code\modules\nifsoft\nif_tgui.dm"
+#include "code\modules\nifsoft\nifsoft.dm"
+#include "code\modules\nifsoft\software\01_vision.dm"
+#include "code\modules\nifsoft\software\05_health.dm"
+#include "code\modules\nifsoft\software\06_screens.dm"
+#include "code\modules\nifsoft\software\10_combat.dm"
+#include "code\modules\nifsoft\software\13_soulcatcher.dm"
+#include "code\modules\nifsoft\software\14_commlink.dm"
+#include "code\modules\nifsoft\software\15_misc.dm"
+#include "code\modules\organs\blood.dm"
+#include "code\modules\organs\misc.dm"
+#include "code\modules\organs\organ.dm"
+#include "code\modules\organs\organ_external.dm"
+#include "code\modules\organs\organ_external_vr.dm"
+#include "code\modules\organs\organ_icon.dm"
+#include "code\modules\organs\organ_stump.dm"
+#include "code\modules\organs\pain.dm"
+#include "code\modules\organs\robolimbs.dm"
+#include "code\modules\organs\robolimbs_custom.dm"
+#include "code\modules\organs\robolimbs_vr.dm"
+#include "code\modules\organs\wound.dm"
+#include "code\modules\organs\internal\_organ_internal.dm"
+#include "code\modules\organs\internal\appendix.dm"
+#include "code\modules\organs\internal\augment.dm"
+#include "code\modules\organs\internal\brain.dm"
+#include "code\modules\organs\internal\eyes.dm"
+#include "code\modules\organs\internal\heart.dm"
+#include "code\modules\organs\internal\intestine.dm"
+#include "code\modules\organs\internal\kidneys.dm"
+#include "code\modules\organs\internal\liver.dm"
+#include "code\modules\organs\internal\lungs.dm"
+#include "code\modules\organs\internal\spleen.dm"
+#include "code\modules\organs\internal\stomach.dm"
+#include "code\modules\organs\internal\voicebox.dm"
+#include "code\modules\organs\internal\augment\armmounted.dm"
+#include "code\modules\organs\internal\augment\bio.dm"
+#include "code\modules\organs\internal\robotic\diagnostic.dm"
+#include "code\modules\organs\internal\robotic\heatsink.dm"
+#include "code\modules\organs\internal\robotic\robotic.dm"
+#include "code\modules\organs\subtypes\diona.dm"
+#include "code\modules\organs\subtypes\indestructible.dm"
+#include "code\modules\organs\subtypes\machine.dm"
+#include "code\modules\organs\subtypes\nano.dm"
+#include "code\modules\organs\subtypes\replicant.dm"
+#include "code\modules\organs\subtypes\shadekin.dm"
+#include "code\modules\organs\subtypes\shadekin_vr.dm"
+#include "code\modules\organs\subtypes\slime.dm"
+#include "code\modules\organs\subtypes\slime_vr.dm"
+#include "code\modules\organs\subtypes\standard.dm"
+#include "code\modules\organs\subtypes\standard_vr.dm"
+#include "code\modules\organs\subtypes\teshari.dm"
+#include "code\modules\organs\subtypes\unathi.dm"
+#include "code\modules\organs\subtypes\unbreakable.dm"
+#include "code\modules\organs\subtypes\unseverable.dm"
+#include "code\modules\organs\subtypes\vox.dm"
+#include "code\modules\organs\subtypes\vox_vr.dm"
+#include "code\modules\organs\subtypes\xenos.dm"
+#include "code\modules\overmap\abductor_vr.dm"
+#include "code\modules\overmap\bluespace_rift_vr.dm"
+#include "code\modules\overmap\champagne.dm"
+#include "code\modules\overmap\helpers.dm"
+#include "code\modules\overmap\overmap_object.dm"
+#include "code\modules\overmap\overmap_planet.dm"
+#include "code\modules\overmap\overmap_shuttle.dm"
+#include "code\modules\overmap\sectors.dm"
+#include "code\modules\overmap\spacetravel.dm"
+#include "code\modules\overmap\turfs.dm"
+#include "code\modules\overmap\disperser\disperser.dm"
+#include "code\modules\overmap\disperser\disperser_charge.dm"
+#include "code\modules\overmap\disperser\disperser_circuit.dm"
+#include "code\modules\overmap\disperser\disperser_console.dm"
+#include "code\modules\overmap\disperser\disperser_fire.dm"
+#include "code\modules\overmap\events\event_handler.dm"
+#include "code\modules\overmap\events\generation.dm"
+#include "code\modules\overmap\events\overmap_event.dm"
+#include "code\modules\overmap\ships\landable.dm"
+#include "code\modules\overmap\ships\panicbutton.dm"
+#include "code\modules\overmap\ships\ship.dm"
+#include "code\modules\overmap\ships\computers\computer_shims.dm"
+#include "code\modules\overmap\ships\computers\engine_control.dm"
+#include "code\modules\overmap\ships\computers\helm.dm"
+#include "code\modules\overmap\ships\computers\sensors.dm"
+#include "code\modules\overmap\ships\computers\ship.dm"
+#include "code\modules\overmap\ships\computers\ship_vr.dm"
+#include "code\modules\overmap\ships\computers\shuttle.dm"
+#include "code\modules\overmap\ships\engines\engine.dm"
+#include "code\modules\overmap\ships\engines\gas_thruster.dm"
+#include "code\modules\overmap\ships\engines\gas_thruster_vr.dm"
+#include "code\modules\overmap\ships\engines\ion_thruster.dm"
+#include "code\modules\paperwork\adminpaper.dm"
+#include "code\modules\paperwork\carbonpaper.dm"
+#include "code\modules\paperwork\clipboard.dm"
+#include "code\modules\paperwork\faxmachine.dm"
+#include "code\modules\paperwork\faxmachine_vr.dm"
+#include "code\modules\paperwork\filingcabinet.dm"
+#include "code\modules\paperwork\folders.dm"
+#include "code\modules\paperwork\handlabeler.dm"
+#include "code\modules\paperwork\paper.dm"
+#include "code\modules\paperwork\paper_bundle.dm"
+#include "code\modules\paperwork\paper_sticky.dm"
+#include "code\modules\paperwork\paperbin.dm"
+#include "code\modules\paperwork\paperplane.dm"
+#include "code\modules\paperwork\papershredder.dm"
+#include "code\modules\paperwork\pen.dm"
+#include "code\modules\paperwork\photocopier.dm"
+#include "code\modules\paperwork\photography.dm"
+#include "code\modules\paperwork\silicon_photography.dm"
+#include "code\modules\paperwork\stamps.dm"
+#include "code\modules\pda\ai.dm"
+#include "code\modules\pda\app.dm"
+#include "code\modules\pda\cart.dm"
+#include "code\modules\pda\cart_apps.dm"
+#include "code\modules\pda\cart_vr.dm"
+#include "code\modules\pda\core_apps.dm"
+#include "code\modules\pda\messenger.dm"
+#include "code\modules\pda\messenger_plugins.dm"
+#include "code\modules\pda\pda.dm"
+#include "code\modules\pda\pda_subtypes.dm"
+#include "code\modules\pda\pda_tgui.dm"
+#include "code\modules\pda\pda_vr.dm"
+#include "code\modules\pda\radio.dm"
+#include "code\modules\pda\utilities.dm"
+#include "code\modules\persistence\filth.dm"
+#include "code\modules\persistence\graffiti.dm"
+#include "code\modules\persistence\noticeboard.dm"
+#include "code\modules\persistence\paintings.dm"
+#include "code\modules\persistence\serialize.dm"
+#include "code\modules\persistence\datum\persistence_datum.dm"
+#include "code\modules\persistence\effects\filth.dm"
+#include "code\modules\persistence\effects\graffiti.dm"
+#include "code\modules\persistence\effects\paper.dm"
+#include "code\modules\persistence\effects\paper_sticky.dm"
+#include "code\modules\persistence\effects\trash.dm"
+#include "code\modules\persistence\storage\smartfridge.dm"
+#include "code\modules\persistence\storage\storage.dm"
+#include "code\modules\planet\planet.dm"
+#include "code\modules\planet\sun.dm"
+#include "code\modules\planet\time.dm"
+#include "code\modules\planet\virgo3b_vr.dm"
+#include "code\modules\planet\virgo4_vr.dm"
+#include "code\modules\planet\weather.dm"
+#include "code\modules\planet\weather_vr.dm"
+#include "code\modules\power\apc.dm"
+#include "code\modules\power\apc_vr.dm"
+#include "code\modules\power\batteryrack.dm"
+#include "code\modules\power\batteryrack_vr.dm"
+#include "code\modules\power\breaker_box.dm"
+#include "code\modules\power\cable.dm"
+#include "code\modules\power\cable_ender.dm"
+#include "code\modules\power\cable_heavyduty.dm"
+#include "code\modules\power\cell.dm"
+#include "code\modules\power\debug_items.dm"
+#include "code\modules\power\generator.dm"
+#include "code\modules\power\gravitygenerator_vr.dm"
+#include "code\modules\power\grid_checker.dm"
+#include "code\modules\power\lighting.dm"
+#include "code\modules\power\lighting_vr.dm"
+#include "code\modules\power\lightswitch_vr.dm"
+#include "code\modules\power\port_gen.dm"
+#include "code\modules\power\port_gen_vr.dm"
+#include "code\modules\power\power.dm"
+#include "code\modules\power\powernet.dm"
+#include "code\modules\power\smes.dm"
+#include "code\modules\power\smes_construction.dm"
+#include "code\modules\power\smes_vr.dm"
+#include "code\modules\power\solar.dm"
+#include "code\modules\power\terminal.dm"
+#include "code\modules\power\tracker.dm"
+#include "code\modules\power\turbine.dm"
+#include "code\modules\power\antimatter\containment_jar.dm"
+#include "code\modules\power\antimatter\control.dm"
+#include "code\modules\power\antimatter\shielding.dm"
+#include "code\modules\power\cells\device_cells.dm"
+#include "code\modules\power\cells\device_cells_vr.dm"
+#include "code\modules\power\cells\esoteric_cells.dm"
+#include "code\modules\power\cells\power_cells.dm"
+#include "code\modules\power\fusion\_setup.dm"
+#include "code\modules\power\fusion\fusion_circuits.dm"
+#include "code\modules\power\fusion\fusion_particle_catcher.dm"
+#include "code\modules\power\fusion\fusion_reactions.dm"
+#include "code\modules\power\fusion\magpower.dm"
+#include "code\modules\power\fusion\core\_core.dm"
+#include "code\modules\power\fusion\core\core_control.dm"
+#include "code\modules\power\fusion\core\core_field.dm"
+#include "code\modules\power\fusion\fuel_assembly\fuel_assembly.dm"
+#include "code\modules\power\fusion\fuel_assembly\fuel_compressor.dm"
+#include "code\modules\power\fusion\fuel_assembly\fuel_control.dm"
+#include "code\modules\power\fusion\fuel_assembly\fuel_injector.dm"
+#include "code\modules\power\fusion\gyrotron\gyrotron.dm"
+#include "code\modules\power\fusion\gyrotron\gyrotron_control.dm"
+#include "code\modules\power\sensors\powernet_sensor.dm"
+#include "code\modules\power\sensors\sensor_monitoring.dm"
+#include "code\modules\power\singularity\act.dm"
+#include "code\modules\power\singularity\collector.dm"
+#include "code\modules\power\singularity\containment_field.dm"
+#include "code\modules\power\singularity\emitter.dm"
+#include "code\modules\power\singularity\emitter_vr.dm"
+#include "code\modules\power\singularity\field_generator.dm"
+#include "code\modules\power\singularity\generator.dm"
+#include "code\modules\power\singularity\investigate.dm"
+#include "code\modules\power\singularity\singularity.dm"
+#include "code\modules\power\singularity\particle_accelerator\particle.dm"
+#include "code\modules\power\singularity\particle_accelerator\particle_accelerator.dm"
+#include "code\modules\power\singularity\particle_accelerator\particle_chamber.dm"
+#include "code\modules\power\singularity\particle_accelerator\particle_control.dm"
+#include "code\modules\power\singularity\particle_accelerator\particle_emitter.dm"
+#include "code\modules\power\singularity\particle_accelerator\particle_power.dm"
+#include "code\modules\power\singularity\particle_accelerator\particle_smasher.dm"
+#include "code\modules\power\supermatter\setup_supermatter.dm"
+#include "code\modules\power\supermatter\supermatter.dm"
+#include "code\modules\power\tesla\coil.dm"
+#include "code\modules\power\tesla\energy_ball.dm"
+#include "code\modules\power\tesla\generator.dm"
+#include "code\modules\power\tesla\telsa_construction.dm"
+#include "code\modules\power\tesla\tesla_act.dm"
+#include "code\modules\projectiles\ammunition.dm"
+#include "code\modules\projectiles\broken.dm"
+#include "code\modules\projectiles\dnalocking.dm"
+#include "code\modules\projectiles\gun.dm"
+#include "code\modules\projectiles\projectile.dm"
+#include "code\modules\projectiles\ammunition\magazines.dm"
+#include "code\modules\projectiles\ammunition\magazines_vr.dm"
+#include "code\modules\projectiles\ammunition\magnetic.dm"
+#include "code\modules\projectiles\ammunition\rounds.dm"
+#include "code\modules\projectiles\ammunition\smartmag.dm"
+#include "code\modules\projectiles\brokenguns\energy.dm"
+#include "code\modules\projectiles\brokenguns\launcher.dm"
+#include "code\modules\projectiles\brokenguns\magnetic.dm"
+#include "code\modules\projectiles\brokenguns\projectile.dm"
+#include "code\modules\projectiles\guns\energy.dm"
+#include "code\modules\projectiles\guns\launcher.dm"
+#include "code\modules\projectiles\guns\magic.dm"
+#include "code\modules\projectiles\guns\modular_guns.dm"
+#include "code\modules\projectiles\guns\projectile.dm"
+#include "code\modules\projectiles\guns\vox.dm"
+#include "code\modules\projectiles\guns\energy\bsharpoon_vr.dm"
+#include "code\modules\projectiles\guns\energy\crestrose_vr.dm"
+#include "code\modules\projectiles\guns\energy\dominator_vr.dm"
+#include "code\modules\projectiles\guns\energy\gunsword_vr.dm"
+#include "code\modules\projectiles\guns\energy\hooklauncher.dm"
+#include "code\modules\projectiles\guns\energy\kinetic_accelerator_vr.dm"
+#include "code\modules\projectiles\guns\energy\laser.dm"
+#include "code\modules\projectiles\guns\energy\laser_vr.dm"
+#include "code\modules\projectiles\guns\energy\netgun_vr.dm"
+#include "code\modules\projectiles\guns\energy\nuclear.dm"
+#include "code\modules\projectiles\guns\energy\nuclear_vr.dm"
+#include "code\modules\projectiles\guns\energy\particle.dm"
+#include "code\modules\projectiles\guns\energy\phase.dm"
+#include "code\modules\projectiles\guns\energy\protector_vr.dm"
+#include "code\modules\projectiles\guns\energy\pulse.dm"
+#include "code\modules\projectiles\guns\energy\pummeler_vr.dm"
+#include "code\modules\projectiles\guns\energy\sickshot_vr.dm"
+#include "code\modules\projectiles\guns\energy\special.dm"
+#include "code\modules\projectiles\guns\energy\special_vr.dm"
+#include "code\modules\projectiles\guns\energy\stun.dm"
+#include "code\modules\projectiles\guns\energy\stun_vr.dm"
+#include "code\modules\projectiles\guns\energy\temperature.dm"
+#include "code\modules\projectiles\guns\energy\cell_loaded_vr\cell_loaded.dm"
+#include "code\modules\projectiles\guns\energy\cell_loaded_vr\ml3m.dm"
+#include "code\modules\projectiles\guns\energy\cell_loaded_vr\ml3m_cells.dm"
+#include "code\modules\projectiles\guns\energy\cell_loaded_vr\multi_cannon.dm"
+#include "code\modules\projectiles\guns\energy\cell_loaded_vr\multi_cannon_cells.dm"
+#include "code\modules\projectiles\guns\energy\cell_loaded_vr\nsfw.dm"
+#include "code\modules\projectiles\guns\energy\cell_loaded_vr\nsfw_cells.dm"
+#include "code\modules\projectiles\guns\launcher\bows.dm"
+#include "code\modules\projectiles\guns\launcher\crossbow.dm"
+#include "code\modules\projectiles\guns\launcher\grenade_launcher.dm"
+#include "code\modules\projectiles\guns\launcher\pneumatic.dm"
+#include "code\modules\projectiles\guns\launcher\rocket.dm"
+#include "code\modules\projectiles\guns\launcher\syringe_gun.dm"
+#include "code\modules\projectiles\guns\magic\fireball.dm"
+#include "code\modules\projectiles\guns\magnetic\bore.dm"
+#include "code\modules\projectiles\guns\magnetic\gasthrower.dm"
+#include "code\modules\projectiles\guns\magnetic\magnetic.dm"
+#include "code\modules\projectiles\guns\magnetic\magnetic_construction.dm"
+#include "code\modules\projectiles\guns\magnetic\magnetic_railgun.dm"
+#include "code\modules\projectiles\guns\magnetic\magnetic_railgun_vr.dm"
+#include "code\modules\projectiles\guns\projectile\automatic.dm"
+#include "code\modules\projectiles\guns\projectile\automatic_vr.dm"
+#include "code\modules\projectiles\guns\projectile\boltaction.dm"
+#include "code\modules\projectiles\guns\projectile\boltaction_vr.dm"
+#include "code\modules\projectiles\guns\projectile\caseless.dm"
+#include "code\modules\projectiles\guns\projectile\contender.dm"
+#include "code\modules\projectiles\guns\projectile\dartgun.dm"
+#include "code\modules\projectiles\guns\projectile\dartgun_vr.dm"
+#include "code\modules\projectiles\guns\projectile\pistol.dm"
+#include "code\modules\projectiles\guns\projectile\pistol_vr.dm"
+#include "code\modules\projectiles\guns\projectile\revolver.dm"
+#include "code\modules\projectiles\guns\projectile\revolver_vr.dm"
+#include "code\modules\projectiles\guns\projectile\semiauto.dm"
+#include "code\modules\projectiles\guns\projectile\shotgun.dm"
+#include "code\modules\projectiles\guns\projectile\shotgun_vr.dm"
+#include "code\modules\projectiles\guns\projectile\sniper.dm"
+#include "code\modules\projectiles\guns\projectile\sniper\collapsible_sniper.dm"
+#include "code\modules\projectiles\projectile\arc.dm"
+#include "code\modules\projectiles\projectile\beams.dm"
+#include "code\modules\projectiles\projectile\beams_vr.dm"
+#include "code\modules\projectiles\projectile\blob.dm"
+#include "code\modules\projectiles\projectile\bullets.dm"
+#include "code\modules\projectiles\projectile\bullets_vr.dm"
+#include "code\modules\projectiles\projectile\change.dm"
+#include "code\modules\projectiles\projectile\energy.dm"
+#include "code\modules\projectiles\projectile\energy_vr.dm"
+#include "code\modules\projectiles\projectile\explosive.dm"
+#include "code\modules\projectiles\projectile\force.dm"
+#include "code\modules\projectiles\projectile\hook.dm"
+#include "code\modules\projectiles\projectile\magic.dm"
+#include "code\modules\projectiles\projectile\magnetic.dm"
+#include "code\modules\projectiles\projectile\pellets.dm"
+#include "code\modules\projectiles\projectile\scatter.dm"
+#include "code\modules\projectiles\projectile\special.dm"
+#include "code\modules\projectiles\projectile\trace.dm"
+#include "code\modules\projectiles\targeting\targeting_client.dm"
+#include "code\modules\projectiles\targeting\targeting_gun.dm"
+#include "code\modules\projectiles\targeting\targeting_mob.dm"
+#include "code\modules\projectiles\targeting\targeting_overlay.dm"
+#include "code\modules\projectiles\targeting\targeting_triggers.dm"
+#include "code\modules\radiation\radiation.dm"
+#include "code\modules\random_map\_random_map_setup.dm"
+#include "code\modules\random_map\random_map.dm"
+#include "code\modules\random_map\random_map_verbs.dm"
+#include "code\modules\random_map\automata\automata.dm"
+#include "code\modules\random_map\automata\caves.dm"
+#include "code\modules\random_map\building\building.dm"
+#include "code\modules\random_map\drop\drop_types.dm"
+#include "code\modules\random_map\drop\droppod.dm"
+#include "code\modules\random_map\drop\droppod_doors.dm"
+#include "code\modules\random_map\drop\supply.dm"
+#include "code\modules\random_map\mazes\maze.dm"
+#include "code\modules\random_map\mazes\maze_cell.dm"
+#include "code\modules\random_map\noise\desert.dm"
+#include "code\modules\random_map\noise\noise.dm"
+#include "code\modules\random_map\noise\ore.dm"
+#include "code\modules\random_map\noise\tundra.dm"
+#include "code\modules\reagents\Chemistry-Colours.dm"
+#include "code\modules\reagents\Chemistry-Logging.dm"
+#include "code\modules\reagents\Chemistry-Metabolism.dm"
+#include "code\modules\reagents\holder\distilling.dm"
+#include "code\modules\reagents\holder\holder.dm"
+#include "code\modules\reagents\hoses\connector.dm"
+#include "code\modules\reagents\hoses\hose.dm"
+#include "code\modules\reagents\hoses\hose_connector.dm"
+#include "code\modules\reagents\machinery\chem_master.dm"
+#include "code\modules\reagents\machinery\chemalyzer.dm"
+#include "code\modules\reagents\machinery\distillery.dm"
+#include "code\modules\reagents\machinery\grinder.dm"
+#include "code\modules\reagents\machinery\dispenser\_defines.dm"
+#include "code\modules\reagents\machinery\dispenser\cartridge.dm"
+#include "code\modules\reagents\machinery\dispenser\cartridge_presets.dm"
+#include "code\modules\reagents\machinery\dispenser\cartridge_presets_vr.dm"
+#include "code\modules\reagents\machinery\dispenser\cartridge_spawn.dm"
+#include "code\modules\reagents\machinery\dispenser\dispenser2.dm"
+#include "code\modules\reagents\machinery\dispenser\dispenser2_energy.dm"
+#include "code\modules\reagents\machinery\dispenser\dispenser_presets.dm"
+#include "code\modules\reagents\machinery\dispenser\dispenser_presets_vr.dm"
+#include "code\modules\reagents\machinery\dispenser\reagent_tank.dm"
+#include "code\modules\reagents\machinery\dispenser\supply.dm"
+#include "code\modules\reagents\reactions\_reactions.dm"
+#include "code\modules\reagents\reactions\distilling\distilling.dm"
+#include "code\modules\reagents\reactions\fusion\fusion.dm"
+#include "code\modules\reagents\reactions\instant\drinks.dm"
+#include "code\modules\reagents\reactions\instant\drinks_vr.dm"
+#include "code\modules\reagents\reactions\instant\food.dm"
+#include "code\modules\reagents\reactions\instant\food_vr.dm"
+#include "code\modules\reagents\reactions\instant\instant.dm"
+#include "code\modules\reagents\reactions\instant\instant_vr.dm"
+#include "code\modules\reagents\reagent_containers\_reagent_containers.dm"
+#include "code\modules\reagents\reagent_containers\blood_pack.dm"
+#include "code\modules\reagents\reagent_containers\blood_pack_vr.dm"
+#include "code\modules\reagents\reagent_containers\borghypo.dm"
+#include "code\modules\reagents\reagent_containers\dropper.dm"
+#include "code\modules\reagents\reagent_containers\glass.dm"
+#include "code\modules\reagents\reagent_containers\glass_vr.dm"
+#include "code\modules\reagents\reagent_containers\hypospray.dm"
+#include "code\modules\reagents\reagent_containers\hypospray_vr.dm"
+#include "code\modules\reagents\reagent_containers\patch.dm"
+#include "code\modules\reagents\reagent_containers\pill.dm"
+#include "code\modules\reagents\reagent_containers\pill_vr.dm"
+#include "code\modules\reagents\reagent_containers\spray.dm"
+#include "code\modules\reagents\reagent_containers\spray_vr.dm"
+#include "code\modules\reagents\reagent_containers\syringes.dm"
+#include "code\modules\reagents\reagent_containers\syringes_vr.dm"
+#include "code\modules\reagents\reagent_containers\unidentified_hypospray.dm"
+#include "code\modules\reagents\reagents\_helpers.dm"
+#include "code\modules\reagents\reagents\_reagents.dm"
+#include "code\modules\reagents\reagents\core.dm"
+#include "code\modules\reagents\reagents\dispenser.dm"
+#include "code\modules\reagents\reagents\food_drinks.dm"
+#include "code\modules\reagents\reagents\food_drinks_vr.dm"
+#include "code\modules\reagents\reagents\medicine.dm"
+#include "code\modules\reagents\reagents\medicine_vr.dm"
+#include "code\modules\reagents\reagents\modifiers.dm"
+#include "code\modules\reagents\reagents\other.dm"
+#include "code\modules\reagents\reagents\other_vr.dm"
+#include "code\modules\reagents\reagents\toxins.dm"
+#include "code\modules\reagents\reagents\vore_vr.dm"
+#include "code\modules\recycling\conveyor2.dm"
+#include "code\modules\recycling\disposal-construction.dm"
+#include "code\modules\recycling\disposal.dm"
+#include "code\modules\recycling\sortingmachinery.dm"
+#include "code\modules\research\circuitprinter.dm"
+#include "code\modules\research\designs.dm"
+#include "code\modules\research\destructive_analyzer.dm"
+#include "code\modules\research\mechfab_designs.dm"
+#include "code\modules\research\message_server.dm"
+#include "code\modules\research\prosfab_designs.dm"
+#include "code\modules\research\prosfab_designs_vr.dm"
+#include "code\modules\research\protolathe.dm"
+#include "code\modules\research\rd-readme.dm"
+#include "code\modules\research\rdconsole.dm"
+#include "code\modules\research\rdconsole_tgui.dm"
+#include "code\modules\research\rdmachines.dm"
+#include "code\modules\research\research.dm"
+#include "code\modules\research\server.dm"
+#include "code\modules\research\teleport_vr.dm"
+#include "code\modules\research\designs\ai_holders.dm"
+#include "code\modules\research\designs\bag_of_holding.dm"
+#include "code\modules\research\designs\beakers.dm"
+#include "code\modules\research\designs\bio_devices.dm"
+#include "code\modules\research\designs\bio_devices_vr.dm"
+#include "code\modules\research\designs\circuit_assembly.dm"
+#include "code\modules\research\designs\engineering.dm"
+#include "code\modules\research\designs\HUDs.dm"
+#include "code\modules\research\designs\HUDs_vr.dm"
+#include "code\modules\research\designs\implants.dm"
+#include "code\modules\research\designs\implants_vr.dm"
+#include "code\modules\research\designs\locator_devices.dm"
+#include "code\modules\research\designs\medical.dm"
+#include "code\modules\research\designs\medical_vr.dm"
+#include "code\modules\research\designs\mining_toys.dm"
+#include "code\modules\research\designs\misc.dm"
+#include "code\modules\research\designs\misc_vr.dm"
+#include "code\modules\research\designs\modular_computer.dm"
+#include "code\modules\research\designs\pdas.dm"
+#include "code\modules\research\designs\power_cells.dm"
+#include "code\modules\research\designs\precursor.dm"
+#include "code\modules\research\designs\stock_parts.dm"
+#include "code\modules\research\designs\subspace_parts.dm"
+#include "code\modules\research\designs\tech_disks.dm"
+#include "code\modules\research\designs\weapons.dm"
+#include "code\modules\research\designs\weapons_vr.dm"
+#include "code\modules\research\designs\xenoarch_toys.dm"
+#include "code\modules\research\designs\xenobio_toys.dm"
+#include "code\modules\research\designs\circuits\ai_modules.dm"
+#include "code\modules\research\designs\circuits\ai_modules_vr.dm"
+#include "code\modules\research\designs\circuits\circuits.dm"
+#include "code\modules\research\designs\circuits\circuits_vr.dm"
+#include "code\modules\research\designs\circuits\disks.dm"
+#include "code\modules\resleeving\circuitboards.dm"
+#include "code\modules\resleeving\computers.dm"
+#include "code\modules\resleeving\designer.dm"
+#include "code\modules\resleeving\documents.dm"
+#include "code\modules\resleeving\implant.dm"
+#include "code\modules\resleeving\infocore_records.dm"
+#include "code\modules\resleeving\infomorph.dm"
+#include "code\modules\resleeving\infomorph_software.dm"
+#include "code\modules\resleeving\machines.dm"
+#include "code\modules\resleeving\machines_vr.dm"
+#include "code\modules\resleeving\resleeving_sickness.dm"
+#include "code\modules\resleeving\sleevecard.dm"
+#include "code\modules\rogueminer_vr\asteroid.dm"
+#include "code\modules\rogueminer_vr\controller.dm"
+#include "code\modules\rogueminer_vr\debug.dm"
+#include "code\modules\rogueminer_vr\landmarks.dm"
+#include "code\modules\rogueminer_vr\roguemines_mobs.dm"
+#include "code\modules\rogueminer_vr\wrappers.dm"
+#include "code\modules\rogueminer_vr\zone_console.dm"
+#include "code\modules\rogueminer_vr\zonemaster.dm"
+#include "code\modules\scripting\Errors.dm"
+#include "code\modules\scripting\IDE.dm"
+#include "code\modules\scripting\Options.dm"
+#include "code\modules\scripting\stack.dm"
+#include "code\modules\scripting\AST\AST Nodes.dm"
+#include "code\modules\scripting\AST\Blocks.dm"
+#include "code\modules\scripting\AST\Statements.dm"
+#include "code\modules\scripting\AST\Operators\Binary Operators.dm"
+#include "code\modules\scripting\AST\Operators\Unary Operators.dm"
+#include "code\modules\scripting\Implementations\_Logic.dm"
+#include "code\modules\scripting\Implementations\Telecomms.dm"
+#include "code\modules\scripting\Interpreter\Evaluation.dm"
+#include "code\modules\scripting\Interpreter\Interaction.dm"
+#include "code\modules\scripting\Interpreter\Interpreter.dm"
+#include "code\modules\scripting\Interpreter\Scope.dm"
+#include "code\modules\scripting\Parser\Expressions.dm"
+#include "code\modules\scripting\Parser\Keywords.dm"
+#include "code\modules\scripting\Parser\Parser.dm"
+#include "code\modules\scripting\Scanner\Scanner.dm"
+#include "code\modules\scripting\Scanner\Tokens.dm"
+#include "code\modules\security levels\keycard authentication.dm"
+#include "code\modules\security levels\security levels.dm"
+#include "code\modules\shieldgen\directional_shield.dm"
+#include "code\modules\shieldgen\emergency_shield.dm"
+#include "code\modules\shieldgen\energy_field.dm"
+#include "code\modules\shieldgen\energy_shield.dm"
+#include "code\modules\shieldgen\handheld_defuser.dm"
+#include "code\modules\shieldgen\sheldwallgen.dm"
+#include "code\modules\shieldgen\shield_capacitor.dm"
+#include "code\modules\shieldgen\shield_diffuser.dm"
+#include "code\modules\shieldgen\shield_gen.dm"
+#include "code\modules\shieldgen\shield_gen_external.dm"
+#include "code\modules\shieldgen\shield_generator.dm"
+#include "code\modules\shieldgen\shield_modes.dm"
+#include "code\modules\shuttles\antagonist.dm"
+#include "code\modules\shuttles\crashes.dm"
+#include "code\modules\shuttles\departmental.dm"
+#include "code\modules\shuttles\escape_pods.dm"
+#include "code\modules\shuttles\landmarks.dm"
+#include "code\modules\shuttles\shuttle.dm"
+#include "code\modules\shuttles\shuttle_autodock.dm"
+#include "code\modules\shuttles\shuttle_console.dm"
+#include "code\modules\shuttles\shuttle_console_multi.dm"
+#include "code\modules\shuttles\shuttle_emergency.dm"
+#include "code\modules\shuttles\shuttle_ferry.dm"
+#include "code\modules\shuttles\shuttle_specops.dm"
+#include "code\modules\shuttles\shuttle_supply.dm"
+#include "code\modules\shuttles\shuttles_multi.dm"
+#include "code\modules\shuttles\shuttles_vr.dm"
+#include "code\modules\shuttles\shuttles_web.dm"
+#include "code\modules\shuttles\web_datums.dm"
+#include "code\modules\spells\artifacts.dm"
+#include "code\modules\spells\construct_spells.dm"
+#include "code\modules\spells\no_clothes.dm"
+#include "code\modules\spells\spell_code.dm"
+#include "code\modules\spells\spell_projectile.dm"
+#include "code\modules\spells\spellbook.dm"
+#include "code\modules\spells\spells.dm"
+#include "code\modules\spells\aoe_turf\aoe_turf.dm"
+#include "code\modules\spells\aoe_turf\blink.dm"
+#include "code\modules\spells\aoe_turf\charge.dm"
+#include "code\modules\spells\aoe_turf\disable_tech.dm"
+#include "code\modules\spells\aoe_turf\knock.dm"
+#include "code\modules\spells\aoe_turf\smoke.dm"
+#include "code\modules\spells\aoe_turf\summons.dm"
+#include "code\modules\spells\aoe_turf\conjure\conjure.dm"
+#include "code\modules\spells\aoe_turf\conjure\construct.dm"
+#include "code\modules\spells\aoe_turf\conjure\forcewall.dm"
+#include "code\modules\spells\general\area_teleport.dm"
+#include "code\modules\spells\general\rune_write.dm"
+#include "code\modules\spells\targeted\ethereal_jaunt.dm"
+#include "code\modules\spells\targeted\genetic.dm"
+#include "code\modules\spells\targeted\harvest.dm"
+#include "code\modules\spells\targeted\mind_transfer.dm"
+#include "code\modules\spells\targeted\shift.dm"
+#include "code\modules\spells\targeted\subjugate.dm"
+#include "code\modules\spells\targeted\targeted.dm"
+#include "code\modules\spells\targeted\equip\equip.dm"
+#include "code\modules\spells\targeted\equip\horsemask.dm"
+#include "code\modules\spells\targeted\projectile\dumbfire.dm"
+#include "code\modules\spells\targeted\projectile\fireball.dm"
+#include "code\modules\spells\targeted\projectile\magic_missile.dm"
+#include "code\modules\spells\targeted\projectile\projectile.dm"
+#include "code\modules\surgery\_defines.dm"
+#include "code\modules\surgery\bones.dm"
+#include "code\modules\surgery\encased.dm"
+#include "code\modules\surgery\external_repair.dm"
+#include "code\modules\surgery\face.dm"
+#include "code\modules\surgery\generic.dm"
+#include "code\modules\surgery\implant.dm"
+#include "code\modules\surgery\limb_reattach.dm"
+#include "code\modules\surgery\neck.dm"
+#include "code\modules\surgery\organs_internal.dm"
+#include "code\modules\surgery\other.dm"
+#include "code\modules\surgery\robotics.dm"
+#include "code\modules\surgery\surgery.dm"
+#include "code\modules\surgery\~defines.dm"
+#include "code\modules\tables\bench.dm"
+#include "code\modules\tables\flipping.dm"
+#include "code\modules\tables\interactions.dm"
+#include "code\modules\tables\presets.dm"
+#include "code\modules\tables\presets_vr.dm"
+#include "code\modules\tables\rack.dm"
+#include "code\modules\tables\rack_vr.dm"
+#include "code\modules\tables\tables.dm"
+#include "code\modules\tables\update_triggers.dm"
+#include "code\modules\telesci\bscyrstal.dm"
+#include "code\modules\telesci\construction.dm"
+#include "code\modules\telesci\gps_advanced.dm"
+#include "code\modules\telesci\quantum_pad.dm"
+#include "code\modules\telesci\telepad.dm"
+#include "code\modules\telesci\telesci_computer.dm"
+#include "code\modules\tension\tension.dm"
+#include "code\modules\tgs\includes.dm"
+#include "code\modules\tgui\external.dm"
+#include "code\modules\tgui\modal.dm"
+#include "code\modules\tgui\states.dm"
+#include "code\modules\tgui\tgui.dm"
+#include "code\modules\tgui\tgui_alert.dm"
+#include "code\modules\tgui\tgui_input_list.dm"
+#include "code\modules\tgui\tgui_input_text.dm"
+#include "code\modules\tgui\tgui_window.dm"
+#include "code\modules\tgui\modules\_base.dm"
+#include "code\modules\tgui\modules\admin_shuttle_controller.dm"
+#include "code\modules\tgui\modules\agentcard.dm"
+#include "code\modules\tgui\modules\alarm.dm"
+#include "code\modules\tgui\modules\appearance_changer.dm"
+#include "code\modules\tgui\modules\appearance_changer_vr.dm"
+#include "code\modules\tgui\modules\atmos_control.dm"
+#include "code\modules\tgui\modules\camera.dm"
+#include "code\modules\tgui\modules\communications.dm"
+#include "code\modules\tgui\modules\crew_manifest.dm"
+#include "code\modules\tgui\modules\crew_monitor.dm"
+#include "code\modules\tgui\modules\gyrotron_control.dm"
+#include "code\modules\tgui\modules\law_manager.dm"
+#include "code\modules\tgui\modules\overmap.dm"
+#include "code\modules\tgui\modules\power_monitor.dm"
+#include "code\modules\tgui\modules\rcon.dm"
+#include "code\modules\tgui\modules\rustcore_monitor.dm"
+#include "code\modules\tgui\modules\rustfuel_control.dm"
+#include "code\modules\tgui\modules\shutoff_monitor.dm"
+#include "code\modules\tgui\modules\supermatter_monitor.dm"
+#include "code\modules\tgui\modules\teleporter.dm"
+#include "code\modules\tgui\modules\ntos-only\cardmod.dm"
+#include "code\modules\tgui\modules\ntos-only\configurator.dm"
+#include "code\modules\tgui\modules\ntos-only\email.dm"
+#include "code\modules\tgui\modules\ntos-only\uav.dm"
+#include "code\modules\tgui\states\admin.dm"
+#include "code\modules\tgui\states\always.dm"
+#include "code\modules\tgui\states\conscious.dm"
+#include "code\modules\tgui\states\contained.dm"
+#include "code\modules\tgui\states\deep_inventory.dm"
+#include "code\modules\tgui\states\default.dm"
+#include "code\modules\tgui\states\hands.dm"
+#include "code\modules\tgui\states\human_adjacent.dm"
+#include "code\modules\tgui\states\inventory.dm"
+#include "code\modules\tgui\states\inventory_vr.dm"
+#include "code\modules\tgui\states\not_incapacitated.dm"
+#include "code\modules\tgui\states\notcontained.dm"
+#include "code\modules\tgui\states\observer.dm"
+#include "code\modules\tgui\states\physical.dm"
+#include "code\modules\tgui\states\self.dm"
+#include "code\modules\tgui\states\vorepanel_vr.dm"
+#include "code\modules\tgui\states\zlevel.dm"
+#include "code\modules\tooltip\tooltip.dm"
+#include "code\modules\turbolift\_turbolift.dm"
+#include "code\modules\turbolift\turbolift.dm"
+#include "code\modules\turbolift\turbolift_areas.dm"
+#include "code\modules\turbolift\turbolift_console.dm"
+#include "code\modules\turbolift\turbolift_console_vr.dm"
+#include "code\modules\turbolift\turbolift_door.dm"
+#include "code\modules\turbolift\turbolift_door_vr.dm"
+#include "code\modules\turbolift\turbolift_floor.dm"
+#include "code\modules\turbolift\turbolift_map.dm"
+#include "code\modules\turbolift\turbolift_turfs.dm"
+#include "code\modules\vchat\vchat_client.dm"
+#include "code\modules\vchat\vchat_db.dm"
+#include "code\modules\vehicles\bike.dm"
+#include "code\modules\vehicles\boat.dm"
+#include "code\modules\vehicles\cargo_train.dm"
+#include "code\modules\vehicles\construction.dm"
+#include "code\modules\vehicles\quad.dm"
+#include "code\modules\vehicles\train.dm"
+#include "code\modules\vehicles\vehicle.dm"
+#include "code\modules\ventcrawl\ventcrawl.dm"
+#include "code\modules\ventcrawl\ventcrawl_atmospherics.dm"
+#include "code\modules\ventcrawl\ventcrawl_multiz.dm"
+#include "code\modules\ventcrawl\ventcrawl_verb.dm"
+#include "code\modules\virus2\admin.dm"
+#include "code\modules\virus2\analyser.dm"
+#include "code\modules\virus2\antibodies.dm"
+#include "code\modules\virus2\centrifuge.dm"
+#include "code\modules\virus2\curer.dm"
+#include "code\modules\virus2\disease2.dm"
+#include "code\modules\virus2\diseasesplicer.dm"
+#include "code\modules\virus2\dishincubator.dm"
+#include "code\modules\virus2\effect.dm"
+#include "code\modules\virus2\effect_vr.dm"
+#include "code\modules\virus2\helpers.dm"
+#include "code\modules\virus2\isolator.dm"
+#include "code\modules\virus2\items_devices.dm"
+#include "code\modules\vore\hook-defs_vr.dm"
+#include "code\modules\vore\trycatch_vr.dm"
+#include "code\modules\vore\appearance\preferences_vr.dm"
+#include "code\modules\vore\appearance\update_icons_vr.dm"
+#include "code\modules\vore\eating\belly_dat_vr.dm"
+#include "code\modules\vore\eating\belly_obj_vr.dm"
+#include "code\modules\vore\eating\bellymodes_datum_vr.dm"
+#include "code\modules\vore\eating\bellymodes_vr.dm"
+#include "code\modules\vore\eating\contaminate_vr.dm"
+#include "code\modules\vore\eating\digest_act_vr.dm"
+#include "code\modules\vore\eating\leave_remains_vr.dm"
+#include "code\modules\vore\eating\living_vr.dm"
+#include "code\modules\vore\eating\silicon_vr.dm"
+#include "code\modules\vore\eating\simple_animal_vr.dm"
+#include "code\modules\vore\eating\transforming_vr.dm"
+#include "code\modules\vore\eating\vore_vr.dm"
+#include "code\modules\vore\eating\vorehooks_vr.dm"
+#include "code\modules\vore\eating\vorepanel_vr.dm"
+#include "code\modules\vore\fluffstuff\custom_boxes_vr.dm"
+#include "code\modules\vore\fluffstuff\custom_clothes_vr.dm"
+#include "code\modules\vore\fluffstuff\custom_items_vr.dm"
+#include "code\modules\vore\fluffstuff\custom_mecha_vr.dm"
+#include "code\modules\vore\fluffstuff\custom_permits_vr.dm"
+#include "code\modules\vore\persist\persist_vr.dm"
+#include "code\modules\vore\resizing\grav_pull_vr.dm"
+#include "code\modules\vore\resizing\holder_micro_vr.dm"
+#include "code\modules\vore\resizing\resize_vr.dm"
+#include "code\modules\vore\resizing\sizegun_vr.dm"
+#include "code\modules\vore\smoleworld\smoleworld_vr.dm"
+#include "code\modules\vore\weight\fitness_machines_vr.dm"
+#include "code\modules\webhooks\_webhook.dm"
+#include "code\modules\webhooks\webhook_ahelp2discord.dm"
+#include "code\modules\webhooks\webhook_custom_event.dm"
+#include "code\modules\webhooks\webhook_fax2discord.dm"
+#include "code\modules\webhooks\webhook_roundend.dm"
+#include "code\modules\webhooks\webhook_roundprep.dm"
+#include "code\modules\webhooks\webhook_roundstart.dm"
+#include "code\modules\xenoarcheaology\anomaly_container.dm"
+#include "code\modules\xenoarcheaology\boulder.dm"
+#include "code\modules\xenoarcheaology\effect.dm"
+#include "code\modules\xenoarcheaology\manuals.dm"
+#include "code\modules\xenoarcheaology\misc.dm"
+#include "code\modules\xenoarcheaology\sampling.dm"
+#include "code\modules\xenoarcheaology\artifacts\artifact.dm"
+#include "code\modules\xenoarcheaology\artifacts\artifact_find.dm"
+#include "code\modules\xenoarcheaology\artifacts\artifact_vr.dm"
+#include "code\modules\xenoarcheaology\artifacts\autocloner.dm"
+#include "code\modules\xenoarcheaology\artifacts\crystal.dm"
+#include "code\modules\xenoarcheaology\artifacts\gigadrill.dm"
+#include "code\modules\xenoarcheaology\artifacts\replicator.dm"
+#include "code\modules\xenoarcheaology\artifacts\predefined\_predefined.dm"
+#include "code\modules\xenoarcheaology\artifacts\predefined\hungry_statue.dm"
+#include "code\modules\xenoarcheaology\effects\animate_anomaly.dm"
+#include "code\modules\xenoarcheaology\effects\badfeeling.dm"
+#include "code\modules\xenoarcheaology\effects\berserk.dm"
+#include "code\modules\xenoarcheaology\effects\cannibal.dm"
+#include "code\modules\xenoarcheaology\effects\cellcharge.dm"
+#include "code\modules\xenoarcheaology\effects\celldrain.dm"
+#include "code\modules\xenoarcheaology\effects\cold.dm"
+#include "code\modules\xenoarcheaology\effects\dnaswitch.dm"
+#include "code\modules\xenoarcheaology\effects\electric_field.dm"
+#include "code\modules\xenoarcheaology\effects\emp.dm"
+#include "code\modules\xenoarcheaology\effects\feysight.dm"
+#include "code\modules\xenoarcheaology\effects\forcefield.dm"
+#include "code\modules\xenoarcheaology\effects\gaia.dm"
+#include "code\modules\xenoarcheaology\effects\gasco2.dm"
+#include "code\modules\xenoarcheaology\effects\gasnitro.dm"
+#include "code\modules\xenoarcheaology\effects\gasoxy.dm"
+#include "code\modules\xenoarcheaology\effects\gasphoron.dm"
+#include "code\modules\xenoarcheaology\effects\gassleeping.dm"
+#include "code\modules\xenoarcheaology\effects\goodfeeling.dm"
+#include "code\modules\xenoarcheaology\effects\gravitational_waves.dm"
+#include "code\modules\xenoarcheaology\effects\heal.dm"
+#include "code\modules\xenoarcheaology\effects\heat.dm"
+#include "code\modules\xenoarcheaology\effects\hurt.dm"
+#include "code\modules\xenoarcheaology\effects\poltergeist.dm"
+#include "code\modules\xenoarcheaology\effects\radiate.dm"
+#include "code\modules\xenoarcheaology\effects\resurrect.dm"
+#include "code\modules\xenoarcheaology\effects\roboheal.dm"
+#include "code\modules\xenoarcheaology\effects\robohurt.dm"
+#include "code\modules\xenoarcheaology\effects\sleepy.dm"
+#include "code\modules\xenoarcheaology\effects\stun.dm"
+#include "code\modules\xenoarcheaology\effects\teleport.dm"
+#include "code\modules\xenoarcheaology\effects\vampire.dm"
+#include "code\modules\xenoarcheaology\finds\eguns.dm"
+#include "code\modules\xenoarcheaology\finds\eguns_vr.dm"
+#include "code\modules\xenoarcheaology\finds\find_spawning.dm"
+#include "code\modules\xenoarcheaology\finds\finds.dm"
+#include "code\modules\xenoarcheaology\finds\finds_defines.dm"
+#include "code\modules\xenoarcheaology\finds\fossils.dm"
+#include "code\modules\xenoarcheaology\finds\misc.dm"
+#include "code\modules\xenoarcheaology\finds\special.dm"
+#include "code\modules\xenoarcheaology\finds\talking.dm"
+#include "code\modules\xenoarcheaology\tools\ano_device_battery.dm"
+#include "code\modules\xenoarcheaology\tools\artifact_analyser.dm"
+#include "code\modules\xenoarcheaology\tools\artifact_harvester.dm"
+#include "code\modules\xenoarcheaology\tools\artifact_scanner.dm"
+#include "code\modules\xenoarcheaology\tools\coolant_tank.dm"
+#include "code\modules\xenoarcheaology\tools\equipment.dm"
+#include "code\modules\xenoarcheaology\tools\geosample_scanner.dm"
+#include "code\modules\xenoarcheaology\tools\suspension_generator.dm"
+#include "code\modules\xenoarcheaology\tools\tools.dm"
+#include "code\modules\xenoarcheaology\tools\tools_pickaxe.dm"
+#include "code\modules\xenoarcheaology\tools\tools_pickaxe_vr.dm"
+#include "code\modules\xenoarcheaology\tools\tools_vr.dm"
+#include "code\modules\xenobio\items\extracts.dm"
+#include "code\modules\xenobio\items\slime_objects.dm"
+#include "code\modules\xenobio\items\slimepotions.dm"
+#include "code\modules\xenobio\items\weapons.dm"
+#include "code\modules\xenobio\machinery\processor.dm"
+#include "code\modules\xgm\xgm_gas_data.dm"
+#include "code\modules\xgm\xgm_gas_mixture.dm"
+#include "code\unit_tests\decl_tests.dm"
+#include "code\unit_tests\language_tests.dm"
+#include "code\unit_tests\loadout_tests.dm"
+#include "code\unit_tests\map_tests.dm"
+#include "code\unit_tests\material_tests.dm"
+#include "code\unit_tests\mob_tests.dm"
+#include "code\unit_tests\recipe_tests.dm"
+#include "code\unit_tests\research_tests.dm"
+#include "code\unit_tests\sqlite_tests.dm"
+#include "code\unit_tests\subsystem_tests.dm"
+#include "code\unit_tests\unit_test.dm"
+#include "code\unit_tests\unit_test_vr.dm"
+#include "code\unit_tests\vore_tests_vr.dm"
+#include "code\unit_tests\zas_tests.dm"
+#include "code\unit_tests\integrated_circuits\arithmetic.dm"
+#include "code\unit_tests\integrated_circuits\circuits.dm"
+#include "code\unit_tests\integrated_circuits\converter.dm"
+#include "code\unit_tests\integrated_circuits\logic.dm"
+#include "code\unit_tests\integrated_circuits\trig.dm"
+#include "code\ZAS\Airflow.dm"
+#include "code\ZAS\Atom.dm"
+#include "code\ZAS\Connection.dm"
+#include "code\ZAS\ConnectionGroup.dm"
+#include "code\ZAS\ConnectionManager.dm"
+#include "code\ZAS\Controller.dm"
+#include "code\ZAS\Debug.dm"
+#include "code\ZAS\Diagnostic.dm"
+#include "code\ZAS\Fire.dm"
+#include "code\ZAS\Phoron.dm"
+#include "code\ZAS\Turf.dm"
+#include "code\ZAS\Variable Settings.dm"
+#include "code\ZAS\Zone.dm"
+#include "interface\interface.dm"
+#include "interface\skin.dmf"
+#include "maps\gateway_archive_vr\blackmarketpackers.dm"
+#include "maps\offmap_vr\om_ships\abductor.dm"
+#include "maps\southern_cross\items\clothing\sc_accessory.dm"
+#include "maps\southern_cross\items\clothing\sc_suit.dm"
+#include "maps\southern_cross\items\clothing\sc_under.dm"
+#include "maps\southern_cross\loadout\loadout_suit.dm"
+#include "maps\southern_cross\loadout\loadout_uniform.dm"
+#include "maps\southern_cross\loadout\loadout_vr.dm"
+#include "maps\submaps\_helpers.dm"
+#include "maps\submaps\_readme.dm"
+#include "maps\submaps\engine_submaps\engine.dm"
+#include "maps\submaps\engine_submaps\engine_areas.dm"
+#include "maps\submaps\engine_submaps_vr\tether\_engine_submaps.dm"
+#include "maps\submaps\space_submaps\space.dm"
+#include "maps\submaps\space_submaps\debrisfield\debrisfield.dm"
+#include "maps\submaps\surface_submaps\mountains\mountains.dm"
+#include "maps\submaps\surface_submaps\mountains\mountains_areas.dm"
+#include "maps\submaps\surface_submaps\mountains\mountains_areas_vr.dm"
+#include "maps\submaps\surface_submaps\plains\plains.dm"
+#include "maps\submaps\surface_submaps\plains\plains_areas.dm"
+#include "maps\submaps\surface_submaps\wilderness\wilderness.dm"
+#include "maps\submaps\surface_submaps\wilderness\wilderness_areas.dm"
+#include "maps\tether\tether.dm"
+#include "maps\~map_system\maps.dm"
+// END_INCLUDE
+=======
+// DM Environment file for baystation12.dme.
+// All manual changes should be made outside the BEGIN_ and END_ blocks.
+ // New source code should be placed in .dm files: choose File/New --> Code File.
+// BEGIN_INTERNALS
+// END_INTERNALS
+// BEGIN_FILE_DIR
+#define FILE_DIR .
+// END_FILE_DIR
+// BEGIN_PREFERENCES
+#define DEBUG
+// END_PREFERENCES
+// BEGIN_INCLUDE
+#include "code\_away_mission_tests.dm"
+#include "code\_macros.dm"
+#include "code\_macros_vr.dm"
+#include "code\_map_tests.dm"
+#include "code\_unit_tests.dm"
+#include "code\global.dm"
+#include "code\global_init.dm"
+#include "code\global_vr.dm"
+#include "code\hub.dm"
+#include "code\names.dm"
+#include "code\stylesheet.dm"
+#include "code\world.dm"
+#include "code\__datastructures\globals.dm"
+#include "code\__defines\__513_compatibility.dm"
+#include "code\__defines\_compile_options.dm"
+#include "code\__defines\_lists.dm"
+#include "code\__defines\_planes+layers.dm"
+#include "code\__defines\_planes+layers_vr.dm"
+#include "code\__defines\_protect.dm"
+#include "code\__defines\_tick.dm"
+#include "code\__defines\admin.dm"
+#include "code\__defines\admin_vr.dm"
+#include "code\__defines\appearance.dm"
+#include "code\__defines\atmos.dm"
+#include "code\__defines\belly_modes_vr.dm"
+#include "code\__defines\callbacks.dm"
+#include "code\__defines\chemistry.dm"
+#include "code\__defines\chemistry_vr.dm"
+#include "code\__defines\color.dm"
+#include "code\__defines\construction.dm"
+#include "code\__defines\crafting.dm"
+#include "code\__defines\damage_organs.dm"
+#include "code\__defines\dna.dm"
+#include "code\__defines\exosuit_fab.dm"
+#include "code\__defines\flags.dm"
+#include "code\__defines\gamemode.dm"
+#include "code\__defines\holomap.dm"
+#include "code\__defines\hoses.dm"
+#include "code\__defines\input.dm"
+#include "code\__defines\instruments.dm"
+#include "code\__defines\integrated_circuits.dm"
+#include "code\__defines\inventory_sizes.dm"
+#include "code\__defines\is_helpers.dm"
+#include "code\__defines\items_clothing.dm"
+#include "code\__defines\lighting.dm"
+#include "code\__defines\lighting_vr.dm"
+#include "code\__defines\machinery.dm"
+#include "code\__defines\map.dm"
+#include "code\__defines\materials.dm"
+#include "code\__defines\math.dm"
+#include "code\__defines\math_physics.dm"
+#include "code\__defines\MC.dm"
+#include "code\__defines\misc.dm"
+#include "code\__defines\misc_vr.dm"
+#include "code\__defines\mobs.dm"
+#include "code\__defines\mobs_vr.dm"
+#include "code\__defines\nifsoft.dm"
+#include "code\__defines\objects.dm"
+#include "code\__defines\overmap.dm"
+#include "code\__defines\pda.dm"
+#include "code\__defines\planets.dm"
+#include "code\__defines\planets_vr.dm"
+#include "code\__defines\plants.dm"
+#include "code\__defines\preferences.dm"
+#include "code\__defines\process_scheduler.dm"
+#include "code\__defines\qdel.dm"
+#include "code\__defines\research.dm"
+#include "code\__defines\roguemining_vr.dm"
+#include "code\__defines\rust_g.dm"
+#include "code\__defines\shields.dm"
+#include "code\__defines\shuttle.dm"
+#include "code\__defines\sound.dm"
+#include "code\__defines\spaceman_dmm.dm"
+#include "code\__defines\species_languages.dm"
+#include "code\__defines\species_languages_vr.dm"
+#include "code\__defines\sprite_sheets.dm"
+#include "code\__defines\sqlite_defines.dm"
+#include "code\__defines\stat_tracking.dm"
+#include "code\__defines\subsystems.dm"
+#include "code\__defines\supply.dm"
+#include "code\__defines\targeting.dm"
+#include "code\__defines\tgs.config.dm"
+#include "code\__defines\tgs.dm"
+#include "code\__defines\tgui.dm"
+#include "code\__defines\tools.dm"
+#include "code\__defines\turfs.dm"
+#include "code\__defines\typeids.dm"
+#include "code\__defines\unit_tests.dm"
+#include "code\__defines\vote.dm"
+#include "code\__defines\vv.dm"
+#include "code\__defines\webhooks.dm"
+#include "code\__defines\wires.dm"
+#include "code\__defines\xenoarcheaology.dm"
+#include "code\__defines\ZAS.dm"
+#include "code\__defines\dcs\flags.dm"
+#include "code\__defines\dcs\helpers.dm"
+#include "code\__defines\dcs\signals.dm"
+#include "code\_global_vars\bitfields.dm"
+#include "code\_global_vars\misc.dm"
+#include "code\_global_vars\mobs.dm"
+#include "code\_global_vars\religion.dm"
+#include "code\_global_vars\sensitive.dm"
+#include "code\_global_vars\typecache.dm"
+#include "code\_global_vars\lists\mapping.dm"
+#include "code\_global_vars\lists\misc.dm"
+#include "code\_global_vars\lists\species.dm"
+#include "code\_helpers\_global_objects.dm"
+#include "code\_helpers\_global_objects_vr.dm"
+#include "code\_helpers\_lists.dm"
+#include "code\_helpers\atmospherics.dm"
+#include "code\_helpers\atom_movables.dm"
+#include "code\_helpers\events.dm"
+#include "code\_helpers\files.dm"
+#include "code\_helpers\game.dm"
+#include "code\_helpers\global_lists.dm"
+#include "code\_helpers\global_lists_vr.dm"
+#include "code\_helpers\icons.dm"
+#include "code\_helpers\icons_vr.dm"
+#include "code\_helpers\lighting.dm"
+#include "code\_helpers\logging.dm"
+#include "code\_helpers\logging_vr.dm"
+#include "code\_helpers\matrices.dm"
+#include "code\_helpers\mobs.dm"
+#include "code\_helpers\names.dm"
+#include "code\_helpers\sanitize_values.dm"
+#include "code\_helpers\storage.dm"
+#include "code\_helpers\string_lists.dm"
+#include "code\_helpers\text.dm"
+#include "code\_helpers\time.dm"
+#include "code\_helpers\turfs.dm"
+#include "code\_helpers\type2type.dm"
+#include "code\_helpers\unsorted.dm"
+#include "code\_helpers\unsorted_vr.dm"
+#include "code\_helpers\view.dm"
+#include "code\_helpers\visual_filters.dm"
+#include "code\_helpers\sorts\__main.dm"
+#include "code\_helpers\sorts\comparators.dm"
+#include "code\_helpers\sorts\TimSort.dm"
+#include "code\_onclick\_defines.dm"
+#include "code\_onclick\adjacent.dm"
+#include "code\_onclick\ai.dm"
+#include "code\_onclick\click.dm"
+#include "code\_onclick\cyborg.dm"
+#include "code\_onclick\drag_drop.dm"
+#include "code\_onclick\item_attack.dm"
+#include "code\_onclick\observer.dm"
+#include "code\_onclick\other_mobs.dm"
+#include "code\_onclick\rig.dm"
+#include "code\_onclick\telekinesis.dm"
+#include "code\_onclick\hud\_defines.dm"
+#include "code\_onclick\hud\_defines_vr.dm"
+#include "code\_onclick\hud\ability_screen_objects.dm"
+#include "code\_onclick\hud\action.dm"
+#include "code\_onclick\hud\ai.dm"
+#include "code\_onclick\hud\alert.dm"
+#include "code\_onclick\hud\alert_vr.dm"
+#include "code\_onclick\hud\alien_larva.dm"
+#include "code\_onclick\hud\fullscreen.dm"
+#include "code\_onclick\hud\ghost.dm"
+#include "code\_onclick\hud\gun_mode.dm"
+#include "code\_onclick\hud\hud.dm"
+#include "code\_onclick\hud\human.dm"
+#include "code\_onclick\hud\map_popups.dm"
+#include "code\_onclick\hud\minihud.dm"
+#include "code\_onclick\hud\minihud_mapper.dm"
+#include "code\_onclick\hud\minihud_rigmech.dm"
+#include "code\_onclick\hud\movable_screen_objects.dm"
+#include "code\_onclick\hud\other_mobs.dm"
+#include "code\_onclick\hud\picture_in_picture.dm"
+#include "code\_onclick\hud\radial.dm"
+#include "code\_onclick\hud\radial_persistent.dm"
+#include "code\_onclick\hud\robot.dm"
+#include "code\_onclick\hud\robot_vr.dm"
+#include "code\_onclick\hud\screen_objects.dm"
+#include "code\_onclick\hud\screen_objects_vr.dm"
+#include "code\_onclick\hud\skybox.dm"
+#include "code\_onclick\hud\soulcatcher_guest.dm"
+#include "code\_onclick\hud\spell_screen_objects.dm"
+#include "code\ATMOSPHERICS\_atmos_setup.dm"
+#include "code\ATMOSPHERICS\_atmospherics_helpers.dm"
+#include "code\ATMOSPHERICS\atmospherics.dm"
+#include "code\ATMOSPHERICS\datum_pipe_network.dm"
+#include "code\ATMOSPHERICS\datum_pipeline.dm"
+#include "code\ATMOSPHERICS\components\portables_connector.dm"
+#include "code\ATMOSPHERICS\components\shutoff.dm"
+#include "code\ATMOSPHERICS\components\tvalve.dm"
+#include "code\ATMOSPHERICS\components\valve.dm"
+#include "code\ATMOSPHERICS\components\binary_devices\algae_generator_vr.dm"
+#include "code\ATMOSPHERICS\components\binary_devices\binary_atmos_base.dm"
+#include "code\ATMOSPHERICS\components\binary_devices\circulator.dm"
+#include "code\ATMOSPHERICS\components\binary_devices\dp_vent_pump.dm"
+#include "code\ATMOSPHERICS\components\binary_devices\passive_gate.dm"
+#include "code\ATMOSPHERICS\components\binary_devices\passive_gate_vr.dm"
+#include "code\ATMOSPHERICS\components\binary_devices\pipeturbine.dm"
+#include "code\ATMOSPHERICS\components\binary_devices\pump.dm"
+#include "code\ATMOSPHERICS\components\binary_devices\volume_pump.dm"
+#include "code\ATMOSPHERICS\components\omni_devices\_omni_extras.dm"
+#include "code\ATMOSPHERICS\components\omni_devices\filter.dm"
+#include "code\ATMOSPHERICS\components\omni_devices\mixer.dm"
+#include "code\ATMOSPHERICS\components\omni_devices\omni_base.dm"
+#include "code\ATMOSPHERICS\components\trinary_devices\filter.dm"
+#include "code\ATMOSPHERICS\components\trinary_devices\mixer.dm"
+#include "code\ATMOSPHERICS\components\trinary_devices\trinary_base.dm"
+#include "code\ATMOSPHERICS\components\unary\cold_sink.dm"
+#include "code\ATMOSPHERICS\components\unary\heat_exchanger.dm"
+#include "code\ATMOSPHERICS\components\unary\heat_source.dm"
+#include "code\ATMOSPHERICS\components\unary\outlet_injector.dm"
+#include "code\ATMOSPHERICS\components\unary\unary_base.dm"
+#include "code\ATMOSPHERICS\components\unary\vent_pump.dm"
+#include "code\ATMOSPHERICS\components\unary\vent_scrubber.dm"
+#include "code\ATMOSPHERICS\components\unary\vent_scrubber_vr.dm"
+#include "code\ATMOSPHERICS\pipes\cap.dm"
+#include "code\ATMOSPHERICS\pipes\he_pipes.dm"
+#include "code\ATMOSPHERICS\pipes\he_pipes_vr.dm"
+#include "code\ATMOSPHERICS\pipes\manifold.dm"
+#include "code\ATMOSPHERICS\pipes\manifold4w.dm"
+#include "code\ATMOSPHERICS\pipes\pipe_base.dm"
+#include "code\ATMOSPHERICS\pipes\pipe_base_vr.dm"
+#include "code\ATMOSPHERICS\pipes\simple.dm"
+#include "code\ATMOSPHERICS\pipes\tank.dm"
+#include "code\ATMOSPHERICS\pipes\tank_vr.dm"
+#include "code\ATMOSPHERICS\pipes\universal.dm"
+#include "code\ATMOSPHERICS\pipes\vent.dm"
+#include "code\controllers\autotransfer.dm"
+#include "code\controllers\communications.dm"
+#include "code\controllers\configuration.dm"
+#include "code\controllers\configuration_vr.dm"
+#include "code\controllers\controller.dm"
+#include "code\controllers\emergency_shuttle_controller.dm"
+#include "code\controllers\failsafe.dm"
+#include "code\controllers\globals.dm"
+#include "code\controllers\hooks-defs.dm"
+#include "code\controllers\hooks.dm"
+#include "code\controllers\master.dm"
+#include "code\controllers\master_controller.dm"
+#include "code\controllers\subsystem.dm"
+#include "code\controllers\verbs.dm"
+#include "code\controllers\observer_listener\atom\observer.dm"
+#include "code\controllers\subsystems\ai.dm"
+#include "code\controllers\subsystems\aifast.dm"
+#include "code\controllers\subsystems\air.dm"
+#include "code\controllers\subsystems\airflow.dm"
+#include "code\controllers\subsystems\alarm.dm"
+#include "code\controllers\subsystems\assets.dm"
+#include "code\controllers\subsystems\atoms.dm"
+#include "code\controllers\subsystems\character_setup.dm"
+#include "code\controllers\subsystems\chat.dm"
+#include "code\controllers\subsystems\chemistry.dm"
+#include "code\controllers\subsystems\circuits.dm"
+#include "code\controllers\subsystems\dcs.dm"
+#include "code\controllers\subsystems\events.dm"
+#include "code\controllers\subsystems\garbage.dm"
+#include "code\controllers\subsystems\holomaps.dm"
+#include "code\controllers\subsystems\inactivity.dm"
+#include "code\controllers\subsystems\input.dm"
+#include "code\controllers\subsystems\job.dm"
+#include "code\controllers\subsystems\lighting.dm"
+#include "code\controllers\subsystems\machines.dm"
+#include "code\controllers\subsystems\mapping.dm"
+#include "code\controllers\subsystems\media_tracks.dm"
+#include "code\controllers\subsystems\mobs.dm"
+#include "code\controllers\subsystems\nightshift.dm"
+#include "code\controllers\subsystems\orbits.dm"
+#include "code\controllers\subsystems\overlays.dm"
+#include "code\controllers\subsystems\persist_vr.dm"
+#include "code\controllers\subsystems\persistence.dm"
+#include "code\controllers\subsystems\planets.dm"
+#include "code\controllers\subsystems\plants.dm"
+#include "code\controllers\subsystems\radiation.dm"
+#include "code\controllers\subsystems\shuttles.dm"
+#include "code\controllers\subsystems\skybox.dm"
+#include "code\controllers\subsystems\sounds.dm"
+#include "code\controllers\subsystems\sqlite.dm"
+#include "code\controllers\subsystems\sun.dm"
+#include "code\controllers\subsystems\supply.dm"
+#include "code\controllers\subsystems\tgui.dm"
+#include "code\controllers\subsystems\ticker.dm"
+#include "code\controllers\subsystems\time_track.dm"
+#include "code\controllers\subsystems\timer.dm"
+#include "code\controllers\subsystems\transcore_vr.dm"
+#include "code\controllers\subsystems\vis_overlays.dm"
+#include "code\controllers\subsystems\vote.dm"
+#include "code\controllers\subsystems\webhooks.dm"
+#include "code\controllers\subsystems\xenoarch.dm"
+#include "code\controllers\subsystems\processing\bellies_vr.dm"
+#include "code\controllers\subsystems\processing\fastprocess.dm"
+#include "code\controllers\subsystems\processing\instruments.dm"
+#include "code\controllers\subsystems\processing\obj.dm"
+#include "code\controllers\subsystems\processing\processing.dm"
+#include "code\controllers\subsystems\processing\projectiles.dm"
+#include "code\controllers\subsystems\processing\turfs.dm"
+#include "code\datums\ai_law_sets.dm"
+#include "code\datums\ai_law_sets_vr.dm"
+#include "code\datums\ai_laws.dm"
+#include "code\datums\beam.dm"
+#include "code\datums\browser.dm"
+#include "code\datums\callback.dm"
+#include "code\datums\category.dm"
+#include "code\datums\chat_message.dm"
+#include "code\datums\datacore.dm"
+#include "code\datums\datum.dm"
+#include "code\datums\datumvars.dm"
+#include "code\datums\EPv2.dm"
+#include "code\datums\ghost_query.dm"
+#include "code\datums\ghost_query_vr.dm"
+#include "code\datums\hierarchy.dm"
+#include "code\datums\mind.dm"
+#include "code\datums\mind_vr.dm"
+#include "code\datums\mixed.dm"
+#include "code\datums\modules.dm"
+#include "code\datums\mutable_appearance.dm"
+#include "code\datums\orbit.dm"
+#include "code\datums\organs.dm"
+#include "code\datums\position_point_vector.dm"
+#include "code\datums\progressbar.dm"
+#include "code\datums\reference_tracking.dm"
+#include "code\datums\riding.dm"
+#include "code\datums\soul_link.dm"
+#include "code\datums\sun.dm"
+#include "code\datums\weakref.dm"
+#include "code\datums\autolathe\arms.dm"
+#include "code\datums\autolathe\arms_vr.dm"
+#include "code\datums\autolathe\autolathe.dm"
+#include "code\datums\autolathe\devices.dm"
+#include "code\datums\autolathe\devices_vr.dm"
+#include "code\datums\autolathe\engineering.dm"
+#include "code\datums\autolathe\engineering_vr.dm"
+#include "code\datums\autolathe\general.dm"
+#include "code\datums\autolathe\general_vr.dm"
+#include "code\datums\autolathe\materials.dm"
+#include "code\datums\autolathe\medical.dm"
+#include "code\datums\autolathe\medical_vr.dm"
+#include "code\datums\autolathe\tools.dm"
+#include "code\datums\autolathe\tools_vr.dm"
+#include "code\datums\components\_component.dm"
+#include "code\datums\components\material_container.dm"
+#include "code\datums\components\overlay_lighting.dm"
+#include "code\datums\components\resize_guard.dm"
+#include "code\datums\components\crafting\crafting.dm"
+#include "code\datums\components\crafting\crafting_external.dm"
+#include "code\datums\components\crafting\recipes.dm"
+#include "code\datums\components\crafting\tool_quality.dm"
+#include "code\datums\components\crafting\recipes\primitive.dm"
+#include "code\datums\components\crafting\recipes\weapons.dm"
+#include "code\datums\elements\_element.dm"
+#include "code\datums\elements\light_blocking.dm"
+#include "code\datums\elements\turf_transparency.dm"
+#include "code\datums\game_masters\_common.dm"
+#include "code\datums\helper_datums\construction_datum.dm"
+#include "code\datums\helper_datums\events.dm"
+#include "code\datums\helper_datums\getrev.dm"
+#include "code\datums\helper_datums\teleport.dm"
+#include "code\datums\helper_datums\teleport_vr.dm"
+#include "code\datums\helper_datums\topic_input.dm"
+#include "code\datums\locations\locations.dm"
+#include "code\datums\locations\nyx.dm"
+#include "code\datums\locations\qerrvallis.dm"
+#include "code\datums\locations\s_randarr.dm"
+#include "code\datums\locations\sol.dm"
+#include "code\datums\locations\tau_ceti.dm"
+#include "code\datums\locations\uueoa_esa.dm"
+#include "code\datums\locations\vir.dm"
+#include "code\datums\looping_sounds\_looping_sound.dm"
+#include "code\datums\looping_sounds\item_sounds.dm"
+#include "code\datums\looping_sounds\machinery_sounds.dm"
+#include "code\datums\looping_sounds\sequence.dm"
+#include "code\datums\looping_sounds\weather_sounds.dm"
+#include "code\datums\managed_browsers\_managed_browser.dm"
+#include "code\datums\managed_browsers\feedback_form.dm"
+#include "code\datums\managed_browsers\feedback_viewer.dm"
+#include "code\datums\observation\_debug.dm"
+#include "code\datums\observation\_defines.dm"
+#include "code\datums\observation\destroyed.dm"
+#include "code\datums\observation\dir_set.dm"
+#include "code\datums\observation\equipped.dm"
+#include "code\datums\observation\helpers.dm"
+#include "code\datums\observation\logged_in.dm"
+#include "code\datums\observation\moved.dm"
+#include "code\datums\observation\observation.dm"
+#include "code\datums\observation\power_change.dm"
+#include "code\datums\observation\shuttle_added.dm"
+#include "code\datums\observation\shuttle_moved.dm"
+#include "code\datums\observation\stat_set.dm"
+#include "code\datums\observation\turf_changed.dm"
+#include "code\datums\observation\turf_enterexit.dm"
+#include "code\datums\observation\unequipped.dm"
+#include "code\datums\observation\z_moved.dm"
+#include "code\datums\observation\~cleanup.dm"
+#include "code\datums\outfits\_defines.dm"
+#include "code\datums\outfits\horror_killers.dm"
+#include "code\datums\outfits\misc.dm"
+#include "code\datums\outfits\nanotrasen.dm"
+#include "code\datums\outfits\outfit.dm"
+#include "code\datums\outfits\outfit_vr.dm"
+#include "code\datums\outfits\pirates.dm"
+#include "code\datums\outfits\spec_op.dm"
+#include "code\datums\outfits\tournament.dm"
+#include "code\datums\outfits\wizardry.dm"
+#include "code\datums\outfits\costumes\costume.dm"
+#include "code\datums\outfits\costumes\halloween.dm"
+#include "code\datums\outfits\jobs\cargo.dm"
+#include "code\datums\outfits\jobs\civilian.dm"
+#include "code\datums\outfits\jobs\civilian_vr.dm"
+#include "code\datums\outfits\jobs\command.dm"
+#include "code\datums\outfits\jobs\command_vr.dm"
+#include "code\datums\outfits\jobs\engineering.dm"
+#include "code\datums\outfits\jobs\job.dm"
+#include "code\datums\outfits\jobs\medical.dm"
+#include "code\datums\outfits\jobs\medical_vr.dm"
+#include "code\datums\outfits\jobs\misc.dm"
+#include "code\datums\outfits\jobs\science.dm"
+#include "code\datums\outfits\jobs\science_vr.dm"
+#include "code\datums\outfits\jobs\security.dm"
+#include "code\datums\outfits\jobs\special_vr.dm"
+#include "code\datums\outfits\military\fleet.dm"
+#include "code\datums\outfits\military\marines.dm"
+#include "code\datums\outfits\military\military.dm"
+#include "code\datums\outfits\military\sifguard.dm"
+#include "code\datums\repositories\ammomaterial.dm"
+#include "code\datums\repositories\cameras.dm"
+#include "code\datums\repositories\crew.dm"
+#include "code\datums\repositories\decls.dm"
+#include "code\datums\repositories\repository.dm"
+#include "code\datums\repositories\unique.dm"
+#include "code\datums\roundstats\_defines_local.dm"
+#include "code\datums\roundstats\departmentgoal.dm"
+#include "code\datums\roundstats\roundstats.dm"
+#include "code\datums\supplypacks\atmospherics.dm"
+#include "code\datums\supplypacks\contraband.dm"
+#include "code\datums\supplypacks\contraband_vr.dm"
+#include "code\datums\supplypacks\costumes.dm"
+#include "code\datums\supplypacks\costumes_vr.dm"
+#include "code\datums\supplypacks\engineering.dm"
+#include "code\datums\supplypacks\engineering_vr.dm"
+#include "code\datums\supplypacks\hospitality.dm"
+#include "code\datums\supplypacks\hospitality_vr.dm"
+#include "code\datums\supplypacks\hydroponics.dm"
+#include "code\datums\supplypacks\hydroponics_vr.dm"
+#include "code\datums\supplypacks\materials.dm"
+#include "code\datums\supplypacks\medical.dm"
+#include "code\datums\supplypacks\medical_vr.dm"
+#include "code\datums\supplypacks\misc.dm"
+#include "code\datums\supplypacks\misc_vr.dm"
+#include "code\datums\supplypacks\munitions.dm"
+#include "code\datums\supplypacks\munitions_vr.dm"
+#include "code\datums\supplypacks\musical.dm"
+#include "code\datums\supplypacks\recreation.dm"
+#include "code\datums\supplypacks\recreation_vr.dm"
+#include "code\datums\supplypacks\robotics.dm"
+#include "code\datums\supplypacks\robotics_vr.dm"
+#include "code\datums\supplypacks\science.dm"
+#include "code\datums\supplypacks\science_vr.dm"
+#include "code\datums\supplypacks\security.dm"
+#include "code\datums\supplypacks\security_vr.dm"
+#include "code\datums\supplypacks\supply.dm"
+#include "code\datums\supplypacks\supply_vr.dm"
+#include "code\datums\supplypacks\supplypacks.dm"
+#include "code\datums\supplypacks\voidsuits.dm"
+#include "code\datums\supplypacks\voidsuits_vr.dm"
+#include "code\datums\underwear\bottom.dm"
+#include "code\datums\underwear\socks.dm"
+#include "code\datums\underwear\top.dm"
+#include "code\datums\underwear\undershirts.dm"
+#include "code\datums\underwear\underwear.dm"
+#include "code\datums\uplink\ammunition.dm"
+#include "code\datums\uplink\ammunition_vr.dm"
+#include "code\datums\uplink\announcements.dm"
+#include "code\datums\uplink\armor.dm"
+#include "code\datums\uplink\backup.dm"
+#include "code\datums\uplink\badassery.dm"
+#include "code\datums\uplink\grenades.dm"
+#include "code\datums\uplink\hardsuit_modules.dm"
+#include "code\datums\uplink\implants.dm"
+#include "code\datums\uplink\medical.dm"
+#include "code\datums\uplink\medical_vr.dm"
+#include "code\datums\uplink\resources.dm"
+#include "code\datums\uplink\stealth_items.dm"
+#include "code\datums\uplink\stealthy_weapons.dm"
+#include "code\datums\uplink\telecrystals.dm"
+#include "code\datums\uplink\tools.dm"
+#include "code\datums\uplink\tools_vr.dm"
+#include "code\datums\uplink\uplink_categories.dm"
+#include "code\datums\uplink\uplink_items.dm"
+#include "code\datums\uplink\visible_weapons.dm"
+#include "code\datums\uplink\visible_weapons_vr.dm"
+#include "code\datums\vending\stored_item.dm"
+#include "code\datums\vending\vending.dm"
+#include "code\datums\wires\airlock.dm"
+#include "code\datums\wires\alarm.dm"
+#include "code\datums\wires\apc.dm"
+#include "code\datums\wires\autolathe.dm"
+#include "code\datums\wires\camera.dm"
+#include "code\datums\wires\explosive.dm"
+#include "code\datums\wires\grid_checker.dm"
+#include "code\datums\wires\jukebox.dm"
+#include "code\datums\wires\mines.dm"
+#include "code\datums\wires\particle_accelerator.dm"
+#include "code\datums\wires\radio.dm"
+#include "code\datums\wires\robot.dm"
+#include "code\datums\wires\seedstorage.dm"
+#include "code\datums\wires\shield_generator.dm"
+#include "code\datums\wires\smartfridge.dm"
+#include "code\datums\wires\smes.dm"
+#include "code\datums\wires\suit_storage_unit.dm"
+#include "code\datums\wires\tesla_coil.dm"
+#include "code\datums\wires\vending.dm"
+#include "code\datums\wires\wires.dm"
+#include "code\defines\gases.dm"
+#include "code\defines\obj.dm"
+#include "code\defines\obj\weapon.dm"
+#include "code\defines\procs\announce.dm"
+#include "code\defines\procs\AStar.dm"
+#include "code\defines\procs\dbcore.dm"
+#include "code\defines\procs\radio.dm"
+#include "code\defines\procs\statistics.dm"
+#include "code\game\atoms.dm"
+#include "code\game\atoms_movable.dm"
+#include "code\game\atoms_movable_vr.dm"
+#include "code\game\base_turf.dm"
+#include "code\game\periodic_news.dm"
+#include "code\game\response_team.dm"
+#include "code\game\response_team_vr.dm"
+#include "code\game\shuttle_engines.dm"
+#include "code\game\skincmd.dm"
+#include "code\game\sound.dm"
+#include "code\game\trader_visit.dm"
+#include "code\game\trader_visit_vr.dm"
+#include "code\game\world.dm"
+#include "code\game\antagonist\_antagonist_setup.dm"
+#include "code\game\antagonist\antagonist.dm"
+#include "code\game\antagonist\antagonist_add.dm"
+#include "code\game\antagonist\antagonist_create.dm"
+#include "code\game\antagonist\antagonist_equip.dm"
+#include "code\game\antagonist\antagonist_factions.dm"
+#include "code\game\antagonist\antagonist_helpers.dm"
+#include "code\game\antagonist\antagonist_objectives.dm"
+#include "code\game\antagonist\antagonist_panel.dm"
+#include "code\game\antagonist\antagonist_place.dm"
+#include "code\game\antagonist\antagonist_print.dm"
+#include "code\game\antagonist\antagonist_update.dm"
+#include "code\game\antagonist\alien\borer.dm"
+#include "code\game\antagonist\alien\xenomorph.dm"
+#include "code\game\antagonist\outsider\commando.dm"
+#include "code\game\antagonist\outsider\deathsquad.dm"
+#include "code\game\antagonist\outsider\ert.dm"
+#include "code\game\antagonist\outsider\ert_vr.dm"
+#include "code\game\antagonist\outsider\mercenary.dm"
+#include "code\game\antagonist\outsider\ninja.dm"
+#include "code\game\antagonist\outsider\raider.dm"
+#include "code\game\antagonist\outsider\technomancer.dm"
+#include "code\game\antagonist\outsider\trader.dm"
+#include "code\game\antagonist\outsider\wizard.dm"
+#include "code\game\antagonist\station\changeling.dm"
+#include "code\game\antagonist\station\cultist.dm"
+#include "code\game\antagonist\station\highlander.dm"
+#include "code\game\antagonist\station\infiltrator.dm"
+#include "code\game\antagonist\station\loyalist.dm"
+#include "code\game\antagonist\station\renegade.dm"
+#include "code\game\antagonist\station\revolutionary.dm"
+#include "code\game\antagonist\station\rogue_ai.dm"
+#include "code\game\antagonist\station\stowaway.dm"
+#include "code\game\antagonist\station\thug.dm"
+#include "code\game\antagonist\station\traitor.dm"
+#include "code\game\area\ai_monitored.dm"
+#include "code\game\area\areas.dm"
+#include "code\game\area\areas_vr.dm"
+#include "code\game\area\asteroid_areas.dm"
+#include "code\game\area\Away Mission areas.dm"
+#include "code\game\area\Space Station 13 areas.dm"
+#include "code\game\area\Space Station 13 areas_vr.dm"
+#include "code\game\area\ss13_deprecated_areas.dm"
+#include "code\game\dna\dna2.dm"
+#include "code\game\dna\dna2_domutcheck.dm"
+#include "code\game\dna\dna2_helpers.dm"
+#include "code\game\dna\dna_modifier.dm"
+#include "code\game\dna\genes\disabilities.dm"
+#include "code\game\dna\genes\gene.dm"
+#include "code\game\dna\genes\powers.dm"
+#include "code\game\gamemodes\events.dm"
+#include "code\game\gamemodes\game_mode.dm"
+#include "code\game\gamemodes\game_mode_latespawn.dm"
+#include "code\game\gamemodes\objective.dm"
+#include "code\game\gamemodes\setupgame.dm"
+#include "code\game\gamemodes\calamity\calamity.dm"
+#include "code\game\gamemodes\changeling\absorbed_dna.dm"
+#include "code\game\gamemodes\changeling\changeling.dm"
+#include "code\game\gamemodes\changeling\changeling_powers.dm"
+#include "code\game\gamemodes\changeling\generic_equip_procs.dm"
+#include "code\game\gamemodes\changeling\modularchangling.dm"
+#include "code\game\gamemodes\changeling\powers\absorb.dm"
+#include "code\game\gamemodes\changeling\powers\armblade.dm"
+#include "code\game\gamemodes\changeling\powers\armor.dm"
+#include "code\game\gamemodes\changeling\powers\augmented_eyesight.dm"
+#include "code\game\gamemodes\changeling\powers\bioelectrogenesis.dm"
+#include "code\game\gamemodes\changeling\powers\blind_sting.dm"
+#include "code\game\gamemodes\changeling\powers\boost_range.dm"
+#include "code\game\gamemodes\changeling\powers\cryo_sting.dm"
+#include "code\game\gamemodes\changeling\powers\darkvision.dm"
+#include "code\game\gamemodes\changeling\powers\deaf_sting.dm"
+#include "code\game\gamemodes\changeling\powers\delayed_toxin_sting.dm"
+#include "code\game\gamemodes\changeling\powers\digital_camo.dm"
+#include "code\game\gamemodes\changeling\powers\electric_lockpick.dm"
+#include "code\game\gamemodes\changeling\powers\endoarmor.dm"
+#include "code\game\gamemodes\changeling\powers\enfeebling_string.dm"
+#include "code\game\gamemodes\changeling\powers\engorged_glands.dm"
+#include "code\game\gamemodes\changeling\powers\enrage.dm"
+#include "code\game\gamemodes\changeling\powers\epinephrine_overdose.dm"
+#include "code\game\gamemodes\changeling\powers\escape_restraints.dm"
+#include "code\game\gamemodes\changeling\powers\extract_dna_sting.dm"
+#include "code\game\gamemodes\changeling\powers\fabricate_clothing.dm"
+#include "code\game\gamemodes\changeling\powers\fake_death.dm"
+#include "code\game\gamemodes\changeling\powers\fleshmend.dm"
+#include "code\game\gamemodes\changeling\powers\hivemind.dm"
+#include "code\game\gamemodes\changeling\powers\mimic_voice.dm"
+#include "code\game\gamemodes\changeling\powers\panacea.dm"
+#include "code\game\gamemodes\changeling\powers\rapid_regen.dm"
+#include "code\game\gamemodes\changeling\powers\recursive_enhancement.dm"
+#include "code\game\gamemodes\changeling\powers\respec.dm"
+#include "code\game\gamemodes\changeling\powers\revive.dm"
+#include "code\game\gamemodes\changeling\powers\self_respiration.dm"
+#include "code\game\gamemodes\changeling\powers\shriek.dm"
+#include "code\game\gamemodes\changeling\powers\silence_sting.dm"
+#include "code\game\gamemodes\changeling\powers\transform.dm"
+#include "code\game\gamemodes\changeling\powers\visible_camouflage.dm"
+#include "code\game\gamemodes\cult\construct_spells.dm"
+#include "code\game\gamemodes\cult\cult.dm"
+#include "code\game\gamemodes\cult\cult_items.dm"
+#include "code\game\gamemodes\cult\cult_structures.dm"
+#include "code\game\gamemodes\cult\hell_universe.dm"
+#include "code\game\gamemodes\cult\narsie.dm"
+#include "code\game\gamemodes\cult\ritual.dm"
+#include "code\game\gamemodes\cult\runes.dm"
+#include "code\game\gamemodes\cult\soulstone.dm"
+#include "code\game\gamemodes\cult\talisman.dm"
+#include "code\game\gamemodes\cult\cultify\mob.dm"
+#include "code\game\gamemodes\cult\cultify\obj.dm"
+#include "code\game\gamemodes\cult\cultify\turf.dm"
+#include "code\game\gamemodes\endgame\endgame.dm"
+#include "code\game\gamemodes\endgame\supermatter_cascade\blob.dm"
+#include "code\game\gamemodes\endgame\supermatter_cascade\portal.dm"
+#include "code\game\gamemodes\endgame\supermatter_cascade\universe.dm"
+#include "code\game\gamemodes\events\black_hole.dm"
+#include "code\game\gamemodes\events\clang.dm"
+#include "code\game\gamemodes\events\dust.dm"
+#include "code\game\gamemodes\events\power_failure.dm"
+#include "code\game\gamemodes\events\wormholes.dm"
+#include "code\game\gamemodes\events\holidays\Christmas.dm"
+#include "code\game\gamemodes\events\holidays\Holidays.dm"
+#include "code\game\gamemodes\events\holidays\Other.dm"
+#include "code\game\gamemodes\extended\extended.dm"
+#include "code\game\gamemodes\heist\heist.dm"
+#include "code\game\gamemodes\infiltrator\infiltrator.dm"
+#include "code\game\gamemodes\malfunction\malf_hardware.dm"
+#include "code\game\gamemodes\malfunction\malf_research.dm"
+#include "code\game\gamemodes\malfunction\malf_research_ability.dm"
+#include "code\game\gamemodes\malfunction\malfunction.dm"
+#include "code\game\gamemodes\malfunction\newmalf_ability_trees\HARDWARE.dm"
+#include "code\game\gamemodes\malfunction\newmalf_ability_trees\HELPERS.dm"
+#include "code\game\gamemodes\malfunction\newmalf_ability_trees\tree_interdiction.dm"
+#include "code\game\gamemodes\malfunction\newmalf_ability_trees\tree_manipulation.dm"
+#include "code\game\gamemodes\malfunction\newmalf_ability_trees\tree_networking.dm"
+#include "code\game\gamemodes\meteor\meteor.dm"
+#include "code\game\gamemodes\meteor\meteors.dm"
+#include "code\game\gamemodes\meteor\meteors_vr.dm"
+#include "code\game\gamemodes\mixed\conflux.dm"
+#include "code\game\gamemodes\mixed\infestation.dm"
+#include "code\game\gamemodes\mixed\intrigue.dm"
+#include "code\game\gamemodes\mixed\lizard.dm"
+#include "code\game\gamemodes\mixed\mercrenegade.dm"
+#include "code\game\gamemodes\mixed\mercwiz.dm"
+#include "code\game\gamemodes\mixed\paranoia.dm"
+#include "code\game\gamemodes\mixed\traitorling.dm"
+#include "code\game\gamemodes\mixed\traitorrenegade.dm"
+#include "code\game\gamemodes\mixed\uprising.dm"
+#include "code\game\gamemodes\mixed\visitors.dm"
+#include "code\game\gamemodes\ninja\ninja.dm"
+#include "code\game\gamemodes\nuclear\nuclear.dm"
+#include "code\game\gamemodes\nuclear\pinpointer.dm"
+#include "code\game\gamemodes\revolution\revolution.dm"
+#include "code\game\gamemodes\technomancer\catalog.dm"
+#include "code\game\gamemodes\technomancer\clothing.dm"
+#include "code\game\gamemodes\technomancer\core_obj.dm"
+#include "code\game\gamemodes\technomancer\equipment.dm"
+#include "code\game\gamemodes\technomancer\instability.dm"
+#include "code\game\gamemodes\technomancer\spell_objs.dm"
+#include "code\game\gamemodes\technomancer\spell_objs_helpers.dm"
+#include "code\game\gamemodes\technomancer\technomancer.dm"
+#include "code\game\gamemodes\technomancer\assistance\assistance.dm"
+#include "code\game\gamemodes\technomancer\devices\boots_of_speed.dm"
+#include "code\game\gamemodes\technomancer\devices\disposable_teleporter.dm"
+#include "code\game\gamemodes\technomancer\devices\gloves_of_regen.dm"
+#include "code\game\gamemodes\technomancer\devices\hypos.dm"
+#include "code\game\gamemodes\technomancer\devices\implants.dm"
+#include "code\game\gamemodes\technomancer\devices\shield_armor.dm"
+#include "code\game\gamemodes\technomancer\devices\tesla_armor.dm"
+#include "code\game\gamemodes\technomancer\spells\abjuration.dm"
+#include "code\game\gamemodes\technomancer\spells\apportation.dm"
+#include "code\game\gamemodes\technomancer\spells\audible_deception.dm"
+#include "code\game\gamemodes\technomancer\spells\blink.dm"
+#include "code\game\gamemodes\technomancer\spells\chroma.dm"
+#include "code\game\gamemodes\technomancer\spells\condensation.dm"
+#include "code\game\gamemodes\technomancer\spells\control.dm"
+#include "code\game\gamemodes\technomancer\spells\dispel.dm"
+#include "code\game\gamemodes\technomancer\spells\energy_siphon.dm"
+#include "code\game\gamemodes\technomancer\spells\flame_tongue.dm"
+#include "code\game\gamemodes\technomancer\spells\gambit.dm"
+#include "code\game\gamemodes\technomancer\spells\illusion.dm"
+#include "code\game\gamemodes\technomancer\spells\instability_tap.dm"
+#include "code\game\gamemodes\technomancer\spells\mark_recall.dm"
+#include "code\game\gamemodes\technomancer\spells\mend_organs.dm"
+#include "code\game\gamemodes\technomancer\spells\oxygenate.dm"
+#include "code\game\gamemodes\technomancer\spells\passwall.dm"
+#include "code\game\gamemodes\technomancer\spells\phase_shift.dm"
+#include "code\game\gamemodes\technomancer\spells\radiance.dm"
+#include "code\game\gamemodes\technomancer\spells\reflect.dm"
+#include "code\game\gamemodes\technomancer\spells\resurrect.dm"
+#include "code\game\gamemodes\technomancer\spells\shared_burden.dm"
+#include "code\game\gamemodes\technomancer\spells\shield.dm"
+#include "code\game\gamemodes\technomancer\spells\targeting_matrix.dm"
+#include "code\game\gamemodes\technomancer\spells\track.dm"
+#include "code\game\gamemodes\technomancer\spells\warp_strike.dm"
+#include "code\game\gamemodes\technomancer\spells\aura\aura.dm"
+#include "code\game\gamemodes\technomancer\spells\aura\biomed_aura.dm"
+#include "code\game\gamemodes\technomancer\spells\aura\fire_aura.dm"
+#include "code\game\gamemodes\technomancer\spells\aura\frost_aura.dm"
+#include "code\game\gamemodes\technomancer\spells\aura\shock_aura.dm"
+#include "code\game\gamemodes\technomancer\spells\aura\unstable_aura.dm"
+#include "code\game\gamemodes\technomancer\spells\modifier\corona.dm"
+#include "code\game\gamemodes\technomancer\spells\modifier\haste.dm"
+#include "code\game\gamemodes\technomancer\spells\modifier\mend_all.dm"
+#include "code\game\gamemodes\technomancer\spells\modifier\mend_life.dm"
+#include "code\game\gamemodes\technomancer\spells\modifier\mend_synthetic.dm"
+#include "code\game\gamemodes\technomancer\spells\modifier\modifier.dm"
+#include "code\game\gamemodes\technomancer\spells\modifier\purify.dm"
+#include "code\game\gamemodes\technomancer\spells\modifier\repel_missiles.dm"
+#include "code\game\gamemodes\technomancer\spells\projectile\beam.dm"
+#include "code\game\gamemodes\technomancer\spells\projectile\chain_lightning.dm"
+#include "code\game\gamemodes\technomancer\spells\projectile\force_missile.dm"
+#include "code\game\gamemodes\technomancer\spells\projectile\ionic_bolt.dm"
+#include "code\game\gamemodes\technomancer\spells\projectile\lesser_chain_lightning.dm"
+#include "code\game\gamemodes\technomancer\spells\projectile\lightning.dm"
+#include "code\game\gamemodes\technomancer\spells\projectile\overload.dm"
+#include "code\game\gamemodes\technomancer\spells\projectile\projectile.dm"
+#include "code\game\gamemodes\technomancer\spells\spawner\darkness.dm"
+#include "code\game\gamemodes\technomancer\spells\spawner\destablize.dm"
+#include "code\game\gamemodes\technomancer\spells\spawner\fire_blast.dm"
+#include "code\game\gamemodes\technomancer\spells\spawner\pulsar.dm"
+#include "code\game\gamemodes\technomancer\spells\spawner\spawner.dm"
+#include "code\game\gamemodes\technomancer\spells\summon\summon.dm"
+#include "code\game\gamemodes\technomancer\spells\summon\summon_creature.dm"
+#include "code\game\gamemodes\technomancer\spells\summon\summon_ward.dm"
+#include "code\game\gamemodes\traitor\traitor.dm"
+#include "code\game\gamemodes\wizard\wizard.dm"
+#include "code\game\jobs\_access_defs.dm"
+#include "code\game\jobs\access.dm"
+#include "code\game\jobs\access_datum.dm"
+#include "code\game\jobs\access_datum_vr.dm"
+#include "code\game\jobs\job_controller.dm"
+#include "code\game\jobs\jobs.dm"
+#include "code\game\jobs\whitelist.dm"
+#include "code\game\jobs\whitelist_vr.dm"
+#include "code\game\jobs\job\_alt_title.dm"
+#include "code\game\jobs\job\assistant.dm"
+#include "code\game\jobs\job\assistant_vr.dm"
+#include "code\game\jobs\job\captain.dm"
+#include "code\game\jobs\job\captain_vr.dm"
+#include "code\game\jobs\job\civilian.dm"
+#include "code\game\jobs\job\civilian_chaplain.dm"
+#include "code\game\jobs\job\civilian_vr.dm"
+#include "code\game\jobs\job\department.dm"
+#include "code\game\jobs\job\department_vr.dm"
+#include "code\game\jobs\job\engineering.dm"
+#include "code\game\jobs\job\engineering_vr.dm"
+#include "code\game\jobs\job\exploration_vr.dm"
+#include "code\game\jobs\job\job.dm"
+#include "code\game\jobs\job\job_vr.dm"
+#include "code\game\jobs\job\medical.dm"
+#include "code\game\jobs\job\medical_vr.dm"
+#include "code\game\jobs\job\offduty_vr.dm"
+#include "code\game\jobs\job\science.dm"
+#include "code\game\jobs\job\science_vr.dm"
+#include "code\game\jobs\job\security.dm"
+#include "code\game\jobs\job\security_vr.dm"
+#include "code\game\jobs\job\silicon.dm"
+#include "code\game\jobs\job\silicon_vr.dm"
+#include "code\game\jobs\job\special_vr.dm"
+#include "code\game\machinery\adv_med.dm"
+#include "code\game\machinery\adv_med_vr.dm"
+#include "code\game\machinery\ai_slipper.dm"
+#include "code\game\machinery\air_alarm.dm"
+#include "code\game\machinery\airconditioner_vr.dm"
+#include "code\game\machinery\atmo_control.dm"
+#include "code\game\machinery\autolathe.dm"
+#include "code\game\machinery\Beacon.dm"
+#include "code\game\machinery\biogenerator.dm"
+#include "code\game\machinery\bioprinter.dm"
+#include "code\game\machinery\bomb_tester_vr.dm"
+#include "code\game\machinery\buttons.dm"
+#include "code\game\machinery\buttons_vr.dm"
+#include "code\game\machinery\CableLayer.dm"
+#include "code\game\machinery\cell_charger.dm"
+#include "code\game\machinery\cloning.dm"
+#include "code\game\machinery\cryo.dm"
+#include "code\game\machinery\cryopod.dm"
+#include "code\game\machinery\cryopod_vr.dm"
+#include "code\game\machinery\deployable.dm"
+#include "code\game\machinery\deployable_vr.dm"
+#include "code\game\machinery\door_control.dm"
+#include "code\game\machinery\doorbell_vr.dm"
+#include "code\game\machinery\doppler_array.dm"
+#include "code\game\machinery\exonet_node.dm"
+#include "code\game\machinery\fire_alarm.dm"
+#include "code\game\machinery\flasher.dm"
+#include "code\game\machinery\floodlight.dm"
+#include "code\game\machinery\floor_light.dm"
+#include "code\game\machinery\floorlayer.dm"
+#include "code\game\machinery\frame.dm"
+#include "code\game\machinery\gear_dispenser.dm"
+#include "code\game\machinery\hologram.dm"
+#include "code\game\machinery\holoposter.dm"
+#include "code\game\machinery\holosign.dm"
+#include "code\game\machinery\igniter.dm"
+#include "code\game\machinery\iv_drip.dm"
+#include "code\game\machinery\jukebox.dm"
+#include "code\game\machinery\lightswitch.dm"
+#include "code\game\machinery\machinery.dm"
+#include "code\game\machinery\machinery_power.dm"
+#include "code\game\machinery\magnet.dm"
+#include "code\game\machinery\mass_driver.dm"
+#include "code\game\machinery\navbeacon.dm"
+#include "code\game\machinery\neonsign.dm"
+#include "code\game\machinery\newscaster.dm"
+#include "code\game\machinery\nuclear_bomb.dm"
+#include "code\game\machinery\OpTable.dm"
+#include "code\game\machinery\overview.dm"
+#include "code\game\machinery\oxygen_pump.dm"
+#include "code\game\machinery\painter_vr.dm"
+#include "code\game\machinery\partslathe_vr.dm"
+#include "code\game\machinery\pda_multicaster.dm"
+#include "code\game\machinery\pointdefense.dm"
+#include "code\game\machinery\portable_turret.dm"
+#include "code\game\machinery\portable_turret_vr.dm"
+#include "code\game\machinery\recharger.dm"
+#include "code\game\machinery\rechargestation.dm"
+#include "code\game\machinery\requests_console.dm"
+#include "code\game\machinery\requests_console_vr.dm"
+#include "code\game\machinery\robot_fabricator.dm"
+#include "code\game\machinery\seed_extractor.dm"
+#include "code\game\machinery\Sleeper.dm"
+#include "code\game\machinery\spaceheater.dm"
+#include "code\game\machinery\status_display.dm"
+#include "code\game\machinery\status_display_ai.dm"
+#include "code\game\machinery\suit_cycler_datums.dm"
+#include "code\game\machinery\suit_storage_unit.dm"
+#include "code\game\machinery\suit_storage_unit_vr.dm"
+#include "code\game\machinery\supply_display.dm"
+#include "code\game\machinery\supplybeacon.dm"
+#include "code\game\machinery\syndicatebeacon.dm"
+#include "code\game\machinery\syndicatebeacon_vr.dm"
+#include "code\game\machinery\teleporter.dm"
+#include "code\game\machinery\transportpod.dm"
+#include "code\game\machinery\turret_control.dm"
+#include "code\game\machinery\vending_machines_vr.dm"
+#include "code\game\machinery\vitals_monitor.dm"
+#include "code\game\machinery\wall_frames.dm"
+#include "code\game\machinery\washing_machine.dm"
+#include "code\game\machinery\wishgranter.dm"
+#include "code\game\machinery\atmoalter\area_atmos_computer.dm"
+#include "code\game\machinery\atmoalter\area_atmos_computer_vr.dm"
+#include "code\game\machinery\atmoalter\canister.dm"
+#include "code\game\machinery\atmoalter\clamp.dm"
+#include "code\game\machinery\atmoalter\meter.dm"
+#include "code\game\machinery\atmoalter\portable_atmospherics.dm"
+#include "code\game\machinery\atmoalter\pump.dm"
+#include "code\game\machinery\atmoalter\pump_vr.dm"
+#include "code\game\machinery\atmoalter\scrubber.dm"
+#include "code\game\machinery\camera\camera.dm"
+#include "code\game\machinery\camera\camera_assembly.dm"
+#include "code\game\machinery\camera\camera_vr.dm"
+#include "code\game\machinery\camera\motion.dm"
+#include "code\game\machinery\camera\presets.dm"
+#include "code\game\machinery\camera\tracking.dm"
+#include "code\game\machinery\computer\ai_core.dm"
+#include "code\game\machinery\computer\aifixer.dm"
+#include "code\game\machinery\computer\arcade.dm"
+#include "code\game\machinery\computer\arcade_vr.dm"
+#include "code\game\machinery\computer\atmos_alert.dm"
+#include "code\game\machinery\computer\atmos_control.dm"
+#include "code\game\machinery\computer\camera.dm"
+#include "code\game\machinery\computer\camera_vr.dm"
+#include "code\game\machinery\computer\card.dm"
+#include "code\game\machinery\computer\cloning.dm"
+#include "code\game\machinery\computer\communications.dm"
+#include "code\game\machinery\computer\computer.dm"
+#include "code\game\machinery\computer\crew.dm"
+#include "code\game\machinery\computer\guestpass.dm"
+#include "code\game\machinery\computer\id_restorer_vr.dm"
+#include "code\game\machinery\computer\law.dm"
+#include "code\game\machinery\computer\medical.dm"
+#include "code\game\machinery\computer\message.dm"
+#include "code\game\machinery\computer\Operating.dm"
+#include "code\game\machinery\computer\pod.dm"
+#include "code\game\machinery\computer\prisoner.dm"
+#include "code\game\machinery\computer\prisonshuttle.dm"
+#include "code\game\machinery\computer\RCON_Console.dm"
+#include "code\game\machinery\computer\robot.dm"
+#include "code\game\machinery\computer\security.dm"
+#include "code\game\machinery\computer\shutoff_monitor.dm"
+#include "code\game\machinery\computer\shuttle.dm"
+#include "code\game\machinery\computer\skills.dm"
+#include "code\game\machinery\computer\specops_shuttle.dm"
+#include "code\game\machinery\computer\station_alert.dm"
+#include "code\game\machinery\computer\supply.dm"
+#include "code\game\machinery\computer\syndicate_specops_shuttle.dm"
+#include "code\game\machinery\computer\timeclock_vr.dm"
+#include "code\game\machinery\computer\~computer_vr.dm"
+#include "code\game\machinery\doors\airlock.dm"
+#include "code\game\machinery\doors\airlock_control.dm"
+#include "code\game\machinery\doors\airlock_electronics.dm"
+#include "code\game\machinery\doors\airlock_vr.dm"
+#include "code\game\machinery\doors\alarmlock.dm"
+#include "code\game\machinery\doors\blast_door.dm"
+#include "code\game\machinery\doors\brigdoors.dm"
+#include "code\game\machinery\doors\checkForMultipleDoors.dm"
+#include "code\game\machinery\doors\door.dm"
+#include "code\game\machinery\doors\door_vr.dm"
+#include "code\game\machinery\doors\firedoor.dm"
+#include "code\game\machinery\doors\firedoor_assembly.dm"
+#include "code\game\machinery\doors\firedoor_vr.dm"
+#include "code\game\machinery\doors\multi_tile.dm"
+#include "code\game\machinery\doors\multi_tile_vr.dm"
+#include "code\game\machinery\doors\unpowered.dm"
+#include "code\game\machinery\doors\windowdoor.dm"
+#include "code\game\machinery\embedded_controller\airlock_controllers.dm"
+#include "code\game\machinery\embedded_controller\airlock_docking_controller.dm"
+#include "code\game\machinery\embedded_controller\airlock_docking_controller_multi.dm"
+#include "code\game\machinery\embedded_controller\airlock_program.dm"
+#include "code\game\machinery\embedded_controller\docking_program.dm"
+#include "code\game\machinery\embedded_controller\docking_program_multi.dm"
+#include "code\game\machinery\embedded_controller\embedded_controller_base.dm"
+#include "code\game\machinery\embedded_controller\embedded_program_base.dm"
+#include "code\game\machinery\embedded_controller\mapping_helpers.dm"
+#include "code\game\machinery\embedded_controller\simple_docking_controller.dm"
+#include "code\game\machinery\event\stage_vr.dm"
+#include "code\game\machinery\pipe\construction.dm"
+#include "code\game\machinery\pipe\pipe_dispenser.dm"
+#include "code\game\machinery\pipe\pipe_recipes.dm"
+#include "code\game\machinery\pipe\pipelayer.dm"
+#include "code\game\machinery\reagents\pump.dm"
+#include "code\game\machinery\telecomms\broadcaster.dm"
+#include "code\game\machinery\telecomms\broadcaster_vr.dm"
+#include "code\game\machinery\telecomms\logbrowser.dm"
+#include "code\game\machinery\telecomms\machine_interactions.dm"
+#include "code\game\machinery\telecomms\presets.dm"
+#include "code\game\machinery\telecomms\presets_vr.dm"
+#include "code\game\machinery\telecomms\telecomunications.dm"
+#include "code\game\machinery\telecomms\telemonitor.dm"
+#include "code\game\machinery\telecomms\traffic_control.dm"
+#include "code\game\machinery\virtual_reality\ar_console.dm"
+#include "code\game\machinery\virtual_reality\vr_console.dm"
+#include "code\game\magic\Uristrunes.dm"
+#include "code\game\mecha\mech_bay.dm"
+#include "code\game\mecha\mech_fabricator.dm"
+#include "code\game\mecha\mech_prosthetics.dm"
+#include "code\game\mecha\mech_sensor.dm"
+#include "code\game\mecha\mecha.dm"
+#include "code\game\mecha\mecha_actions.dm"
+#include "code\game\mecha\mecha_appearance.dm"
+#include "code\game\mecha\mecha_construction_paths.dm"
+#include "code\game\mecha\mecha_control_console.dm"
+#include "code\game\mecha\mecha_helpers.dm"
+#include "code\game\mecha\mecha_parts.dm"
+#include "code\game\mecha\mecha_vr.dm"
+#include "code\game\mecha\mecha_wreckage.dm"
+#include "code\game\mecha\combat\combat.dm"
+#include "code\game\mecha\combat\durand.dm"
+#include "code\game\mecha\combat\fighter.dm"
+#include "code\game\mecha\combat\gorilla.dm"
+#include "code\game\mecha\combat\gygax.dm"
+#include "code\game\mecha\combat\marauder.dm"
+#include "code\game\mecha\combat\phazon.dm"
+#include "code\game\mecha\components\_component.dm"
+#include "code\game\mecha\components\actuators.dm"
+#include "code\game\mecha\components\armor.dm"
+#include "code\game\mecha\components\electrical.dm"
+#include "code\game\mecha\components\hull.dm"
+#include "code\game\mecha\components\lifesupport.dm"
+#include "code\game\mecha\equipment\mecha_equipment.dm"
+#include "code\game\mecha\equipment\mecha_equipment_dynamicprocs.dm"
+#include "code\game\mecha\equipment\tools\armor_melee.dm"
+#include "code\game\mecha\equipment\tools\armor_ranged.dm"
+#include "code\game\mecha\equipment\tools\cable_layer.dm"
+#include "code\game\mecha\equipment\tools\catapult.dm"
+#include "code\game\mecha\equipment\tools\clamp.dm"
+#include "code\game\mecha\equipment\tools\cloak.dm"
+#include "code\game\mecha\equipment\tools\drill.dm"
+#include "code\game\mecha\equipment\tools\energy_relay.dm"
+#include "code\game\mecha\equipment\tools\extinguisher.dm"
+#include "code\game\mecha\equipment\tools\generator.dm"
+#include "code\game\mecha\equipment\tools\hardpoint_actuator.dm"
+#include "code\game\mecha\equipment\tools\inflatables.dm"
+#include "code\game\mecha\equipment\tools\jetpack.dm"
+#include "code\game\mecha\equipment\tools\medigun_vr.dm"
+#include "code\game\mecha\equipment\tools\orescanner.dm"
+#include "code\game\mecha\equipment\tools\passenger.dm"
+#include "code\game\mecha\equipment\tools\powertool.dm"
+#include "code\game\mecha\equipment\tools\rcd.dm"
+#include "code\game\mecha\equipment\tools\repair_droid.dm"
+#include "code\game\mecha\equipment\tools\running_board.dm"
+#include "code\game\mecha\equipment\tools\shield.dm"
+#include "code\game\mecha\equipment\tools\shield_omni.dm"
+#include "code\game\mecha\equipment\tools\sleeper.dm"
+#include "code\game\mecha\equipment\tools\speedboost.dm"
+#include "code\game\mecha\equipment\tools\syringe_gun.dm"
+#include "code\game\mecha\equipment\tools\teleporter.dm"
+#include "code\game\mecha\equipment\tools\tools.dm"
+#include "code\game\mecha\equipment\tools\weldinglaser.dm"
+#include "code\game\mecha\equipment\tools\wormhole.dm"
+#include "code\game\mecha\equipment\weapons\honk.dm"
+#include "code\game\mecha\equipment\weapons\weapons.dm"
+#include "code\game\mecha\equipment\weapons\ballistic\automatic.dm"
+#include "code\game\mecha\equipment\weapons\ballistic\ballistic.dm"
+#include "code\game\mecha\equipment\weapons\ballistic\mortar.dm"
+#include "code\game\mecha\equipment\weapons\ballistic\shotgun.dm"
+#include "code\game\mecha\equipment\weapons\defense\shocker.dm"
+#include "code\game\mecha\equipment\weapons\energy\energy.dm"
+#include "code\game\mecha\equipment\weapons\energy\ion.dm"
+#include "code\game\mecha\equipment\weapons\energy\laser.dm"
+#include "code\game\mecha\equipment\weapons\energy\phased.dm"
+#include "code\game\mecha\equipment\weapons\energy\pulse.dm"
+#include "code\game\mecha\equipment\weapons\energy\stun.dm"
+#include "code\game\mecha\equipment\weapons\explosive\grenade.dm"
+#include "code\game\mecha\equipment\weapons\explosive\missile.dm"
+#include "code\game\mecha\equipment\weapons\fire\flamethrower.dm"
+#include "code\game\mecha\equipment\weapons\fire\incendiary.dm"
+#include "code\game\mecha\medical\medical.dm"
+#include "code\game\mecha\medical\odysseus.dm"
+#include "code\game\mecha\medical\odysseus_vr.dm"
+#include "code\game\mecha\micro\mecha_construction_paths_vr.dm"
+#include "code\game\mecha\micro\mecha_parts_vr.dm"
+#include "code\game\mecha\micro\mecha_vr.dm"
+#include "code\game\mecha\micro\mechfab_designs_vr.dm"
+#include "code\game\mecha\micro\micro.dm"
+#include "code\game\mecha\micro\micro_equipment.dm"
+#include "code\game\mecha\micro\security.dm"
+#include "code\game\mecha\micro\utility.dm"
+#include "code\game\mecha\space\hoverpod.dm"
+#include "code\game\mecha\space\shuttle.dm"
+#include "code\game\mecha\working\ripley.dm"
+#include "code\game\mecha\working\ripley_vr.dm"
+#include "code\game\mecha\working\working.dm"
+#include "code\game\objects\banners.dm"
+#include "code\game\objects\banners_vr.dm"
+#include "code\game\objects\buckling.dm"
+#include "code\game\objects\empulse.dm"
+#include "code\game\objects\explosion.dm"
+#include "code\game\objects\explosion_recursive.dm"
+#include "code\game\objects\items.dm"
+#include "code\game\objects\mob_spawner_vr.dm"
+#include "code\game\objects\objs.dm"
+#include "code\game\objects\structures.dm"
+#include "code\game\objects\stumble_into_vr.dm"
+#include "code\game\objects\weapons.dm"
+#include "code\game\objects\effects\bump_teleporter.dm"
+#include "code\game\objects\effects\confetti_vr.dm"
+#include "code\game\objects\effects\effect_system.dm"
+#include "code\game\objects\effects\explosion_particles.dm"
+#include "code\game\objects\effects\gibs.dm"
+#include "code\game\objects\effects\glowshroom.dm"
+#include "code\game\objects\effects\item_pickup_ghost.dm"
+#include "code\game\objects\effects\landmarks.dm"
+#include "code\game\objects\effects\landmarks_vr.dm"
+#include "code\game\objects\effects\manifest.dm"
+#include "code\game\objects\effects\mines.dm"
+#include "code\game\objects\effects\misc.dm"
+#include "code\game\objects\effects\overlays.dm"
+#include "code\game\objects\effects\portals.dm"
+#include "code\game\objects\effects\semirandom_mobs_vr.dm"
+#include "code\game\objects\effects\spiders.dm"
+#include "code\game\objects\effects\spiders_vr.dm"
+#include "code\game\objects\effects\step_triggers.dm"
+#include "code\game\objects\effects\zone_divider.dm"
+#include "code\game\objects\effects\alien\aliens.dm"
+#include "code\game\objects\effects\chem\chemsmoke.dm"
+#include "code\game\objects\effects\chem\coating.dm"
+#include "code\game\objects\effects\chem\foam.dm"
+#include "code\game\objects\effects\chem\foam_vr.dm"
+#include "code\game\objects\effects\chem\water.dm"
+#include "code\game\objects\effects\decals\cleanable.dm"
+#include "code\game\objects\effects\decals\crayon.dm"
+#include "code\game\objects\effects\decals\misc.dm"
+#include "code\game\objects\effects\decals\remains.dm"
+#include "code\game\objects\effects\decals\warning_stripes.dm"
+#include "code\game\objects\effects\decals\Cleanable\aliens.dm"
+#include "code\game\objects\effects\decals\Cleanable\fuel.dm"
+#include "code\game\objects\effects\decals\Cleanable\humans.dm"
+#include "code\game\objects\effects\decals\Cleanable\misc.dm"
+#include "code\game\objects\effects\decals\Cleanable\robots.dm"
+#include "code\game\objects\effects\decals\Cleanable\tracks.dm"
+#include "code\game\objects\effects\decals\posters\bs12.dm"
+#include "code\game\objects\effects\decals\posters\polarisposters.dm"
+#include "code\game\objects\effects\decals\posters\polarisposters_vr.dm"
+#include "code\game\objects\effects\decals\posters\posters.dm"
+#include "code\game\objects\effects\decals\posters\tgposters.dm"
+#include "code\game\objects\effects\decals\posters\voreposters_vr.dm"
+#include "code\game\objects\effects\map_effects\beam_point.dm"
+#include "code\game\objects\effects\map_effects\effect_emitter.dm"
+#include "code\game\objects\effects\map_effects\map_effects.dm"
+#include "code\game\objects\effects\map_effects\perma_light.dm"
+#include "code\game\objects\effects\map_effects\portal.dm"
+#include "code\game\objects\effects\map_effects\radiation_emitter.dm"
+#include "code\game\objects\effects\map_effects\screen_shaker.dm"
+#include "code\game\objects\effects\map_effects\sound_emitter.dm"
+#include "code\game\objects\effects\prop\columnblast.dm"
+#include "code\game\objects\effects\prop\snake.dm"
+#include "code\game\objects\effects\spawners\bombspawner.dm"
+#include "code\game\objects\effects\spawners\gibspawner.dm"
+#include "code\game\objects\effects\spawners\graffiti.dm"
+#include "code\game\objects\effects\temporary_visuals\miscellaneous.dm"
+#include "code\game\objects\effects\temporary_visuals\temporary_visual.dm"
+#include "code\game\objects\effects\temporary_visuals\projectiles\impact.dm"
+#include "code\game\objects\effects\temporary_visuals\projectiles\muzzle.dm"
+#include "code\game\objects\effects\temporary_visuals\projectiles\projectile_effects.dm"
+#include "code\game\objects\effects\temporary_visuals\projectiles\tracer.dm"
+#include "code\game\objects\items\antag_spawners.dm"
+#include "code\game\objects\items\apc_frame.dm"
+#include "code\game\objects\items\bells.dm"
+#include "code\game\objects\items\blueprints.dm"
+#include "code\game\objects\items\bodybag.dm"
+#include "code\game\objects\items\contraband.dm"
+#include "code\game\objects\items\contraband_vr.dm"
+#include "code\game\objects\items\crayons.dm"
+#include "code\game\objects\items\falling_object_vr.dm"
+#include "code\game\objects\items\glassjar.dm"
+#include "code\game\objects\items\gunbox.dm"
+#include "code\game\objects\items\gunbox_vr.dm"
+#include "code\game\objects\items\latexballoon.dm"
+#include "code\game\objects\items\paintkit.dm"
+#include "code\game\objects\items\pizza_voucher_vr.dm"
+#include "code\game\objects\items\poi_items.dm"
+#include "code\game\objects\items\robobag.dm"
+#include "code\game\objects\items\shooting_range.dm"
+#include "code\game\objects\items\tailoring.dm"
+#include "code\game\objects\items\trash.dm"
+#include "code\game\objects\items\trash_material.dm"
+#include "code\game\objects\items\trash_vr.dm"
+#include "code\game\objects\items\uav.dm"
+#include "code\game\objects\items\devices\advnifrepair.dm"
+#include "code\game\objects\items\devices\ai_detector.dm"
+#include "code\game\objects\items\devices\aicard.dm"
+#include "code\game\objects\items\devices\binoculars.dm"
+#include "code\game\objects\items\devices\body_snatcher_vr.dm"
+#include "code\game\objects\items\devices\chameleonproj.dm"
+#include "code\game\objects\items\devices\debugger.dm"
+#include "code\game\objects\items\devices\defib.dm"
+#include "code\game\objects\items\devices\denecrotizer_vr.dm"
+#include "code\game\objects\items\devices\flash.dm"
+#include "code\game\objects\items\devices\flash_vr.dm"
+#include "code\game\objects\items\devices\flashlight.dm"
+#include "code\game\objects\items\devices\flashlight_vr.dm"
+#include "code\game\objects\items\devices\floor_painter.dm"
+#include "code\game\objects\items\devices\geiger.dm"
+#include "code\game\objects\items\devices\gps.dm"
+#include "code\game\objects\items\devices\hacktool.dm"
+#include "code\game\objects\items\devices\holowarrant.dm"
+#include "code\game\objects\items\devices\laserpointer.dm"
+#include "code\game\objects\items\devices\lightreplacer.dm"
+#include "code\game\objects\items\devices\megaphone.dm"
+#include "code\game\objects\items\devices\modkit.dm"
+#include "code\game\objects\items\devices\multitool.dm"
+#include "code\game\objects\items\devices\paicard.dm"
+#include "code\game\objects\items\devices\pipe_painter.dm"
+#include "code\game\objects\items\devices\powersink.dm"
+#include "code\game\objects\items\devices\scanners.dm"
+#include "code\game\objects\items\devices\scanners_vr.dm"
+#include "code\game\objects\items\devices\spy_bug.dm"
+#include "code\game\objects\items\devices\suit_cooling.dm"
+#include "code\game\objects\items\devices\t_scanner.dm"
+#include "code\game\objects\items\devices\taperecorder.dm"
+#include "code\game\objects\items\devices\text_to_speech.dm"
+#include "code\game\objects\items\devices\traitordevices.dm"
+#include "code\game\objects\items\devices\transfer_valve.dm"
+#include "code\game\objects\items\devices\translator.dm"
+#include "code\game\objects\items\devices\translocator_vr.dm"
+#include "code\game\objects\items\devices\tvcamera.dm"
+#include "code\game\objects\items\devices\uplink.dm"
+#include "code\game\objects\items\devices\uplink_random_lists.dm"
+#include "code\game\objects\items\devices\whistle.dm"
+#include "code\game\objects\items\devices\communicator\communicator.dm"
+#include "code\game\objects\items\devices\communicator\helper.dm"
+#include "code\game\objects\items\devices\communicator\integrated.dm"
+#include "code\game\objects\items\devices\communicator\messaging.dm"
+#include "code\game\objects\items\devices\communicator\phone.dm"
+#include "code\game\objects\items\devices\communicator\UI_tgui.dm"
+#include "code\game\objects\items\devices\radio\beacon.dm"
+#include "code\game\objects\items\devices\radio\electropack.dm"
+#include "code\game\objects\items\devices\radio\encryptionkey.dm"
+#include "code\game\objects\items\devices\radio\encryptionkey_vr.dm"
+#include "code\game\objects\items\devices\radio\headset.dm"
+#include "code\game\objects\items\devices\radio\headset_vr.dm"
+#include "code\game\objects\items\devices\radio\intercom.dm"
+#include "code\game\objects\items\devices\radio\jammer.dm"
+#include "code\game\objects\items\devices\radio\jammer_vr.dm"
+#include "code\game\objects\items\devices\radio\radio.dm"
+#include "code\game\objects\items\devices\radio\radio_vr.dm"
+#include "code\game\objects\items\devices\radio\radiopack.dm"
+#include "code\game\objects\items\robot\robot_items.dm"
+#include "code\game\objects\items\robot\robot_parts.dm"
+#include "code\game\objects\items\robot\robot_upgrades.dm"
+#include "code\game\objects\items\robot\robot_upgrades_vr.dm"
+#include "code\game\objects\items\stacks\marker_beacons.dm"
+#include "code\game\objects\items\stacks\matter_synth.dm"
+#include "code\game\objects\items\stacks\medical.dm"
+#include "code\game\objects\items\stacks\medical_vr.dm"
+#include "code\game\objects\items\stacks\nanopaste.dm"
+#include "code\game\objects\items\stacks\nanopaste_vr.dm"
+#include "code\game\objects\items\stacks\sandbags.dm"
+#include "code\game\objects\items\stacks\stack.dm"
+#include "code\game\objects\items\stacks\telecrystal.dm"
+#include "code\game\objects\items\stacks\tickets.dm"
+#include "code\game\objects\items\stacks\tiles\fifty_spawner_tiles.dm"
+#include "code\game\objects\items\stacks\tiles\tile_types.dm"
+#include "code\game\objects\items\toys\balls_vr.dm"
+#include "code\game\objects\items\toys\godfigures.dm"
+#include "code\game\objects\items\toys\mech_toys.dm"
+#include "code\game\objects\items\toys\toys.dm"
+#include "code\game\objects\items\toys\toys_vr.dm"
+#include "code\game\objects\items\weapons\AI_modules.dm"
+#include "code\game\objects\items\weapons\AI_modules_vr.dm"
+#include "code\game\objects\items\weapons\augment_items.dm"
+#include "code\game\objects\items\weapons\autopsy.dm"
+#include "code\game\objects\items\weapons\bones.dm"
+#include "code\game\objects\items\weapons\candle.dm"
+#include "code\game\objects\items\weapons\canes.dm"
+#include "code\game\objects\items\weapons\cards_ids_vr.dm"
+#include "code\game\objects\items\weapons\chewables.dm"
+#include "code\game\objects\items\weapons\cigs_lighters.dm"
+#include "code\game\objects\items\weapons\clown_items.dm"
+#include "code\game\objects\items\weapons\cosmetics.dm"
+#include "code\game\objects\items\weapons\dna_injector.dm"
+#include "code\game\objects\items\weapons\ecigs.dm"
+#include "code\game\objects\items\weapons\explosives.dm"
+#include "code\game\objects\items\weapons\explosives_vr.dm"
+#include "code\game\objects\items\weapons\extinguisher.dm"
+#include "code\game\objects\items\weapons\flamethrower.dm"
+#include "code\game\objects\items\weapons\gift_wrappaper.dm"
+#include "code\game\objects\items\weapons\handcuffs.dm"
+#include "code\game\objects\items\weapons\handcuffs_vr.dm"
+#include "code\game\objects\items\weapons\improvised_components.dm"
+#include "code\game\objects\items\weapons\inducer_vr.dm"
+#include "code\game\objects\items\weapons\manuals.dm"
+#include "code\game\objects\items\weapons\manuals_vr.dm"
+#include "code\game\objects\items\weapons\mop.dm"
+#include "code\game\objects\items\weapons\mop_deploy.dm"
+#include "code\game\objects\items\weapons\paint.dm"
+#include "code\game\objects\items\weapons\paiwire.dm"
+#include "code\game\objects\items\weapons\policetape.dm"
+#include "code\game\objects\items\weapons\RCD.dm"
+#include "code\game\objects\items\weapons\RCD_vr.dm"
+#include "code\game\objects\items\weapons\RMS_vr.dm"
+#include "code\game\objects\items\weapons\RPD_vr.dm"
+#include "code\game\objects\items\weapons\RSF.dm"
+#include "code\game\objects\items\weapons\scrolls.dm"
+#include "code\game\objects\items\weapons\shields.dm"
+#include "code\game\objects\items\weapons\shields_vr.dm"
+#include "code\game\objects\items\weapons\stunbaton.dm"
+#include "code\game\objects\items\weapons\surgery_tools.dm"
+#include "code\game\objects\items\weapons\swords_axes_etc.dm"
+#include "code\game\objects\items\weapons\syndie.dm"
+#include "code\game\objects\items\weapons\tape.dm"
+#include "code\game\objects\items\weapons\teleportation.dm"
+#include "code\game\objects\items\weapons\towels.dm"
+#include "code\game\objects\items\weapons\traps.dm"
+#include "code\game\objects\items\weapons\traps_vr.dm"
+#include "code\game\objects\items\weapons\trays.dm"
+#include "code\game\objects\items\weapons\weaponry.dm"
+#include "code\game\objects\items\weapons\weldbackpack.dm"
+#include "code\game\objects\items\weapons\circuitboards\broken.dm"
+#include "code\game\objects\items\weapons\circuitboards\circuitboard.dm"
+#include "code\game\objects\items\weapons\circuitboards\circuitboards_vr.dm"
+#include "code\game\objects\items\weapons\circuitboards\frame.dm"
+#include "code\game\objects\items\weapons\circuitboards\mecha.dm"
+#include "code\game\objects\items\weapons\circuitboards\other.dm"
+#include "code\game\objects\items\weapons\circuitboards\computer\air_management.dm"
+#include "code\game\objects\items\weapons\circuitboards\computer\camera_monitor.dm"
+#include "code\game\objects\items\weapons\circuitboards\computer\computer.dm"
+#include "code\game\objects\items\weapons\circuitboards\computer\research.dm"
+#include "code\game\objects\items\weapons\circuitboards\computer\shuttle.dm"
+#include "code\game\objects\items\weapons\circuitboards\computer\supply.dm"
+#include "code\game\objects\items\weapons\circuitboards\computer\telecomms.dm"
+#include "code\game\objects\items\weapons\circuitboards\machinery\biogenerator.dm"
+#include "code\game\objects\items\weapons\circuitboards\machinery\cloning.dm"
+#include "code\game\objects\items\weapons\circuitboards\machinery\engineering.dm"
+#include "code\game\objects\items\weapons\circuitboards\machinery\fluidpump.dm"
+#include "code\game\objects\items\weapons\circuitboards\machinery\jukebox.dm"
+#include "code\game\objects\items\weapons\circuitboards\machinery\kitchen_appliances.dm"
+#include "code\game\objects\items\weapons\circuitboards\machinery\mech_recharger.dm"
+#include "code\game\objects\items\weapons\circuitboards\machinery\mining_drill.dm"
+#include "code\game\objects\items\weapons\circuitboards\machinery\pacman.dm"
+#include "code\game\objects\items\weapons\circuitboards\machinery\papershredder.dm"
+#include "code\game\objects\items\weapons\circuitboards\machinery\power.dm"
+#include "code\game\objects\items\weapons\circuitboards\machinery\recharge_station.dm"
+#include "code\game\objects\items\weapons\circuitboards\machinery\research.dm"
+#include "code\game\objects\items\weapons\circuitboards\machinery\shieldgen.dm"
+#include "code\game\objects\items\weapons\circuitboards\machinery\ships.dm"
+#include "code\game\objects\items\weapons\circuitboards\machinery\telecomms.dm"
+#include "code\game\objects\items\weapons\circuitboards\machinery\unary_atmos.dm"
+#include "code\game\objects\items\weapons\grenades\anti_photon_grenade.dm"
+#include "code\game\objects\items\weapons\grenades\chem_grenade.dm"
+#include "code\game\objects\items\weapons\grenades\concussion.dm"
+#include "code\game\objects\items\weapons\grenades\emgrenade.dm"
+#include "code\game\objects\items\weapons\grenades\explosive.dm"
+#include "code\game\objects\items\weapons\grenades\flashbang.dm"
+#include "code\game\objects\items\weapons\grenades\grenade.dm"
+#include "code\game\objects\items\weapons\grenades\projectile.dm"
+#include "code\game\objects\items\weapons\grenades\smokebomb.dm"
+#include "code\game\objects\items\weapons\grenades\spawnergrenade.dm"
+#include "code\game\objects\items\weapons\grenades\spawnergrenade_vr.dm"
+#include "code\game\objects\items\weapons\grenades\supermatter.dm"
+#include "code\game\objects\items\weapons\id cards\cards.dm"
+#include "code\game\objects\items\weapons\id cards\cards_vr.dm"
+#include "code\game\objects\items\weapons\id cards\id_stacks.dm"
+#include "code\game\objects\items\weapons\id cards\id_stacks_vr.dm"
+#include "code\game\objects\items\weapons\id cards\station_ids.dm"
+#include "code\game\objects\items\weapons\id cards\station_ids_vr.dm"
+#include "code\game\objects\items\weapons\id cards\syndicate_ids.dm"
+#include "code\game\objects\items\weapons\implants\implant.dm"
+#include "code\game\objects\items\weapons\implants\implant_vr.dm"
+#include "code\game\objects\items\weapons\implants\implantaugment.dm"
+#include "code\game\objects\items\weapons\implants\implantcase.dm"
+#include "code\game\objects\items\weapons\implants\implantcase_vr.dm"
+#include "code\game\objects\items\weapons\implants\implantchair.dm"
+#include "code\game\objects\items\weapons\implants\implantcircuits.dm"
+#include "code\game\objects\items\weapons\implants\implantdud.dm"
+#include "code\game\objects\items\weapons\implants\implanter.dm"
+#include "code\game\objects\items\weapons\implants\implanter_vr.dm"
+#include "code\game\objects\items\weapons\implants\implantfreedom.dm"
+#include "code\game\objects\items\weapons\implants\implantlanguage.dm"
+#include "code\game\objects\items\weapons\implants\implantpad.dm"
+#include "code\game\objects\items\weapons\implants\implantreagent_vr.dm"
+#include "code\game\objects\items\weapons\implants\implantrestrainingbolt.dm"
+#include "code\game\objects\items\weapons\implants\implantuplink.dm"
+#include "code\game\objects\items\weapons\implants\neuralbasic.dm"
+#include "code\game\objects\items\weapons\material\ashtray.dm"
+#include "code\game\objects\items\weapons\material\bats.dm"
+#include "code\game\objects\items\weapons\material\chainsaw.dm"
+#include "code\game\objects\items\weapons\material\foam.dm"
+#include "code\game\objects\items\weapons\material\gravemarker.dm"
+#include "code\game\objects\items\weapons\material\kitchen.dm"
+#include "code\game\objects\items\weapons\material\knives.dm"
+#include "code\game\objects\items\weapons\material\knives_vr.dm"
+#include "code\game\objects\items\weapons\material\material_armor.dm"
+#include "code\game\objects\items\weapons\material\material_weapons.dm"
+#include "code\game\objects\items\weapons\material\misc.dm"
+#include "code\game\objects\items\weapons\material\shards.dm"
+#include "code\game\objects\items\weapons\material\shards_vr.dm"
+#include "code\game\objects\items\weapons\material\swords.dm"
+#include "code\game\objects\items\weapons\material\thrown.dm"
+#include "code\game\objects\items\weapons\material\twohanded.dm"
+#include "code\game\objects\items\weapons\material\twohanded_vr.dm"
+#include "code\game\objects\items\weapons\material\whetstone.dm"
+#include "code\game\objects\items\weapons\melee\deflect.dm"
+#include "code\game\objects\items\weapons\melee\energy.dm"
+#include "code\game\objects\items\weapons\melee\energy_vr.dm"
+#include "code\game\objects\items\weapons\melee\misc.dm"
+#include "code\game\objects\items\weapons\melee\misc_vr.dm"
+#include "code\game\objects\items\weapons\storage\backpack.dm"
+#include "code\game\objects\items\weapons\storage\backpack_vr.dm"
+#include "code\game\objects\items\weapons\storage\bags.dm"
+#include "code\game\objects\items\weapons\storage\bags_vr.dm"
+#include "code\game\objects\items\weapons\storage\belt.dm"
+#include "code\game\objects\items\weapons\storage\belt_vr.dm"
+#include "code\game\objects\items\weapons\storage\bible.dm"
+#include "code\game\objects\items\weapons\storage\boxes.dm"
+#include "code\game\objects\items\weapons\storage\boxes_vr.dm"
+#include "code\game\objects\items\weapons\storage\briefcase.dm"
+#include "code\game\objects\items\weapons\storage\egg_vr.dm"
+#include "code\game\objects\items\weapons\storage\fancy.dm"
+#include "code\game\objects\items\weapons\storage\firstaid.dm"
+#include "code\game\objects\items\weapons\storage\firstaid_vr.dm"
+#include "code\game\objects\items\weapons\storage\internal.dm"
+#include "code\game\objects\items\weapons\storage\laundry_basket.dm"
+#include "code\game\objects\items\weapons\storage\lockbox.dm"
+#include "code\game\objects\items\weapons\storage\misc.dm"
+#include "code\game\objects\items\weapons\storage\mre.dm"
+#include "code\game\objects\items\weapons\storage\pouches.dm"
+#include "code\game\objects\items\weapons\storage\quickdraw.dm"
+#include "code\game\objects\items\weapons\storage\secure.dm"
+#include "code\game\objects\items\weapons\storage\storage.dm"
+#include "code\game\objects\items\weapons\storage\toolbox.dm"
+#include "code\game\objects\items\weapons\storage\toolbox_vr.dm"
+#include "code\game\objects\items\weapons\storage\uplink_kits.dm"
+#include "code\game\objects\items\weapons\storage\wallets.dm"
+#include "code\game\objects\items\weapons\tanks\jetpack.dm"
+#include "code\game\objects\items\weapons\tanks\tank_types.dm"
+#include "code\game\objects\items\weapons\tanks\tank_types_vr.dm"
+#include "code\game\objects\items\weapons\tanks\tanks.dm"
+#include "code\game\objects\items\weapons\tools\crowbar.dm"
+#include "code\game\objects\items\weapons\tools\crowbar_vr.dm"
+#include "code\game\objects\items\weapons\tools\screwdriver.dm"
+#include "code\game\objects\items\weapons\tools\weldingtool.dm"
+#include "code\game\objects\items\weapons\tools\wirecutters.dm"
+#include "code\game\objects\items\weapons\tools\wrench.dm"
+#include "code\game\objects\random\_random.dm"
+#include "code\game\objects\random\guns_and_ammo.dm"
+#include "code\game\objects\random\maintenance.dm"
+#include "code\game\objects\random\mapping.dm"
+#include "code\game\objects\random\mapping_vr.dm"
+#include "code\game\objects\random\mechs.dm"
+#include "code\game\objects\random\misc.dm"
+#include "code\game\objects\random\misc_vr.dm"
+#include "code\game\objects\random\mob.dm"
+#include "code\game\objects\random\mob_vr.dm"
+#include "code\game\objects\random\spacesuits.dm"
+#include "code\game\objects\random\unidentified\medicine.dm"
+#include "code\game\objects\structures\artstuff.dm"
+#include "code\game\objects\structures\barricades.dm"
+#include "code\game\objects\structures\barsign.dm"
+#include "code\game\objects\structures\bedsheet_bin.dm"
+#include "code\game\objects\structures\bedsheet_bin_vr.dm"
+#include "code\game\objects\structures\bonfire.dm"
+#include "code\game\objects\structures\catwalk.dm"
+#include "code\game\objects\structures\cliff.dm"
+#include "code\game\objects\structures\coathanger.dm"
+#include "code\game\objects\structures\curtains.dm"
+#include "code\game\objects\structures\dancepole_vr.dm"
+#include "code\game\objects\structures\displaycase.dm"
+#include "code\game\objects\structures\dogbed.dm"
+#include "code\game\objects\structures\door_assembly.dm"
+#include "code\game\objects\structures\electricchair.dm"
+#include "code\game\objects\structures\extinguisher.dm"
+#include "code\game\objects\structures\fence.dm"
+#include "code\game\objects\structures\fireaxe.dm"
+#include "code\game\objects\structures\fitness.dm"
+#include "code\game\objects\structures\fitness_vr.dm"
+#include "code\game\objects\structures\girders.dm"
+#include "code\game\objects\structures\gravemarker.dm"
+#include "code\game\objects\structures\grille.dm"
+#include "code\game\objects\structures\handrail.dm"
+#include "code\game\objects\structures\holoplant.dm"
+#include "code\game\objects\structures\inflatable.dm"
+#include "code\game\objects\structures\janicart.dm"
+#include "code\game\objects\structures\kitchen_foodcart_vr.dm"
+#include "code\game\objects\structures\kitchen_spike.dm"
+#include "code\game\objects\structures\lattice.dm"
+#include "code\game\objects\structures\ledges.dm"
+#include "code\game\objects\structures\lightpost.dm"
+#include "code\game\objects\structures\loot_piles.dm"
+#include "code\game\objects\structures\map_blocker_vr.dm"
+#include "code\game\objects\structures\medical_stand_vr.dm"
+#include "code\game\objects\structures\mirror.dm"
+#include "code\game\objects\structures\mop_bucket.dm"
+#include "code\game\objects\structures\morgue.dm"
+#include "code\game\objects\structures\morgue_vr.dm"
+#include "code\game\objects\structures\plasticflaps.dm"
+#include "code\game\objects\structures\railing.dm"
+#include "code\game\objects\structures\safe.dm"
+#include "code\game\objects\structures\salvageable.dm"
+#include "code\game\objects\structures\signs.dm"
+#include "code\game\objects\structures\signs_vr.dm"
+#include "code\game\objects\structures\simple_doors.dm"
+#include "code\game\objects\structures\simple_doors_vr.dm"
+#include "code\game\objects\structures\snowman.dm"
+#include "code\game\objects\structures\stasis_cage.dm"
+#include "code\game\objects\structures\tank_dispenser.dm"
+#include "code\game\objects\structures\target_stake.dm"
+#include "code\game\objects\structures\transit_tubes.dm"
+#include "code\game\objects\structures\trash_pile_vr.dm"
+#include "code\game\objects\structures\under_wardrobe.dm"
+#include "code\game\objects\structures\watercloset.dm"
+#include "code\game\objects\structures\watercloset_vr.dm"
+#include "code\game\objects\structures\windoor_assembly.dm"
+#include "code\game\objects\structures\window.dm"
+#include "code\game\objects\structures\window_spawner.dm"
+#include "code\game\objects\structures\window_vr.dm"
+#include "code\game\objects\structures\alien\alien egg.dm"
+#include "code\game\objects\structures\alien\alien.dm"
+#include "code\game\objects\structures\crates_lockers\__closets.dm"
+#include "code\game\objects\structures\crates_lockers\_closets_appearance_definitions.dm"
+#include "code\game\objects\structures\crates_lockers\_closets_appearance_definitions_vr.dm"
+#include "code\game\objects\structures\crates_lockers\crates.dm"
+#include "code\game\objects\structures\crates_lockers\crates_vr.dm"
+#include "code\game\objects\structures\crates_lockers\largecrate.dm"
+#include "code\game\objects\structures\crates_lockers\largecrate_vr.dm"
+#include "code\game\objects\structures\crates_lockers\vehiclecage.dm"
+#include "code\game\objects\structures\crates_lockers\closets\coffin.dm"
+#include "code\game\objects\structures\crates_lockers\closets\crittercrate.dm"
+#include "code\game\objects\structures\crates_lockers\closets\egg_vr.dm"
+#include "code\game\objects\structures\crates_lockers\closets\fitness.dm"
+#include "code\game\objects\structures\crates_lockers\closets\gimmick.dm"
+#include "code\game\objects\structures\crates_lockers\closets\job_closets.dm"
+#include "code\game\objects\structures\crates_lockers\closets\l3closet.dm"
+#include "code\game\objects\structures\crates_lockers\closets\malfunction.dm"
+#include "code\game\objects\structures\crates_lockers\closets\misc_vr.dm"
+#include "code\game\objects\structures\crates_lockers\closets\statue.dm"
+#include "code\game\objects\structures\crates_lockers\closets\syndicate.dm"
+#include "code\game\objects\structures\crates_lockers\closets\utility_closets.dm"
+#include "code\game\objects\structures\crates_lockers\closets\utility_closets_vr.dm"
+#include "code\game\objects\structures\crates_lockers\closets\walllocker.dm"
+#include "code\game\objects\structures\crates_lockers\closets\wardrobe.dm"
+#include "code\game\objects\structures\crates_lockers\closets\wardrobe_vr.dm"
+#include "code\game\objects\structures\crates_lockers\closets\secure\bar.dm"
+#include "code\game\objects\structures\crates_lockers\closets\secure\cargo.dm"
+#include "code\game\objects\structures\crates_lockers\closets\secure\cargo_vr.dm"
+#include "code\game\objects\structures\crates_lockers\closets\secure\engineering.dm"
+#include "code\game\objects\structures\crates_lockers\closets\secure\freezer.dm"
+#include "code\game\objects\structures\crates_lockers\closets\secure\guncabinet.dm"
+#include "code\game\objects\structures\crates_lockers\closets\secure\hydroponics.dm"
+#include "code\game\objects\structures\crates_lockers\closets\secure\medical.dm"
+#include "code\game\objects\structures\crates_lockers\closets\secure\medical_vr.dm"
+#include "code\game\objects\structures\crates_lockers\closets\secure\personal.dm"
+#include "code\game\objects\structures\crates_lockers\closets\secure\scientist.dm"
+#include "code\game\objects\structures\crates_lockers\closets\secure\secure_closets.dm"
+#include "code\game\objects\structures\crates_lockers\closets\secure\security.dm"
+#include "code\game\objects\structures\crates_lockers\closets\secure\security_vr.dm"
+#include "code\game\objects\structures\flora\flora.dm"
+#include "code\game\objects\structures\flora\flora_vr.dm"
+#include "code\game\objects\structures\flora\grass.dm"
+#include "code\game\objects\structures\flora\moretrees_vr.dm"
+#include "code\game\objects\structures\flora\trees.dm"
+#include "code\game\objects\structures\ghost_pods\event_vr.dm"
+#include "code\game\objects\structures\ghost_pods\ghost_pods.dm"
+#include "code\game\objects\structures\ghost_pods\ghost_pods_vr.dm"
+#include "code\game\objects\structures\ghost_pods\human.dm"
+#include "code\game\objects\structures\ghost_pods\mysterious.dm"
+#include "code\game\objects\structures\ghost_pods\silicon.dm"
+#include "code\game\objects\structures\ghost_pods\silicon_vr.dm"
+#include "code\game\objects\structures\props\alien_props.dm"
+#include "code\game\objects\structures\props\alien_props_vr.dm"
+#include "code\game\objects\structures\props\beam_prism.dm"
+#include "code\game\objects\structures\props\blackbox.dm"
+#include "code\game\objects\structures\props\fake_ai.dm"
+#include "code\game\objects\structures\props\nest.dm"
+#include "code\game\objects\structures\props\projectile_lock.dm"
+#include "code\game\objects\structures\props\prop.dm"
+#include "code\game\objects\structures\props\puzzledoor.dm"
+#include "code\game\objects\structures\props\rocks.dm"
+#include "code\game\objects\structures\props\swarm.dm"
+#include "code\game\objects\structures\props\transmitter.dm"
+#include "code\game\objects\structures\stool_bed_chair_nest\alien_nests.dm"
+#include "code\game\objects\structures\stool_bed_chair_nest\bed.dm"
+#include "code\game\objects\structures\stool_bed_chair_nest\chairs.dm"
+#include "code\game\objects\structures\stool_bed_chair_nest\chairs_vr.dm"
+#include "code\game\objects\structures\stool_bed_chair_nest\stools.dm"
+#include "code\game\objects\structures\stool_bed_chair_nest\stools_vr.dm"
+#include "code\game\objects\structures\stool_bed_chair_nest\wheelchair.dm"
+#include "code\game\objects\structures\stool_bed_chair_nest\wheelchair_item.dm"
+#include "code\game\turfs\simulated.dm"
+#include "code\game\turfs\simulated_vr.dm"
+#include "code\game\turfs\turf.dm"
+#include "code\game\turfs\turf_changing.dm"
+#include "code\game\turfs\turf_flick_animations.dm"
+#include "code\game\turfs\unsimulated.dm"
+#include "code\game\turfs\flooring\flooring.dm"
+#include "code\game\turfs\flooring\flooring_decals.dm"
+#include "code\game\turfs\flooring\flooring_decals_vr.dm"
+#include "code\game\turfs\flooring\flooring_premade.dm"
+#include "code\game\turfs\flooring\flooring_vr.dm"
+#include "code\game\turfs\flooring\shuttle_vr.dm"
+#include "code\game\turfs\initialization\init.dm"
+#include "code\game\turfs\initialization\maintenance.dm"
+#include "code\game\turfs\simulated\floor.dm"
+#include "code\game\turfs\simulated\floor_acts.dm"
+#include "code\game\turfs\simulated\floor_attackby.dm"
+#include "code\game\turfs\simulated\floor_damage.dm"
+#include "code\game\turfs\simulated\floor_icon.dm"
+#include "code\game\turfs\simulated\floor_static.dm"
+#include "code\game\turfs\simulated\floor_types.dm"
+#include "code\game\turfs\simulated\floor_types_eris.dm"
+#include "code\game\turfs\simulated\floor_types_vr.dm"
+#include "code\game\turfs\simulated\lava.dm"
+#include "code\game\turfs\simulated\wall_attacks.dm"
+#include "code\game\turfs\simulated\wall_icon.dm"
+#include "code\game\turfs\simulated\wall_types.dm"
+#include "code\game\turfs\simulated\wall_types_vr.dm"
+#include "code\game\turfs\simulated\walls.dm"
+#include "code\game\turfs\simulated\water.dm"
+#include "code\game\turfs\simulated\water_vr.dm"
+#include "code\game\turfs\simulated\dungeon\floor.dm"
+#include "code\game\turfs\simulated\dungeon\wall.dm"
+#include "code\game\turfs\simulated\outdoors\atmoscaves_vr.dm"
+#include "code\game\turfs\simulated\outdoors\dirt.dm"
+#include "code\game\turfs\simulated\outdoors\grass.dm"
+#include "code\game\turfs\simulated\outdoors\ironsand_vr.dm"
+#include "code\game\turfs\simulated\outdoors\outdoors.dm"
+#include "code\game\turfs\simulated\outdoors\outdoors_attackby.dm"
+#include "code\game\turfs\simulated\outdoors\outdoors_vr.dm"
+#include "code\game\turfs\simulated\outdoors\sky.dm"
+#include "code\game\turfs\simulated\outdoors\snow.dm"
+#include "code\game\turfs\snow\snow.dm"
+#include "code\game\turfs\space\cracked_asteroid.dm"
+#include "code\game\turfs\space\space.dm"
+#include "code\game\turfs\space\transit.dm"
+#include "code\game\turfs\unsimulated\beach.dm"
+#include "code\game\turfs\unsimulated\beach_vr.dm"
+#include "code\game\turfs\unsimulated\floor.dm"
+#include "code\game\turfs\unsimulated\planetary.dm"
+#include "code\game\turfs\unsimulated\planetary_vr.dm"
+#include "code\game\turfs\unsimulated\shuttle.dm"
+#include "code\game\turfs\unsimulated\sky_vr.dm"
+#include "code\game\turfs\unsimulated\walls.dm"
+#include "code\js\byjax.dm"
+#include "code\js\menus.dm"
+#include "code\modules\admin\admin.dm"
+#include "code\modules\admin\admin_attack_log.dm"
+#include "code\modules\admin\admin_investigate.dm"
+#include "code\modules\admin\admin_memo.dm"
+#include "code\modules\admin\admin_ranks.dm"
+#include "code\modules\admin\admin_secrets.dm"
+#include "code\modules\admin\admin_tools.dm"
+#include "code\modules\admin\admin_verb_lists_vr.dm"
+#include "code\modules\admin\admin_verbs.dm"
+#include "code\modules\admin\admin_vr.dm"
+#include "code\modules\admin\banjob.dm"
+#include "code\modules\admin\ckey_vr.dm"
+#include "code\modules\admin\create_mob.dm"
+#include "code\modules\admin\create_object.dm"
+#include "code\modules\admin\create_turf.dm"
+#include "code\modules\admin\holder2.dm"
+#include "code\modules\admin\IsBanned.dm"
+#include "code\modules\admin\map_capture.dm"
+#include "code\modules\admin\NewBan.dm"
+#include "code\modules\admin\news.dm"
+#include "code\modules\admin\persistence.dm"
+#include "code\modules\admin\player_notes.dm"
+#include "code\modules\admin\player_panel.dm"
+#include "code\modules\admin\topic.dm"
+#include "code\modules\admin\ToRban.dm"
+#include "code\modules\admin\callproc\callproc.dm"
+#include "code\modules\admin\DB ban\functions.dm"
+#include "code\modules\admin\permissionverbs\permissionedit.dm"
+#include "code\modules\admin\secrets\admin_secrets\admin_logs.dm"
+#include "code\modules\admin\secrets\admin_secrets\alter_narsie.dm"
+#include "code\modules\admin\secrets\admin_secrets\bombing_list.dm"
+#include "code\modules\admin\secrets\admin_secrets\jump_shuttle.dm"
+#include "code\modules\admin\secrets\admin_secrets\launch_shuttle.dm"
+#include "code\modules\admin\secrets\admin_secrets\launch_shuttle_forced.dm"
+#include "code\modules\admin\secrets\admin_secrets\list_dna.dm"
+#include "code\modules\admin\secrets\admin_secrets\list_fingerprints.dm"
+#include "code\modules\admin\secrets\admin_secrets\move_shuttle.dm"
+#include "code\modules\admin\secrets\admin_secrets\prison_warp.dm"
+#include "code\modules\admin\secrets\admin_secrets\show_ai_laws.dm"
+#include "code\modules\admin\secrets\admin_secrets\show_crew_manifest.dm"
+#include "code\modules\admin\secrets\admin_secrets\show_game_mode.dm"
+#include "code\modules\admin\secrets\admin_secrets\show_law_changes.dm"
+#include "code\modules\admin\secrets\admin_secrets\show_signalers.dm"
+#include "code\modules\admin\secrets\admin_secrets\traitors_and_objectives.dm"
+#include "code\modules\admin\secrets\final_solutions\summon_narsie.dm"
+#include "code\modules\admin\secrets\final_solutions\supermatter_cascade.dm"
+#include "code\modules\admin\secrets\fun_secrets\break_all_lights.dm"
+#include "code\modules\admin\secrets\fun_secrets\break_some_lights.dm"
+#include "code\modules\admin\secrets\fun_secrets\fix_all_lights.dm"
+#include "code\modules\admin\secrets\fun_secrets\ghost_mode.dm"
+#include "code\modules\admin\secrets\fun_secrets\only_one.dm"
+#include "code\modules\admin\secrets\fun_secrets\paintball_mode.dm"
+#include "code\modules\admin\secrets\fun_secrets\power_all_smes.dm"
+#include "code\modules\admin\secrets\fun_secrets\power_failure_begin.dm"
+#include "code\modules\admin\secrets\fun_secrets\power_failure_end.dm"
+#include "code\modules\admin\secrets\fun_secrets\remove_all_clothing.dm"
+#include "code\modules\admin\secrets\fun_secrets\remove_internal_clothing.dm"
+#include "code\modules\admin\secrets\fun_secrets\send_strike_team.dm"
+#include "code\modules\admin\secrets\fun_secrets\toggle_bomb_cap.dm"
+#include "code\modules\admin\secrets\fun_secrets\triple_ai_mode.dm"
+#include "code\modules\admin\secrets\fun_secrets\turn_humans_into_corgies.dm"
+#include "code\modules\admin\secrets\fun_secrets\turn_humans_into_monkeys.dm"
+#include "code\modules\admin\secrets\random_events\gravity_vr.dm"
+#include "code\modules\admin\secrets\random_events\trigger_cordical_borer_infestation.dm"
+#include "code\modules\admin\secrets\random_events\trigger_xenomorph_infestation.dm"
+#include "code\modules\admin\verbs\adminhelp.dm"
+#include "code\modules\admin\verbs\adminhelp_vr.dm"
+#include "code\modules\admin\verbs\adminjump.dm"
+#include "code\modules\admin\verbs\adminpm.dm"
+#include "code\modules\admin\verbs\adminsay.dm"
+#include "code\modules\admin\verbs\antag-ooc.dm"
+#include "code\modules\admin\verbs\atmosdebug.dm"
+#include "code\modules\admin\verbs\BrokenInhands.dm"
+#include "code\modules\admin\verbs\buildmode.dm"
+#include "code\modules\admin\verbs\change_appearance.dm"
+#include "code\modules\admin\verbs\check_customitem_activity.dm"
+#include "code\modules\admin\verbs\cinematic.dm"
+#include "code\modules\admin\verbs\custom_event.dm"
+#include "code\modules\admin\verbs\dbcon_fix.dm"
+#include "code\modules\admin\verbs\deadsay.dm"
+#include "code\modules\admin\verbs\debug.dm"
+#include "code\modules\admin\verbs\debug_vr.dm"
+#include "code\modules\admin\verbs\diagnostics.dm"
+#include "code\modules\admin\verbs\dice.dm"
+#include "code\modules\admin\verbs\fps.dm"
+#include "code\modules\admin\verbs\getlogs.dm"
+#include "code\modules\admin\verbs\grief_fixers.dm"
+#include "code\modules\admin\verbs\lightning_strike.dm"
+#include "code\modules\admin\verbs\map_template_loadverb.dm"
+#include "code\modules\admin\verbs\mapping.dm"
+#include "code\modules\admin\verbs\panicbunker.dm"
+#include "code\modules\admin\verbs\playsound.dm"
+#include "code\modules\admin\verbs\possess.dm"
+#include "code\modules\admin\verbs\pray.dm"
+#include "code\modules\admin\verbs\randomverbs.dm"
+#include "code\modules\admin\verbs\randomverbs_vr.dm"
+#include "code\modules\admin\verbs\resize.dm"
+#include "code\modules\admin\verbs\smite.dm"
+#include "code\modules\admin\verbs\smite_vr.dm"
+#include "code\modules\admin\verbs\striketeam.dm"
+#include "code\modules\admin\verbs\tripAI.dm"
+#include "code\modules\admin\verbs\SDQL2\SDQL_2.dm"
+#include "code\modules\admin\verbs\SDQL2\SDQL_2_parser.dm"
+#include "code\modules\admin\verbs\SDQL2\SDQL_2_wrappers.dm"
+#include "code\modules\admin\view_variables\admin_delete.dm"
+#include "code\modules\admin\view_variables\debug_variables.dm"
+#include "code\modules\admin\view_variables\get_variables.dm"
+#include "code\modules\admin\view_variables\helpers.dm"
+#include "code\modules\admin\view_variables\mass_edit_variables.dm"
+#include "code\modules\admin\view_variables\modify_variables.dm"
+#include "code\modules\admin\view_variables\topic.dm"
+#include "code\modules\admin\view_variables\topic_list.dm"
+#include "code\modules\admin\view_variables\view_variables.dm"
+#include "code\modules\admin\view_variables\view_variables_global.dm"
+#include "code\modules\ai\_defines.dm"
+#include "code\modules\ai\ai_holder.dm"
+#include "code\modules\ai\ai_holder_combat.dm"
+#include "code\modules\ai\ai_holder_combat_unseen.dm"
+#include "code\modules\ai\ai_holder_communication.dm"
+#include "code\modules\ai\ai_holder_cooperation.dm"
+#include "code\modules\ai\ai_holder_debug.dm"
+#include "code\modules\ai\ai_holder_disabled.dm"
+#include "code\modules\ai\ai_holder_fleeing.dm"
+#include "code\modules\ai\ai_holder_follow.dm"
+#include "code\modules\ai\ai_holder_movement.dm"
+#include "code\modules\ai\ai_holder_pathfinding.dm"
+#include "code\modules\ai\ai_holder_targeting.dm"
+#include "code\modules\ai\ai_holder_targeting_vr.dm"
+#include "code\modules\ai\interfaces.dm"
+#include "code\modules\ai\say_list.dm"
+#include "code\modules\ai\ai_holder_subtypes\simple_mob_ai.dm"
+#include "code\modules\ai\ai_holder_subtypes\simple_mob_ai_vr.dm"
+#include "code\modules\ai\ai_holder_subtypes\slime_xenobio_ai.dm"
+#include "code\modules\alarm\alarm.dm"
+#include "code\modules\alarm\alarm_handler.dm"
+#include "code\modules\alarm\atmosphere_alarm.dm"
+#include "code\modules\alarm\camera_alarm.dm"
+#include "code\modules\alarm\fire_alarm.dm"
+#include "code\modules\alarm\motion_alarm.dm"
+#include "code\modules\alarm\power_alarm.dm"
+#include "code\modules\artifice\cursedform.dm"
+#include "code\modules\artifice\deadringer.dm"
+#include "code\modules\artifice\telecube.dm"
+#include "code\modules\assembly\assembly.dm"
+#include "code\modules\assembly\helpers.dm"
+#include "code\modules\assembly\holder.dm"
+#include "code\modules\assembly\igniter.dm"
+#include "code\modules\assembly\infrared.dm"
+#include "code\modules\assembly\mousetrap.dm"
+#include "code\modules\assembly\proximity.dm"
+#include "code\modules\assembly\shock_kit.dm"
+#include "code\modules\assembly\signaler.dm"
+#include "code\modules\assembly\timer.dm"
+#include "code\modules\assembly\voice.dm"
+#include "code\modules\asset_cache\asset_cache.dm"
+#include "code\modules\asset_cache\asset_cache_client.dm"
+#include "code\modules\asset_cache\asset_cache_item.dm"
+#include "code\modules\asset_cache\asset_list.dm"
+#include "code\modules\asset_cache\asset_list_items.dm"
+#include "code\modules\awaymissions\bluespaceartillery.dm"
+#include "code\modules\awaymissions\corpse.dm"
+#include "code\modules\awaymissions\exile.dm"
+#include "code\modules\awaymissions\gateway.dm"
+#include "code\modules\awaymissions\gateway_vr.dm"
+#include "code\modules\awaymissions\loot.dm"
+#include "code\modules\awaymissions\loot_vr.dm"
+#include "code\modules\awaymissions\pamphlet.dm"
+#include "code\modules\awaymissions\trigger.dm"
+#include "code\modules\awaymissions\zlevel.dm"
+#include "code\modules\blob\blob.dm"
+#include "code\modules\blob2\_defines.dm"
+#include "code\modules\blob2\core_chunk.dm"
+#include "code\modules\blob2\blobs\base_blob.dm"
+#include "code\modules\blob2\blobs\core.dm"
+#include "code\modules\blob2\blobs\factory.dm"
+#include "code\modules\blob2\blobs\node.dm"
+#include "code\modules\blob2\blobs\normal.dm"
+#include "code\modules\blob2\blobs\resource.dm"
+#include "code\modules\blob2\blobs\shield.dm"
+#include "code\modules\blob2\overmind\overmind.dm"
+#include "code\modules\blob2\overmind\powers.dm"
+#include "code\modules\blob2\overmind\types.dm"
+#include "code\modules\blob2\overmind\types\blazing_oil.dm"
+#include "code\modules\blob2\overmind\types\classic.dm"
+#include "code\modules\blob2\overmind\types\cryogenic_goo.dm"
+#include "code\modules\blob2\overmind\types\ectoplasmic_horror.dm"
+#include "code\modules\blob2\overmind\types\electromagnetic_web.dm"
+#include "code\modules\blob2\overmind\types\energized_jelly.dm"
+#include "code\modules\blob2\overmind\types\explosive_lattice.dm"
+#include "code\modules\blob2\overmind\types\fabrication_swarm.dm"
+#include "code\modules\blob2\overmind\types\fulminant_organism.dm"
+#include "code\modules\blob2\overmind\types\fungal_bloom.dm"
+#include "code\modules\blob2\overmind\types\grey_goo.dm"
+#include "code\modules\blob2\overmind\types\pressurized_slime.dm"
+#include "code\modules\blob2\overmind\types\radioactive_ooze.dm"
+#include "code\modules\blob2\overmind\types\ravenous_macrophage.dm"
+#include "code\modules\blob2\overmind\types\reactive_spines.dm"
+#include "code\modules\blob2\overmind\types\roiling_mold.dm"
+#include "code\modules\blob2\overmind\types\shifting_fragments.dm"
+#include "code\modules\blob2\overmind\types\synchronous_mesh.dm"
+#include "code\modules\blob2\overmind\types\volatile_alluvium.dm"
+#include "code\modules\busy_space_vr\air_traffic.dm"
+#include "code\modules\busy_space_vr\loremaster.dm"
+#include "code\modules\busy_space_vr\organizations.dm"
+#include "code\modules\catalogue\atoms.dm"
+#include "code\modules\catalogue\catalogue_data.dm"
+#include "code\modules\catalogue\catalogue_data_vr.dm"
+#include "code\modules\catalogue\cataloguer.dm"
+#include "code\modules\catalogue\cataloguer_visuals.dm"
+#include "code\modules\catalogue\cataloguer_vr.dm"
+#include "code\modules\client\client defines.dm"
+#include "code\modules\client\client procs.dm"
+#include "code\modules\client\client procs_vr.dm"
+#include "code\modules\client\movement.dm"
+#include "code\modules\client\preferences.dm"
+#include "code\modules\client\preferences_factions.dm"
+#include "code\modules\client\preferences_savefile.dm"
+#include "code\modules\client\preferences_spawnpoints.dm"
+#include "code\modules\client\preferences_toggle_procs.dm"
+#include "code\modules\client\preferences_vr.dm"
+#include "code\modules\client\spam_prevention.dm"
+#include "code\modules\client\ui_style.dm"
+#include "code\modules\client\preference_setup\_defines.dm"
+#include "code\modules\client\preference_setup\preference_setup.dm"
+#include "code\modules\client\preference_setup\preference_setup_vr.dm"
+#include "code\modules\client\preference_setup\antagonism\01_basic.dm"
+#include "code\modules\client\preference_setup\antagonism\02_candidacy.dm"
+#include "code\modules\client\preference_setup\general\01_basic.dm"
+#include "code\modules\client\preference_setup\general\02_language.dm"
+#include "code\modules\client\preference_setup\general\03_body.dm"
+#include "code\modules\client\preference_setup\general\04_equipment.dm"
+#include "code\modules\client\preference_setup\general\05_background.dm"
+#include "code\modules\client\preference_setup\general\06_flavor.dm"
+#include "code\modules\client\preference_setup\global\01_ui.dm"
+#include "code\modules\client\preference_setup\global\02_settings.dm"
+#include "code\modules\client\preference_setup\global\03_pai.dm"
+#include "code\modules\client\preference_setup\global\04_ooc.dm"
+#include "code\modules\client\preference_setup\global\setting_datums.dm"
+#include "code\modules\client\preference_setup\loadout\gear_tweaks.dm"
+#include "code\modules\client\preference_setup\loadout\gear_tweaks_vr.dm"
+#include "code\modules\client\preference_setup\loadout\loadout.dm"
+#include "code\modules\client\preference_setup\loadout\loadout_accessories.dm"
+#include "code\modules\client\preference_setup\loadout\loadout_accessories_vr.dm"
+#include "code\modules\client\preference_setup\loadout\loadout_cosmetics.dm"
+#include "code\modules\client\preference_setup\loadout\loadout_cosmetics_vr.dm"
+#include "code\modules\client\preference_setup\loadout\loadout_cyberware.dm"
+#include "code\modules\client\preference_setup\loadout\loadout_ears.dm"
+#include "code\modules\client\preference_setup\loadout\loadout_eyes.dm"
+#include "code\modules\client\preference_setup\loadout\loadout_eyes_vr.dm"
+#include "code\modules\client\preference_setup\loadout\loadout_fluffitems_vr.dm"
+#include "code\modules\client\preference_setup\loadout\loadout_general.dm"
+#include "code\modules\client\preference_setup\loadout\loadout_general_vr.dm"
+#include "code\modules\client\preference_setup\loadout\loadout_gloves.dm"
+#include "code\modules\client\preference_setup\loadout\loadout_gloves_vr.dm"
+#include "code\modules\client\preference_setup\loadout\loadout_head.dm"
+#include "code\modules\client\preference_setup\loadout\loadout_head_vr.dm"
+#include "code\modules\client\preference_setup\loadout\loadout_mask.dm"
+#include "code\modules\client\preference_setup\loadout\loadout_shoes.dm"
+#include "code\modules\client\preference_setup\loadout\loadout_shoes_vr.dm"
+#include "code\modules\client\preference_setup\loadout\loadout_smoking.dm"
+#include "code\modules\client\preference_setup\loadout\loadout_suit.dm"
+#include "code\modules\client\preference_setup\loadout\loadout_suit_vr.dm"
+#include "code\modules\client\preference_setup\loadout\loadout_uniform.dm"
+#include "code\modules\client\preference_setup\loadout\loadout_uniform_vr.dm"
+#include "code\modules\client\preference_setup\loadout\loadout_utility.dm"
+#include "code\modules\client\preference_setup\loadout\loadout_utility_vr.dm"
+#include "code\modules\client\preference_setup\loadout\loadout_vr.dm"
+#include "code\modules\client\preference_setup\loadout\loadout_xeno.dm"
+#include "code\modules\client\preference_setup\loadout\loadout_xeno_vr.dm"
+#include "code\modules\client\preference_setup\occupation\occupation.dm"
+#include "code\modules\client\preference_setup\skills\skills.dm"
+#include "code\modules\client\preference_setup\volume_sliders\01_volume.dm"
+#include "code\modules\client\preference_setup\volume_sliders\02_media.dm"
+#include "code\modules\client\preference_setup\vore\01_ears.dm"
+#include "code\modules\client\preference_setup\vore\02_size.dm"
+#include "code\modules\client\preference_setup\vore\03_egg.dm"
+#include "code\modules\client\preference_setup\vore\04_resleeving.dm"
+#include "code\modules\client\preference_setup\vore\05_persistence.dm"
+#include "code\modules\client\preference_setup\vore\06_vantag.dm"
+#include "code\modules\client\preference_setup\vore\07_traits.dm"
+#include "code\modules\client\preference_setup\vore\08_nif.dm"
+#include "code\modules\client\preference_setup\vore\09_misc.dm"
+#include "code\modules\client\verbs\advanced_who.dm"
+#include "code\modules\client\verbs\character_directory.dm"
+#include "code\modules\client\verbs\ignore.dm"
+#include "code\modules\client\verbs\ooc.dm"
+#include "code\modules\client\verbs\ping.dm"
+#include "code\modules\client\verbs\suicide.dm"
+#include "code\modules\client\verbs\who.dm"
+#include "code\modules\clothing\chameleon.dm"
+#include "code\modules\clothing\clothing.dm"
+#include "code\modules\clothing\clothing_accessories.dm"
+#include "code\modules\clothing\clothing_icons.dm"
+#include "code\modules\clothing\clothing_vr.dm"
+#include "code\modules\clothing\ears\earrings.dm"
+#include "code\modules\clothing\ears\ears.dm"
+#include "code\modules\clothing\glasses\glasses.dm"
+#include "code\modules\clothing\glasses\glasses_vr.dm"
+#include "code\modules\clothing\glasses\hud.dm"
+#include "code\modules\clothing\glasses\hud_vr.dm"
+#include "code\modules\clothing\gloves\antagonist.dm"
+#include "code\modules\clothing\gloves\arm_guards.dm"
+#include "code\modules\clothing\gloves\arm_guards_vr.dm"
+#include "code\modules\clothing\gloves\boxing.dm"
+#include "code\modules\clothing\gloves\color.dm"
+#include "code\modules\clothing\gloves\gauntlets.dm"
+#include "code\modules\clothing\gloves\miscellaneous.dm"
+#include "code\modules\clothing\gloves\miscellaneous_vr.dm"
+#include "code\modules\clothing\head\collectable.dm"
+#include "code\modules\clothing\head\flowercrowns.dm"
+#include "code\modules\clothing\head\hardhat.dm"
+#include "code\modules\clothing\head\helmet.dm"
+#include "code\modules\clothing\head\helmet_vr.dm"
+#include "code\modules\clothing\head\hood.dm"
+#include "code\modules\clothing\head\hood_vr.dm"
+#include "code\modules\clothing\head\jobs.dm"
+#include "code\modules\clothing\head\jobs_vr.dm"
+#include "code\modules\clothing\head\misc.dm"
+#include "code\modules\clothing\head\misc_special.dm"
+#include "code\modules\clothing\head\misc_vr.dm"
+#include "code\modules\clothing\head\pilot_helmet.dm"
+#include "code\modules\clothing\head\pilot_helmet_vr.dm"
+#include "code\modules\clothing\head\soft_caps.dm"
+#include "code\modules\clothing\head\solgov.dm"
+#include "code\modules\clothing\head\solgov_vr.dm"
+#include "code\modules\clothing\masks\boxing.dm"
+#include "code\modules\clothing\masks\breath.dm"
+#include "code\modules\clothing\masks\breath_vr.dm"
+#include "code\modules\clothing\masks\gasmask.dm"
+#include "code\modules\clothing\masks\gasmask_vr.dm"
+#include "code\modules\clothing\masks\hailer.dm"
+#include "code\modules\clothing\masks\miscellaneous.dm"
+#include "code\modules\clothing\masks\shiny_vr.dm"
+#include "code\modules\clothing\masks\voice.dm"
+#include "code\modules\clothing\rings\material.dm"
+#include "code\modules\clothing\rings\rings.dm"
+#include "code\modules\clothing\rings\rings_vr.dm"
+#include "code\modules\clothing\shoes\boots.dm"
+#include "code\modules\clothing\shoes\boots_vr.dm"
+#include "code\modules\clothing\shoes\colour.dm"
+#include "code\modules\clothing\shoes\leg_guards.dm"
+#include "code\modules\clothing\shoes\leg_guards_vr.dm"
+#include "code\modules\clothing\shoes\magboots.dm"
+#include "code\modules\clothing\shoes\miscellaneous.dm"
+#include "code\modules\clothing\shoes\miscellaneous_vr.dm"
+#include "code\modules\clothing\spacesuits\alien.dm"
+#include "code\modules\clothing\spacesuits\breaches.dm"
+#include "code\modules\clothing\spacesuits\miscellaneous.dm"
+#include "code\modules\clothing\spacesuits\spacesuits.dm"
+#include "code\modules\clothing\spacesuits\syndi.dm"
+#include "code\modules\clothing\spacesuits\rig\rig.dm"
+#include "code\modules\clothing\spacesuits\rig\rig_attackby.dm"
+#include "code\modules\clothing\spacesuits\rig\rig_pieces.dm"
+#include "code\modules\clothing\spacesuits\rig\rig_pieces_vr.dm"
+#include "code\modules\clothing\spacesuits\rig\rig_tgui.dm"
+#include "code\modules\clothing\spacesuits\rig\rig_verbs.dm"
+#include "code\modules\clothing\spacesuits\rig\rig_wiring.dm"
+#include "code\modules\clothing\spacesuits\rig\modules\modules.dm"
+#include "code\modules\clothing\spacesuits\rig\modules\specific\ai_container.dm"
+#include "code\modules\clothing\spacesuits\rig\modules\specific\chem_dispenser.dm"
+#include "code\modules\clothing\spacesuits\rig\modules\specific\cleaner_launcher.dm"
+#include "code\modules\clothing\spacesuits\rig\modules\specific\cloak.dm"
+#include "code\modules\clothing\spacesuits\rig\modules\specific\datajack.dm"
+#include "code\modules\clothing\spacesuits\rig\modules\specific\device.dm"
+#include "code\modules\clothing\spacesuits\rig\modules\specific\electrowarfare.dm"
+#include "code\modules\clothing\spacesuits\rig\modules\specific\grenade_launcher.dm"
+#include "code\modules\clothing\spacesuits\rig\modules\specific\inhand_fabricator.dm"
+#include "code\modules\clothing\spacesuits\rig\modules\specific\jetpack.dm"
+#include "code\modules\clothing\spacesuits\rig\modules\specific\metalfoam_launcher.dm"
+#include "code\modules\clothing\spacesuits\rig\modules\specific\mounted_gun.dm"
+#include "code\modules\clothing\spacesuits\rig\modules\specific\mounted_gun_vr.dm"
+#include "code\modules\clothing\spacesuits\rig\modules\specific\pat_module_vr.dm"
+#include "code\modules\clothing\spacesuits\rig\modules\specific\powersink.dm"
+#include "code\modules\clothing\spacesuits\rig\modules\specific\rescue_pharm_vr.dm"
+#include "code\modules\clothing\spacesuits\rig\modules\specific\self_destruct.dm"
+#include "code\modules\clothing\spacesuits\rig\modules\specific\sprinter.dm"
+#include "code\modules\clothing\spacesuits\rig\modules\specific\teleporter.dm"
+#include "code\modules\clothing\spacesuits\rig\modules\specific\vision.dm"
+#include "code\modules\clothing\spacesuits\rig\modules\specific\voice.dm"
+#include "code\modules\clothing\spacesuits\rig\suits\alien.dm"
+#include "code\modules\clothing\spacesuits\rig\suits\combat.dm"
+#include "code\modules\clothing\spacesuits\rig\suits\ert.dm"
+#include "code\modules\clothing\spacesuits\rig\suits\ert_vr.dm"
+#include "code\modules\clothing\spacesuits\rig\suits\light.dm"
+#include "code\modules\clothing\spacesuits\rig\suits\merc.dm"
+#include "code\modules\clothing\spacesuits\rig\suits\pmc.dm"
+#include "code\modules\clothing\spacesuits\rig\suits\robotics.dm"
+#include "code\modules\clothing\spacesuits\rig\suits\station.dm"
+#include "code\modules\clothing\spacesuits\rig\suits\station_vr.dm"
+#include "code\modules\clothing\spacesuits\void\ert_vr.dm"
+#include "code\modules\clothing\spacesuits\void\event.dm"
+#include "code\modules\clothing\spacesuits\void\event_vr.dm"
+#include "code\modules\clothing\spacesuits\void\merc.dm"
+#include "code\modules\clothing\spacesuits\void\military_vr.dm"
+#include "code\modules\clothing\spacesuits\void\station.dm"
+#include "code\modules\clothing\spacesuits\void\station_vr.dm"
+#include "code\modules\clothing\spacesuits\void\void.dm"
+#include "code\modules\clothing\spacesuits\void\void_vr.dm"
+#include "code\modules\clothing\spacesuits\void\wizard.dm"
+#include "code\modules\clothing\spacesuits\void\zaddat.dm"
+#include "code\modules\clothing\suits\armor.dm"
+#include "code\modules\clothing\suits\armor_vr.dm"
+#include "code\modules\clothing\suits\bio.dm"
+#include "code\modules\clothing\suits\bio_vr.dm"
+#include "code\modules\clothing\suits\hooded.dm"
+#include "code\modules\clothing\suits\hooded_vr.dm"
+#include "code\modules\clothing\suits\jobs.dm"
+#include "code\modules\clothing\suits\jobs_vr.dm"
+#include "code\modules\clothing\suits\labcoat.dm"
+#include "code\modules\clothing\suits\labcoat_vr.dm"
+#include "code\modules\clothing\suits\miscellaneous.dm"
+#include "code\modules\clothing\suits\miscellaneous_vr.dm"
+#include "code\modules\clothing\suits\solgov.dm"
+#include "code\modules\clothing\suits\solgov_vr.dm"
+#include "code\modules\clothing\suits\storage.dm"
+#include "code\modules\clothing\suits\utility.dm"
+#include "code\modules\clothing\suits\utility_vr.dm"
+#include "code\modules\clothing\suits\wiz_robe.dm"
+#include "code\modules\clothing\suits\aliens\tajara.dm"
+#include "code\modules\clothing\suits\aliens\teshari.dm"
+#include "code\modules\clothing\suits\aliens\unathi.dm"
+#include "code\modules\clothing\suits\aliens\vox.dm"
+#include "code\modules\clothing\under\color.dm"
+#include "code\modules\clothing\under\imperial_vr.dm"
+#include "code\modules\clothing\under\miscellaneous.dm"
+#include "code\modules\clothing\under\miscellaneous_vr.dm"
+#include "code\modules\clothing\under\nanotrasen_vr.dm"
+#include "code\modules\clothing\under\pants.dm"
+#include "code\modules\clothing\under\shiny_vr.dm"
+#include "code\modules\clothing\under\shorts.dm"
+#include "code\modules\clothing\under\solgov.dm"
+#include "code\modules\clothing\under\solgov_vr.dm"
+#include "code\modules\clothing\under\syndicate.dm"
+#include "code\modules\clothing\under\accessories\accessory.dm"
+#include "code\modules\clothing\under\accessories\accessory_vr.dm"
+#include "code\modules\clothing\under\accessories\armband.dm"
+#include "code\modules\clothing\under\accessories\armor.dm"
+#include "code\modules\clothing\under\accessories\badges.dm"
+#include "code\modules\clothing\under\accessories\clothing.dm"
+#include "code\modules\clothing\under\accessories\holster.dm"
+#include "code\modules\clothing\under\accessories\holster_vr.dm"
+#include "code\modules\clothing\under\accessories\lockets.dm"
+#include "code\modules\clothing\under\accessories\permits.dm"
+#include "code\modules\clothing\under\accessories\permits_vr.dm"
+#include "code\modules\clothing\under\accessories\shiny_vr.dm"
+#include "code\modules\clothing\under\accessories\storage.dm"
+#include "code\modules\clothing\under\accessories\storage_vr.dm"
+#include "code\modules\clothing\under\accessories\torch.dm"
+#include "code\modules\clothing\under\accessories\torch_vr.dm"
+#include "code\modules\clothing\under\accessories\temperature\poncho.dm"
+#include "code\modules\clothing\under\jobs\civilian.dm"
+#include "code\modules\clothing\under\jobs\engineering.dm"
+#include "code\modules\clothing\under\jobs\medsci.dm"
+#include "code\modules\clothing\under\jobs\security.dm"
+#include "code\modules\clothing\under\xenos\teshari.dm"
+#include "code\modules\clothing\under\xenos\vox.dm"
+#include "code\modules\compass\_compass.dm"
+#include "code\modules\compass\compass_holder.dm"
+#include "code\modules\compass\compass_waypoint.dm"
+#include "code\modules\compass\~compass.dm"
+#include "code\modules\customitems\item_spawning.dm"
+#include "code\modules\detectivework\footprints.dm"
+#include "code\modules\detectivework\forensics.dm"
+#include "code\modules\detectivework\microscope\dnascanner.dm"
+#include "code\modules\detectivework\microscope\microscope.dm"
+#include "code\modules\detectivework\tools\crimekit.dm"
+#include "code\modules\detectivework\tools\evidencebag.dm"
+#include "code\modules\detectivework\tools\luminol.dm"
+#include "code\modules\detectivework\tools\rag.dm"
+#include "code\modules\detectivework\tools\sample_kits.dm"
+#include "code\modules\detectivework\tools\scanner.dm"
+#include "code\modules\detectivework\tools\storage.dm"
+#include "code\modules\detectivework\tools\swabs.dm"
+#include "code\modules\detectivework\tools\uvlight.dm"
+#include "code\modules\economy\Accounts.dm"
+#include "code\modules\economy\Accounts_DB.dm"
+#include "code\modules\economy\ATM.dm"
+#include "code\modules\economy\cash.dm"
+#include "code\modules\economy\cash_register.dm"
+#include "code\modules\economy\coins.dm"
+#include "code\modules\economy\coins_vr.dm"
+#include "code\modules\economy\economy_misc.dm"
+#include "code\modules\economy\EFTPOS.dm"
+#include "code\modules\economy\Events.dm"
+#include "code\modules\economy\Events_Mundane.dm"
+#include "code\modules\economy\lorenews.dm"
+#include "code\modules\economy\mint.dm"
+#include "code\modules\economy\money_bag.dm"
+#include "code\modules\economy\price_list.dm"
+#include "code\modules\economy\retail_scanner.dm"
+#include "code\modules\economy\TradeDestinations.dm"
+#include "code\modules\economy\vending.dm"
+#include "code\modules\economy\vending_machines.dm"
+#include "code\modules\emotes\emote_define.dm"
+#include "code\modules\emotes\emote_mob.dm"
+#include "code\modules\emotes\definitions\_mob.dm"
+#include "code\modules\emotes\definitions\_species.dm"
+#include "code\modules\emotes\definitions\audible.dm"
+#include "code\modules\emotes\definitions\audible_cough.dm"
+#include "code\modules\emotes\definitions\audible_furry_vr.dm"
+#include "code\modules\emotes\definitions\audible_scream.dm"
+#include "code\modules\emotes\definitions\audible_scream_vr.dm"
+#include "code\modules\emotes\definitions\audible_slap.dm"
+#include "code\modules\emotes\definitions\audible_snap.dm"
+#include "code\modules\emotes\definitions\audible_sneeze.dm"
+#include "code\modules\emotes\definitions\audible_whistle.dm"
+#include "code\modules\emotes\definitions\exertion.dm"
+#include "code\modules\emotes\definitions\helpers_vr.dm"
+#include "code\modules\emotes\definitions\human.dm"
+#include "code\modules\emotes\definitions\slimes.dm"
+#include "code\modules\emotes\definitions\synthetics.dm"
+#include "code\modules\emotes\definitions\visible.dm"
+#include "code\modules\emotes\definitions\visible_animated.dm"
+#include "code\modules\emotes\definitions\visible_vomit.dm"
+#include "code\modules\emotes\definitions\visible_vr.dm"
+#include "code\modules\entopics_vr\alternate_appearance.dm"
+#include "code\modules\entopics_vr\entopics.dm"
+#include "code\modules\error_handler\_defines.dm"
+#include "code\modules\error_handler\error_handler.dm"
+#include "code\modules\error_handler\error_viewer.dm"
+#include "code\modules\error_handler\~defines.dm"
+#include "code\modules\events\apc_damage.dm"
+#include "code\modules\events\atmos_leak.dm"
+#include "code\modules\events\aurora_caelus.dm"
+#include "code\modules\events\blob.dm"
+#include "code\modules\events\brand_intelligence.dm"
+#include "code\modules\events\camera_damage.dm"
+#include "code\modules\events\canister_leak.dm"
+#include "code\modules\events\carp_migration.dm"
+#include "code\modules\events\comms_blackout.dm"
+#include "code\modules\events\communications_blackout.dm"
+#include "code\modules\events\drone_pod_vr.dm"
+#include "code\modules\events\dust.dm"
+#include "code\modules\events\electrical_storm.dm"
+#include "code\modules\events\event.dm"
+#include "code\modules\events\event_container.dm"
+#include "code\modules\events\event_container_vr.dm"
+#include "code\modules\events\event_dynamic.dm"
+#include "code\modules\events\event_manager.dm"
+#include "code\modules\events\gravity_vr.dm"
+#include "code\modules\events\grid_check.dm"
+#include "code\modules\events\grubinfestation_vr.dm"
+#include "code\modules\events\ian_storm_vr.dm"
+#include "code\modules\events\infestation.dm"
+#include "code\modules\events\ion_storm.dm"
+#include "code\modules\events\maintenance_predator_vr.dm"
+#include "code\modules\events\meteor_strike_vr.dm"
+#include "code\modules\events\meteors.dm"
+#include "code\modules\events\money_hacker.dm"
+#include "code\modules\events\money_lotto.dm"
+#include "code\modules\events\money_spam.dm"
+#include "code\modules\events\morph_spawn_vr.dm"
+#include "code\modules\events\prison_break.dm"
+#include "code\modules\events\radiation_storm.dm"
+#include "code\modules\events\random_antagonist.dm"
+#include "code\modules\events\rogue_drones.dm"
+#include "code\modules\events\shipping_error.dm"
+#include "code\modules\events\solar_storm.dm"
+#include "code\modules\events\space_ninja.dm"
+#include "code\modules\events\spacevine.dm"
+#include "code\modules\events\spider_infestation.dm"
+#include "code\modules\events\spontaneous_appendicitis.dm"
+#include "code\modules\events\spontaneous_appendicitis_vr.dm"
+#include "code\modules\events\supply_demand_vr.dm"
+#include "code\modules\events\wallrot.dm"
+#include "code\modules\examine\examine.dm"
+#include "code\modules\examine\stat_icons.dm"
+#include "code\modules\examine\descriptions\armor.dm"
+#include "code\modules\examine\descriptions\atmospherics.dm"
+#include "code\modules\examine\descriptions\containers.dm"
+#include "code\modules\examine\descriptions\devices.dm"
+#include "code\modules\examine\descriptions\engineering.dm"
+#include "code\modules\examine\descriptions\machines.dm"
+#include "code\modules\examine\descriptions\medical.dm"
+#include "code\modules\examine\descriptions\mobs.dm"
+#include "code\modules\examine\descriptions\paperwork.dm"
+#include "code\modules\examine\descriptions\stacks.dm"
+#include "code\modules\examine\descriptions\structures.dm"
+#include "code\modules\examine\descriptions\telecomms.dm"
+#include "code\modules\examine\descriptions\turfs.dm"
+#include "code\modules\examine\descriptions\weapons.dm"
+#include "code\modules\ext_scripts\irc.dm"
+#include "code\modules\ext_scripts\python.dm"
+#include "code\modules\fishing\fishing.dm"
+#include "code\modules\fishing\fishing_net.dm"
+#include "code\modules\fishing\fishing_rod.dm"
+#include "code\modules\fishing\fishing_rod_vr.dm"
+#include "code\modules\fishing\fishing_vr.dm"
+#include "code\modules\flufftext\Dreaming.dm"
+#include "code\modules\flufftext\Hallucination.dm"
+#include "code\modules\flufftext\look_up.dm"
+#include "code\modules\flufftext\TextFilters.dm"
+#include "code\modules\food\food.dm"
+#include "code\modules\food\recipe.dm"
+#include "code\modules\food\recipe_dump.dm"
+#include "code\modules\food\recipes_fryer.dm"
+#include "code\modules\food\recipes_fryer_vr.dm"
+#include "code\modules\food\recipes_grill.dm"
+#include "code\modules\food\recipes_microwave.dm"
+#include "code\modules\food\recipes_microwave_vr.dm"
+#include "code\modules\food\recipes_oven.dm"
+#include "code\modules\food\recipes_oven_vr.dm"
+#include "code\modules\food\drinkingglass\drinkingglass.dm"
+#include "code\modules\food\drinkingglass\extras.dm"
+#include "code\modules\food\drinkingglass\glass_boxes.dm"
+#include "code\modules\food\drinkingglass\glass_types.dm"
+#include "code\modules\food\drinkingglass\metaglass.dm"
+#include "code\modules\food\drinkingglass\metaglass_vr.dm"
+#include "code\modules\food\drinkingglass\serving_glasses.dm"
+#include "code\modules\food\drinkingglass\shaker.dm"
+#include "code\modules\food\drinkingglass\shaker_vr.dm"
+#include "code\modules\food\food\cans.dm"
+#include "code\modules\food\food\cans_vr.dm"
+#include "code\modules\food\food\condiment.dm"
+#include "code\modules\food\food\drinks.dm"
+#include "code\modules\food\food\drinks_vr.dm"
+#include "code\modules\food\food\lunch.dm"
+#include "code\modules\food\food\sandwich.dm"
+#include "code\modules\food\food\snacks.dm"
+#include "code\modules\food\food\snacks_vr.dm"
+#include "code\modules\food\food\thecake.dm"
+#include "code\modules\food\food\z_custom_food_vr.dm"
+#include "code\modules\food\food\drinks\bottle.dm"
+#include "code\modules\food\food\drinks\cup.dm"
+#include "code\modules\food\food\drinks\drinkingglass.dm"
+#include "code\modules\food\food\drinks\jar.dm"
+#include "code\modules\food\food\drinks\bottle\robot.dm"
+#include "code\modules\food\food\snacks\meat.dm"
+#include "code\modules\food\glass\bottle.dm"
+#include "code\modules\food\glass\bottle_vr.dm"
+#include "code\modules\food\glass\bottle\robot.dm"
+#include "code\modules\food\kitchen\gibber.dm"
+#include "code\modules\food\kitchen\icecream.dm"
+#include "code\modules\food\kitchen\microwave.dm"
+#include "code\modules\food\kitchen\cooking_machines\_appliance.dm"
+#include "code\modules\food\kitchen\cooking_machines\_cooker.dm"
+#include "code\modules\food\kitchen\cooking_machines\_cooker_output.dm"
+#include "code\modules\food\kitchen\cooking_machines\_mixer.dm"
+#include "code\modules\food\kitchen\cooking_machines\candy.dm"
+#include "code\modules\food\kitchen\cooking_machines\cereal.dm"
+#include "code\modules\food\kitchen\cooking_machines\container.dm"
+#include "code\modules\food\kitchen\cooking_machines\fryer.dm"
+#include "code\modules\food\kitchen\cooking_machines\grill.dm"
+#include "code\modules\food\kitchen\cooking_machines\oven.dm"
+#include "code\modules\food\kitchen\smartfridge\drying_rack.dm"
+#include "code\modules\food\kitchen\smartfridge\engineering.dm"
+#include "code\modules\food\kitchen\smartfridge\hydroponics.dm"
+#include "code\modules\food\kitchen\smartfridge\medical.dm"
+#include "code\modules\food\kitchen\smartfridge\smartfridge.dm"
+#include "code\modules\food\kitchen\smartfridge\smartfridge_vr.dm"
+#include "code\modules\gamemaster\defines.dm"
+#include "code\modules\gamemaster\event2\event.dm"
+#include "code\modules\gamemaster\event2\meta.dm"
+#include "code\modules\gamemaster\event2\events\ghost_pod_spawner.dm"
+#include "code\modules\gamemaster\event2\events\mob_spawning.dm"
+#include "code\modules\gamemaster\event2\events\cargo\shipping_error.dm"
+#include "code\modules\gamemaster\event2\events\command\manifest_malfunction.dm"
+#include "code\modules\gamemaster\event2\events\command\money_hacker.dm"
+#include "code\modules\gamemaster\event2\events\command\raise_funds.dm"
+#include "code\modules\gamemaster\event2\events\engineering\airlock_failure.dm"
+#include "code\modules\gamemaster\event2\events\engineering\blob.dm"
+#include "code\modules\gamemaster\event2\events\engineering\brand_intelligence.dm"
+#include "code\modules\gamemaster\event2\events\engineering\camera_damage.dm"
+#include "code\modules\gamemaster\event2\events\engineering\canister_leak.dm"
+#include "code\modules\gamemaster\event2\events\engineering\dust.dm"
+#include "code\modules\gamemaster\event2\events\engineering\gas_leak.dm"
+#include "code\modules\gamemaster\event2\events\engineering\grid_check.dm"
+#include "code\modules\gamemaster\event2\events\engineering\meteor_defense.dm"
+#include "code\modules\gamemaster\event2\events\engineering\spacevine.dm"
+#include "code\modules\gamemaster\event2\events\engineering\wallrot.dm"
+#include "code\modules\gamemaster\event2\events\engineering\window_break.dm"
+#include "code\modules\gamemaster\event2\events\everyone\comms_blackout.dm"
+#include "code\modules\gamemaster\event2\events\everyone\electrical_fault.dm"
+#include "code\modules\gamemaster\event2\events\everyone\gravity_vr.dm"
+#include "code\modules\gamemaster\event2\events\everyone\infestation.dm"
+#include "code\modules\gamemaster\event2\events\everyone\pda_spam.dm"
+#include "code\modules\gamemaster\event2\events\everyone\radiation_storm.dm"
+#include "code\modules\gamemaster\event2\events\everyone\random_antag.dm"
+#include "code\modules\gamemaster\event2\events\everyone\solar_storm.dm"
+#include "code\modules\gamemaster\event2\events\everyone\sudden_weather_shift.dm"
+#include "code\modules\gamemaster\event2\events\legacy\legacy.dm"
+#include "code\modules\gamemaster\event2\events\medical\appendicitis.dm"
+#include "code\modules\gamemaster\event2\events\medical\virus.dm"
+#include "code\modules\gamemaster\event2\events\security\carp_migration.dm"
+#include "code\modules\gamemaster\event2\events\security\drill_announcement.dm"
+#include "code\modules\gamemaster\event2\events\security\prison_break.dm"
+#include "code\modules\gamemaster\event2\events\security\rogue_drones.dm"
+#include "code\modules\gamemaster\event2\events\security\security_advisement.dm"
+#include "code\modules\gamemaster\event2\events\security\spider_infestation.dm"
+#include "code\modules\gamemaster\event2\events\security\stowaway.dm"
+#include "code\modules\gamemaster\event2\events\security\surprise_carp.dm"
+#include "code\modules\gamemaster\event2\events\security\swarm_boarder.dm"
+#include "code\modules\gamemaster\event2\events\synthetic\ion_storm.dm"
+#include "code\modules\games\cah.dm"
+#include "code\modules\games\cah_black_cards.dm"
+#include "code\modules\games\cah_white_cards.dm"
+#include "code\modules\games\cardemon.dm"
+#include "code\modules\games\cards.dm"
+#include "code\modules\games\dice.dm"
+#include "code\modules\games\spaceball_cards.dm"
+#include "code\modules\games\tarot.dm"
+#include "code\modules\genetics\side_effects.dm"
+#include "code\modules\ghosttrap\trap.dm"
+#include "code\modules\holodeck\HolodeckControl.dm"
+#include "code\modules\holodeck\HolodeckObjects.dm"
+#include "code\modules\holodeck\HolodeckPrograms.dm"
+#include "code\modules\holomap\generate_holomap.dm"
+#include "code\modules\holomap\holomap_area.dm"
+#include "code\modules\holomap\holomap_datum.dm"
+#include "code\modules\holomap\mapper.dm"
+#include "code\modules\holomap\station_holomap.dm"
+#include "code\modules\hydroponics\grown.dm"
+#include "code\modules\hydroponics\grown_inedible.dm"
+#include "code\modules\hydroponics\grown_predefined.dm"
+#include "code\modules\hydroponics\seed.dm"
+#include "code\modules\hydroponics\seed_datums_vr.dm"
+#include "code\modules\hydroponics\seed_gene_mut.dm"
+#include "code\modules\hydroponics\seed_machines.dm"
+#include "code\modules\hydroponics\seed_mobs.dm"
+#include "code\modules\hydroponics\seed_packets.dm"
+#include "code\modules\hydroponics\seed_packets_vr.dm"
+#include "code\modules\hydroponics\seed_storage.dm"
+#include "code\modules\hydroponics\seed_storage_vr.dm"
+#include "code\modules\hydroponics\beekeeping\beehive.dm"
+#include "code\modules\hydroponics\seedtypes\amauri.dm"
+#include "code\modules\hydroponics\seedtypes\ambrosia.dm"
+#include "code\modules\hydroponics\seedtypes\apples.dm"
+#include "code\modules\hydroponics\seedtypes\banana.dm"
+#include "code\modules\hydroponics\seedtypes\berries.dm"
+#include "code\modules\hydroponics\seedtypes\cabbage.dm"
+#include "code\modules\hydroponics\seedtypes\carrots.dm"
+#include "code\modules\hydroponics\seedtypes\celery.dm"
+#include "code\modules\hydroponics\seedtypes\cherries.dm"
+#include "code\modules\hydroponics\seedtypes\chili.dm"
+#include "code\modules\hydroponics\seedtypes\citrus.dm"
+#include "code\modules\hydroponics\seedtypes\cocoa.dm"
+#include "code\modules\hydroponics\seedtypes\corn.dm"
+#include "code\modules\hydroponics\seedtypes\diona.dm"
+#include "code\modules\hydroponics\seedtypes\durian.dm"
+#include "code\modules\hydroponics\seedtypes\eggplant.dm"
+#include "code\modules\hydroponics\seedtypes\flowers.dm"
+#include "code\modules\hydroponics\seedtypes\gelthi.dm"
+#include "code\modules\hydroponics\seedtypes\gnomes.dm"
+#include "code\modules\hydroponics\seedtypes\grapes.dm"
+#include "code\modules\hydroponics\seedtypes\grass.dm"
+#include "code\modules\hydroponics\seedtypes\jurlmah.dm"
+#include "code\modules\hydroponics\seedtypes\kudzu.dm"
+#include "code\modules\hydroponics\seedtypes\lettuce.dm"
+#include "code\modules\hydroponics\seedtypes\malanitear.dm"
+#include "code\modules\hydroponics\seedtypes\mushrooms.dm"
+#include "code\modules\hydroponics\seedtypes\nettles.dm"
+#include "code\modules\hydroponics\seedtypes\onion.dm"
+#include "code\modules\hydroponics\seedtypes\peanuts.dm"
+#include "code\modules\hydroponics\seedtypes\pineapple.dm"
+#include "code\modules\hydroponics\seedtypes\potato.dm"
+#include "code\modules\hydroponics\seedtypes\pumpkin.dm"
+#include "code\modules\hydroponics\seedtypes\rhubarb.dm"
+#include "code\modules\hydroponics\seedtypes\rice.dm"
+#include "code\modules\hydroponics\seedtypes\selemhand.dm"
+#include "code\modules\hydroponics\seedtypes\soybean.dm"
+#include "code\modules\hydroponics\seedtypes\sugarcane.dm"
+#include "code\modules\hydroponics\seedtypes\surik.dm"
+#include "code\modules\hydroponics\seedtypes\telriis.dm"
+#include "code\modules\hydroponics\seedtypes\thaadra.dm"
+#include "code\modules\hydroponics\seedtypes\tobacco.dm"
+#include "code\modules\hydroponics\seedtypes\tomatoes.dm"
+#include "code\modules\hydroponics\seedtypes\vale.dm"
+#include "code\modules\hydroponics\seedtypes\vanilla.dm"
+#include "code\modules\hydroponics\seedtypes\wabback.dm"
+#include "code\modules\hydroponics\seedtypes\watermelon.dm"
+#include "code\modules\hydroponics\seedtypes\weeds.dm"
+#include "code\modules\hydroponics\seedtypes\wheat.dm"
+#include "code\modules\hydroponics\seedtypes\whitebeets.dm"
+#include "code\modules\hydroponics\seedtypes\wurmwoad.dm"
+#include "code\modules\hydroponics\seedtypes\xeno.dm"
+#include "code\modules\hydroponics\spreading\spreading.dm"
+#include "code\modules\hydroponics\spreading\spreading_growth.dm"
+#include "code\modules\hydroponics\spreading\spreading_response.dm"
+#include "code\modules\hydroponics\trays\tray.dm"
+#include "code\modules\hydroponics\trays\tray_process.dm"
+#include "code\modules\hydroponics\trays\tray_reagents.dm"
+#include "code\modules\hydroponics\trays\tray_soil.dm"
+#include "code\modules\hydroponics\trays\tray_tools.dm"
+#include "code\modules\hydroponics\trays\tray_update_icons.dm"
+#include "code\modules\identification\identification.dm"
+#include "code\modules\identification\item_procs.dm"
+#include "code\modules\instruments\items.dm"
+#include "code\modules\instruments\stationary.dm"
+#include "code\modules\instruments\instrument_data\_instrument_data.dm"
+#include "code\modules\instruments\instrument_data\_instrument_key.dm"
+#include "code\modules\instruments\instrument_data\brass.dm"
+#include "code\modules\instruments\instrument_data\chromatic_percussion.dm"
+#include "code\modules\instruments\instrument_data\fun.dm"
+#include "code\modules\instruments\instrument_data\guitar.dm"
+#include "code\modules\instruments\instrument_data\hardcoded.dm"
+#include "code\modules\instruments\instrument_data\organ.dm"
+#include "code\modules\instruments\instrument_data\piano.dm"
+#include "code\modules\instruments\instrument_data\synth_tones.dm"
+#include "code\modules\instruments\songs\_song.dm"
+#include "code\modules\instruments\songs\editor.dm"
+#include "code\modules\instruments\songs\play_legacy.dm"
+#include "code\modules\instruments\songs\play_synthesized.dm"
+#include "code\modules\integrated_electronics\_defines.dm"
+#include "code\modules\integrated_electronics\core\assemblies.dm"
+#include "code\modules\integrated_electronics\core\detailer.dm"
+#include "code\modules\integrated_electronics\core\helpers.dm"
+#include "code\modules\integrated_electronics\core\integrated_circuit.dm"
+#include "code\modules\integrated_electronics\core\pins.dm"
+#include "code\modules\integrated_electronics\core\printer.dm"
+#include "code\modules\integrated_electronics\core\tools.dm"
+#include "code\modules\integrated_electronics\core\assemblies\clothing.dm"
+#include "code\modules\integrated_electronics\core\assemblies\device.dm"
+#include "code\modules\integrated_electronics\core\assemblies\generic.dm"
+#include "code\modules\integrated_electronics\core\assemblies\implant.dm"
+#include "code\modules\integrated_electronics\core\special_pins\boolean_pin.dm"
+#include "code\modules\integrated_electronics\core\special_pins\char_pin.dm"
+#include "code\modules\integrated_electronics\core\special_pins\color_pin.dm"
+#include "code\modules\integrated_electronics\core\special_pins\dir_pin.dm"
+#include "code\modules\integrated_electronics\core\special_pins\list_pin.dm"
+#include "code\modules\integrated_electronics\core\special_pins\number_pin.dm"
+#include "code\modules\integrated_electronics\core\special_pins\ref_pin.dm"
+#include "code\modules\integrated_electronics\core\special_pins\string_pin.dm"
+#include "code\modules\integrated_electronics\passive\passive.dm"
+#include "code\modules\integrated_electronics\passive\power.dm"
+#include "code\modules\integrated_electronics\subtypes\arithmetic.dm"
+#include "code\modules\integrated_electronics\subtypes\built_in.dm"
+#include "code\modules\integrated_electronics\subtypes\converters.dm"
+#include "code\modules\integrated_electronics\subtypes\data_transfer.dm"
+#include "code\modules\integrated_electronics\subtypes\input.dm"
+#include "code\modules\integrated_electronics\subtypes\lists.dm"
+#include "code\modules\integrated_electronics\subtypes\logic.dm"
+#include "code\modules\integrated_electronics\subtypes\manipulation.dm"
+#include "code\modules\integrated_electronics\subtypes\memory.dm"
+#include "code\modules\integrated_electronics\subtypes\output.dm"
+#include "code\modules\integrated_electronics\subtypes\power.dm"
+#include "code\modules\integrated_electronics\subtypes\reagents.dm"
+#include "code\modules\integrated_electronics\subtypes\smart.dm"
+#include "code\modules\integrated_electronics\subtypes\time.dm"
+#include "code\modules\integrated_electronics\subtypes\trig.dm"
+#include "code\modules\integrated_electronics\~defines\~defines.dm"
+#include "code\modules\keybindings\bindings_atom.dm"
+#include "code\modules\keybindings\bindings_movekeys.dm"
+#include "code\modules\keybindings\setup.dm"
+#include "code\modules\library\lib_items.dm"
+#include "code\modules\library\lib_machines.dm"
+#include "code\modules\library\lib_readme.dm"
+#include "code\modules\library\hardcode_library\_library.dm"
+#include "code\modules\library\hardcode_library\fiction\APsychonaut.dm"
+#include "code\modules\library\hardcode_library\fiction\battlefieldcommander.dm"
+#include "code\modules\library\hardcode_library\fiction\PortedBooks.dm"
+#include "code\modules\library\hardcode_library\fiction\schnayy.dm"
+#include "code\modules\library\hardcode_library\non-fiction\PortedBooks.dm"
+#include "code\modules\library\hardcode_library\reference\PortedBooks.dm"
+#include "code\modules\library\hardcode_library\reference\Schnayy.dm"
+#include "code\modules\library\hardcode_library\religious\PortedBooks.dm"
+#include "code\modules\lighting\emissive_blocker.dm"
+#include "code\modules\lighting\lighting_area.dm"
+#include "code\modules\lighting\lighting_atom.dm"
+#include "code\modules\lighting\lighting_corner.dm"
+#include "code\modules\lighting\lighting_fake_sun_vr.dm"
+#include "code\modules\lighting\lighting_overlay.dm"
+#include "code\modules\lighting\lighting_setup.dm"
+#include "code\modules\lighting\lighting_source.dm"
+#include "code\modules\lighting\lighting_turf.dm"
+#include "code\modules\looking_glass\lg_area.dm"
+#include "code\modules\looking_glass\lg_console.dm"
+#include "code\modules\looking_glass\lg_imageholder.dm"
+#include "code\modules\looking_glass\lg_turfs.dm"
+#include "code\modules\lore_codex\codex.dm"
+#include "code\modules\lore_codex\codex_tree.dm"
+#include "code\modules\lore_codex\pages.dm"
+#include "code\modules\lore_codex\lore_data_vr\important_locations.dm"
+#include "code\modules\lore_codex\lore_data_vr\main.dm"
+#include "code\modules\lore_codex\lore_data_vr\orgs.dm"
+#include "code\modules\lore_codex\lore_data_vr\political_parties.dm"
+#include "code\modules\lore_codex\lore_data_vr\species.dm"
+#include "code\modules\lore_codex\news_data\main.dm"
+#include "code\modules\lore_codex\robutt_data\bybrand.dm"
+#include "code\modules\lore_codex\robutt_data\main_robutts.dm"
+#include "code\modules\lore_codex\robutt_data\more.dm"
+#include "code\modules\makeup\nailpolish.dm"
+#include "code\modules\maps\tg\dmm_suite.dm"
+#include "code\modules\maps\tg\map_template.dm"
+#include "code\modules\maps\tg\map_template_vr.dm"
+#include "code\modules\maps\tg\reader.dm"
+#include "code\modules\materials\fifty_spawner.dm"
+#include "code\modules\materials\fifty_spawner_mats.dm"
+#include "code\modules\materials\fifty_spawner_mats_vr.dm"
+#include "code\modules\materials\material_synth.dm"
+#include "code\modules\materials\materials\_materials.dm"
+#include "code\modules\materials\materials\_materials_vr.dm"
+#include "code\modules\materials\materials\alien_alloy.dm"
+#include "code\modules\materials\materials\cult.dm"
+#include "code\modules\materials\materials\gems.dm"
+#include "code\modules\materials\materials\glass.dm"
+#include "code\modules\materials\materials\glass_vr.dm"
+#include "code\modules\materials\materials\holographic.dm"
+#include "code\modules\materials\materials\other_vr.dm"
+#include "code\modules\materials\materials\plastic.dm"
+#include "code\modules\materials\materials\snow.dm"
+#include "code\modules\materials\materials\stone.dm"
+#include "code\modules\materials\materials\supermatter.dm"
+#include "code\modules\materials\materials\metals\hull.dm"
+#include "code\modules\materials\materials\metals\hull_vr.dm"
+#include "code\modules\materials\materials\metals\metals.dm"
+#include "code\modules\materials\materials\metals\metals_vr.dm"
+#include "code\modules\materials\materials\metals\plasteel.dm"
+#include "code\modules\materials\materials\metals\plasteel_vr.dm"
+#include "code\modules\materials\materials\metals\steel.dm"
+#include "code\modules\materials\materials\metals\steel_vr.dm"
+#include "code\modules\materials\materials\organic\animal_products.dm"
+#include "code\modules\materials\materials\organic\cloth.dm"
+#include "code\modules\materials\materials\organic\leather.dm"
+#include "code\modules\materials\materials\organic\resin.dm"
+#include "code\modules\materials\materials\organic\wood.dm"
+#include "code\modules\materials\sheets\_sheets.dm"
+#include "code\modules\materials\sheets\gems.dm"
+#include "code\modules\materials\sheets\glass.dm"
+#include "code\modules\materials\sheets\glass_vr.dm"
+#include "code\modules\materials\sheets\plastic.dm"
+#include "code\modules\materials\sheets\snow.dm"
+#include "code\modules\materials\sheets\stone.dm"
+#include "code\modules\materials\sheets\supermatter.dm"
+#include "code\modules\materials\sheets\metals\hull.dm"
+#include "code\modules\materials\sheets\metals\hull_vr.dm"
+#include "code\modules\materials\sheets\metals\metal.dm"
+#include "code\modules\materials\sheets\metals\metal_vr.dm"
+#include "code\modules\materials\sheets\metals\rods.dm"
+#include "code\modules\materials\sheets\organic\animal_products.dm"
+#include "code\modules\materials\sheets\organic\resin.dm"
+#include "code\modules\materials\sheets\organic\textiles.dm"
+#include "code\modules\materials\sheets\organic\wood.dm"
+#include "code\modules\materials\sheets\organic\tanning\hide.dm"
+#include "code\modules\materials\sheets\organic\tanning\hide_hairless.dm"
+#include "code\modules\materials\sheets\organic\tanning\leather_wet.dm"
+#include "code\modules\materials\sheets\organic\tanning\tanning_rack.dm"
+#include "code\modules\media\juke_remote.dm"
+#include "code\modules\media\media_machinery.dm"
+#include "code\modules\media\media_player_html5.dm"
+#include "code\modules\media\media_player_vlc.dm"
+#include "code\modules\media\media_player_wmp.dm"
+#include "code\modules\media\media_tracks.dm"
+#include "code\modules\media\mediamanager.dm"
+#include "code\modules\media\walkpod.dm"
+#include "code\modules\metric\activity.dm"
+#include "code\modules\metric\count.dm"
+#include "code\modules\metric\department.dm"
+#include "code\modules\metric\metric.dm"
+#include "code\modules\mining\abandonedcrates.dm"
+#include "code\modules\mining\abandonedcrates_vr.dm"
+#include "code\modules\mining\alloys.dm"
+#include "code\modules\mining\alloys_vr.dm"
+#include "code\modules\mining\fulton.dm"
+#include "code\modules\mining\mine_items.dm"
+#include "code\modules\mining\mine_items_vr.dm"
+#include "code\modules\mining\mine_outcrops.dm"
+#include "code\modules\mining\mine_turfs.dm"
+#include "code\modules\mining\mine_turfs_vr.dm"
+#include "code\modules\mining\mineral_effect.dm"
+#include "code\modules\mining\ore.dm"
+#include "code\modules\mining\ore_box.dm"
+#include "code\modules\mining\ore_datum.dm"
+#include "code\modules\mining\resonator_vr.dm"
+#include "code\modules\mining\shelter_atoms_vr.dm"
+#include "code\modules\mining\shelters_vr.dm"
+#include "code\modules\mining\drilling\drill.dm"
+#include "code\modules\mining\drilling\scanner.dm"
+#include "code\modules\mining\machinery\machine_input_output_plates.dm"
+#include "code\modules\mining\machinery\machine_processing.dm"
+#include "code\modules\mining\machinery\machine_stacking.dm"
+#include "code\modules\mining\machinery\machine_unloading.dm"
+#include "code\modules\mining\ore_redemption_machine\construction.dm"
+#include "code\modules\mining\ore_redemption_machine\equipment_vendor.dm"
+#include "code\modules\mining\ore_redemption_machine\mine_point_items.dm"
+#include "code\modules\mining\ore_redemption_machine\survey_vendor.dm"
+#include "code\modules\mob\animations.dm"
+#include "code\modules\mob\death.dm"
+#include "code\modules\mob\emote.dm"
+#include "code\modules\mob\gender.dm"
+#include "code\modules\mob\gender_vr.dm"
+#include "code\modules\mob\hear_say.dm"
+#include "code\modules\mob\holder.dm"
+#include "code\modules\mob\inventory.dm"
+#include "code\modules\mob\login.dm"
+#include "code\modules\mob\login_vr.dm"
+#include "code\modules\mob\logout.dm"
+#include "code\modules\mob\mob.dm"
+#include "code\modules\mob\mob_defines.dm"
+#include "code\modules\mob\mob_defines_vr.dm"
+#include "code\modules\mob\mob_grab.dm"
+#include "code\modules\mob\mob_grab_specials.dm"
+#include "code\modules\mob\mob_helpers.dm"
+#include "code\modules\mob\mob_helpers_vr.dm"
+#include "code\modules\mob\mob_movement.dm"
+#include "code\modules\mob\mob_planes.dm"
+#include "code\modules\mob\mob_planes_vr.dm"
+#include "code\modules\mob\mob_transformation_simple.dm"
+#include "code\modules\mob\say.dm"
+#include "code\modules\mob\say_vr.dm"
+#include "code\modules\mob\skillset.dm"
+#include "code\modules\mob\transform_procs.dm"
+#include "code\modules\mob\typing_indicator.dm"
+#include "code\modules\mob\update_icons.dm"
+#include "code\modules\mob\_modifiers\aura.dm"
+#include "code\modules\mob\_modifiers\changeling.dm"
+#include "code\modules\mob\_modifiers\cloning.dm"
+#include "code\modules\mob\_modifiers\feysight.dm"
+#include "code\modules\mob\_modifiers\fire.dm"
+#include "code\modules\mob\_modifiers\medical.dm"
+#include "code\modules\mob\_modifiers\modifiers.dm"
+#include "code\modules\mob\_modifiers\modifiers_misc.dm"
+#include "code\modules\mob\_modifiers\traits.dm"
+#include "code\modules\mob\_modifiers\traits_phobias.dm"
+#include "code\modules\mob\_modifiers\unholy.dm"
+#include "code\modules\mob\dead\corpse.dm"
+#include "code\modules\mob\dead\corpse_vr.dm"
+#include "code\modules\mob\dead\death.dm"
+#include "code\modules\mob\dead\observer\free_vr.dm"
+#include "code\modules\mob\dead\observer\login.dm"
+#include "code\modules\mob\dead\observer\logout.dm"
+#include "code\modules\mob\dead\observer\observer.dm"
+#include "code\modules\mob\dead\observer\observer_vr.dm"
+#include "code\modules\mob\dead\observer\say.dm"
+#include "code\modules\mob\freelook\chunk.dm"
+#include "code\modules\mob\freelook\eye.dm"
+#include "code\modules\mob\freelook\life.dm"
+#include "code\modules\mob\freelook\update_triggers.dm"
+#include "code\modules\mob\freelook\visualnet.dm"
+#include "code\modules\mob\freelook\ai\cameranet.dm"
+#include "code\modules\mob\freelook\ai\chunk.dm"
+#include "code\modules\mob\freelook\ai\eye.dm"
+#include "code\modules\mob\freelook\ai\update_triggers.dm"
+#include "code\modules\mob\freelook\mask\chunk.dm"
+#include "code\modules\mob\freelook\mask\cultnet.dm"
+#include "code\modules\mob\freelook\mask\eye.dm"
+#include "code\modules\mob\freelook\mask\update_triggers.dm"
+#include "code\modules\mob\language\generic.dm"
+#include "code\modules\mob\language\language.dm"
+#include "code\modules\mob\language\monkey.dm"
+#include "code\modules\mob\language\outsider.dm"
+#include "code\modules\mob\language\station.dm"
+#include "code\modules\mob\language\station_vr.dm"
+#include "code\modules\mob\language\synthetic.dm"
+#include "code\modules\mob\living\autohiss.dm"
+#include "code\modules\mob\living\butchering.dm"
+#include "code\modules\mob\living\damage_procs.dm"
+#include "code\modules\mob\living\death.dm"
+#include "code\modules\mob\living\default_language.dm"
+#include "code\modules\mob\living\inventory.dm"
+#include "code\modules\mob\living\life.dm"
+#include "code\modules\mob\living\living.dm"
+#include "code\modules\mob\living\living_defense.dm"
+#include "code\modules\mob\living\living_defines.dm"
+#include "code\modules\mob\living\living_defines_vr.dm"
+#include "code\modules\mob\living\living_movement.dm"
+#include "code\modules\mob\living\living_powers.dm"
+#include "code\modules\mob\living\living_vr.dm"
+#include "code\modules\mob\living\login.dm"
+#include "code\modules\mob\living\logout.dm"
+#include "code\modules\mob\living\organs.dm"
+#include "code\modules\mob\living\riding.dm"
+#include "code\modules\mob\living\say.dm"
+#include "code\modules\mob\living\status_indicators.dm"
+#include "code\modules\mob\living\bot\bot.dm"
+#include "code\modules\mob\living\bot\bot_vr.dm"
+#include "code\modules\mob\living\bot\cleanbot.dm"
+#include "code\modules\mob\living\bot\ed209bot.dm"
+#include "code\modules\mob\living\bot\edCLNbot.dm"
+#include "code\modules\mob\living\bot\farmbot.dm"
+#include "code\modules\mob\living\bot\floorbot.dm"
+#include "code\modules\mob\living\bot\medbot.dm"
+#include "code\modules\mob\living\bot\mulebot.dm"
+#include "code\modules\mob\living\bot\mulebot_vr.dm"
+#include "code\modules\mob\living\bot\secbot.dm"
+#include "code\modules\mob\living\bot\SLed209bot.dm"
+#include "code\modules\mob\living\carbon\breathe.dm"
+#include "code\modules\mob\living\carbon\carbon.dm"
+#include "code\modules\mob\living\carbon\carbon_defense.dm"
+#include "code\modules\mob\living\carbon\carbon_defines.dm"
+#include "code\modules\mob\living\carbon\carbon_powers.dm"
+#include "code\modules\mob\living\carbon\give.dm"
+#include "code\modules\mob\living\carbon\lick_wounds.dm"
+#include "code\modules\mob\living\carbon\resist.dm"
+#include "code\modules\mob\living\carbon\shock.dm"
+#include "code\modules\mob\living\carbon\taste.dm"
+#include "code\modules\mob\living\carbon\viruses.dm"
+#include "code\modules\mob\living\carbon\alien\alien.dm"
+#include "code\modules\mob\living\carbon\alien\alien_attacks.dm"
+#include "code\modules\mob\living\carbon\alien\alien_damage.dm"
+#include "code\modules\mob\living\carbon\alien\death.dm"
+#include "code\modules\mob\living\carbon\alien\emote.dm"
+#include "code\modules\mob\living\carbon\alien\life.dm"
+#include "code\modules\mob\living\carbon\alien\progression.dm"
+#include "code\modules\mob\living\carbon\alien\update_icons.dm"
+#include "code\modules\mob\living\carbon\alien\diona\diona.dm"
+#include "code\modules\mob\living\carbon\alien\diona\diona_attacks.dm"
+#include "code\modules\mob\living\carbon\alien\diona\diona_powers.dm"
+#include "code\modules\mob\living\carbon\alien\diona\life.dm"
+#include "code\modules\mob\living\carbon\alien\diona\progression.dm"
+#include "code\modules\mob\living\carbon\alien\diona\say_understands.dm"
+#include "code\modules\mob\living\carbon\alien\diona\update_icons.dm"
+#include "code\modules\mob\living\carbon\alien\larva\larva.dm"
+#include "code\modules\mob\living\carbon\alien\larva\life.dm"
+#include "code\modules\mob\living\carbon\alien\larva\progression.dm"
+#include "code\modules\mob\living\carbon\brain\brain.dm"
+#include "code\modules\mob\living\carbon\brain\death.dm"
+#include "code\modules\mob\living\carbon\brain\emote.dm"
+#include "code\modules\mob\living\carbon\brain\life.dm"
+#include "code\modules\mob\living\carbon\brain\login.dm"
+#include "code\modules\mob\living\carbon\brain\MMI.dm"
+#include "code\modules\mob\living\carbon\brain\robot.dm"
+#include "code\modules\mob\living\carbon\brain\say.dm"
+#include "code\modules\mob\living\carbon\human\appearance.dm"
+#include "code\modules\mob\living\carbon\human\death.dm"
+#include "code\modules\mob\living\carbon\human\death_vr.dm"
+#include "code\modules\mob\living\carbon\human\emote.dm"
+#include "code\modules\mob\living\carbon\human\emote_vr.dm"
+#include "code\modules\mob\living\carbon\human\examine.dm"
+#include "code\modules\mob\living\carbon\human\examine_vr.dm"
+#include "code\modules\mob\living\carbon\human\gradient.dm"
+#include "code\modules\mob\living\carbon\human\human.dm"
+#include "code\modules\mob\living\carbon\human\human_attackhand.dm"
+#include "code\modules\mob\living\carbon\human\human_damage.dm"
+#include "code\modules\mob\living\carbon\human\human_defense.dm"
+#include "code\modules\mob\living\carbon\human\human_defines.dm"
+#include "code\modules\mob\living\carbon\human\human_defines_vr.dm"
+#include "code\modules\mob\living\carbon\human\human_helpers.dm"
+#include "code\modules\mob\living\carbon\human\human_helpers_vr.dm"
+#include "code\modules\mob\living\carbon\human\human_modular_limbs.dm"
+#include "code\modules\mob\living\carbon\human\human_movement.dm"
+#include "code\modules\mob\living\carbon\human\human_organs.dm"
+#include "code\modules\mob\living\carbon\human\human_powers.dm"
+#include "code\modules\mob\living\carbon\human\human_powers_vr.dm"
+#include "code\modules\mob\living\carbon\human\human_resist.dm"
+#include "code\modules\mob\living\carbon\human\human_species.dm"
+#include "code\modules\mob\living\carbon\human\human_species_vr.dm"
+#include "code\modules\mob\living\carbon\human\human_vr.dm"
+#include "code\modules\mob\living\carbon\human\inventory.dm"
+#include "code\modules\mob\living\carbon\human\life.dm"
+#include "code\modules\mob\living\carbon\human\life_vr.dm"
+#include "code\modules\mob\living\carbon\human\login.dm"
+#include "code\modules\mob\living\carbon\human\logout.dm"
+#include "code\modules\mob\living\carbon\human\MedicalSideEffects.dm"
+#include "code\modules\mob\living\carbon\human\npcs.dm"
+#include "code\modules\mob\living\carbon\human\say.dm"
+#include "code\modules\mob\living\carbon\human\stripping.dm"
+#include "code\modules\mob\living\carbon\human\unarmed_attack.dm"
+#include "code\modules\mob\living\carbon\human\update_icons.dm"
+#include "code\modules\mob\living\carbon\human\ai_controlled\ai_controlled.dm"
+#include "code\modules\mob\living\carbon\human\descriptors\_descriptors.dm"
+#include "code\modules\mob\living\carbon\human\descriptors\descriptors_generic.dm"
+#include "code\modules\mob\living\carbon\human\descriptors\descriptors_skrell.dm"
+#include "code\modules\mob\living\carbon\human\descriptors\descriptors_vox.dm"
+#include "code\modules\mob\living\carbon\human\species\species.dm"
+#include "code\modules\mob\living\carbon\human\species\species_attack.dm"
+#include "code\modules\mob\living\carbon\human\species\species_attack_vr.dm"
+#include "code\modules\mob\living\carbon\human\species\species_getters.dm"
+#include "code\modules\mob\living\carbon\human\species\species_getters_vr.dm"
+#include "code\modules\mob\living\carbon\human\species\species_helpers.dm"
+#include "code\modules\mob\living\carbon\human\species\species_hud.dm"
+#include "code\modules\mob\living\carbon\human\species\species_shapeshift.dm"
+#include "code\modules\mob\living\carbon\human\species\species_shapeshift_vr.dm"
+#include "code\modules\mob\living\carbon\human\species\species_vr.dm"
+#include "code\modules\mob\living\carbon\human\species\outsider\event.dm"
+#include "code\modules\mob\living\carbon\human\species\outsider\replicant.dm"
+#include "code\modules\mob\living\carbon\human\species\outsider\shadow.dm"
+#include "code\modules\mob\living\carbon\human\species\outsider\skeleton.dm"
+#include "code\modules\mob\living\carbon\human\species\outsider\vox.dm"
+#include "code\modules\mob\living\carbon\human\species\outsider\vox_vr.dm"
+#include "code\modules\mob\living\carbon\human\species\shadekin\_defines.dm"
+#include "code\modules\mob\living\carbon\human\species\shadekin\shadekin.dm"
+#include "code\modules\mob\living\carbon\human\species\shadekin\shadekin_abilities.dm"
+#include "code\modules\mob\living\carbon\human\species\shadekin\shadekin_hud.dm"
+#include "code\modules\mob\living\carbon\human\species\shadekin\shadekin_trait.dm"
+#include "code\modules\mob\living\carbon\human\species\station\alraune.dm"
+#include "code\modules\mob\living\carbon\human\species\station\blank_vr.dm"
+#include "code\modules\mob\living\carbon\human\species\station\golem.dm"
+#include "code\modules\mob\living\carbon\human\species\station\human_subspecies.dm"
+#include "code\modules\mob\living\carbon\human\species\station\monkey.dm"
+#include "code\modules\mob\living\carbon\human\species\station\monkey_vr.dm"
+#include "code\modules\mob\living\carbon\human\species\station\prometheans.dm"
+#include "code\modules\mob\living\carbon\human\species\station\prometheans_vr.dm"
+#include "code\modules\mob\living\carbon\human\species\station\station.dm"
+#include "code\modules\mob\living\carbon\human\species\station\station_special_abilities_vr.dm"
+#include "code\modules\mob\living\carbon\human\species\station\station_special_vr.dm"
+#include "code\modules\mob\living\carbon\human\species\station\station_vr.dm"
+#include "code\modules\mob\living\carbon\human\species\station\teshari.dm"
+#include "code\modules\mob\living\carbon\human\species\station\teshari_vr.dm"
+#include "code\modules\mob\living\carbon\human\species\station\xenochimera_hud_vr.dm"
+#include "code\modules\mob\living\carbon\human\species\station\xenochimera_trait_vr.dm"
+#include "code\modules\mob\living\carbon\human\species\station\protean_vr\_protean_defines.dm"
+#include "code\modules\mob\living\carbon\human\species\station\protean_vr\protean_blob.dm"
+#include "code\modules\mob\living\carbon\human\species\station\protean_vr\protean_powers.dm"
+#include "code\modules\mob\living\carbon\human\species\station\protean_vr\protean_species.dm"
+#include "code\modules\mob\living\carbon\human\species\station\traits_vr\negative.dm"
+#include "code\modules\mob\living\carbon\human\species\station\traits_vr\neutral.dm"
+#include "code\modules\mob\living\carbon\human\species\station\traits_vr\positive.dm"
+#include "code\modules\mob\living\carbon\human\species\station\traits_vr\trait.dm"
+#include "code\modules\mob\living\carbon\human\species\station\traits_vr\weaver_objs.dm"
+#include "code\modules\mob\living\carbon\human\species\station\traits_vr\weaver_recipies.dm"
+#include "code\modules\mob\living\carbon\human\species\virtual_reality\avatar.dm"
+#include "code\modules\mob\living\carbon\human\species\virtual_reality\opaque_form.dm"
+#include "code\modules\mob\living\carbon\human\species\xenomorphs\alien_powers.dm"
+#include "code\modules\mob\living\carbon\human\species\xenomorphs\alien_species.dm"
+#include "code\modules\mob\living\carbon\human\species\xenomorphs\xenomorphs.dm"
+#include "code\modules\mob\living\silicon\death.dm"
+#include "code\modules\mob\living\silicon\emote.dm"
+#include "code\modules\mob\living\silicon\laws.dm"
+#include "code\modules\mob\living\silicon\login.dm"
+#include "code\modules\mob\living\silicon\say.dm"
+#include "code\modules\mob\living\silicon\silicon.dm"
+#include "code\modules\mob\living\silicon\silicon_vr.dm"
+#include "code\modules\mob\living\silicon\subystems.dm"
+#include "code\modules\mob\living\silicon\ai\ai.dm"
+#include "code\modules\mob\living\silicon\ai\ai_movement.dm"
+#include "code\modules\mob\living\silicon\ai\ai_remote_control.dm"
+#include "code\modules\mob\living\silicon\ai\ai_vr.dm"
+#include "code\modules\mob\living\silicon\ai\death.dm"
+#include "code\modules\mob\living\silicon\ai\examine.dm"
+#include "code\modules\mob\living\silicon\ai\icons.dm"
+#include "code\modules\mob\living\silicon\ai\latejoin.dm"
+#include "code\modules\mob\living\silicon\ai\laws.dm"
+#include "code\modules\mob\living\silicon\ai\life.dm"
+#include "code\modules\mob\living\silicon\ai\login.dm"
+#include "code\modules\mob\living\silicon\ai\logout.dm"
+#include "code\modules\mob\living\silicon\ai\malf.dm"
+#include "code\modules\mob\living\silicon\ai\multicam.dm"
+#include "code\modules\mob\living\silicon\decoy\death.dm"
+#include "code\modules\mob\living\silicon\decoy\decoy.dm"
+#include "code\modules\mob\living\silicon\decoy\life.dm"
+#include "code\modules\mob\living\silicon\pai\admin.dm"
+#include "code\modules\mob\living\silicon\pai\death.dm"
+#include "code\modules\mob\living\silicon\pai\examine.dm"
+#include "code\modules\mob\living\silicon\pai\life.dm"
+#include "code\modules\mob\living\silicon\pai\pai.dm"
+#include "code\modules\mob\living\silicon\pai\pai_vr.dm"
+#include "code\modules\mob\living\silicon\pai\personality.dm"
+#include "code\modules\mob\living\silicon\pai\recruit.dm"
+#include "code\modules\mob\living\silicon\pai\say.dm"
+#include "code\modules\mob\living\silicon\pai\software.dm"
+#include "code\modules\mob\living\silicon\pai\software_modules.dm"
+#include "code\modules\mob\living\silicon\robot\analyzer.dm"
+#include "code\modules\mob\living\silicon\robot\component.dm"
+#include "code\modules\mob\living\silicon\robot\custom_sprites.dm"
+#include "code\modules\mob\living\silicon\robot\death.dm"
+#include "code\modules\mob\living\silicon\robot\emote.dm"
+#include "code\modules\mob\living\silicon\robot\examine.dm"
+#include "code\modules\mob\living\silicon\robot\examine_vr.dm"
+#include "code\modules\mob\living\silicon\robot\inventory.dm"
+#include "code\modules\mob\living\silicon\robot\laws.dm"
+#include "code\modules\mob\living\silicon\robot\life.dm"
+#include "code\modules\mob\living\silicon\robot\login.dm"
+#include "code\modules\mob\living\silicon\robot\photos.dm"
+#include "code\modules\mob\living\silicon\robot\robot.dm"
+#include "code\modules\mob\living\silicon\robot\robot_animation_vr.dm"
+#include "code\modules\mob\living\silicon\robot\robot_damage.dm"
+#include "code\modules\mob\living\silicon\robot\robot_items.dm"
+#include "code\modules\mob\living\silicon\robot\robot_movement.dm"
+#include "code\modules\mob\living\silicon\robot\robot_remote_control.dm"
+#include "code\modules\mob\living\silicon\robot\robot_vr.dm"
+#include "code\modules\mob\living\silicon\robot\syndicate.dm"
+#include "code\modules\mob\living\silicon\robot\dogborg\dog_modules_vr.dm"
+#include "code\modules\mob\living\silicon\robot\dogborg\dog_sleeper_vr.dm"
+#include "code\modules\mob\living\silicon\robot\drone\drone.dm"
+#include "code\modules\mob\living\silicon\robot\drone\drone_abilities.dm"
+#include "code\modules\mob\living\silicon\robot\drone\drone_console.dm"
+#include "code\modules\mob\living\silicon\robot\drone\drone_damage.dm"
+#include "code\modules\mob\living\silicon\robot\drone\drone_items.dm"
+#include "code\modules\mob\living\silicon\robot\drone\drone_manufacturer.dm"
+#include "code\modules\mob\living\silicon\robot\drone\drone_say.dm"
+#include "code\modules\mob\living\silicon\robot\drone\drone_vr.dm"
+#include "code\modules\mob\living\silicon\robot\drone\swarm.dm"
+#include "code\modules\mob\living\silicon\robot\drone\swarm_abilities.dm"
+#include "code\modules\mob\living\silicon\robot\drone\swarm_items.dm"
+#include "code\modules\mob\living\silicon\robot\robot_modules\event.dm"
+#include "code\modules\mob\living\silicon\robot\robot_modules\event_vr.dm"
+#include "code\modules\mob\living\silicon\robot\robot_modules\station.dm"
+#include "code\modules\mob\living\silicon\robot\robot_modules\station_vr.dm"
+#include "code\modules\mob\living\silicon\robot\robot_modules\swarm.dm"
+#include "code\modules\mob\living\silicon\robot\robot_modules\syndicate.dm"
+#include "code\modules\mob\living\silicon\robot\subtypes\gravekeeper.dm"
+#include "code\modules\mob\living\silicon\robot\subtypes\lost_drone.dm"
+#include "code\modules\mob\living\silicon\robot\subtypes\lost_drone_vr.dm"
+#include "code\modules\mob\living\silicon\robot\subtypes\syndicate.dm"
+#include "code\modules\mob\living\silicon\robot\subtypes\thinktank\_thinktank.dm"
+#include "code\modules\mob\living\silicon\robot\subtypes\thinktank\thinktank_icon.dm"
+#include "code\modules\mob\living\silicon\robot\subtypes\thinktank\thinktank_interactions.dm"
+#include "code\modules\mob\living\silicon\robot\subtypes\thinktank\thinktank_module.dm"
+#include "code\modules\mob\living\silicon\robot\subtypes\thinktank\thinktank_storage.dm"
+#include "code\modules\mob\living\silicon\robot\subtypes\thinktank\thinktank_subtypes.dm"
+#include "code\modules\mob\living\simple_mob\appearance.dm"
+#include "code\modules\mob\living\simple_mob\butchering.dm"
+#include "code\modules\mob\living\simple_mob\combat.dm"
+#include "code\modules\mob\living\simple_mob\defense.dm"
+#include "code\modules\mob\living\simple_mob\donteatpets_vr.dm"
+#include "code\modules\mob\living\simple_mob\hands.dm"
+#include "code\modules\mob\living\simple_mob\harvesting.dm"
+#include "code\modules\mob\living\simple_mob\life.dm"
+#include "code\modules\mob\living\simple_mob\on_click.dm"
+#include "code\modules\mob\living\simple_mob\simple_hud.dm"
+#include "code\modules\mob\living\simple_mob\simple_mob.dm"
+#include "code\modules\mob\living\simple_mob\simple_mob_vr.dm"
+#include "code\modules\mob\living\simple_mob\taming.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\animal.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\borer\borer.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\borer\borer_captive.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\borer\borer_powers.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\farm animals\chicken.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\farm animals\cow.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\farm animals\goat.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\giant_spider\_giant_spider.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\giant_spider\carrier.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\giant_spider\electric.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\giant_spider\frost.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\giant_spider\giant_spider_vr.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\giant_spider\hunter.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\giant_spider\lurker.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\giant_spider\nurse.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\giant_spider\pepper.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\giant_spider\phorogenic.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\giant_spider\thermic.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\giant_spider\tunneler.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\giant_spider\webslinger.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\passive\crab.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\passive\fish.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\passive\fish_vr.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\passive\jerboa_vr.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\passive\lizard.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\passive\misc.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\passive\mouse.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\passive\mouse_vr.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\passive\passive.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\passive\penguin.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\passive\possum.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\pets\bird.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\pets\bird_vr.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\pets\cat.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\pets\cat_vr.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\pets\dog.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\pets\fox_vr.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\pets\parrot.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\diyaab.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\duck.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\fluffy_vr.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\frostfly.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\glitterfly.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\hare.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\hooligan_crab.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\kururak.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\leech.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\moth.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\pillbug.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\racoon.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\savik.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\shantak.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\sif.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\siffet.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\space\alien.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\space\bats.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\space\bear.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\space\carp.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\space\carp_vr.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\space\gaslamp_vr.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\space\goose.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\space\goose_vr.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\space\snake_vr.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\space\space.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\space\space_vr.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\space\worm.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\blob\blob.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\blob\spore.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\horror\bradley.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\horror\Eddy.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\horror\horror .dm"
+#include "code\modules\mob\living\simple_mob\subtypes\horror\Master.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\horror\Rickey.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\horror\sally.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\horror\shittytim.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\horror\Smiley.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\horror\Steve.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\horror\timling.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\horror\Willy.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\humanoid\clown.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\humanoid\humanoid.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\humanoid\humanoid_vr.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\humanoid\pirates.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\humanoid\russian.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\humanoid\mercs\mercs.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\humanoid\mercs\mercs_vr.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\illusion\illusion.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\mechanical\corrupt_maint_drone_vr.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\mechanical\disbot_vr.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\mechanical\golem.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\mechanical\golem_vr.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\mechanical\mechanical.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\mechanical\mechanical_vr.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\mechanical\viscerator.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\mechanical\wahlem_vr.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\mechanical\drones\combat_drone.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\mechanical\drones\mining_drone.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\mechanical\hivebot\hivebot.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\mechanical\hivebot\hivebot_vr.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\mechanical\hivebot\ranged_damage.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\mechanical\hivebot\ranged_damage_vr.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\mechanical\hivebot\support.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\mechanical\hivebot\support_vr.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\mechanical\hivebot\tank.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\mechanical\mecha\adv_dark_gygax.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\mechanical\mecha\adv_dark_gygax_vr.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\mechanical\mecha\combat_mecha.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\mechanical\mecha\durand.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\mechanical\mecha\gygax.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\mechanical\mecha\hoverpod.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\mechanical\mecha\marauder.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\mechanical\mecha\mecha.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\mechanical\mecha\odysseus.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\mechanical\mecha\phazon.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\mechanical\mecha\ripley.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\mechanical\ward\monitor_ward.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\mechanical\ward\ward.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\occult\creature.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\occult\faithless.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\occult\constructs\_construct.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\occult\constructs\artificer.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\occult\constructs\harvester.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\occult\constructs\juggernaut.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\occult\constructs\shade.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\occult\constructs\wraith.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\plant\tomato.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\plant\tree.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\slime\slime.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\slime\slime_vr.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\slime\feral\feral.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\slime\feral\feral_vr.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\slime\xenobio\combat.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\slime\xenobio\consumption.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\slime\xenobio\defense.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\slime\xenobio\discipline.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\slime\xenobio\subtypes.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\slime\xenobio\subtypes_vr.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\slime\xenobio\xenobio.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\bee.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\c_pet.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\catgirl.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\cookiegirl.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\corrupt_hounds.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\deathclaw.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\dino.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\dragon.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\fennec.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\fennix.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\frog.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\hippo.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\horse.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\jelly.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\lamia.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\mimic.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\oregrub.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\otie.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\panther.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\rabbit.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\rat.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\redpanda.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\sect_drone.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\sect_queen.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\snake.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\softdog.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\solargrub.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\solargrub_larva.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\vore.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\weretiger.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\wolf.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\wolfgirl.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\xeno_vore.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\zz_vore_overrides.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\demon\_defines.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\demon\demon.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\demon\demon_abilities.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\demon\demon_subtypes.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\demon\~defines.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\mobs_monsters\clowns\Big.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\mobs_monsters\clowns\bigclowns.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\mobs_monsters\clowns\bus.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\mobs_monsters\clowns\busclowns.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\mobs_monsters\clowns\c_shift.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\mobs_monsters\clowns\Clowns.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\mobs_monsters\clowns\hespawner.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\mobs_monsters\clowns\honkelemental.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\mobs_monsters\clowns\regularclowns.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\morph\morph.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\shadekin\ability_objects.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\shadekin\ability_procs.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\shadekin\shadekin.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\vore\shadekin\types.dm"
+#include "code\modules\mob\living\voice\voice.dm"
+#include "code\modules\mob\living\voice\voice_vr.dm"
+#include "code\modules\mob\new_player\login.dm"
+#include "code\modules\mob\new_player\login_vr.dm"
+#include "code\modules\mob\new_player\logout.dm"
+#include "code\modules\mob\new_player\new_player.dm"
+#include "code\modules\mob\new_player\new_player_vr.dm"
+#include "code\modules\mob\new_player\news.dm"
+#include "code\modules\mob\new_player\poll.dm"
+#include "code\modules\mob\new_player\preferences_setup.dm"
+#include "code\modules\mob\new_player\preferences_setup_vr.dm"
+#include "code\modules\mob\new_player\skill.dm"
+#include "code\modules\mob\new_player\sprite_accessories.dm"
+#include "code\modules\mob\new_player\sprite_accessories_ear.dm"
+#include "code\modules\mob\new_player\sprite_accessories_ear_vr.dm"
+#include "code\modules\mob\new_player\sprite_accessories_extra.dm"
+#include "code\modules\mob\new_player\sprite_accessories_extra_vr.dm"
+#include "code\modules\mob\new_player\sprite_accessories_tail.dm"
+#include "code\modules\mob\new_player\sprite_accessories_tail_vr.dm"
+#include "code\modules\mob\new_player\sprite_accessories_taur.dm"
+#include "code\modules\mob\new_player\sprite_accessories_taur_vr.dm"
+#include "code\modules\mob\new_player\sprite_accessories_vr.dm"
+#include "code\modules\mob\new_player\sprite_accessories_wing.dm"
+#include "code\modules\mob\new_player\sprite_accessories_wing_vr.dm"
+#include "code\modules\modular_computers\laptop_vendor.dm"
+#include "code\modules\modular_computers\computers\modular_computer\core.dm"
+#include "code\modules\modular_computers\computers\modular_computer\damage.dm"
+#include "code\modules\modular_computers\computers\modular_computer\hardware.dm"
+#include "code\modules\modular_computers\computers\modular_computer\interaction.dm"
+#include "code\modules\modular_computers\computers\modular_computer\power.dm"
+#include "code\modules\modular_computers\computers\modular_computer\ui.dm"
+#include "code\modules\modular_computers\computers\modular_computer\variables.dm"
+#include "code\modules\modular_computers\computers\subtypes\dev_console.dm"
+#include "code\modules\modular_computers\computers\subtypes\dev_laptop.dm"
+#include "code\modules\modular_computers\computers\subtypes\dev_tablet.dm"
+#include "code\modules\modular_computers\computers\subtypes\dev_telescreen.dm"
+#include "code\modules\modular_computers\computers\subtypes\preset_console.dm"
+#include "code\modules\modular_computers\computers\subtypes\preset_laptop.dm"
+#include "code\modules\modular_computers\computers\subtypes\preset_laptop_vr.dm"
+#include "code\modules\modular_computers\computers\subtypes\preset_tablet.dm"
+#include "code\modules\modular_computers\computers\subtypes\preset_tablet_vr.dm"
+#include "code\modules\modular_computers\computers\subtypes\preset_telescreen.dm"
+#include "code\modules\modular_computers\file_system\computer_file.dm"
+#include "code\modules\modular_computers\file_system\data.dm"
+#include "code\modules\modular_computers\file_system\news_article.dm"
+#include "code\modules\modular_computers\file_system\program.dm"
+#include "code\modules\modular_computers\file_system\program_events.dm"
+#include "code\modules\modular_computers\file_system\programs\antagonist\access_decrypter.dm"
+#include "code\modules\modular_computers\file_system\programs\antagonist\dos.dm"
+#include "code\modules\modular_computers\file_system\programs\antagonist\hacked_camera.dm"
+#include "code\modules\modular_computers\file_system\programs\antagonist\revelation.dm"
+#include "code\modules\modular_computers\file_system\programs\command\card.dm"
+#include "code\modules\modular_computers\file_system\programs\command\comm.dm"
+#include "code\modules\modular_computers\file_system\programs\engineering\alarm_monitor.dm"
+#include "code\modules\modular_computers\file_system\programs\engineering\atmos_control.dm"
+#include "code\modules\modular_computers\file_system\programs\engineering\power_monitor.dm"
+#include "code\modules\modular_computers\file_system\programs\engineering\rcon_console.dm"
+#include "code\modules\modular_computers\file_system\programs\engineering\shutoff_monitor.dm"
+#include "code\modules\modular_computers\file_system\programs\engineering\supermatter_monitor.dm"
+#include "code\modules\modular_computers\file_system\programs\generic\camera.dm"
+#include "code\modules\modular_computers\file_system\programs\generic\configurator.dm"
+#include "code\modules\modular_computers\file_system\programs\generic\email_client.dm"
+#include "code\modules\modular_computers\file_system\programs\generic\file_browser.dm"
+#include "code\modules\modular_computers\file_system\programs\generic\game.dm"
+#include "code\modules\modular_computers\file_system\programs\generic\news_browser.dm"
+#include "code\modules\modular_computers\file_system\programs\generic\ntdownloader.dm"
+#include "code\modules\modular_computers\file_system\programs\generic\ntnrc_client.dm"
+#include "code\modules\modular_computers\file_system\programs\generic\nttransfer.dm"
+#include "code\modules\modular_computers\file_system\programs\generic\uav.dm"
+#include "code\modules\modular_computers\file_system\programs\generic\wordprocessor.dm"
+#include "code\modules\modular_computers\file_system\programs\medical\suit_sensors.dm"
+#include "code\modules\modular_computers\file_system\programs\research\email_administration.dm"
+#include "code\modules\modular_computers\file_system\programs\research\ntmonitor.dm"
+#include "code\modules\modular_computers\file_system\programs\security\alarm_monitor.dm"
+#include "code\modules\modular_computers\file_system\programs\security\digitalwarrant.dm"
+#include "code\modules\modular_computers\file_system\programs\ships\navigation.dm"
+#include "code\modules\modular_computers\hardware\_hardware.dm"
+#include "code\modules\modular_computers\hardware\battery_module.dm"
+#include "code\modules\modular_computers\hardware\card_slot.dm"
+#include "code\modules\modular_computers\hardware\hard_drive.dm"
+#include "code\modules\modular_computers\hardware\nano_printer.dm"
+#include "code\modules\modular_computers\hardware\network_card.dm"
+#include "code\modules\modular_computers\hardware\portable_hard_drive.dm"
+#include "code\modules\modular_computers\hardware\processor_unit.dm"
+#include "code\modules\modular_computers\hardware\tesla_link.dm"
+#include "code\modules\modular_computers\NTNet\NTNet.dm"
+#include "code\modules\modular_computers\NTNet\NTNet_relay.dm"
+#include "code\modules\modular_computers\NTNet\emails\email_account.dm"
+#include "code\modules\modular_computers\NTNet\emails\email_message.dm"
+#include "code\modules\modular_computers\NTNet\NTNRC\conversation.dm"
+#include "code\modules\multi-tile\multi-tile.dm"
+#include "code\modules\multiz\_stubs.dm"
+#include "code\modules\multiz\admin_upload.dm"
+#include "code\modules\multiz\basic.dm"
+#include "code\modules\multiz\hoist.dm"
+#include "code\modules\multiz\ladder_assembly_vr.dm"
+#include "code\modules\multiz\ladders.dm"
+#include "code\modules\multiz\ladders_vr.dm"
+#include "code\modules\multiz\movement.dm"
+#include "code\modules\multiz\movement_vr.dm"
+#include "code\modules\multiz\pipes.dm"
+#include "code\modules\multiz\stairs.dm"
+#include "code\modules\multiz\turf.dm"
+#include "code\modules\news\news_init.dm"
+#include "code\modules\news\newspaper.dm"
+#include "code\modules\news\newspaper_layout.dm"
+#include "code\modules\nifsoft\nif.dm"
+#include "code\modules\nifsoft\nif_softshop.dm"
+#include "code\modules\nifsoft\nif_tgui.dm"
+#include "code\modules\nifsoft\nifsoft.dm"
+#include "code\modules\nifsoft\software\01_vision.dm"
+#include "code\modules\nifsoft\software\05_health.dm"
+#include "code\modules\nifsoft\software\06_screens.dm"
+#include "code\modules\nifsoft\software\10_combat.dm"
+#include "code\modules\nifsoft\software\13_soulcatcher.dm"
+#include "code\modules\nifsoft\software\14_commlink.dm"
+#include "code\modules\nifsoft\software\15_misc.dm"
+#include "code\modules\organs\blood.dm"
+#include "code\modules\organs\misc.dm"
+#include "code\modules\organs\organ.dm"
+#include "code\modules\organs\organ_external.dm"
+#include "code\modules\organs\organ_external_vr.dm"
+#include "code\modules\organs\organ_icon.dm"
+#include "code\modules\organs\organ_stump.dm"
+#include "code\modules\organs\pain.dm"
+#include "code\modules\organs\robolimbs.dm"
+#include "code\modules\organs\robolimbs_custom.dm"
+#include "code\modules\organs\robolimbs_vr.dm"
+#include "code\modules\organs\wound.dm"
+#include "code\modules\organs\internal\_organ_internal.dm"
+#include "code\modules\organs\internal\appendix.dm"
+#include "code\modules\organs\internal\augment.dm"
+#include "code\modules\organs\internal\brain.dm"
+#include "code\modules\organs\internal\eyes.dm"
+#include "code\modules\organs\internal\heart.dm"
+#include "code\modules\organs\internal\intestine.dm"
+#include "code\modules\organs\internal\kidneys.dm"
+#include "code\modules\organs\internal\liver.dm"
+#include "code\modules\organs\internal\lungs.dm"
+#include "code\modules\organs\internal\spleen.dm"
+#include "code\modules\organs\internal\stomach.dm"
+#include "code\modules\organs\internal\voicebox.dm"
+#include "code\modules\organs\internal\augment\armmounted.dm"
+#include "code\modules\organs\internal\augment\bio.dm"
+#include "code\modules\organs\internal\robotic\diagnostic.dm"
+#include "code\modules\organs\internal\robotic\heatsink.dm"
+#include "code\modules\organs\internal\robotic\robotic.dm"
+#include "code\modules\organs\subtypes\diona.dm"
+#include "code\modules\organs\subtypes\indestructible.dm"
+#include "code\modules\organs\subtypes\machine.dm"
+#include "code\modules\organs\subtypes\nano.dm"
+#include "code\modules\organs\subtypes\replicant.dm"
+#include "code\modules\organs\subtypes\shadekin.dm"
+#include "code\modules\organs\subtypes\shadekin_vr.dm"
+#include "code\modules\organs\subtypes\slime.dm"
+#include "code\modules\organs\subtypes\slime_vr.dm"
+#include "code\modules\organs\subtypes\standard.dm"
+#include "code\modules\organs\subtypes\standard_vr.dm"
+#include "code\modules\organs\subtypes\teshari.dm"
+#include "code\modules\organs\subtypes\unathi.dm"
+#include "code\modules\organs\subtypes\unbreakable.dm"
+#include "code\modules\organs\subtypes\unseverable.dm"
+#include "code\modules\organs\subtypes\vox.dm"
+#include "code\modules\organs\subtypes\vox_vr.dm"
+#include "code\modules\organs\subtypes\xenos.dm"
+#include "code\modules\overmap\abductor_vr.dm"
+#include "code\modules\overmap\bluespace_rift_vr.dm"
+#include "code\modules\overmap\champagne.dm"
+#include "code\modules\overmap\helpers.dm"
+#include "code\modules\overmap\overmap_object.dm"
+#include "code\modules\overmap\overmap_planet.dm"
+#include "code\modules\overmap\overmap_shuttle.dm"
+#include "code\modules\overmap\sectors.dm"
+#include "code\modules\overmap\spacetravel.dm"
+#include "code\modules\overmap\turfs.dm"
+#include "code\modules\overmap\disperser\disperser.dm"
+#include "code\modules\overmap\disperser\disperser_charge.dm"
+#include "code\modules\overmap\disperser\disperser_circuit.dm"
+#include "code\modules\overmap\disperser\disperser_console.dm"
+#include "code\modules\overmap\disperser\disperser_fire.dm"
+#include "code\modules\overmap\events\event_handler.dm"
+#include "code\modules\overmap\events\generation.dm"
+#include "code\modules\overmap\events\overmap_event.dm"
+#include "code\modules\overmap\ships\landable.dm"
+#include "code\modules\overmap\ships\panicbutton.dm"
+#include "code\modules\overmap\ships\ship.dm"
+#include "code\modules\overmap\ships\computers\computer_shims.dm"
+#include "code\modules\overmap\ships\computers\engine_control.dm"
+#include "code\modules\overmap\ships\computers\helm.dm"
+#include "code\modules\overmap\ships\computers\sensors.dm"
+#include "code\modules\overmap\ships\computers\ship.dm"
+#include "code\modules\overmap\ships\computers\ship_vr.dm"
+#include "code\modules\overmap\ships\computers\shuttle.dm"
+#include "code\modules\overmap\ships\engines\engine.dm"
+#include "code\modules\overmap\ships\engines\gas_thruster.dm"
+#include "code\modules\overmap\ships\engines\gas_thruster_vr.dm"
+#include "code\modules\overmap\ships\engines\ion_thruster.dm"
+#include "code\modules\paperwork\adminpaper.dm"
+#include "code\modules\paperwork\carbonpaper.dm"
+#include "code\modules\paperwork\clipboard.dm"
+#include "code\modules\paperwork\faxmachine.dm"
+#include "code\modules\paperwork\faxmachine_vr.dm"
+#include "code\modules\paperwork\filingcabinet.dm"
+#include "code\modules\paperwork\folders.dm"
+#include "code\modules\paperwork\handlabeler.dm"
+#include "code\modules\paperwork\paper.dm"
+#include "code\modules\paperwork\paper_bundle.dm"
+#include "code\modules\paperwork\paper_sticky.dm"
+#include "code\modules\paperwork\paperbin.dm"
+#include "code\modules\paperwork\paperplane.dm"
+#include "code\modules\paperwork\papershredder.dm"
+#include "code\modules\paperwork\pen.dm"
+#include "code\modules\paperwork\photocopier.dm"
+#include "code\modules\paperwork\photography.dm"
+#include "code\modules\paperwork\silicon_photography.dm"
+#include "code\modules\paperwork\stamps.dm"
+#include "code\modules\pda\ai.dm"
+#include "code\modules\pda\app.dm"
+#include "code\modules\pda\cart.dm"
+#include "code\modules\pda\cart_apps.dm"
+#include "code\modules\pda\cart_vr.dm"
+#include "code\modules\pda\core_apps.dm"
+#include "code\modules\pda\messenger.dm"
+#include "code\modules\pda\messenger_plugins.dm"
+#include "code\modules\pda\pda.dm"
+#include "code\modules\pda\pda_subtypes.dm"
+#include "code\modules\pda\pda_tgui.dm"
+#include "code\modules\pda\pda_vr.dm"
+#include "code\modules\pda\radio.dm"
+#include "code\modules\pda\utilities.dm"
+#include "code\modules\persistence\filth.dm"
+#include "code\modules\persistence\graffiti.dm"
+#include "code\modules\persistence\noticeboard.dm"
+#include "code\modules\persistence\paintings.dm"
+#include "code\modules\persistence\serialize.dm"
+#include "code\modules\persistence\datum\persistence_datum.dm"
+#include "code\modules\persistence\effects\filth.dm"
+#include "code\modules\persistence\effects\graffiti.dm"
+#include "code\modules\persistence\effects\paper.dm"
+#include "code\modules\persistence\effects\paper_sticky.dm"
+#include "code\modules\persistence\effects\trash.dm"
+#include "code\modules\persistence\storage\smartfridge.dm"
+#include "code\modules\persistence\storage\storage.dm"
+#include "code\modules\planet\planet.dm"
+#include "code\modules\planet\sun.dm"
+#include "code\modules\planet\time.dm"
+#include "code\modules\planet\virgo3b_vr.dm"
+#include "code\modules\planet\virgo4_vr.dm"
+#include "code\modules\planet\weather.dm"
+#include "code\modules\planet\weather_vr.dm"
+#include "code\modules\power\apc.dm"
+#include "code\modules\power\apc_vr.dm"
+#include "code\modules\power\batteryrack.dm"
+#include "code\modules\power\batteryrack_vr.dm"
+#include "code\modules\power\breaker_box.dm"
+#include "code\modules\power\cable.dm"
+#include "code\modules\power\cable_ender.dm"
+#include "code\modules\power\cable_heavyduty.dm"
+#include "code\modules\power\cell.dm"
+#include "code\modules\power\debug_items.dm"
+#include "code\modules\power\generator.dm"
+#include "code\modules\power\gravitygenerator_vr.dm"
+#include "code\modules\power\grid_checker.dm"
+#include "code\modules\power\lighting.dm"
+#include "code\modules\power\lighting_vr.dm"
+#include "code\modules\power\lightswitch_vr.dm"
+#include "code\modules\power\port_gen.dm"
+#include "code\modules\power\port_gen_vr.dm"
+#include "code\modules\power\power.dm"
+#include "code\modules\power\powernet.dm"
+#include "code\modules\power\smes.dm"
+#include "code\modules\power\smes_construction.dm"
+#include "code\modules\power\smes_vr.dm"
+#include "code\modules\power\solar.dm"
+#include "code\modules\power\terminal.dm"
+#include "code\modules\power\tracker.dm"
+#include "code\modules\power\turbine.dm"
+#include "code\modules\power\antimatter\containment_jar.dm"
+#include "code\modules\power\antimatter\control.dm"
+#include "code\modules\power\antimatter\shielding.dm"
+#include "code\modules\power\cells\device_cells.dm"
+#include "code\modules\power\cells\device_cells_vr.dm"
+#include "code\modules\power\cells\esoteric_cells.dm"
+#include "code\modules\power\cells\power_cells.dm"
+#include "code\modules\power\fusion\_setup.dm"
+#include "code\modules\power\fusion\fusion_circuits.dm"
+#include "code\modules\power\fusion\fusion_particle_catcher.dm"
+#include "code\modules\power\fusion\fusion_reactions.dm"
+#include "code\modules\power\fusion\magpower.dm"
+#include "code\modules\power\fusion\core\_core.dm"
+#include "code\modules\power\fusion\core\core_control.dm"
+#include "code\modules\power\fusion\core\core_field.dm"
+#include "code\modules\power\fusion\fuel_assembly\fuel_assembly.dm"
+#include "code\modules\power\fusion\fuel_assembly\fuel_compressor.dm"
+#include "code\modules\power\fusion\fuel_assembly\fuel_control.dm"
+#include "code\modules\power\fusion\fuel_assembly\fuel_injector.dm"
+#include "code\modules\power\fusion\gyrotron\gyrotron.dm"
+#include "code\modules\power\fusion\gyrotron\gyrotron_control.dm"
+#include "code\modules\power\sensors\powernet_sensor.dm"
+#include "code\modules\power\sensors\sensor_monitoring.dm"
+#include "code\modules\power\singularity\act.dm"
+#include "code\modules\power\singularity\collector.dm"
+#include "code\modules\power\singularity\containment_field.dm"
+#include "code\modules\power\singularity\emitter.dm"
+#include "code\modules\power\singularity\emitter_vr.dm"
+#include "code\modules\power\singularity\field_generator.dm"
+#include "code\modules\power\singularity\generator.dm"
+#include "code\modules\power\singularity\investigate.dm"
+#include "code\modules\power\singularity\singularity.dm"
+#include "code\modules\power\singularity\particle_accelerator\particle.dm"
+#include "code\modules\power\singularity\particle_accelerator\particle_accelerator.dm"
+#include "code\modules\power\singularity\particle_accelerator\particle_chamber.dm"
+#include "code\modules\power\singularity\particle_accelerator\particle_control.dm"
+#include "code\modules\power\singularity\particle_accelerator\particle_emitter.dm"
+#include "code\modules\power\singularity\particle_accelerator\particle_power.dm"
+#include "code\modules\power\singularity\particle_accelerator\particle_smasher.dm"
+#include "code\modules\power\supermatter\setup_supermatter.dm"
+#include "code\modules\power\supermatter\supermatter.dm"
+#include "code\modules\power\tesla\coil.dm"
+#include "code\modules\power\tesla\energy_ball.dm"
+#include "code\modules\power\tesla\generator.dm"
+#include "code\modules\power\tesla\telsa_construction.dm"
+#include "code\modules\power\tesla\tesla_act.dm"
+#include "code\modules\projectiles\ammunition.dm"
+#include "code\modules\projectiles\broken.dm"
+#include "code\modules\projectiles\dnalocking.dm"
+#include "code\modules\projectiles\gun.dm"
+#include "code\modules\projectiles\projectile.dm"
+#include "code\modules\projectiles\ammunition\magazines.dm"
+#include "code\modules\projectiles\ammunition\magazines_vr.dm"
+#include "code\modules\projectiles\ammunition\magnetic.dm"
+#include "code\modules\projectiles\ammunition\rounds.dm"
+#include "code\modules\projectiles\ammunition\smartmag.dm"
+#include "code\modules\projectiles\brokenguns\energy.dm"
+#include "code\modules\projectiles\brokenguns\launcher.dm"
+#include "code\modules\projectiles\brokenguns\magnetic.dm"
+#include "code\modules\projectiles\brokenguns\projectile.dm"
+#include "code\modules\projectiles\guns\energy.dm"
+#include "code\modules\projectiles\guns\launcher.dm"
+#include "code\modules\projectiles\guns\magic.dm"
+#include "code\modules\projectiles\guns\modular_guns.dm"
+#include "code\modules\projectiles\guns\projectile.dm"
+#include "code\modules\projectiles\guns\vox.dm"
+#include "code\modules\projectiles\guns\energy\bsharpoon_vr.dm"
+#include "code\modules\projectiles\guns\energy\crestrose_vr.dm"
+#include "code\modules\projectiles\guns\energy\dominator_vr.dm"
+#include "code\modules\projectiles\guns\energy\gunsword_vr.dm"
+#include "code\modules\projectiles\guns\energy\hooklauncher.dm"
+#include "code\modules\projectiles\guns\energy\kinetic_accelerator_vr.dm"
+#include "code\modules\projectiles\guns\energy\laser.dm"
+#include "code\modules\projectiles\guns\energy\laser_vr.dm"
+#include "code\modules\projectiles\guns\energy\netgun_vr.dm"
+#include "code\modules\projectiles\guns\energy\nuclear.dm"
+#include "code\modules\projectiles\guns\energy\nuclear_vr.dm"
+#include "code\modules\projectiles\guns\energy\particle.dm"
+#include "code\modules\projectiles\guns\energy\phase.dm"
+#include "code\modules\projectiles\guns\energy\protector_vr.dm"
+#include "code\modules\projectiles\guns\energy\pulse.dm"
+#include "code\modules\projectiles\guns\energy\pummeler_vr.dm"
+#include "code\modules\projectiles\guns\energy\sickshot_vr.dm"
+#include "code\modules\projectiles\guns\energy\special.dm"
+#include "code\modules\projectiles\guns\energy\special_vr.dm"
+#include "code\modules\projectiles\guns\energy\stun.dm"
+#include "code\modules\projectiles\guns\energy\stun_vr.dm"
+#include "code\modules\projectiles\guns\energy\temperature.dm"
+#include "code\modules\projectiles\guns\energy\cell_loaded_vr\cell_loaded.dm"
+#include "code\modules\projectiles\guns\energy\cell_loaded_vr\ml3m.dm"
+#include "code\modules\projectiles\guns\energy\cell_loaded_vr\ml3m_cells.dm"
+#include "code\modules\projectiles\guns\energy\cell_loaded_vr\multi_cannon.dm"
+#include "code\modules\projectiles\guns\energy\cell_loaded_vr\multi_cannon_cells.dm"
+#include "code\modules\projectiles\guns\energy\cell_loaded_vr\nsfw.dm"
+#include "code\modules\projectiles\guns\energy\cell_loaded_vr\nsfw_cells.dm"
+#include "code\modules\projectiles\guns\launcher\bows.dm"
+#include "code\modules\projectiles\guns\launcher\crossbow.dm"
+#include "code\modules\projectiles\guns\launcher\grenade_launcher.dm"
+#include "code\modules\projectiles\guns\launcher\pneumatic.dm"
+#include "code\modules\projectiles\guns\launcher\rocket.dm"
+#include "code\modules\projectiles\guns\launcher\syringe_gun.dm"
+#include "code\modules\projectiles\guns\magic\fireball.dm"
+#include "code\modules\projectiles\guns\magnetic\bore.dm"
+#include "code\modules\projectiles\guns\magnetic\gasthrower.dm"
+#include "code\modules\projectiles\guns\magnetic\magnetic.dm"
+#include "code\modules\projectiles\guns\magnetic\magnetic_construction.dm"
+#include "code\modules\projectiles\guns\magnetic\magnetic_railgun.dm"
+#include "code\modules\projectiles\guns\magnetic\magnetic_railgun_vr.dm"
+#include "code\modules\projectiles\guns\projectile\automatic.dm"
+#include "code\modules\projectiles\guns\projectile\automatic_vr.dm"
+#include "code\modules\projectiles\guns\projectile\boltaction.dm"
+#include "code\modules\projectiles\guns\projectile\boltaction_vr.dm"
+#include "code\modules\projectiles\guns\projectile\caseless.dm"
+#include "code\modules\projectiles\guns\projectile\contender.dm"
+#include "code\modules\projectiles\guns\projectile\dartgun.dm"
+#include "code\modules\projectiles\guns\projectile\dartgun_vr.dm"
+#include "code\modules\projectiles\guns\projectile\pistol.dm"
+#include "code\modules\projectiles\guns\projectile\pistol_vr.dm"
+#include "code\modules\projectiles\guns\projectile\revolver.dm"
+#include "code\modules\projectiles\guns\projectile\revolver_vr.dm"
+#include "code\modules\projectiles\guns\projectile\semiauto.dm"
+#include "code\modules\projectiles\guns\projectile\shotgun.dm"
+#include "code\modules\projectiles\guns\projectile\shotgun_vr.dm"
+#include "code\modules\projectiles\guns\projectile\sniper.dm"
+#include "code\modules\projectiles\guns\projectile\sniper\collapsible_sniper.dm"
+#include "code\modules\projectiles\projectile\arc.dm"
+#include "code\modules\projectiles\projectile\beams.dm"
+#include "code\modules\projectiles\projectile\beams_vr.dm"
+#include "code\modules\projectiles\projectile\blob.dm"
+#include "code\modules\projectiles\projectile\bullets.dm"
+#include "code\modules\projectiles\projectile\bullets_vr.dm"
+#include "code\modules\projectiles\projectile\change.dm"
+#include "code\modules\projectiles\projectile\energy.dm"
+#include "code\modules\projectiles\projectile\energy_vr.dm"
+#include "code\modules\projectiles\projectile\explosive.dm"
+#include "code\modules\projectiles\projectile\force.dm"
+#include "code\modules\projectiles\projectile\hook.dm"
+#include "code\modules\projectiles\projectile\magic.dm"
+#include "code\modules\projectiles\projectile\magnetic.dm"
+#include "code\modules\projectiles\projectile\pellets.dm"
+#include "code\modules\projectiles\projectile\scatter.dm"
+#include "code\modules\projectiles\projectile\special.dm"
+#include "code\modules\projectiles\projectile\trace.dm"
+#include "code\modules\projectiles\targeting\targeting_client.dm"
+#include "code\modules\projectiles\targeting\targeting_gun.dm"
+#include "code\modules\projectiles\targeting\targeting_mob.dm"
+#include "code\modules\projectiles\targeting\targeting_overlay.dm"
+#include "code\modules\projectiles\targeting\targeting_triggers.dm"
+#include "code\modules\radiation\radiation.dm"
+#include "code\modules\random_map\_random_map_setup.dm"
+#include "code\modules\random_map\random_map.dm"
+#include "code\modules\random_map\random_map_verbs.dm"
+#include "code\modules\random_map\automata\automata.dm"
+#include "code\modules\random_map\automata\caves.dm"
+#include "code\modules\random_map\building\building.dm"
+#include "code\modules\random_map\drop\drop_types.dm"
+#include "code\modules\random_map\drop\droppod.dm"
+#include "code\modules\random_map\drop\droppod_doors.dm"
+#include "code\modules\random_map\drop\supply.dm"
+#include "code\modules\random_map\mazes\maze.dm"
+#include "code\modules\random_map\mazes\maze_cell.dm"
+#include "code\modules\random_map\noise\desert.dm"
+#include "code\modules\random_map\noise\noise.dm"
+#include "code\modules\random_map\noise\ore.dm"
+#include "code\modules\random_map\noise\tundra.dm"
+#include "code\modules\reagents\Chemistry-Colours.dm"
+#include "code\modules\reagents\Chemistry-Logging.dm"
+#include "code\modules\reagents\Chemistry-Metabolism.dm"
+#include "code\modules\reagents\holder\distilling.dm"
+#include "code\modules\reagents\holder\holder.dm"
+#include "code\modules\reagents\hoses\connector.dm"
+#include "code\modules\reagents\hoses\hose.dm"
+#include "code\modules\reagents\hoses\hose_connector.dm"
+#include "code\modules\reagents\machinery\chem_master.dm"
+#include "code\modules\reagents\machinery\chemalyzer.dm"
+#include "code\modules\reagents\machinery\distillery.dm"
+#include "code\modules\reagents\machinery\grinder.dm"
+#include "code\modules\reagents\machinery\dispenser\_defines.dm"
+#include "code\modules\reagents\machinery\dispenser\cartridge.dm"
+#include "code\modules\reagents\machinery\dispenser\cartridge_presets.dm"
+#include "code\modules\reagents\machinery\dispenser\cartridge_presets_vr.dm"
+#include "code\modules\reagents\machinery\dispenser\cartridge_spawn.dm"
+#include "code\modules\reagents\machinery\dispenser\dispenser2.dm"
+#include "code\modules\reagents\machinery\dispenser\dispenser2_energy.dm"
+#include "code\modules\reagents\machinery\dispenser\dispenser_presets.dm"
+#include "code\modules\reagents\machinery\dispenser\dispenser_presets_vr.dm"
+#include "code\modules\reagents\machinery\dispenser\reagent_tank.dm"
+#include "code\modules\reagents\machinery\dispenser\supply.dm"
+#include "code\modules\reagents\reactions\_reactions.dm"
+#include "code\modules\reagents\reactions\distilling\distilling.dm"
+#include "code\modules\reagents\reactions\fusion\fusion.dm"
+#include "code\modules\reagents\reactions\instant\drinks.dm"
+#include "code\modules\reagents\reactions\instant\drinks_vr.dm"
+#include "code\modules\reagents\reactions\instant\food.dm"
+#include "code\modules\reagents\reactions\instant\food_vr.dm"
+#include "code\modules\reagents\reactions\instant\instant.dm"
+#include "code\modules\reagents\reactions\instant\instant_vr.dm"
+#include "code\modules\reagents\reagent_containers\_reagent_containers.dm"
+#include "code\modules\reagents\reagent_containers\blood_pack.dm"
+#include "code\modules\reagents\reagent_containers\blood_pack_vr.dm"
+#include "code\modules\reagents\reagent_containers\borghypo.dm"
+#include "code\modules\reagents\reagent_containers\dropper.dm"
+#include "code\modules\reagents\reagent_containers\glass.dm"
+#include "code\modules\reagents\reagent_containers\glass_vr.dm"
+#include "code\modules\reagents\reagent_containers\hypospray.dm"
+#include "code\modules\reagents\reagent_containers\hypospray_vr.dm"
+#include "code\modules\reagents\reagent_containers\patch.dm"
+#include "code\modules\reagents\reagent_containers\pill.dm"
+#include "code\modules\reagents\reagent_containers\pill_vr.dm"
+#include "code\modules\reagents\reagent_containers\spray.dm"
+#include "code\modules\reagents\reagent_containers\spray_vr.dm"
+#include "code\modules\reagents\reagent_containers\syringes.dm"
+#include "code\modules\reagents\reagent_containers\syringes_vr.dm"
+#include "code\modules\reagents\reagent_containers\unidentified_hypospray.dm"
+#include "code\modules\reagents\reagents\_helpers.dm"
+#include "code\modules\reagents\reagents\_reagents.dm"
+#include "code\modules\reagents\reagents\core.dm"
+#include "code\modules\reagents\reagents\dispenser.dm"
+#include "code\modules\reagents\reagents\food_drinks.dm"
+#include "code\modules\reagents\reagents\food_drinks_vr.dm"
+#include "code\modules\reagents\reagents\medicine.dm"
+#include "code\modules\reagents\reagents\medicine_vr.dm"
+#include "code\modules\reagents\reagents\modifiers.dm"
+#include "code\modules\reagents\reagents\other.dm"
+#include "code\modules\reagents\reagents\other_vr.dm"
+#include "code\modules\reagents\reagents\toxins.dm"
+#include "code\modules\reagents\reagents\vore_vr.dm"
+#include "code\modules\recycling\conveyor2.dm"
+#include "code\modules\recycling\disposal-construction.dm"
+#include "code\modules\recycling\disposal.dm"
+#include "code\modules\recycling\sortingmachinery.dm"
+#include "code\modules\research\circuitprinter.dm"
+#include "code\modules\research\designs.dm"
+#include "code\modules\research\destructive_analyzer.dm"
+#include "code\modules\research\mechfab_designs.dm"
+#include "code\modules\research\message_server.dm"
+#include "code\modules\research\prosfab_designs.dm"
+#include "code\modules\research\prosfab_designs_vr.dm"
+#include "code\modules\research\protolathe.dm"
+#include "code\modules\research\rd-readme.dm"
+#include "code\modules\research\rdconsole.dm"
+#include "code\modules\research\rdconsole_tgui.dm"
+#include "code\modules\research\rdmachines.dm"
+#include "code\modules\research\research.dm"
+#include "code\modules\research\server.dm"
+#include "code\modules\research\teleport_vr.dm"
+#include "code\modules\research\designs\ai_holders.dm"
+#include "code\modules\research\designs\bag_of_holding.dm"
+#include "code\modules\research\designs\beakers.dm"
+#include "code\modules\research\designs\bio_devices.dm"
+#include "code\modules\research\designs\bio_devices_vr.dm"
+#include "code\modules\research\designs\circuit_assembly.dm"
+#include "code\modules\research\designs\engineering.dm"
+#include "code\modules\research\designs\HUDs.dm"
+#include "code\modules\research\designs\HUDs_vr.dm"
+#include "code\modules\research\designs\implants.dm"
+#include "code\modules\research\designs\implants_vr.dm"
+#include "code\modules\research\designs\locator_devices.dm"
+#include "code\modules\research\designs\medical.dm"
+#include "code\modules\research\designs\medical_vr.dm"
+#include "code\modules\research\designs\mining_toys.dm"
+#include "code\modules\research\designs\misc.dm"
+#include "code\modules\research\designs\misc_vr.dm"
+#include "code\modules\research\designs\modular_computer.dm"
+#include "code\modules\research\designs\pdas.dm"
+#include "code\modules\research\designs\power_cells.dm"
+#include "code\modules\research\designs\precursor.dm"
+#include "code\modules\research\designs\stock_parts.dm"
+#include "code\modules\research\designs\subspace_parts.dm"
+#include "code\modules\research\designs\tech_disks.dm"
+#include "code\modules\research\designs\weapons.dm"
+#include "code\modules\research\designs\weapons_vr.dm"
+#include "code\modules\research\designs\xenoarch_toys.dm"
+#include "code\modules\research\designs\xenobio_toys.dm"
+#include "code\modules\research\designs\circuits\ai_modules.dm"
+#include "code\modules\research\designs\circuits\ai_modules_vr.dm"
+#include "code\modules\research\designs\circuits\circuits.dm"
+#include "code\modules\research\designs\circuits\circuits_vr.dm"
+#include "code\modules\research\designs\circuits\disks.dm"
+#include "code\modules\resleeving\circuitboards.dm"
+#include "code\modules\resleeving\computers.dm"
+#include "code\modules\resleeving\designer.dm"
+#include "code\modules\resleeving\documents.dm"
+#include "code\modules\resleeving\implant.dm"
+#include "code\modules\resleeving\infocore_records.dm"
+#include "code\modules\resleeving\infomorph.dm"
+#include "code\modules\resleeving\infomorph_software.dm"
+#include "code\modules\resleeving\machines.dm"
+#include "code\modules\resleeving\machines_vr.dm"
+#include "code\modules\resleeving\resleeving_sickness.dm"
+#include "code\modules\resleeving\sleevecard.dm"
+#include "code\modules\rogueminer_vr\asteroid.dm"
+#include "code\modules\rogueminer_vr\controller.dm"
+#include "code\modules\rogueminer_vr\debug.dm"
+#include "code\modules\rogueminer_vr\landmarks.dm"
+#include "code\modules\rogueminer_vr\roguemines_mobs.dm"
+#include "code\modules\rogueminer_vr\wrappers.dm"
+#include "code\modules\rogueminer_vr\zone_console.dm"
+#include "code\modules\rogueminer_vr\zonemaster.dm"
+#include "code\modules\scripting\Errors.dm"
+#include "code\modules\scripting\IDE.dm"
+#include "code\modules\scripting\Options.dm"
+#include "code\modules\scripting\stack.dm"
+#include "code\modules\scripting\AST\AST Nodes.dm"
+#include "code\modules\scripting\AST\Blocks.dm"
+#include "code\modules\scripting\AST\Statements.dm"
+#include "code\modules\scripting\AST\Operators\Binary Operators.dm"
+#include "code\modules\scripting\AST\Operators\Unary Operators.dm"
+#include "code\modules\scripting\Implementations\_Logic.dm"
+#include "code\modules\scripting\Implementations\Telecomms.dm"
+#include "code\modules\scripting\Interpreter\Evaluation.dm"
+#include "code\modules\scripting\Interpreter\Interaction.dm"
+#include "code\modules\scripting\Interpreter\Interpreter.dm"
+#include "code\modules\scripting\Interpreter\Scope.dm"
+#include "code\modules\scripting\Parser\Expressions.dm"
+#include "code\modules\scripting\Parser\Keywords.dm"
+#include "code\modules\scripting\Parser\Parser.dm"
+#include "code\modules\scripting\Scanner\Scanner.dm"
+#include "code\modules\scripting\Scanner\Tokens.dm"
+#include "code\modules\security levels\keycard authentication.dm"
+#include "code\modules\security levels\security levels.dm"
+#include "code\modules\shieldgen\directional_shield.dm"
+#include "code\modules\shieldgen\emergency_shield.dm"
+#include "code\modules\shieldgen\energy_field.dm"
+#include "code\modules\shieldgen\energy_shield.dm"
+#include "code\modules\shieldgen\handheld_defuser.dm"
+#include "code\modules\shieldgen\sheldwallgen.dm"
+#include "code\modules\shieldgen\shield_capacitor.dm"
+#include "code\modules\shieldgen\shield_diffuser.dm"
+#include "code\modules\shieldgen\shield_gen.dm"
+#include "code\modules\shieldgen\shield_gen_external.dm"
+#include "code\modules\shieldgen\shield_generator.dm"
+#include "code\modules\shieldgen\shield_modes.dm"
+#include "code\modules\shuttles\antagonist.dm"
+#include "code\modules\shuttles\crashes.dm"
+#include "code\modules\shuttles\departmental.dm"
+#include "code\modules\shuttles\escape_pods.dm"
+#include "code\modules\shuttles\landmarks.dm"
+#include "code\modules\shuttles\shuttle.dm"
+#include "code\modules\shuttles\shuttle_autodock.dm"
+#include "code\modules\shuttles\shuttle_console.dm"
+#include "code\modules\shuttles\shuttle_console_multi.dm"
+#include "code\modules\shuttles\shuttle_emergency.dm"
+#include "code\modules\shuttles\shuttle_ferry.dm"
+#include "code\modules\shuttles\shuttle_specops.dm"
+#include "code\modules\shuttles\shuttle_supply.dm"
+#include "code\modules\shuttles\shuttles_multi.dm"
+#include "code\modules\shuttles\shuttles_vr.dm"
+#include "code\modules\shuttles\shuttles_web.dm"
+#include "code\modules\shuttles\web_datums.dm"
+#include "code\modules\spells\artifacts.dm"
+#include "code\modules\spells\construct_spells.dm"
+#include "code\modules\spells\no_clothes.dm"
+#include "code\modules\spells\spell_code.dm"
+#include "code\modules\spells\spell_projectile.dm"
+#include "code\modules\spells\spellbook.dm"
+#include "code\modules\spells\spells.dm"
+#include "code\modules\spells\aoe_turf\aoe_turf.dm"
+#include "code\modules\spells\aoe_turf\blink.dm"
+#include "code\modules\spells\aoe_turf\charge.dm"
+#include "code\modules\spells\aoe_turf\disable_tech.dm"
+#include "code\modules\spells\aoe_turf\knock.dm"
+#include "code\modules\spells\aoe_turf\smoke.dm"
+#include "code\modules\spells\aoe_turf\summons.dm"
+#include "code\modules\spells\aoe_turf\conjure\conjure.dm"
+#include "code\modules\spells\aoe_turf\conjure\construct.dm"
+#include "code\modules\spells\aoe_turf\conjure\forcewall.dm"
+#include "code\modules\spells\general\area_teleport.dm"
+#include "code\modules\spells\general\rune_write.dm"
+#include "code\modules\spells\targeted\ethereal_jaunt.dm"
+#include "code\modules\spells\targeted\genetic.dm"
+#include "code\modules\spells\targeted\harvest.dm"
+#include "code\modules\spells\targeted\mind_transfer.dm"
+#include "code\modules\spells\targeted\shift.dm"
+#include "code\modules\spells\targeted\subjugate.dm"
+#include "code\modules\spells\targeted\targeted.dm"
+#include "code\modules\spells\targeted\equip\equip.dm"
+#include "code\modules\spells\targeted\equip\horsemask.dm"
+#include "code\modules\spells\targeted\projectile\dumbfire.dm"
+#include "code\modules\spells\targeted\projectile\fireball.dm"
+#include "code\modules\spells\targeted\projectile\magic_missile.dm"
+#include "code\modules\spells\targeted\projectile\projectile.dm"
+#include "code\modules\surgery\_defines.dm"
+#include "code\modules\surgery\bones.dm"
+#include "code\modules\surgery\encased.dm"
+#include "code\modules\surgery\external_repair.dm"
+#include "code\modules\surgery\face.dm"
+#include "code\modules\surgery\generic.dm"
+#include "code\modules\surgery\implant.dm"
+#include "code\modules\surgery\limb_reattach.dm"
+#include "code\modules\surgery\neck.dm"
+#include "code\modules\surgery\organs_internal.dm"
+#include "code\modules\surgery\other.dm"
+#include "code\modules\surgery\robotics.dm"
+#include "code\modules\surgery\surgery.dm"
+#include "code\modules\surgery\~defines.dm"
+#include "code\modules\tables\bench.dm"
+#include "code\modules\tables\flipping.dm"
+#include "code\modules\tables\interactions.dm"
+#include "code\modules\tables\presets.dm"
+#include "code\modules\tables\presets_vr.dm"
+#include "code\modules\tables\rack.dm"
+#include "code\modules\tables\rack_vr.dm"
+#include "code\modules\tables\tables.dm"
+#include "code\modules\tables\update_triggers.dm"
+#include "code\modules\telesci\bscyrstal.dm"
+#include "code\modules\telesci\construction.dm"
+#include "code\modules\telesci\gps_advanced.dm"
+#include "code\modules\telesci\quantum_pad.dm"
+#include "code\modules\telesci\telepad.dm"
+#include "code\modules\telesci\telesci_computer.dm"
+#include "code\modules\tension\tension.dm"
+#include "code\modules\tgs\includes.dm"
+#include "code\modules\tgui\external.dm"
+#include "code\modules\tgui\modal.dm"
+#include "code\modules\tgui\states.dm"
+#include "code\modules\tgui\tgui.dm"
+#include "code\modules\tgui\tgui_alert.dm"
+#include "code\modules\tgui\tgui_input_list.dm"
+#include "code\modules\tgui\tgui_input_text.dm"
+#include "code\modules\tgui\tgui_window.dm"
+#include "code\modules\tgui\modules\_base.dm"
+#include "code\modules\tgui\modules\admin_shuttle_controller.dm"
+#include "code\modules\tgui\modules\agentcard.dm"
+#include "code\modules\tgui\modules\alarm.dm"
+#include "code\modules\tgui\modules\appearance_changer.dm"
+#include "code\modules\tgui\modules\appearance_changer_vr.dm"
+#include "code\modules\tgui\modules\atmos_control.dm"
+#include "code\modules\tgui\modules\camera.dm"
+#include "code\modules\tgui\modules\communications.dm"
+#include "code\modules\tgui\modules\crew_manifest.dm"
+#include "code\modules\tgui\modules\crew_monitor.dm"
+#include "code\modules\tgui\modules\gyrotron_control.dm"
+#include "code\modules\tgui\modules\law_manager.dm"
+#include "code\modules\tgui\modules\overmap.dm"
+#include "code\modules\tgui\modules\power_monitor.dm"
+#include "code\modules\tgui\modules\rcon.dm"
+#include "code\modules\tgui\modules\rustcore_monitor.dm"
+#include "code\modules\tgui\modules\rustfuel_control.dm"
+#include "code\modules\tgui\modules\shutoff_monitor.dm"
+#include "code\modules\tgui\modules\supermatter_monitor.dm"
+#include "code\modules\tgui\modules\teleporter.dm"
+#include "code\modules\tgui\modules\ntos-only\cardmod.dm"
+#include "code\modules\tgui\modules\ntos-only\configurator.dm"
+#include "code\modules\tgui\modules\ntos-only\email.dm"
+#include "code\modules\tgui\modules\ntos-only\uav.dm"
+#include "code\modules\tgui\states\admin.dm"
+#include "code\modules\tgui\states\always.dm"
+#include "code\modules\tgui\states\conscious.dm"
+#include "code\modules\tgui\states\contained.dm"
+#include "code\modules\tgui\states\deep_inventory.dm"
+#include "code\modules\tgui\states\default.dm"
+#include "code\modules\tgui\states\hands.dm"
+#include "code\modules\tgui\states\human_adjacent.dm"
+#include "code\modules\tgui\states\inventory.dm"
+#include "code\modules\tgui\states\inventory_vr.dm"
+#include "code\modules\tgui\states\not_incapacitated.dm"
+#include "code\modules\tgui\states\notcontained.dm"
+#include "code\modules\tgui\states\observer.dm"
+#include "code\modules\tgui\states\physical.dm"
+#include "code\modules\tgui\states\self.dm"
+#include "code\modules\tgui\states\vorepanel_vr.dm"
+#include "code\modules\tgui\states\zlevel.dm"
+#include "code\modules\tooltip\tooltip.dm"
+#include "code\modules\turbolift\_turbolift.dm"
+#include "code\modules\turbolift\turbolift.dm"
+#include "code\modules\turbolift\turbolift_areas.dm"
+#include "code\modules\turbolift\turbolift_console.dm"
+#include "code\modules\turbolift\turbolift_console_vr.dm"
+#include "code\modules\turbolift\turbolift_door.dm"
+#include "code\modules\turbolift\turbolift_door_vr.dm"
+#include "code\modules\turbolift\turbolift_floor.dm"
+#include "code\modules\turbolift\turbolift_map.dm"
+#include "code\modules\turbolift\turbolift_turfs.dm"
+#include "code\modules\vchat\vchat_client.dm"
+#include "code\modules\vchat\vchat_db.dm"
+#include "code\modules\vehicles\bike.dm"
+#include "code\modules\vehicles\boat.dm"
+#include "code\modules\vehicles\cargo_train.dm"
+#include "code\modules\vehicles\construction.dm"
+#include "code\modules\vehicles\quad.dm"
+#include "code\modules\vehicles\train.dm"
+#include "code\modules\vehicles\vehicle.dm"
+#include "code\modules\ventcrawl\ventcrawl.dm"
+#include "code\modules\ventcrawl\ventcrawl_atmospherics.dm"
+#include "code\modules\ventcrawl\ventcrawl_multiz.dm"
+#include "code\modules\ventcrawl\ventcrawl_verb.dm"
+#include "code\modules\virus2\admin.dm"
+#include "code\modules\virus2\analyser.dm"
+#include "code\modules\virus2\antibodies.dm"
+#include "code\modules\virus2\centrifuge.dm"
+#include "code\modules\virus2\curer.dm"
+#include "code\modules\virus2\disease2.dm"
+#include "code\modules\virus2\diseasesplicer.dm"
+#include "code\modules\virus2\dishincubator.dm"
+#include "code\modules\virus2\effect.dm"
+#include "code\modules\virus2\effect_vr.dm"
+#include "code\modules\virus2\helpers.dm"
+#include "code\modules\virus2\isolator.dm"
+#include "code\modules\virus2\items_devices.dm"
+#include "code\modules\vore\hook-defs_vr.dm"
+#include "code\modules\vore\trycatch_vr.dm"
+#include "code\modules\vore\appearance\preferences_vr.dm"
+#include "code\modules\vore\appearance\update_icons_vr.dm"
+#include "code\modules\vore\eating\belly_dat_vr.dm"
+#include "code\modules\vore\eating\belly_obj_vr.dm"
+#include "code\modules\vore\eating\bellymodes_datum_vr.dm"
+#include "code\modules\vore\eating\bellymodes_vr.dm"
+#include "code\modules\vore\eating\contaminate_vr.dm"
+#include "code\modules\vore\eating\digest_act_vr.dm"
+#include "code\modules\vore\eating\leave_remains_vr.dm"
+#include "code\modules\vore\eating\living_vr.dm"
+#include "code\modules\vore\eating\silicon_vr.dm"
+#include "code\modules\vore\eating\simple_animal_vr.dm"
+#include "code\modules\vore\eating\transforming_vr.dm"
+#include "code\modules\vore\eating\vore_vr.dm"
+#include "code\modules\vore\eating\vorehooks_vr.dm"
+#include "code\modules\vore\eating\vorepanel_vr.dm"
+#include "code\modules\vore\fluffstuff\custom_boxes_vr.dm"
+#include "code\modules\vore\fluffstuff\custom_clothes_vr.dm"
+#include "code\modules\vore\fluffstuff\custom_items_vr.dm"
+#include "code\modules\vore\fluffstuff\custom_mecha_vr.dm"
+#include "code\modules\vore\fluffstuff\custom_permits_vr.dm"
+#include "code\modules\vore\persist\persist_vr.dm"
+#include "code\modules\vore\resizing\grav_pull_vr.dm"
+#include "code\modules\vore\resizing\holder_micro_vr.dm"
+#include "code\modules\vore\resizing\resize_vr.dm"
+#include "code\modules\vore\resizing\sizegun_vr.dm"
+#include "code\modules\vore\smoleworld\smoleworld_vr.dm"
+#include "code\modules\vore\weight\fitness_machines_vr.dm"
+#include "code\modules\webhooks\_webhook.dm"
+#include "code\modules\webhooks\webhook_ahelp2discord.dm"
+#include "code\modules\webhooks\webhook_custom_event.dm"
+#include "code\modules\webhooks\webhook_fax2discord.dm"
+#include "code\modules\webhooks\webhook_roundend.dm"
+#include "code\modules\webhooks\webhook_roundprep.dm"
+#include "code\modules\webhooks\webhook_roundstart.dm"
+#include "code\modules\xenoarcheaology\anomaly_container.dm"
+#include "code\modules\xenoarcheaology\boulder.dm"
+#include "code\modules\xenoarcheaology\effect.dm"
+#include "code\modules\xenoarcheaology\manuals.dm"
+#include "code\modules\xenoarcheaology\misc.dm"
+#include "code\modules\xenoarcheaology\sampling.dm"
+#include "code\modules\xenoarcheaology\artifacts\artifact.dm"
+#include "code\modules\xenoarcheaology\artifacts\artifact_find.dm"
+#include "code\modules\xenoarcheaology\artifacts\artifact_vr.dm"
+#include "code\modules\xenoarcheaology\artifacts\autocloner.dm"
+#include "code\modules\xenoarcheaology\artifacts\crystal.dm"
+#include "code\modules\xenoarcheaology\artifacts\gigadrill.dm"
+#include "code\modules\xenoarcheaology\artifacts\replicator.dm"
+#include "code\modules\xenoarcheaology\artifacts\predefined\_predefined.dm"
+#include "code\modules\xenoarcheaology\artifacts\predefined\hungry_statue.dm"
+#include "code\modules\xenoarcheaology\effects\animate_anomaly.dm"
+#include "code\modules\xenoarcheaology\effects\badfeeling.dm"
+#include "code\modules\xenoarcheaology\effects\berserk.dm"
+#include "code\modules\xenoarcheaology\effects\cannibal.dm"
+#include "code\modules\xenoarcheaology\effects\cellcharge.dm"
+#include "code\modules\xenoarcheaology\effects\celldrain.dm"
+#include "code\modules\xenoarcheaology\effects\cold.dm"
+#include "code\modules\xenoarcheaology\effects\dnaswitch.dm"
+#include "code\modules\xenoarcheaology\effects\electric_field.dm"
+#include "code\modules\xenoarcheaology\effects\emp.dm"
+#include "code\modules\xenoarcheaology\effects\feysight.dm"
+#include "code\modules\xenoarcheaology\effects\forcefield.dm"
+#include "code\modules\xenoarcheaology\effects\gaia.dm"
+#include "code\modules\xenoarcheaology\effects\gasco2.dm"
+#include "code\modules\xenoarcheaology\effects\gasnitro.dm"
+#include "code\modules\xenoarcheaology\effects\gasoxy.dm"
+#include "code\modules\xenoarcheaology\effects\gasphoron.dm"
+#include "code\modules\xenoarcheaology\effects\gassleeping.dm"
+#include "code\modules\xenoarcheaology\effects\goodfeeling.dm"
+#include "code\modules\xenoarcheaology\effects\gravitational_waves.dm"
+#include "code\modules\xenoarcheaology\effects\heal.dm"
+#include "code\modules\xenoarcheaology\effects\heat.dm"
+#include "code\modules\xenoarcheaology\effects\hurt.dm"
+#include "code\modules\xenoarcheaology\effects\poltergeist.dm"
+#include "code\modules\xenoarcheaology\effects\radiate.dm"
+#include "code\modules\xenoarcheaology\effects\resurrect.dm"
+#include "code\modules\xenoarcheaology\effects\roboheal.dm"
+#include "code\modules\xenoarcheaology\effects\robohurt.dm"
+#include "code\modules\xenoarcheaology\effects\sleepy.dm"
+#include "code\modules\xenoarcheaology\effects\stun.dm"
+#include "code\modules\xenoarcheaology\effects\teleport.dm"
+#include "code\modules\xenoarcheaology\effects\vampire.dm"
+#include "code\modules\xenoarcheaology\finds\eguns.dm"
+#include "code\modules\xenoarcheaology\finds\eguns_vr.dm"
+#include "code\modules\xenoarcheaology\finds\find_spawning.dm"
+#include "code\modules\xenoarcheaology\finds\finds.dm"
+#include "code\modules\xenoarcheaology\finds\finds_defines.dm"
+#include "code\modules\xenoarcheaology\finds\fossils.dm"
+#include "code\modules\xenoarcheaology\finds\misc.dm"
+#include "code\modules\xenoarcheaology\finds\special.dm"
+#include "code\modules\xenoarcheaology\finds\talking.dm"
+#include "code\modules\xenoarcheaology\tools\ano_device_battery.dm"
+#include "code\modules\xenoarcheaology\tools\artifact_analyser.dm"
+#include "code\modules\xenoarcheaology\tools\artifact_harvester.dm"
+#include "code\modules\xenoarcheaology\tools\artifact_scanner.dm"
+#include "code\modules\xenoarcheaology\tools\coolant_tank.dm"
+#include "code\modules\xenoarcheaology\tools\equipment.dm"
+#include "code\modules\xenoarcheaology\tools\geosample_scanner.dm"
+#include "code\modules\xenoarcheaology\tools\suspension_generator.dm"
+#include "code\modules\xenoarcheaology\tools\tools.dm"
+#include "code\modules\xenoarcheaology\tools\tools_pickaxe.dm"
+#include "code\modules\xenoarcheaology\tools\tools_pickaxe_vr.dm"
+#include "code\modules\xenoarcheaology\tools\tools_vr.dm"
+#include "code\modules\xenobio\items\extracts.dm"
+#include "code\modules\xenobio\items\slime_objects.dm"
+#include "code\modules\xenobio\items\slimepotions.dm"
+#include "code\modules\xenobio\items\weapons.dm"
+#include "code\modules\xenobio\machinery\processor.dm"
+#include "code\modules\xgm\xgm_gas_data.dm"
+#include "code\modules\xgm\xgm_gas_mixture.dm"
+#include "code\unit_tests\decl_tests.dm"
+#include "code\unit_tests\language_tests.dm"
+#include "code\unit_tests\loadout_tests.dm"
+#include "code\unit_tests\map_tests.dm"
+#include "code\unit_tests\material_tests.dm"
+#include "code\unit_tests\mob_tests.dm"
+#include "code\unit_tests\recipe_tests.dm"
+#include "code\unit_tests\research_tests.dm"
+#include "code\unit_tests\sqlite_tests.dm"
+#include "code\unit_tests\subsystem_tests.dm"
+#include "code\unit_tests\unit_test.dm"
+#include "code\unit_tests\unit_test_vr.dm"
+#include "code\unit_tests\vore_tests_vr.dm"
+#include "code\unit_tests\zas_tests.dm"
+#include "code\unit_tests\integrated_circuits\arithmetic.dm"
+#include "code\unit_tests\integrated_circuits\circuits.dm"
+#include "code\unit_tests\integrated_circuits\converter.dm"
+#include "code\unit_tests\integrated_circuits\logic.dm"
+#include "code\unit_tests\integrated_circuits\trig.dm"
+#include "code\ZAS\Airflow.dm"
+#include "code\ZAS\Atom.dm"
+#include "code\ZAS\Connection.dm"
+#include "code\ZAS\ConnectionGroup.dm"
+#include "code\ZAS\ConnectionManager.dm"
+#include "code\ZAS\Controller.dm"
+#include "code\ZAS\Debug.dm"
+#include "code\ZAS\Diagnostic.dm"
+#include "code\ZAS\Fire.dm"
+#include "code\ZAS\Phoron.dm"
+#include "code\ZAS\Turf.dm"
+#include "code\ZAS\Variable Settings.dm"
+#include "code\ZAS\Zone.dm"
+#include "interface\interface.dm"
+#include "interface\skin.dmf"
+#include "maps\gateway_archive_vr\blackmarketpackers.dm"
+#include "maps\offmap_vr\om_ships\abductor.dm"
+#include "maps\southern_cross\items\clothing\sc_accessory.dm"
+#include "maps\southern_cross\items\clothing\sc_suit.dm"
+#include "maps\southern_cross\items\clothing\sc_under.dm"
+#include "maps\southern_cross\loadout\loadout_suit.dm"
+#include "maps\southern_cross\loadout\loadout_uniform.dm"
+#include "maps\southern_cross\loadout\loadout_vr.dm"
+#include "maps\submaps\_helpers.dm"
+#include "maps\submaps\_readme.dm"
+#include "maps\submaps\engine_submaps\engine.dm"
+#include "maps\submaps\engine_submaps\engine_areas.dm"
+#include "maps\submaps\engine_submaps_vr\tether\_engine_submaps.dm"
+#include "maps\submaps\space_submaps\space.dm"
+#include "maps\submaps\space_submaps\debrisfield\debrisfield.dm"
+#include "maps\submaps\surface_submaps\mountains\mountains.dm"
+#include "maps\submaps\surface_submaps\mountains\mountains_areas.dm"
+#include "maps\submaps\surface_submaps\mountains\mountains_areas_vr.dm"
+#include "maps\submaps\surface_submaps\plains\plains.dm"
+#include "maps\submaps\surface_submaps\plains\plains_areas.dm"
+#include "maps\submaps\surface_submaps\wilderness\wilderness.dm"
+#include "maps\submaps\surface_submaps\wilderness\wilderness_areas.dm"
+#include "maps\tether\tether.dm"
+#include "maps\~map_system\maps.dm"
+// END_INCLUDE
+>>>>>>> eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul