SS1984 - Modules - TypesDefine Details

code/__DEFINES/flags.dm

ALL_CARDINALSAll the cardinal direction bitflags.
CONDUCTConducts electricity (metal etc.)
ON_BORDERAtom has priority to check when entering or leaving turfs
PREVENT_CLICK_UNDERSelf explanatory, prevents any clicks through ourselves
CHECK_RICOCHETСould this item be suitable as a ricochet target?
BLOCKS_LIGHTWhether this atom prevents light from being attached
HOLOGRAMWhether this atom is only a hologram object
ADMIN_SPAWNEDWas this spawned by an admin? used for stat tracking stuff.
INITIALIZEDWhether /atom/Initialize() has already run for the object
SUPERMATTER_IGNORESDoes the supermatter skip over this atom?
IGNORE_TURF_PIXEL_OFFSETThis atom always returns its turf in get_turf_pixel instead of the turf from its offsets
DECAL_INIT_UPDATE_EXPERIENCEDIf this atom has experienced a decal element "init finished" sourced appearance update We use this to ensure stacked decals don't double up appearance updates for no reason Flag as an optimization, don't make this a trait without profiling Yes I know this is a stupid flag, no you can't take him from me
NO_SCREENTIPSWhether or not this atom shows screentips when hovered over
NO_NEW_GAGS_PREVIEWThis atom does not need to generate its own preview icon for GAGS
HAS_CONTEXTUAL_SCREENTIPSWhether or not this atom has contextual screentips when hovered OVER
UPDATE_NAMEUpdate the atom's name
UPDATE_DESCUpdate the atom's desc
UPDATE_ICON_STATEUpdate the atom's icon state
UPDATE_OVERLAYSUpdate the atom's overlays
UPDATE_GREYSCALEUpdate the atom's greyscaling
UPDATE_ICONUpdate the atom's icon
RICOCHET_SHINYIf the thing can reflect light (lasers/energy)
RICOCHET_HARDIf the thing can reflect matter (bullets/bomb shrapnel)
RICOCHET_BALLISTICIf the thing can reflect ballistic bullets with low chance
PASSTABLEThese defines are used specifically with the atom/pass_flags bitmask the atom/checkpass() proc uses them (tables will call movable atom checkpass(PASSTABLE) for example) Allows you to pass over tables.
PASSGLASSAllows you to pass over glass(this generally includes anything see-through that's glass-adjacent, ie. windows, windoors, airlocks with glass, etc.)
PASSGRILLEAllows you to pass over grilles.
PASSBLOBAllows you to pass over blob tiles.
PASSMOBAllows you to pass over mobs.
LETPASSTHROWLet thrown things past us. ONLY MEANINGFUL ON pass_flags_self!
PASSMACHINEAllows you to pass over machinery, ie. vending machines, computers, protolathes, etc.
PASSSTRUCTUREAllows you to pass over structures, ie. racks, tables(if you don't already have PASSTABLE), etc.
PASSFLAPSAllows you to pass over plastic flaps, often found at cargo or MULE dropoffs.
PASSFENCEAllows you to pass over fences.
PASSDOORAllows you to pass over airlocks and mineral doors.
PASSVEHICLEAllows you to pass over vehicles, ie. mecha, secways, the pimpin' ride, etc.
PASSITEMAllows you to pass over dense items.
LETPASSCLICKSDo not intercept click attempts during Adjacent() checks. See turf/proc/ClickCross. ONLY MEANINGFUL ON pass_flags_self!
PASSPROJECTILEAllows projectiles to pass through.
PHASINGWhen moving, will Cross() everything, but won't stop or Bump() anything.
UPSIDE_DOWNThe mob is walking on the ceiling. Or is generally just, upside down.
MOVETYPES_NOT_TOUCHING_GROUNDCombination flag for movetypes which, for all intents and purposes, mean the mob is not touching the ground
SOURCE_MOVETYPESTrait source for stuff movetypes applies
NOJAUNTIf a turf cant be jaunted through.
UNUSED_RESERVATION_TURFIf a turf is an usused reservation turf awaiting assignment
RESERVATION_TURFIf a turf is a reserved turf
NO_LAVA_GENBlocks lava rivers being generated on the turf.
NO_RUINSBlocks ruins spawning on the turf.
UNIQUE_AREAIf false, loading multiple maps with this area type will create multiple instances.
CAVES_ALLOWEDIf mining tunnel generation is allowed in this area
FLORA_ALLOWEDIf flora are allowed to spawn in this area randomly through tunnel generation
MOB_SPAWN_ALLOWEDIf mobs can be spawned by natural random generation
MEGAFAUNA_SPAWN_ALLOWEDIf megafauna can be spawned by natural random generation
BLOBS_ALLOWEDIf blobs can spawn there and if it counts towards their score.
MORTAR_ALLOWEDIf blobs can spawn there and if it counts towards their score.
FIRE_PROOF100% immune to fire damage (but not necessarily to lava or heat)
FLAMMABLEatom is flammable and can have the burning component
ON_FIREcurrently burning
UNACIDABLEacid can't even appear on it, let alone melt it.
ACID_PROOFacid stuck on it doesn't melt it.
INDESTRUCTIBLEdoesn't take damage
FREEZE_PROOFcan't be frozen
NO_MALF_EFFECTmalf cannot blow certain things
NO_MOUSTACHINGsaves from super hairgrowium shenanigans
MOBILITY_MOVEcan move
MOBILITY_STANDcan, and is, standing up
MOBILITY_PICKUPcan pickup items
MOBILITY_USEcan hold and use items
MOBILITY_UIcan use interfaces like machinery
MOBILITY_STORAGEcan use storage item
MOBILITY_PULLcan pull things
MOBILITY_RESTcan rest
MOBILITY_LIEDOWNcan lie down
DA_IGNORE_USER_LOC_CHANGECan do the action even if mob moves location.
DA_IGNORE_SPACE_DRIFTIf we are checking for mob's loc change space drift will be ignored.
DA_IGNORE_TARGET_LOC_CHANGECan do the action even if the target moves location.
DA_IGNORE_CONSCIOUSNESSCan do the action even if the user is UNCONSCIOUS or DEAD.
DA_IGNORE_LYINGCan do the action even if the user is lying.
DA_IGNORE_RESTRAINEDCan do the action even if the user is restrained.
DA_IGNORE_INCAPACITATEDCan do the action even if the user is incapacitated (weakened/stunned/stamcrited/paralyzed/sleeping).
DA_IGNORE_HELD_ITEMCan do the action even if the item is no longer being held.
DA_IGNORE_EMPTY_GRIPPERIf actively held item is cyborg gripper we will not check whether its empty during the process.
DA_IGNORE_SLOWDOWNSUsed to prevent important slowdowns to be modified by mob's actions slowdown
DEFAULT_DOAFTER_IGNOREAll ignore flags considered as default old do_after behavior.

Define Details

ACID_PROOF

acid stuck on it doesn't melt it.

ADMIN_SPAWNED

Was this spawned by an admin? used for stat tracking stuff.

ALL_CARDINALS

All the cardinal direction bitflags.

BLOBS_ALLOWED

If blobs can spawn there and if it counts towards their score.

BLOCKS_LIGHT

Whether this atom prevents light from being attached

CAVES_ALLOWED

If mining tunnel generation is allowed in this area

CHECK_RICOCHET

Сould this item be suitable as a ricochet target?

CONDUCT

Conducts electricity (metal etc.)

DA_IGNORE_CONSCIOUSNESS

Can do the action even if the user is UNCONSCIOUS or DEAD.

DA_IGNORE_EMPTY_GRIPPER

If actively held item is cyborg gripper we will not check whether its empty during the process.

DA_IGNORE_HELD_ITEM

Can do the action even if the item is no longer being held.

DA_IGNORE_INCAPACITATED

Can do the action even if the user is incapacitated (weakened/stunned/stamcrited/paralyzed/sleeping).

DA_IGNORE_LYING

Can do the action even if the user is lying.

DA_IGNORE_RESTRAINED

Can do the action even if the user is restrained.

DA_IGNORE_SLOWDOWNS

Used to prevent important slowdowns to be modified by mob's actions slowdown

DA_IGNORE_SPACE_DRIFT

If we are checking for mob's loc change space drift will be ignored.

DA_IGNORE_TARGET_LOC_CHANGE

Can do the action even if the target moves location.

DA_IGNORE_USER_LOC_CHANGE

Can do the action even if mob moves location.

DECAL_INIT_UPDATE_EXPERIENCED

If this atom has experienced a decal element "init finished" sourced appearance update We use this to ensure stacked decals don't double up appearance updates for no reason Flag as an optimization, don't make this a trait without profiling Yes I know this is a stupid flag, no you can't take him from me

DEFAULT_DOAFTER_IGNORE

All ignore flags considered as default old do_after behavior.

FIRE_PROOF

100% immune to fire damage (but not necessarily to lava or heat)

FLAMMABLE

atom is flammable and can have the burning component

FLORA_ALLOWED

If flora are allowed to spawn in this area randomly through tunnel generation

FREEZE_PROOF

can't be frozen

HAS_CONTEXTUAL_SCREENTIPS

Whether or not this atom has contextual screentips when hovered OVER

HOLOGRAM

Whether this atom is only a hologram object

IGNORE_TURF_PIXEL_OFFSET

This atom always returns its turf in get_turf_pixel instead of the turf from its offsets

INDESTRUCTIBLE

doesn't take damage

INITIALIZED

Whether /atom/Initialize() has already run for the object

LETPASSCLICKS

Do not intercept click attempts during Adjacent() checks. See turf/proc/ClickCross. ONLY MEANINGFUL ON pass_flags_self!

LETPASSTHROW

Let thrown things past us. ONLY MEANINGFUL ON pass_flags_self!

MEGAFAUNA_SPAWN_ALLOWED

If megafauna can be spawned by natural random generation

MOBILITY_LIEDOWN

can lie down

MOBILITY_MOVE

can move

MOBILITY_PICKUP

can pickup items

MOBILITY_PULL

can pull things

MOBILITY_REST

can rest

MOBILITY_STAND

can, and is, standing up

MOBILITY_STORAGE

can use storage item

MOBILITY_UI

can use interfaces like machinery

MOBILITY_USE

can hold and use items

MOB_SPAWN_ALLOWED

If mobs can be spawned by natural random generation

MORTAR_ALLOWED

If blobs can spawn there and if it counts towards their score.

MOVETYPES_NOT_TOUCHING_GROUND

Combination flag for movetypes which, for all intents and purposes, mean the mob is not touching the ground

NOJAUNT

If a turf cant be jaunted through.

NO_LAVA_GEN

Blocks lava rivers being generated on the turf.

NO_MALF_EFFECT

malf cannot blow certain things

NO_MOUSTACHING

saves from super hairgrowium shenanigans

NO_NEW_GAGS_PREVIEW

This atom does not need to generate its own preview icon for GAGS

NO_RUINS

Blocks ruins spawning on the turf.

NO_SCREENTIPS

Whether or not this atom shows screentips when hovered over

ON_BORDER

Atom has priority to check when entering or leaving turfs

ON_FIRE

currently burning

PASSBLOB

Allows you to pass over blob tiles.

PASSDOOR

Allows you to pass over airlocks and mineral doors.

PASSFENCE

Allows you to pass over fences.

PASSFLAPS

Allows you to pass over plastic flaps, often found at cargo or MULE dropoffs.

PASSGLASS

Allows you to pass over glass(this generally includes anything see-through that's glass-adjacent, ie. windows, windoors, airlocks with glass, etc.)

PASSGRILLE

Allows you to pass over grilles.

PASSITEM

Allows you to pass over dense items.

PASSMACHINE

Allows you to pass over machinery, ie. vending machines, computers, protolathes, etc.

PASSMOB

Allows you to pass over mobs.

PASSPROJECTILE

Allows projectiles to pass through.

PASSSTRUCTURE

Allows you to pass over structures, ie. racks, tables(if you don't already have PASSTABLE), etc.

PASSTABLE

These defines are used specifically with the atom/pass_flags bitmask the atom/checkpass() proc uses them (tables will call movable atom checkpass(PASSTABLE) for example) Allows you to pass over tables.

PASSVEHICLE

Allows you to pass over vehicles, ie. mecha, secways, the pimpin' ride, etc.

PHASING

When moving, will Cross() everything, but won't stop or Bump() anything.

PREVENT_CLICK_UNDER

Self explanatory, prevents any clicks through ourselves

RESERVATION_TURF

If a turf is a reserved turf

RICOCHET_BALLISTIC

If the thing can reflect ballistic bullets with low chance

RICOCHET_HARD

If the thing can reflect matter (bullets/bomb shrapnel)

RICOCHET_SHINY

If the thing can reflect light (lasers/energy)

SOURCE_MOVETYPES

Trait source for stuff movetypes applies

SUPERMATTER_IGNORES

Does the supermatter skip over this atom?

UNACIDABLE

acid can't even appear on it, let alone melt it.

UNIQUE_AREA

If false, loading multiple maps with this area type will create multiple instances.

UNUSED_RESERVATION_TURF

If a turf is an usused reservation turf awaiting assignment

UPDATE_DESC

Update the atom's desc

UPDATE_GREYSCALE

Update the atom's greyscaling

UPDATE_ICON

Update the atom's icon

UPDATE_ICON_STATE

Update the atom's icon state

UPDATE_NAME

Update the atom's name

UPDATE_OVERLAYS

Update the atom's overlays

UPSIDE_DOWN

The mob is walking on the ceiling. Or is generally just, upside down.