Yogstation 13 - Modules - TypesVar Details

Global Variables

Vars

GPS_listGlobal GPS_list. All GPS components get saved in here for easy reference.
accents_name2fileKeys are the names of the accents, values are the name of their .json file.
accents_name2regexesHolds some complex data regarding accents
accents_namesList of all accents
acid_overlayACID
adamantine_recipesOthers
admin_statetgui state: admin_state
admin_trait_name_mapvalue -> trait name, generated as needed for adminning.
all_clockwork_mobsAll clockwork SERVANTS (not creatures) in existence
all_clockwork_objectsAll clockwork items, structures, and effects in existence
all_ongoing_hallucinationsA global list of all ongoing hallucinations, primarily for easy access to be able to stop (delete) hallucinations.
all_scripturea list containing scripture instances; not used to track existing scripture
allowed_custom_spansSpan classes that players are allowed to set in a radio transmission.
allowed_translationsLanguage datums that players are allowed to translate to in a radio transmission. This is fucking broken.
always_statetgui state: always_state
announcer_keysGlobal list of all of our announcer keys.
antag_token_usersAmount of time in time units they selected
application_scripture_unlockedIf script scripture is available
areasJust a list of all the area objects in the game Note, areas can have duplicate types
areas_by_typeAn association from typepath to area instance. Only includes areas with unique set.
ark_of_the_clockwork_justiciarThe Ark on the Reebe z-level
awaydestinationsAway missions
base_starlight_colorThe base color of light space emits
brazil_receptionteleport receive spots for heretic sacrifices
bubblegum_deadCheck for arena shuttle, if the bubblegum has died this round
cached_mapsList of all the maps that have been cached for /proc/load_map
cached_storage_typecachesAlmost 100% of the time the lists passed into set_holdable are reused for each instance of the component Just fucking cache it 4head Yes I could generalize this, but I don't want anyone else using it. in fact, DO NOT COPY THIS If you find yourself needing this pattern, you're likely better off using static typecaches I'm not because I do not trust implementers of the storage component to use them, BUT IF I FIND YOU USING THIS PATTERN IN YOUR CODE I WILL BREAK YOU ACROSS MY KNEES ~Lemon
cachedbooksSaved books from the DB
changeling_team_objective_typeIf this is not null, we hand our this objective to all lings
chasm_fallen_mobsGlobal list needed to let fishermen with a rescue hook fish fallen mobs from any place
checkoutsBooks that are currently checked out
city_of_cogs_spawnsAnyone entering the City of Cogs spawns here
clockwork_construction_valueThe total value of all structures built by the clockwork cult
clockwork_gateway_activatedif a gateway to the celestial derelict has ever been successfully activated
clockwork_hardmode_activeOnce the cult converts 20% of the station's population, their basic teleport gains a heavy penalty on non-clockwork tiles
clockwork_powerHow many joules of power are globally available to the clockwork cult
clockwork_vitalityHow much Vitality is stored, total
conscious_statetgui state: conscious_state
contained_statetgui state: contained_state
deep_inventory_statetgui state: deep_inventory_state
default_statetgui state: default_state
department_security_spawnslist of all department security spawns
donator_gearThis file contains any "special" / unique donator items which are ckey locked.
dummySaveSave file used in icon2base64. Used for converting icons to base64.
duplicate_forbidden_varsList of all vars that will not be copied over when using duplicate_object()
em_block_colorA globaly cached version of EM_BLOCK_COLOR for quick access.
em_mask_matrixA globaly cached version of EM_MASK_MATRIX for quick access.
emissive_colorA globaly cached version of EMISSIVE_COLOR for quick access.
event_groupsAn associative list of singleton event groups, in the format of [type] = instance.
features_block_lengthsThe same rules of the above also apply here, with the exception that this is for the unique_features string variable (commonly abbreviated with uf) and its blocks. Both ui and uf have a standard block length of 3 ASCII characters.
features_by_speciesAn assoc list of species types to their features (from get_features())
fire_appearancesGlobal list that containes cached fire overlays for mobs
focused_testsA list of every test that is currently focused. Use the PERFORM_ALL_TESTS macro instead.
gas_recipe_metaGlobal list of recipes for atmospheric machines to use
generic_event_spawnsList of generic landmarks placed around the map where there are likely to be players and are identifiable at a glance - Such as public hallways, department rooms, head of staff offices, and non-generic maintenance locations
greyscale_menu_statetgui state: greyscale menu
hands_statetgui state: hands_state
hardcoded_gasesthe main four gases, which were at one time hardcoded
has_antagonist_hudsAll active /datum/atom_hud/alternate_appearance/basic/has_antagonist instances
hfr_fuels_listGlobal list of recipes for atmospheric machines to use
huds_by_categorygets filled by each /datum/atom_hud/New(). associative list of the form: list(hud category = list(all global atom huds that use that category))
human_adjacent_statetgui state: human_adjacent_state
icon_dimensionsCache of the width and height of icon files, to avoid repeating the same expensive operation
identity_block_lengthsSome identity blocks (basically pieces of the unique_identity string variable of the dna datum, commonly abbreviated with ui) may have a length that differ from standard length of 3 ASCII characters. This list is necessary for these non-standard blocks to work, as well as the entire unique identity string. Should you add a new ui block which size differ from the standard (again, 3 ASCII characters), like for example, a color, please do not forget to also include it in this list in the following format: "[dna block number]" = dna block size, Failure to do that may result in bugs. Thanks.
inventory_statetgui state: inventory_state
jobspawn_overridesAssoc list of "job titles" to "job landmarks" These will take precedence over normal job spawnpoints if created, essentially allowing a user to override generic job spawnpoints with a specific one
landmarks_listlist of all landmarks created
language_menu_statetgui state: language_menu_state
lavasafetiesLAVA list of typepaths that if they're on the same tile as lava will prevent the damage
liquid_debug_colorsPROPER GROUPING
map_reportsGlobal list of map report datums
marker_beacon_colorsMarker Beacons
master_particle_infoThis was ported from Mojave but its literally just goons system so adding the proper licenses.
megafauna_spawn_listGlobal list of megafauna spawns on cave gen
narcd_underagesunderages who have been reported to security for trying to buy things they shouldn't, so they can't spam
never_statetgui state: never_state
nonreactive_gasesGasses that are unable to react amongst themselves
not_incapacitated_statetgui state: not_incapacitated_state
not_incapacitated_turf_statetgui state: not_incapacitated_turf_state
notcontained_statetgui state: notcontained_state
observer_statetgui state: observer_state
permissions_statetgui state: admin_state
physical_obscured_statetgui state: physical_obscured_state
physical_statetgui state: physical_state
picture_log_directoryPicture logging
pillars_by_zList of z pillars (datums placed in the bottom left of XbyX squares that control transparency in that space) The pillars are stored in triple depth lists indexed by (world_size % pillar_size) + 1 They are created at transparent turf request, and deleted when no turfs remain
pipe_color_nameNames shown in the examine for every colored atmos component
pipe_colors_orderedList that sorts the colors and is used for setting up the pipes layer so that they overlap correctly
pipe_paint_colorsAll colors available to pipes and atmos components
poi_listlist of all anti-magic collars the prisoner console can track and lock/unlock
preference_entriesAn assoc list list of types to instantiated /datum/preference instances
preference_entries_by_keyAn assoc list of preference entries by their savefile_key
random_hallucination_weighted_listGlobal weighted list of all hallucinations that can show up randomly.
ratvar_approachesThe servants can choose to "herald" Ratvar, permanently buffing them but announcing their presence to the crew.
ratvar_awakensIf Ratvar has been summoned; not a boolean, for proper handling of multiple Ratvars
reality_smash_trackWe want reality_smash_tracker to exist only once and be accesable from anywhere.
req_console_assistanceRequests Console
required_map_itemsGlobal assoc list of required mapping items, [item typepath] to [required item datum].
script_scripture_unlockedIf script scripture is available, through converting at least one crewmember
see_through_mapsglobal statics for the see_through_component coordinate maps For ease of use, include a comment in the shape of the coordinate map, where O is nothing, X is a hidden tile and A is the object List-coordinate layout is list(relative_x, relative_y, relative_z) Turf finding algorithm needs the z and you can totally use it, but I can't think of any reason to ever do it Also it'd be really cool if you could keep the list-coordinates in here represent their actual relative coords, dont use tabs though since their spacing can differ
self_statetgui state: self_state
servant_spawnsServants of Ratvar spawn here
servant_spawns_scarabsServants of Ratvar spawn here
sortedAreasUsed by jump-to-area etc. Updated by area/updateName() If this is null, it needs to be recalculated. Use get_sorted_areas() as a getter please
special_radio_keysThis is the list of all keys that are not techincially "radios" but use radio prefixes like :g and .b
special_rolesThis list is used to keep track of which antag ROLE defines correlate to which antag Yes, this is hardcoded, but it's faster to access than checking literally every single antag typepath for it's antag flag
starlight_colorThe color of light space is currently emitting
starlight_objectsList of plane offset + 1 -> object to display to use Fills with offsets as they are generated Holds a list of objects that represent starlight. The idea is to render_source them So modifying starlight requires touching only one place (NOTE: this doesn't work for the area overlays) In order to modify them you need to use set_starlight. Areas don't work with render sources it looks like
starlight_overlaysList of plane offset + 1 -> mutable appearance to use Fills with offsets as they are generated They mirror their appearance from the starlight objects, which lets us save time updating them
starlight_powerThe power of the light space is throwin out
starlight_rangeThe range of the light space is displaying
start_landmarks_listlist of all job spawn points created
stationroom_landmarkslist of all spawns for stationrooms
teleportlocsA list of teleport locations
total_uf_len_by_blockDitto but for unique features. Used by the datum/dna/set_uni_feature_block and datum/dna/get_uni_feature_block procs.
total_ui_len_by_blockA list of numbers that keeps track of where ui blocks start in the unique_identity string variable of the dna datum. Commonly used by the datum/dna/set_uni_identity_block and datum/dna/get_uni_identity_block procs.
trait_name_mapvalue -> trait name, generated on use from trait_by_type global
traitor_backstoriesAssociative list of /datum/traitor_backstory path strings to datums
traitor_factions_to_datumAssociative list of /datum/traitor_faction keys to datums
typecache_holodeck_linked_floorcheck_oktypecache for turfs that should be considered ok during floorchecks. A linked turf being anything not in this typecache will cause the holodeck to perform an emergency shutdown.
unit_test_mapping_logsWhen unit testing, all logs sent to log_mapping are stored here and retrieved in log_mapping unit test.
wizard_spellbook_purchases_by_keyGlobal assoc list. [ckey] = [spellbook entry type]
z_statetgui state: z_state

Var Details

GPS_list

Global GPS_list. All GPS components get saved in here for easy reference.

accents_name2file

Keys are the names of the accents, values are the name of their .json file.

accents_name2regexes

Holds some complex data regarding accents

accents_names

List of all accents

acid_overlay

ACID

adamantine_recipes

Others

admin_state

tgui state: admin_state

Checks that the user is an admin, end-of-story.

Copyright (c) 2020 Aleksej Komarov SPDX-License-Identifier: MIT

admin_trait_name_map

value -> trait name, generated as needed for adminning.

all_clockwork_mobs

All clockwork SERVANTS (not creatures) in existence

all_clockwork_objects

All clockwork items, structures, and effects in existence

all_ongoing_hallucinations

A global list of all ongoing hallucinations, primarily for easy access to be able to stop (delete) hallucinations.

all_scripture

a list containing scripture instances; not used to track existing scripture

allowed_custom_spans

Span classes that players are allowed to set in a radio transmission.

allowed_translations

Language datums that players are allowed to translate to in a radio transmission. This is fucking broken.

always_state

tgui state: always_state

Always grants the user UI_INTERACTIVE. Period.

Copyright (c) 2020 Aleksej Komarov SPDX-License-Identifier: MIT

announcer_keys

Global list of all of our announcer keys.

antag_token_users

Amount of time in time units they selected

application_scripture_unlocked

If script scripture is available

areas

Just a list of all the area objects in the game Note, areas can have duplicate types

areas_by_type

An association from typepath to area instance. Only includes areas with unique set.

ark_of_the_clockwork_justiciar

The Ark on the Reebe z-level

awaydestinations

Away missions

base_starlight_color

The base color of light space emits

brazil_reception

teleport receive spots for heretic sacrifices

bubblegum_dead

Check for arena shuttle, if the bubblegum has died this round

cached_maps

List of all the maps that have been cached for /proc/load_map

cached_storage_typecaches

Almost 100% of the time the lists passed into set_holdable are reused for each instance of the component Just fucking cache it 4head Yes I could generalize this, but I don't want anyone else using it. in fact, DO NOT COPY THIS If you find yourself needing this pattern, you're likely better off using static typecaches I'm not because I do not trust implementers of the storage component to use them, BUT IF I FIND YOU USING THIS PATTERN IN YOUR CODE I WILL BREAK YOU ACROSS MY KNEES ~Lemon

cachedbooks

Saved books from the DB

changeling_team_objective_type

If this is not null, we hand our this objective to all lings

chasm_fallen_mobs

Global list needed to let fishermen with a rescue hook fish fallen mobs from any place

checkouts

Books that are currently checked out

city_of_cogs_spawns

Anyone entering the City of Cogs spawns here

clockwork_construction_value

The total value of all structures built by the clockwork cult

clockwork_gateway_activated

if a gateway to the celestial derelict has ever been successfully activated

clockwork_hardmode_active

Once the cult converts 20% of the station's population, their basic teleport gains a heavy penalty on non-clockwork tiles

clockwork_power

How many joules of power are globally available to the clockwork cult

clockwork_vitality

How much Vitality is stored, total

conscious_state

tgui state: conscious_state

Only checks if the user is conscious.

Copyright (c) 2020 Aleksej Komarov SPDX-License-Identifier: MIT

contained_state

tgui state: contained_state

Checks that the user is inside the src_object.

Copyright (c) 2020 Aleksej Komarov SPDX-License-Identifier: MIT

deep_inventory_state

tgui state: deep_inventory_state

Checks that the src_object is in the user's deep (backpack, box, toolbox, etc) inventory.

Copyright (c) 2020 Aleksej Komarov SPDX-License-Identifier: MIT

default_state

tgui state: default_state

Checks a number of things -- mostly physical distance for humans and view for robots.

Copyright (c) 2020 Aleksej Komarov SPDX-License-Identifier: MIT

department_security_spawns

list of all department security spawns

donator_gear

This file contains any "special" / unique donator items which are ckey locked.

To create a new unique donator item, create a new datum/donator_item

@version 1.0 @author Kmc2000

dummySave

Save file used in icon2base64. Used for converting icons to base64.

duplicate_forbidden_vars

List of all vars that will not be copied over when using duplicate_object()

em_block_color

A globaly cached version of EM_BLOCK_COLOR for quick access.

em_mask_matrix

A globaly cached version of EM_MASK_MATRIX for quick access.

emissive_color

A globaly cached version of EMISSIVE_COLOR for quick access.

event_groups

An associative list of singleton event groups, in the format of [type] = instance.

features_block_lengths

The same rules of the above also apply here, with the exception that this is for the unique_features string variable (commonly abbreviated with uf) and its blocks. Both ui and uf have a standard block length of 3 ASCII characters.

features_by_species

An assoc list of species types to their features (from get_features())

fire_appearances

Global list that containes cached fire overlays for mobs

focused_tests

A list of every test that is currently focused. Use the PERFORM_ALL_TESTS macro instead.

gas_recipe_meta

Global list of recipes for atmospheric machines to use

generic_event_spawns

List of generic landmarks placed around the map where there are likely to be players and are identifiable at a glance - Such as public hallways, department rooms, head of staff offices, and non-generic maintenance locations

greyscale_menu_state

tgui state: greyscale menu

Checks that the target var of the greyscale menu meets the default can_use_topic criteria

hands_state

tgui state: hands_state

Checks that the src_object is in the user's hands.

Copyright (c) 2020 Aleksej Komarov SPDX-License-Identifier: MIT

hardcoded_gases

the main four gases, which were at one time hardcoded

has_antagonist_huds

All active /datum/atom_hud/alternate_appearance/basic/has_antagonist instances

hfr_fuels_list

Global list of recipes for atmospheric machines to use

huds_by_category

gets filled by each /datum/atom_hud/New(). associative list of the form: list(hud category = list(all global atom huds that use that category))

human_adjacent_state

tgui state: human_adjacent_state

In addition to default checks, only allows interaction for a human adjacent user.

Copyright (c) 2020 Aleksej Komarov SPDX-License-Identifier: MIT

icon_dimensions

Cache of the width and height of icon files, to avoid repeating the same expensive operation

identity_block_lengths

Some identity blocks (basically pieces of the unique_identity string variable of the dna datum, commonly abbreviated with ui) may have a length that differ from standard length of 3 ASCII characters. This list is necessary for these non-standard blocks to work, as well as the entire unique identity string. Should you add a new ui block which size differ from the standard (again, 3 ASCII characters), like for example, a color, please do not forget to also include it in this list in the following format: "[dna block number]" = dna block size, Failure to do that may result in bugs. Thanks.

inventory_state

tgui state: inventory_state

Checks that the src_object is in the user's top-level (hand, ear, pocket, belt, etc) inventory.

Copyright (c) 2020 Aleksej Komarov SPDX-License-Identifier: MIT

jobspawn_overrides

Assoc list of "job titles" to "job landmarks" These will take precedence over normal job spawnpoints if created, essentially allowing a user to override generic job spawnpoints with a specific one

landmarks_list

list of all landmarks created

language_menu_state

tgui state: language_menu_state

Copyright (c) 2020 Aleksej Komarov SPDX-License-Identifier: MIT

lavasafeties

LAVA list of typepaths that if they're on the same tile as lava will prevent the damage

liquid_debug_colors

PROPER GROUPING

map_reports

Global list of map report datums

marker_beacon_colors

Marker Beacons

master_particle_info

This was ported from Mojave but its literally just goons system so adding the proper licenses.

megafauna_spawn_list

Global list of megafauna spawns on cave gen

narcd_underages

underages who have been reported to security for trying to buy things they shouldn't, so they can't spam

never_state

tgui state: never_state

Always closes the UI, no matter what. See the ui_state in religious_tool.dm to see an example

nonreactive_gases

Gasses that are unable to react amongst themselves

not_incapacitated_state

tgui state: not_incapacitated_state

Checks that the user isn't incapacitated

Copyright (c) 2020 Aleksej Komarov SPDX-License-Identifier: MIT

not_incapacitated_turf_state

tgui state: not_incapacitated_turf_state

Checks that the user isn't incapacitated and that their loc is a turf

notcontained_state

tgui state: notcontained_state

Checks that the user is not inside src_object, and then makes the default checks.

Copyright (c) 2020 Aleksej Komarov SPDX-License-Identifier: MIT

observer_state

tgui state: observer_state

Checks that the user is an observer/ghost.

Copyright (c) 2020 Aleksej Komarov SPDX-License-Identifier: MIT

permissions_state

tgui state: admin_state

Checks that the user is an admin, end-of-story.

Copyright (c) 2020 Aleksej Komarov SPDX-License-Identifier: MIT

physical_obscured_state

tgui state: physical_obscured_state

Short-circuits the default state to only check physical distance, being in view doesn't matter

physical_state

tgui state: physical_state

Short-circuits the default state to only check physical distance.

Copyright (c) 2020 Aleksej Komarov SPDX-License-Identifier: MIT

picture_log_directory

Picture logging

pillars_by_z

List of z pillars (datums placed in the bottom left of XbyX squares that control transparency in that space) The pillars are stored in triple depth lists indexed by (world_size % pillar_size) + 1 They are created at transparent turf request, and deleted when no turfs remain

pipe_color_name

Names shown in the examine for every colored atmos component

pipe_colors_ordered

List that sorts the colors and is used for setting up the pipes layer so that they overlap correctly

pipe_paint_colors

All colors available to pipes and atmos components

poi_list

list of all anti-magic collars the prisoner console can track and lock/unlock

preference_entries

An assoc list list of types to instantiated /datum/preference instances

preference_entries_by_key

An assoc list of preference entries by their savefile_key

random_hallucination_weighted_list

Global weighted list of all hallucinations that can show up randomly.

ratvar_approaches

The servants can choose to "herald" Ratvar, permanently buffing them but announcing their presence to the crew.

ratvar_awakens

If Ratvar has been summoned; not a boolean, for proper handling of multiple Ratvars

reality_smash_track

We want reality_smash_tracker to exist only once and be accesable from anywhere.

req_console_assistance

Requests Console

Originally written by errorage, updated by: Carn, needs more work though. I just added some security fixes

required_map_items

Global assoc list of required mapping items, [item typepath] to [required item datum].

script_scripture_unlocked

If script scripture is available, through converting at least one crewmember

see_through_maps

global statics for the see_through_component coordinate maps For ease of use, include a comment in the shape of the coordinate map, where O is nothing, X is a hidden tile and A is the object List-coordinate layout is list(relative_x, relative_y, relative_z) Turf finding algorithm needs the z and you can totally use it, but I can't think of any reason to ever do it Also it'd be really cool if you could keep the list-coordinates in here represent their actual relative coords, dont use tabs though since their spacing can differ

self_state

tgui state: self_state

Only checks that the user and src_object are the same.

Copyright (c) 2020 Aleksej Komarov SPDX-License-Identifier: MIT

servant_spawns

Servants of Ratvar spawn here

servant_spawns_scarabs

Servants of Ratvar spawn here

sortedAreas

Used by jump-to-area etc. Updated by area/updateName() If this is null, it needs to be recalculated. Use get_sorted_areas() as a getter please

special_radio_keys

This is the list of all keys that are not techincially "radios" but use radio prefixes like :g and .b

special_roles

This list is used to keep track of which antag ROLE defines correlate to which antag Yes, this is hardcoded, but it's faster to access than checking literally every single antag typepath for it's antag flag

This is used in multiple ways -What antags show up under "Antagonist Positions" for the ban panel (sql_ban_system.dm) -Access the min_account_age variable of the antag datum for use determining if an account is old enough to play an antag

An antag should be on this list if it does at least one of these things -Has a significant round impact -Should be possible to ban players from playing

starlight_color

The color of light space is currently emitting

starlight_objects

List of plane offset + 1 -> object to display to use Fills with offsets as they are generated Holds a list of objects that represent starlight. The idea is to render_source them So modifying starlight requires touching only one place (NOTE: this doesn't work for the area overlays) In order to modify them you need to use set_starlight. Areas don't work with render sources it looks like

starlight_overlays

List of plane offset + 1 -> mutable appearance to use Fills with offsets as they are generated They mirror their appearance from the starlight objects, which lets us save time updating them

starlight_power

The power of the light space is throwin out

starlight_range

The range of the light space is displaying

start_landmarks_list

list of all job spawn points created

stationroom_landmarks

list of all spawns for stationrooms

teleportlocs

A list of teleport locations

Adding a wizard area teleport list because motherfucking lag -- Urist I am far too lazy to make it a proper list of areas so I'll just make it run the usual telepot routine at the start of the game

total_uf_len_by_block

Ditto but for unique features. Used by the datum/dna/set_uni_feature_block and datum/dna/get_uni_feature_block procs.

total_ui_len_by_block

A list of numbers that keeps track of where ui blocks start in the unique_identity string variable of the dna datum. Commonly used by the datum/dna/set_uni_identity_block and datum/dna/get_uni_identity_block procs.

trait_name_map

value -> trait name, generated on use from trait_by_type global

traitor_backstories

Associative list of /datum/traitor_backstory path strings to datums

traitor_factions_to_datum

Associative list of /datum/traitor_faction keys to datums

typecache_holodeck_linked_floorcheck_ok

typecache for turfs that should be considered ok during floorchecks. A linked turf being anything not in this typecache will cause the holodeck to perform an emergency shutdown.

unit_test_mapping_logs

When unit testing, all logs sent to log_mapping are stored here and retrieved in log_mapping unit test.

wizard_spellbook_purchases_by_key

Global assoc list. [ckey] = [spellbook entry type]

z_state

tgui state: z_state

Only checks that the Z-level of the user and src_object are the same.

Copyright (c) 2020 Aleksej Komarov SPDX-License-Identifier: MIT