item
Anything you can pick up and hold.
Vars | |
actions | list of /datum/action's that this item has. |
---|---|
actions_types | list of paths of action datums to give to the item on New(). |
age_restricted | Whether spessmen with an ID with an age below AGE_MINOR (20 by default) can buy this item |
alternate_worn_layer | Forced mob worn layer instead of the standard preferred size. |
armour_penetration | percentage of armour effectiveness to remove |
attack_speed | The click cooldown given after attacking. Lower numbers means faster attacks |
attack_verb_continuous | Used in atom/proc/attackby to say how something was attacked "[x] has been [z.attack_verb] by [y] with [z]" |
belt_icon_state | Icon state for the belt overlay, if null the normal icon_state will be used. |
block_chance | Chance of blocking incoming attack |
block_effect | Effect of blocking |
block_sound | Sound which is produced when blocking an attack |
body_parts_covered | What body parts are covered by the clothing when you wear it |
breakouttime | How long it takes to resist out of the item (cuffs and such) |
cold_protection | flags which determine which body parts are protected from cold. [See here][HEAD] |
current_skin | Has the item been reskinned? |
custom_premium_price | Price of an item in a vending machine, overriding the premium vending machine price. Define in terms of paycheck defines as opposed to raw numbers. |
custom_price | Price of an item in a vending machine, overriding the base vending machine price. Define in terms of paycheck defines as opposed to raw numbers. |
digitigrade_greyscale_colors | Greyscale colors used when generating digitigrade versions of the sprite. Optional - If not set it will default to normal greyscale colors, or approximate them if those are unset as well |
digitigrade_greyscale_config_worn | Greyscale config used when generating digitigrade versions of the sprite. |
dog_fashion | Reference to the datum that determines whether dogs can wear the item: Needs to be in /obj/item because corgis can wear a lot of non-clothing items |
drop_sound | Sound uses when dropping the item, or when its thrown if a thrown sound isn't specified. |
dye_color | Used as the dye color source in the washing machine only (at the moment). Can be a hex color or a key corresponding to a registry entry, see washing_machine.dm |
dying_key | What dye registry should be looked at when dying this item; see washing_machine.dm |
embed_data | Stores embedding data |
embed_type | Does it embed and if yes, what kind of embed |
equip_delay_other | In deciseconds, how long an item takes to put on another person |
equip_delay_self | In deciseconds, how long an item takes to equip; counts only for normal clothing slots, not pockets etc. |
equip_sound | Sound used when equipping the item into a valid slot |
fantasy_modifications | A lazylist used for applying fantasy values, contains the actual modification applied to a variable. |
flags_cover | for flags such as [GLASSESCOVERSEYES] |
flags_inv | This flag is used to determine when items in someone's inventory cover others. IE helmets making it so you can't see glasses, etc. |
force_string | string form of an item's force. Edit this var only to set a custom force string |
greyscale_config_belt | The config type to use for greyscaled belt overlays. Both this and greyscale_colors must be assigned to work. |
greyscale_config_inhand_left | The config type to use for greyscaled left inhand sprites. Both this and greyscale_colors must be assigned to work. |
greyscale_config_inhand_right | The config type to use for greyscaled right inhand sprites. Both this and greyscale_colors must be assigned to work. |
greyscale_config_worn | The config type to use for greyscaled worn sprites. Both this and greyscale_colors must be assigned to work. |
grind_results | Grinder var:A reagent list containing the reagents this item produces when ground up in a grinder - this can be an empty list to allow for reagent transferring only |
hair_mask | Name of a mask in icons\mob\human\hair_masks.dmi to apply to hair when this item is worn Used by certain hats to give the appearance of squishing down tall hairstyles without hiding the hair completely |
heat_protection | flags which determine which body parts are protected from heat. [See here][HEAD] |
hitsound | Sound played when you hit something with the item |
inhand_icon_state | icon state for inhand overlays. |
inhand_x_dimension | Same as for worn_x_dimension but for inhands, uses the lefthand_ and righthand_ file vars |
inhand_y_dimension | Same as for worn_y_dimension but for inhands, uses the lefthand_ and righthand_ file vars |
interaction_flags_item | flags for what should be done when you click on the item, default is picking it up |
item_flags | Item flags for the item |
juice_typepath | A reagent the nutriments are converted into when the item is juiced. |
lefthand_file | Icon file for left hand inhand overlays |
master | This var exists as a weird proxy "owner" ref It's used in a few places. Stop using it, and optimially replace all uses please |
max_heat_protection_temperature | Set this variable to determine up to which temperature (IN KELVIN) the item protects against heat damage. Keep at null to disable protection. Only protects areas set by heat_protection flags |
min_cold_protection_temperature | Set this variable to determine down to which temperature (IN KELVIN) the item protects against cold damage. 0 is NOT an acceptable number due to if(varname) tests!! Keep at null to disable protection. Only protects areas set by cold_protection flags |
mob_throw_hit_sound | Used when yate into a mob |
mouse_drag_pointer | the icon to indicate this object is being dragged |
offensive_notes | Used in obj/item/examine to give additional notes on what the weapon does, separate from the predetermined output variables |
operating_sound | Played when item is used for long progress |
override_notes | Used in obj/item/examine to determines whether or not to detail an item's statistics even if it does not meet the force requirements |
pickup_sound | Sound uses when picking the item up (into your hands) |
reach | In tiles, how far this weapon can reach; 1 for adjacent, which is default |
resist_cooldown | Do we apply a click cooldown when resisting this object if it is restraining them? |
righthand_file | Icon file for right inhand overlays |
secondary_attack_speed | The click cooldown on secondary attacks. Lower numbers mean faster attacks. Will use attack_speed if undefined. |
sharpness | All items with sharpness of SHARP_EDGED or higher will automatically get the butchering component. |
siemens_coefficient | for electrical admittance/conductance (electrocution checks and shit) |
slot_equipment_priority | The list of slots by priority. equip_to_appropriate_slot() uses this list. Doesn't matter if a mob type doesn't have a slot. For default list, see /mob/proc/equip_to_appropriate_slot |
slot_flags | This is used to determine on which slots an item can fit. |
slowdown | How much clothing is slowing you down. Negative values speeds you up |
sound_vary | Do the drop and pickup sounds vary? |
species_exception | list() of species types, if a species cannot put items in a certain slot, but species type is in list, it will be able to wear that item |
stealthy_audio | Whether or not we use stealthy audio levels for this item's attack sounds |
strip_delay | In deciseconds, how long an item takes to remove from another person |
supports_variations_flags | This is a bitfield that defines what variations exist for bodyparts like Digi legs. See: code_DEFINES\inventory.dm |
throw_drop_sound | Sound used on impact when the item is thrown. |
throw_verb | Used if we want to have a custom verb text for throwing. "John Spaceman flicks the ciggerate" for example. |
thrownby | A weakref to the mob who threw the item |
tk_throw_range | Items can by default thrown up to 10 tiles by TK users |
tool_behaviour | How a tool acts when you use it on something, such as wirecutters cutting wires while multitools measure power |
toolspeed | How fast does the tool work |
transparent_protection | you can see someone's mask through their transparent visor, but you can't reach it |
trigger_guard | Determines who can shoot this |
undyeable | Whether the item is unaffected by standard dying. |
unique_reskin | List of options to reskin. |
usesound | Played when the item is used, for example tools |
w_class | How large is the object, used for stuff like whether it can fit in backpacks or not |
weak_against_armour | Whether or not our object doubles the value of affecting armour |
worn_icon | Icon file for mob worn overlays. |
worn_icon_state | Icon state for mob worn overlays, if null the normal icon_state will be used. |
worn_x_dimension | Dimensions of the icon file used when this item is worn, eg: hats.dmi (32x32 sprite, 64x64 sprite, etc.). Allows inhands/worn sprites to be of any size, but still centered on a mob properly |
worn_y_dimension | Dimensions of the icon file used when this item is worn, eg: hats.dmi (32x32 sprite, 64x64 sprite, etc.). Allows inhands/worn sprites to be of any size, but still centered on a mob properly |
worn_y_offset | Worn overlay will be shifted by this along y axis |
Procs | |
IsReflect | This proc determines if and at what an object will reflect energy projectiles if it's in l_hand,r_hand or wear_suit |
add_item_action | Adds an item action to our list of item actions. Item actions are actions linked to our item, that are granted to mobs who equip us. This also ensures that the actions are properly tracked in the actions list and removed if they're deleted. Can be be passed a typepath of an action or an instance of an action. |
add_item_context | Creates a "Type-A" contextual screentip interaction.
When a user hovers over something with this item in hand, this proc will be called in order
to provide context for contextual screentips.
You must call register_item_context() in order for this to be registered.
A screentip context list is a list that has context keys (SCREENTIP_CONTEXT_*, from __DEFINES/screentips.dm)
that map to the action as text.
If you mutate the list in this signal, you must return CONTEXTUAL_SCREENTIP_SET.
source can, in all cases, be replaced with src , and only exists because this proc directly connects to a signal. |
add_stealing_item_objective | Called if this item is supposed to be a steal objective item objective. |
add_weapon_description | Adds the weapon_description element, which shows the 'warning label' for especially dangerous objects. Override this for item types with special notes. |
afterattack | Last proc in the /obj/item/proc/melee_attack_chain. Returns a bitfield containing AFTERATTACK_PROCESSED_ITEM if the user is likely intending to use this item on another item. Some consumers currently return TRUE to mean "processed". These are not consistent and should be taken with a grain of salt. |
attack | Called from [/mob/living/proc/attackby] |
attack_atom | The equivalent of the standard version of /obj/item/proc/attack but for non mob targets. |
attack_secondary | The equivalent of /obj/item/proc/attack but for alternate attacks, AKA right clicking |
attack_self | Called when the item is in the active hand, and clicked; alternately, there is an 'activate held object' verb or you can hit pagedown. |
attack_self_secondary | Called when the item is in the active hand, and right-clicked. Intended for alternate or opposite functions, such as lowering reagent transfer amount. At the moment, there is no verb or hotkey. |
blend_requirements | Used to check for extra requirements for blending(grinding or juicing) an object |
check_allowed_items | Checks if an item is allowed to be used on an atom/target Returns TRUE if allowed. |
check_bait | Checks if the bait is liked by the fish type or not. Returns a multiplier that affects the chance of catching it. |
check_reskin_menu | Checks if we are allowed to interact with a radial menu for reskins |
check_setup_reskinning | Checks if we should set up reskinning, by default if unique_reskin is set. |
compare_zone_to_item_slot | When called on an item, and given a body targeting zone, this will return TRUE if the item slot matches the target zone, and FALSE otherwise. Currently supports the jumpsuit, outersuit, backpack, belt, gloves, hat, ears, neck, mask, eyes, and feet slots. All other slots will auto return FALSE. |
cyborg_unequip | Parent proc - triggers when an item/module is unequipped from a cyborg. |
disableEmbedding | For when you want to disable an item's embedding capabilities (like transforming weapons and such), this proc will detach any active embed elements from it. |
dropped | Called when a mob drops an item. |
equip_to_best_slot | Tries to equip an item, store it in open storage, or in next best storage |
equipped | Called by on_equipped. Don't call this directly, we want the ITEM_POST_EQUIPPED signal to be sent after everything else. |
failedEmbed | In case we want to do something special (like self delete) upon failing to embed in something. |
get_belt_overlay | Returns the icon used for overlaying the object on a belt |
get_embed | Fetches embedding data |
get_part_rating | Returns a numeric value for sorting items used as parts in machines, so they can be replaced by the rped |
get_proxy_attacker_for | Returns the atom(either itself or an internal module) that will interact/attack the target on behalf of us
For example an object can have different tool_behaviours (e.g borg omni tool) but will return an internal reference of that tool to attack for us
You can use it for general purpose polymorphism if you need a proxy atom to interact in a specific way
with a target on behalf on this atom |
get_sechud_job_icon_state | Returns the SecHUD job icon state for whatever this object's ID card is, if it has one. |
get_sharpness | Returns the sharpness of src. If you want to get the sharpness of an item use this. |
get_surgery_tool_overlay | Extend this to give the item an appearance when placed in a surgical tray. Uses an icon state in medicart.dmi . |
get_temperature | Returns the temperature of src. If you want to know if an item is hot use this proc. |
get_worn_offsets | Returns offsets used for equipped item overlays in list(px_offset,py_offset) form. |
get_writing_implement_details | Returns null if this object cannot be used to interact with physical writing mediums such as paper. Returns a list of key attributes for this object interacting with paper otherwise. |
give_item_action | Gives one of our item actions to a mob, when equipped to a certain slot |
grant_action_to_bearer | Grant the action to anyone who has this item equipped to an appropriate slot |
grind | Grind item, adding grind_results to item's reagents and transfering to target_holder if specified |
grind_atom | Subtypes override his proc for custom grinding |
handle_openspace_click | Called on [/datum/element/openspace_item_click_handler/proc/on_afterattack]. Check the relative file for information. |
help_light_cig | Finds a cigarette on another mob to help light. |
ignition_effect | If an object can successfully be used as a fire starter it will return a message |
interact_with_atom | Called when this item is being used to interact with an atom, IE, a mob is clicking on an atom with this item. |
interact_with_atom_secondary | Called when this item is being used to interact with an atom WITH RIGHT CLICK, IE, a mob is right clicking on an atom with this item. |
is_contraband | Used to determine if an item should be considered contraband by N-spect scanners or scanner gates. Returns true when an item has the contraband trait, or is included in the traitor uplink. |
is_embed_harmless | Does the current embedding var meet the criteria for being harmless? Namely, does it have a pain multiplier and jostle pain mult of 0? If so, return true. |
item_action_slot_check | Sometimes we only want to grant the item's action if it's equipped in a specific slot. |
item_ctrl_click | Subtypes only override this proc for ctrl click purposes. obeys same principles as ctrl_click() |
item_start_equip | This proc calls at the begining of anytime an item is being equiped to a target by another mob. It handles initial messages, AFK stripping, and initial logging. |
juice | Juice item, converting nutriments into juice_typepath and transfering to target_holder if specified |
juice_atom | Subtypes override his proc for custom juicing |
melee_attack_chain | This is the proc that handles the order of an item_attack. |
mob_can_equip | the mob M is attempting to equip this item into the slot passed through as 'slot'. Return 1 if it can do this and 0 if it can't. if this is being done by a mob other than M, it will include the mob equipper, who is trying to equip the item to mob M. equipper will be null otherwise. If you are making custom procs but would like to retain partial or complete functionality of this one, include a 'return ..()' to where you want this to happen. Arguments: |
modify_fantasy_variable | Modifies the fantasy variable |
on_action_deleted | Called when an action associated with our item is deleted |
on_click_alt_reskin | Called when alt clicked and the item has unique reskin options |
on_equipped | Called after an item is placed in an equipment slot. Runs equipped(), then sends a signal. This should be called last or near-to-last, after all other inventory code stuff is handled. |
on_found | called when "found" in pockets and storage items. Returns 1 if the search should end. |
on_grind | Called BEFORE the object is ground up - use this to change grind results based on conditions. Return "-1" to prevent the grinding from occurring |
on_juice | Called BEFORE the object is ground up - use this to change grind results based on conditions. Return "-1" to prevent the grinding from occurring |
on_offer_taken | An interrupt for someone trying to accept an offered item, called mainly from /mob/living/carbon/proc/take, in case you want to run your own take behavior instead. |
on_offered | An interrupt for offering an item to other people, called mainly from /mob/living/carbon/proc/give, in case you want to run your own offer behavior instead. |
on_outfit_equip | Special stuff you want to do when an outfit equips this item. |
on_thrown | Called by the carbon throw_item() proc. Returns null if the item negates the throw, or a reference to the thing to suffer the throw else. |
open_flame | Creates an ignition hotspot if item is lit and located on turf, in mask, or in hand |
pick_painting_tool_color | Common proc used by painting tools like spraycans and palettes that can access the entire 24 bits color space. |
pickup | called just as an item is picked up (loc is not yet changed) |
play_tool_operating_sound | Play item's operating sound |
play_tool_sound | Plays item's usesound, if any. |
pre_attack | Called on the item before it hits something |
pre_attack_secondary | Called on the item before it hits something, when right clicking. |
ranged_interact_with_atom | Called when this item is being used to interact with an atom from a distance, IE, a mob is clicking on an atom with this item and is not adjacent. |
ranged_interact_with_atom_secondary | Called when this item is being used to interact with an atom from a distance WITH RIGHT CLICK, IE, a mob is right clicking on an atom with this item and is not adjacent. |
register_item_context | Create a "Type-A" contextual screentip interaction, registering to add_item_context() .
This will run add_item_context() when the item hovers over another object for context.
add_item_context() will not be called unless this is run.
This is not necessary for Type-A interactions, as you can just apply the flag and register to the signal yourself. |
remove_item_action | Removes an instance of an action from our list of item actions. |
remove_item_from_storage | Takes the location to move the item to, and optionally the mob doing the removing If no mob is provided, we'll pass in the location, assuming it is a mob Please use this if you're going to snowflake an item out of a obj/item/storage |
reset_fantasy_variable | Returns the original fantasy variable value |
reskin_obj | Reskins object based on a user's choice |
setup_reskinning | Registers signals and context for reskinning, if check_setup_reskinning() passes. |
suicide_act | *Makes cool stuff happen when you suicide with an item |
talk_into | Handles someone talking INTO an item |
tool_check_callback | Used in a callback that is passed by use_tool into do_after call. Do not override, do not call manually. |
tool_start_check | Called before obj/item/proc/use_tool if there is a delay, or by obj/item/proc/use_tool if there isn't. Only ever used by welding tools and stacks, so it's not added on any other obj/item/proc/use_tool checks. |
tool_use_check | A check called by /obj/item/proc/tool_start_check once, and by use_tool on every tick of delay. |
tryEmbed | tryEmbed() is for when you want to try embedding something without dealing with the damage + hit messages of calling hitby() on the item while targeting the target. |
ui_action_click | This proc is executed when someone clicks the on-screen UI button. The default action is attack_self(). Checks before we get to here are: mob is alive, mob is not restrained, stunned, asleep, resting, laying, item is on the mob. |
update_greyscale | Checks if this atom uses the GAGS system and if so updates the worn and inhand icons |
update_item_action_buttons | Updates all action buttons associated with this item |
update_weight_class | Used to update the weight class of the item in a way that other atoms can react to the change. |
use | Generic use proc. Depending on the item, it uses up fuel, charges, sheets, etc. Returns TRUE on success, FALSE on failure. |
use_tool | Called when a mob tries to use the item as a tool. Handles most checks. |
visual_equipped | To be overwritten to only perform visual tasks;
this is directly called instead of equipped on visual-only features like human dummies equipping outfits. |
Var Details
actions
list of /datum/action's that this item has.
actions_types
list of paths of action datums to give to the item on New().
age_restricted
Whether spessmen with an ID with an age below AGE_MINOR (20 by default) can buy this item
alternate_worn_layer
Forced mob worn layer instead of the standard preferred size.
armour_penetration
percentage of armour effectiveness to remove
attack_speed
The click cooldown given after attacking. Lower numbers means faster attacks
attack_verb_continuous
Used in atom/proc/attackby to say how something was attacked "[x] has been [z.attack_verb] by [y] with [z]"
belt_icon_state
Icon state for the belt overlay, if null the normal icon_state will be used.
block_chance
Chance of blocking incoming attack
block_effect
Effect of blocking
block_sound
Sound which is produced when blocking an attack
body_parts_covered
What body parts are covered by the clothing when you wear it
breakouttime
How long it takes to resist out of the item (cuffs and such)
cold_protection
flags which determine which body parts are protected from cold. [See here][HEAD]
current_skin
Has the item been reskinned?
custom_premium_price
Price of an item in a vending machine, overriding the premium vending machine price. Define in terms of paycheck defines as opposed to raw numbers.
custom_price
Price of an item in a vending machine, overriding the base vending machine price. Define in terms of paycheck defines as opposed to raw numbers.
digitigrade_greyscale_colors
Greyscale colors used when generating digitigrade versions of the sprite. Optional - If not set it will default to normal greyscale colors, or approximate them if those are unset as well
digitigrade_greyscale_config_worn
Greyscale config used when generating digitigrade versions of the sprite.
dog_fashion
Reference to the datum that determines whether dogs can wear the item: Needs to be in /obj/item because corgis can wear a lot of non-clothing items
drop_sound
Sound uses when dropping the item, or when its thrown if a thrown sound isn't specified.
dye_color
Used as the dye color source in the washing machine only (at the moment). Can be a hex color or a key corresponding to a registry entry, see washing_machine.dm
dying_key
What dye registry should be looked at when dying this item; see washing_machine.dm
embed_data
Stores embedding data
embed_type
Does it embed and if yes, what kind of embed
equip_delay_other
In deciseconds, how long an item takes to put on another person
equip_delay_self
In deciseconds, how long an item takes to equip; counts only for normal clothing slots, not pockets etc.
equip_sound
Sound used when equipping the item into a valid slot
fantasy_modifications
A lazylist used for applying fantasy values, contains the actual modification applied to a variable.
flags_cover
for flags such as [GLASSESCOVERSEYES]
flags_inv
This flag is used to determine when items in someone's inventory cover others. IE helmets making it so you can't see glasses, etc.
force_string
string form of an item's force. Edit this var only to set a custom force string
greyscale_config_belt
The config type to use for greyscaled belt overlays. Both this and greyscale_colors must be assigned to work.
greyscale_config_inhand_left
The config type to use for greyscaled left inhand sprites. Both this and greyscale_colors must be assigned to work.
greyscale_config_inhand_right
The config type to use for greyscaled right inhand sprites. Both this and greyscale_colors must be assigned to work.
greyscale_config_worn
The config type to use for greyscaled worn sprites. Both this and greyscale_colors must be assigned to work.
grind_results
Grinder var:A reagent list containing the reagents this item produces when ground up in a grinder - this can be an empty list to allow for reagent transferring only
hair_mask
Name of a mask in icons\mob\human\hair_masks.dmi to apply to hair when this item is worn Used by certain hats to give the appearance of squishing down tall hairstyles without hiding the hair completely
heat_protection
flags which determine which body parts are protected from heat. [See here][HEAD]
hitsound
Sound played when you hit something with the item
inhand_icon_state
icon state for inhand overlays.
inhand_x_dimension
Same as for worn_x_dimension but for inhands, uses the lefthand_ and righthand_ file vars
inhand_y_dimension
Same as for worn_y_dimension but for inhands, uses the lefthand_ and righthand_ file vars
interaction_flags_item
flags for what should be done when you click on the item, default is picking it up
item_flags
Item flags for the item
juice_typepath
A reagent the nutriments are converted into when the item is juiced.
lefthand_file
Icon file for left hand inhand overlays
master
This var exists as a weird proxy "owner" ref It's used in a few places. Stop using it, and optimially replace all uses please
max_heat_protection_temperature
Set this variable to determine up to which temperature (IN KELVIN) the item protects against heat damage. Keep at null to disable protection. Only protects areas set by heat_protection flags
min_cold_protection_temperature
Set this variable to determine down to which temperature (IN KELVIN) the item protects against cold damage. 0 is NOT an acceptable number due to if(varname) tests!! Keep at null to disable protection. Only protects areas set by cold_protection flags
mob_throw_hit_sound
Used when yate into a mob
mouse_drag_pointer
the icon to indicate this object is being dragged
offensive_notes
Used in obj/item/examine to give additional notes on what the weapon does, separate from the predetermined output variables
operating_sound
Played when item is used for long progress
override_notes
Used in obj/item/examine to determines whether or not to detail an item's statistics even if it does not meet the force requirements
pickup_sound
Sound uses when picking the item up (into your hands)
reach
In tiles, how far this weapon can reach; 1 for adjacent, which is default
resist_cooldown
Do we apply a click cooldown when resisting this object if it is restraining them?
righthand_file
Icon file for right inhand overlays
secondary_attack_speed
The click cooldown on secondary attacks. Lower numbers mean faster attacks. Will use attack_speed if undefined.
sharpness
All items with sharpness of SHARP_EDGED or higher will automatically get the butchering component.
siemens_coefficient
for electrical admittance/conductance (electrocution checks and shit)
slot_equipment_priority
The list of slots by priority. equip_to_appropriate_slot() uses this list. Doesn't matter if a mob type doesn't have a slot. For default list, see /mob/proc/equip_to_appropriate_slot
slot_flags
This is used to determine on which slots an item can fit.
slowdown
How much clothing is slowing you down. Negative values speeds you up
sound_vary
Do the drop and pickup sounds vary?
species_exception
list() of species types, if a species cannot put items in a certain slot, but species type is in list, it will be able to wear that item
stealthy_audio
Whether or not we use stealthy audio levels for this item's attack sounds
strip_delay
In deciseconds, how long an item takes to remove from another person
supports_variations_flags
This is a bitfield that defines what variations exist for bodyparts like Digi legs. See: code_DEFINES\inventory.dm
throw_drop_sound
Sound used on impact when the item is thrown.
throw_verb
Used if we want to have a custom verb text for throwing. "John Spaceman flicks the ciggerate" for example.
thrownby
A weakref to the mob who threw the item
tk_throw_range
Items can by default thrown up to 10 tiles by TK users
tool_behaviour
How a tool acts when you use it on something, such as wirecutters cutting wires while multitools measure power
toolspeed
How fast does the tool work
transparent_protection
you can see someone's mask through their transparent visor, but you can't reach it
trigger_guard
Determines who can shoot this
undyeable
Whether the item is unaffected by standard dying.
unique_reskin
List of options to reskin.
usesound
Played when the item is used, for example tools
w_class
How large is the object, used for stuff like whether it can fit in backpacks or not
weak_against_armour
Whether or not our object doubles the value of affecting armour
worn_icon
Icon file for mob worn overlays.
worn_icon_state
Icon state for mob worn overlays, if null the normal icon_state will be used.
worn_x_dimension
Dimensions of the icon file used when this item is worn, eg: hats.dmi (32x32 sprite, 64x64 sprite, etc.). Allows inhands/worn sprites to be of any size, but still centered on a mob properly
worn_y_dimension
Dimensions of the icon file used when this item is worn, eg: hats.dmi (32x32 sprite, 64x64 sprite, etc.). Allows inhands/worn sprites to be of any size, but still centered on a mob properly
worn_y_offset
Worn overlay will be shifted by this along y axis
Proc Details
IsReflect
This proc determines if and at what an object will reflect energy projectiles if it's in l_hand,r_hand or wear_suit
add_item_action
Adds an item action to our list of item actions. Item actions are actions linked to our item, that are granted to mobs who equip us. This also ensures that the actions are properly tracked in the actions list and removed if they're deleted. Can be be passed a typepath of an action or an instance of an action.
add_item_context
Creates a "Type-A" contextual screentip interaction.
When a user hovers over something with this item in hand, this proc will be called in order
to provide context for contextual screentips.
You must call register_item_context()
in order for this to be registered.
A screentip context list is a list that has context keys (SCREENTIP_CONTEXT_*, from __DEFINES/screentips.dm)
that map to the action as text.
If you mutate the list in this signal, you must return CONTEXTUAL_SCREENTIP_SET.
source
can, in all cases, be replaced with src
, and only exists because this proc directly connects to a signal.
add_stealing_item_objective
Called if this item is supposed to be a steal objective item objective.
add_weapon_description
Adds the weapon_description element, which shows the 'warning label' for especially dangerous objects. Override this for item types with special notes.
afterattack
Last proc in the /obj/item/proc/melee_attack_chain. Returns a bitfield containing AFTERATTACK_PROCESSED_ITEM if the user is likely intending to use this item on another item. Some consumers currently return TRUE to mean "processed". These are not consistent and should be taken with a grain of salt.
Arguments:
- atom/target - The thing that was hit
- mob/user - The mob doing the hitting
- proximity_flag - is 1 if this afterattack was called on something adjacent, in your square, or on your person.
- click_parameters - is the params string from byond /atom/proc/Click code, see that documentation.
attack
Called from [/mob/living/proc/attackby]
Arguments:
- mob/living/target_mob - The mob being hit by this item
- mob/living/user - The mob hitting with this item
- params - Click params of this attack
attack_atom
The equivalent of the standard version of /obj/item/proc/attack but for non mob targets.
attack_secondary
The equivalent of /obj/item/proc/attack but for alternate attacks, AKA right clicking
attack_self
Called when the item is in the active hand, and clicked; alternately, there is an 'activate held object' verb or you can hit pagedown.
attack_self_secondary
Called when the item is in the active hand, and right-clicked. Intended for alternate or opposite functions, such as lowering reagent transfer amount. At the moment, there is no verb or hotkey.
blend_requirements
Used to check for extra requirements for blending(grinding or juicing) an object
check_allowed_items
Checks if an item is allowed to be used on an atom/target Returns TRUE if allowed.
Args: target_self - Whether we will check if we (src) are in target, preventing people from using items on themselves. not_inside - Whether target (or target's loc) has to be a turf.
check_bait
Checks if the bait is liked by the fish type or not. Returns a multiplier that affects the chance of catching it.
check_reskin_menu
Checks if we are allowed to interact with a radial menu for reskins
Arguments:
- user The mob interacting with the menu
check_setup_reskinning
Checks if we should set up reskinning, by default if unique_reskin is set.
Called on setup_reskinning(). Inheritors should override this to add their own checks.
compare_zone_to_item_slot
When called on an item, and given a body targeting zone, this will return TRUE if the item slot matches the target zone, and FALSE otherwise. Currently supports the jumpsuit, outersuit, backpack, belt, gloves, hat, ears, neck, mask, eyes, and feet slots. All other slots will auto return FALSE.
cyborg_unequip
Parent proc - triggers when an item/module is unequipped from a cyborg.
disableEmbedding
For when you want to disable an item's embedding capabilities (like transforming weapons and such), this proc will detach any active embed elements from it.
dropped
Called when a mob drops an item.
equip_to_best_slot
Tries to equip an item, store it in open storage, or in next best storage
equipped
Called by on_equipped. Don't call this directly, we want the ITEM_POST_EQUIPPED signal to be sent after everything else.
Note that hands count as slots.
Arguments:
- user is mob that equipped it
- slot uses the slot_X defines found in setup.dm for items that can be placed in multiple slots
- initial is used to indicate whether or not this is the initial equipment (job datums etc) or just a player doing it
failedEmbed
In case we want to do something special (like self delete) upon failing to embed in something.
get_belt_overlay
Returns the icon used for overlaying the object on a belt
get_embed
Fetches embedding data
get_part_rating
Returns a numeric value for sorting items used as parts in machines, so they can be replaced by the rped
get_proxy_attacker_for
Returns the atom(either itself or an internal module) that will interact/attack the target on behalf of us
For example an object can have different tool_behaviours
(e.g borg omni tool) but will return an internal reference of that tool to attack for us
You can use it for general purpose polymorphism if you need a proxy atom to interact in a specific way
with a target on behalf on this atom
Currently used only in the object melee attack chain but can be used anywhere else or even moved up to the atom level if required
get_sechud_job_icon_state
Returns the SecHUD job icon state for whatever this object's ID card is, if it has one.
get_sharpness
Returns the sharpness of src. If you want to get the sharpness of an item use this.
get_surgery_tool_overlay
Extend this to give the item an appearance when placed in a surgical tray. Uses an icon state in medicart.dmi
.
- tray_extended - If true, the surgical tray the item is placed on is in "table mode"
get_temperature
Returns the temperature of src. If you want to know if an item is hot use this proc.
get_worn_offsets
Returns offsets used for equipped item overlays in list(px_offset,py_offset) form.
get_writing_implement_details
Returns null if this object cannot be used to interact with physical writing mediums such as paper. Returns a list of key attributes for this object interacting with paper otherwise.
give_item_action
Gives one of our item actions to a mob, when equipped to a certain slot
grant_action_to_bearer
Grant the action to anyone who has this item equipped to an appropriate slot
grind
Grind item, adding grind_results to item's reagents and transfering to target_holder if specified
grind_atom
Subtypes override his proc for custom grinding
handle_openspace_click
Called on [/datum/element/openspace_item_click_handler/proc/on_afterattack]. Check the relative file for information.
help_light_cig
Finds a cigarette on another mob to help light.
ignition_effect
If an object can successfully be used as a fire starter it will return a message
interact_with_atom
Called when this item is being used to interact with an atom, IE, a mob is clicking on an atom with this item.
Return an ITEM_INTERACT_ flag in the event the interaction was handled, to cancel further interaction code. Return NONE to allow default interaction / tool handling.
interact_with_atom_secondary
Called when this item is being used to interact with an atom WITH RIGHT CLICK, IE, a mob is right clicking on an atom with this item.
Default behavior has it run the same code as left click.
Return an ITEM_INTERACT_ flag in the event the interaction was handled, to cancel further interaction code. Return NONE to allow default interaction / tool handling.
is_contraband
Used to determine if an item should be considered contraband by N-spect scanners or scanner gates. Returns true when an item has the contraband trait, or is included in the traitor uplink.
is_embed_harmless
Does the current embedding var meet the criteria for being harmless? Namely, does it have a pain multiplier and jostle pain mult of 0? If so, return true.
item_action_slot_check
Sometimes we only want to grant the item's action if it's equipped in a specific slot.
item_ctrl_click
Subtypes only override this proc for ctrl click purposes. obeys same principles as ctrl_click()
item_start_equip
This proc calls at the begining of anytime an item is being equiped to a target by another mob. It handles initial messages, AFK stripping, and initial logging.
juice
Juice item, converting nutriments into juice_typepath and transfering to target_holder if specified
juice_atom
Subtypes override his proc for custom juicing
melee_attack_chain
This is the proc that handles the order of an item_attack.
The order of procs called is:
- /atom/proc/tool_act on the target. If it returns ITEM_INTERACT_SUCCESS or ITEM_INTERACT_BLOCKING, the chain will be stopped.
- /obj/item/proc/pre_attack on src. If this returns TRUE, the chain will be stopped.
- /atom/proc/attackby on the target. If it returns TRUE, the chain will be stopped.
- /obj/item/proc/afterattack. The return value does not matter.
mob_can_equip
the mob M is attempting to equip this item into the slot passed through as 'slot'. Return 1 if it can do this and 0 if it can't. if this is being done by a mob other than M, it will include the mob equipper, who is trying to equip the item to mob M. equipper will be null otherwise. If you are making custom procs but would like to retain partial or complete functionality of this one, include a 'return ..()' to where you want this to happen. Arguments:
- disable_warning to TRUE if you wish it to not give you text outputs.
- slot is the slot we are trying to equip to
- bypass_equip_delay_self for whether we want to bypass the equip delay
- ignore_equipped ignores any already equipped items in that slot
- indirect_action allows inserting into "soft locked" bags, things that can be easily opened by the owner
modify_fantasy_variable
Modifies the fantasy variable
on_action_deleted
Called when an action associated with our item is deleted
on_click_alt_reskin
Called when alt clicked and the item has unique reskin options
on_equipped
Called after an item is placed in an equipment slot. Runs equipped(), then sends a signal. This should be called last or near-to-last, after all other inventory code stuff is handled.
Arguments:
- user is mob that equipped it
- slot uses the slot_X defines found in setup.dm for items that can be placed in multiple slots
- initial is used to indicate whether or not this is the initial equipment (job datums etc) or just a player doing it
on_found
called when "found" in pockets and storage items. Returns 1 if the search should end.
on_grind
Called BEFORE the object is ground up - use this to change grind results based on conditions. Return "-1" to prevent the grinding from occurring
on_juice
Called BEFORE the object is ground up - use this to change grind results based on conditions. Return "-1" to prevent the grinding from occurring
on_offer_taken
An interrupt for someone trying to accept an offered item, called mainly from /mob/living/carbon/proc/take, in case you want to run your own take behavior instead.
Return TRUE if you want to interrupt the taking.
Arguments: offerer - the person offering the item taker - the person trying to accept the offer
on_offered
An interrupt for offering an item to other people, called mainly from /mob/living/carbon/proc/give, in case you want to run your own offer behavior instead.
Return TRUE if you want to interrupt the offer.
Arguments: offerer - The person offering the item. offered - The person being offered the item.
on_outfit_equip
Special stuff you want to do when an outfit equips this item.
on_thrown
Called by the carbon throw_item() proc. Returns null if the item negates the throw, or a reference to the thing to suffer the throw else.
open_flame
Creates an ignition hotspot if item is lit and located on turf, in mask, or in hand
pick_painting_tool_color
Common proc used by painting tools like spraycans and palettes that can access the entire 24 bits color space.
pickup
called just as an item is picked up (loc is not yet changed)
play_tool_operating_sound
Play item's operating sound
play_tool_sound
Plays item's usesound, if any.
pre_attack
Called on the item before it hits something
Arguments:
- atom/A - The atom about to be hit
- mob/living/user - The mob doing the htting
- params - click params such as alt/shift etc
See: /obj/item/proc/melee_attack_chain
pre_attack_secondary
Called on the item before it hits something, when right clicking.
Arguments:
- atom/target - The atom about to be hit
- mob/living/user - The mob doing the htting
- params - click params such as alt/shift etc
See: /obj/item/proc/melee_attack_chain
ranged_interact_with_atom
Called when this item is being used to interact with an atom from a distance, IE, a mob is clicking on an atom with this item and is not adjacent.
Does NOT include Telekinesis users, they are considered adjacent generally (so long as this item is adjacent to the atom).
Return an ITEM_INTERACT_ flag in the event the interaction was handled, to cancel further interaction code.
ranged_interact_with_atom_secondary
Called when this item is being used to interact with an atom from a distance WITH RIGHT CLICK, IE, a mob is right clicking on an atom with this item and is not adjacent.
Default behavior has it run the same code as left click.
register_item_context
Create a "Type-A" contextual screentip interaction, registering to add_item_context()
.
This will run add_item_context()
when the item hovers over another object for context.
add_item_context()
will not be called unless this is run.
This is not necessary for Type-A interactions, as you can just apply the flag and register to the signal yourself.
remove_item_action
Removes an instance of an action from our list of item actions.
remove_item_from_storage
Takes the location to move the item to, and optionally the mob doing the removing If no mob is provided, we'll pass in the location, assuming it is a mob Please use this if you're going to snowflake an item out of a obj/item/storage
reset_fantasy_variable
Returns the original fantasy variable value
reskin_obj
Reskins object based on a user's choice
Arguments:
- user The mob choosing a reskin option
setup_reskinning
Registers signals and context for reskinning, if check_setup_reskinning() passes.
Called on Initialize(...). Inheritors should override this to add their own setup steps, or to avoid double calling register_context().
suicide_act
*Makes cool stuff happen when you suicide with an item
*Outputs a creative message and then return the damagetype done
- Arguments:
-
- user: The mob that is suiciding
talk_into
Handles someone talking INTO an item
Commonly used by someone holding it and using .r or .l Also used by radios
- speaker - the atom that is doing the talking
- message - the message being spoken
- channel - the channel the message is being spoken on, only really used for radios
- spans - the spans of the message
- language - the language the message is in
- message_mods - any message mods that should be applied to the message
Return a flag that modifies the original message
tool_check_callback
Used in a callback that is passed by use_tool into do_after call. Do not override, do not call manually.
tool_start_check
Called before obj/item/proc/use_tool if there is a delay, or by obj/item/proc/use_tool if there isn't. Only ever used by welding tools and stacks, so it's not added on any other obj/item/proc/use_tool checks.
tool_use_check
A check called by /obj/item/proc/tool_start_check once, and by use_tool on every tick of delay.
tryEmbed
tryEmbed() is for when you want to try embedding something without dealing with the damage + hit messages of calling hitby() on the item while targeting the target.
Really, this is used mostly with projectiles with shrapnel payloads, from [/datum/element/embed/proc/checkEmbedProjectile], and called on said shrapnel. Mostly acts as an intermediate between different embed elements.
Returns TRUE if it embedded successfully, nothing otherwise
Arguments:
- target- Either a body part or a carbon. What are we hitting?
- forced- Do we want this to go through 100%?
ui_action_click
This proc is executed when someone clicks the on-screen UI button. The default action is attack_self(). Checks before we get to here are: mob is alive, mob is not restrained, stunned, asleep, resting, laying, item is on the mob.
update_greyscale
Checks if this atom uses the GAGS system and if so updates the worn and inhand icons
update_item_action_buttons
Updates all action buttons associated with this item
Arguments:
- update_flags - Which flags of the action should we update
- force - Force buttons update even if the given button icon state has not changed
update_weight_class
Used to update the weight class of the item in a way that other atoms can react to the change.
Arguments:
- new_w_class - The new weight class of the item.
Returns:
- TRUE if weight class was successfully updated
- FALSE otherwise
use
Generic use proc. Depending on the item, it uses up fuel, charges, sheets, etc. Returns TRUE on success, FALSE on failure.
use_tool
Called when a mob tries to use the item as a tool. Handles most checks.
visual_equipped
To be overwritten to only perform visual tasks;
this is directly called instead of equipped
on visual-only features like human dummies equipping outfits.
This separation exists to prevent things like the monkey sentience helmet from polling ghosts while it's just being equipped as a visual preview for a dummy.