Building: Event List

Updated at Sat Apr 11 21:00:02 2026

Traps Proper

trapo1o2o3txtdocs
reset
deplete_airsupplyair supplyif return 1 to prevent standard airsupply depletion from occurring.
before_wanderwandereddestreturn 1 if we won't wander there
hourlyobject experiencing time changeroom in which time is changingcalled when local planetary time advances an hour
daylight_changeroom in which daylight changes should be describedcalled on outdoor rooms with gravity when local planetary time advances an hour. Return 1 to suppress further light change messages
mog_speechmog templatespeech being said by plreturn a string to alter /pl/'s speech.
format_currencycurrencyreturn a formatted currency string, event.long_form==whether to use the long (wordy) form.
before_respawnprogramdeckCalled before holo-death causes endprogram. return 1 to avert endprogram.
after_diedvictimcorpseafter corpse created; mobile is now in 'dead'; etc
get_plural_nameobject we want a plural name forreturn the plural name to give, if any. Note that /pl/ isn't set to anything useful. Trap is const-exec'd... no side effects allowed.
get_nameobject we want a name forreturn the name to give, if any. Note that /pl/ isn't set to anything useful. Trap is const-exec'd... no side effects allowed.
get_plural_longobject we want a plural long name forreturn the plural long name to give, if any. Note that /pl/ isn't set to anything useful. Trap is const-exec'd... no side effects allowed.
get_longobject we want a long name forreturn the long name to give, if any. Note that /pl/ isn't set to anything useful. Trap is const-exec'd... no side effects allowed.
before_jam_commsjammerCalled before communication attempt.
spacesuitspacesuitreturn 1 to let this object protect its wearer against vacuum
spacesuitspacesuitreturn 1 to let this object protect its wearer against vacuum
radiationsuitradiationsuitreturn 1 to let this object protect its wearer against vacuum
airsupplyair supplyreturn 0 to prevent this object supplying air.
minidestroyminimission templateminimission instancecalled just before a minimission instance is destroyed
mission_availablethe mission objectthe player being shown toreturn 1 to indicate that the mission should not be visible on the board or acceptable by the player
after_leaveold roomnew roomjust after 'look'.
after_entrynew roomold roomjust after 'look'.
after_gothing movingnew roomjust after 'look'.
after_movednew roomreturn 1 to abort
arrivaleverything in destinationold roomjust after 'look'.
should_barpossible barrernew roomexitreturn 1 to bar.
before_barbarrernew roomif return 1 then we won't bar, otherwise we will.
after_barbarrernew roomafter the %M stops %m from going %s message.
before_long_droproom falling intoif return 1 to abort long drop handling.
before_parachuteparachute room falling toif return 1 to act as a parachute.
parachuted_intoroom falling intoparachuteroom fallen fromcalled after landing but before parachute trap. Return 1 to stop parachute functioning
parachuteparachute room fallen fromcalled after landing, return 1 to stop death checks and messaging.
long_droproom falling intoroom fallen fromcalled after landing, return 1 to stop death checks and messaging.
after_parachuteparachutecalled after everything.
after_reset
after_reset
drop_in_pitobject being pittedthe pitafter messaging. called on contents of containers too.
batch_discard_in_herethis roombefore anything other than droppability testing, return 1 to abort
batch_drop_in_herethis roombefore anything other than droppability testing, return 1 to abort
drop_in_herethis roomobject being droppedbefore anything other than droppability testing, return 1 to abort
dropobject being droppedthis roomreturn 1 to abort
throwmissilethis roomreturn 1 to abort
before_throw_atmissiletargetreturn 1 to abort
before_thrown_withtargetmissilereturn 1 to abort
before_pitobject about to be pittedthe pitreturn 1 to abort. not recursive - doesn't get called on objects inside containers that are to be pitted.
before_removeclothingafter it is known to be worn, and not under any other clothing that needs removing first. return 1 to abort
after_removeclothingafter worn and messaging
after_drop_in_herethis roomobject being droppedafter drop messaging before additional messaging and special checks
after_throwmissileafter messaging, before specials
after_throw_atmissiletargetafter messaging before specials
after_thrown_withtargetmissileafter messaging before specials
after_dropobject droppedafter messaging, before specials
after_placeafter messaging, before specials
after_drop_onobject being dropped onobject droppedroom being dropped inafter messaging, before specials
before_smashedfragile objectreturn 1 to not break
before_smash_onfloor or target of throwfragile objectroom where breakage is occurringreturn 1 not to break fragile object
after_wieldweaponafter wielding but before 'you hold x in your y hand' messaging
after_holditemafter holding but before 'you hold x in your y hand' messaging
after_unwieldweaponafter everything in wield/unwield, also triggered internally by set_owner and quitting with undefined messaging order. Coder beware!
after_unholditemafter everything in hold/unhold, also triggered internally by set_owner and quitting with undefined messaging order. Coder beware!
actobject or mobile an action has been done on
before_act_inlocation action was performed intarget of actionaction propaction text
mounted_actobject or mobile an action has been done onaction prop
before_act_heldwho possessiontarget of actionaction propaction text
before_actobject or mobile an action has been done on
before_actobject or mobile an action has been done ontxt==action being performed, after validity checking but before messaging, return 1 to abort action handling
act_inlocation action was performed intarget of actionaction propaction text
act_seenobject observing action
try_commlinecommline objectsenderreturn 1 or "You can't use that commline because we hate you" to stop
join_combatmobile that wants to join inattackervictimreturn either attacker or victim to start fighting them
before_join_friendlymobile that wants to join inmobile it wants to attackmobile it will be helpingreturn true to not join in fight on side of same nation
before_combat_killvictimbefore combat ends, messaging and corpse creation
fight_overattackerafter a fight has finished however
after_slainvictimafter mobile killed in combat
woundedvictimonly triggered by non-fatal wounds with damage greater than zero
woundedvictimonly triggered by non-fatal wounds with damage greater than zero
unjustvictimreturn 1 if player killing o1 would be ok
before_fight_in_roomroom fight is starting invictimbefore fight starts. return 1 to stop fight
killvictimbefore fight started. o1 can be an object, o2 is the weapon, or nil, o3 is the second weapon, if any.
before_opponent_fleeopponentflee directionbefore player flees. return 1 to prevent fleeing
tellthe mobilereturn 1 to not do any more searching
telldefaultthe mobilereturn 1 to suppress normal telldefault response
hearthe object that heardthe text heardcalled on every object resursively in pl->owner(), including pl and its contents. Currently works for'say' and 'yell'. Objects in airless containers hear nothing, objects in soundproof containers don't hear noises from outside.
before_saythis roomtext to sayreturn 1 doesn't say it
saythis roomtext saidreturn 1 to prevent tell or after_sayto trap handling
after_saytotargettext saidreturn 1 to prevent handling the sayto as a tell
ignore_for_dynresetall objects in zone we want to reset nowreturn 1 to tell dynresetter to ignore this object (like the noreset flag).
before_dynresetall objects in zone we want to reset nowreturn 1 to hold up the reset.
before_effect_spawneffect templatesource of effec being spawnedcalled before any effect objects are created of modified. Return 1 to abort spawning process.
effect_combineeffect templatesource of effect being combinedcalled when combining a new prefab effect instance with an old one
effect_spawneffect templatenew effect objectsource of the effectcalled when spawning a prefab effect
effect_timeouteffect targeteffect objectsource of the effectreturn 1 to prevent default effect tidyup procedure
effecteffect objecteffect objectsource of the effectcalled on an active effect every mud 'tick'. return 1 to timeout effect
before_wearclothingafter already wearing check. return 1 to abort.
after_wearclothingafter worn and messaging
sit_in_roomroombefore anything; return 1 to abort
before_go_onbefore messaging,
before_sitthe seatbefore messaging, return 1 to abort
go_onafter messaging, before fragility handling, return 1 to abort
sitthe seatafter messaging, before fragility handling, return 1 to abort
lie_in_roomroombefore anything; return 1 to abort
before_liethe bedbefore messaging, return 1 to abort
sitthe bedafter messaging, before fragility handling, return 1 to abort
after_sleeproom slept inafter everything
before_standthe floor or other object we are about to stand onreturn 1 to abort
after_stand
before_dragpotential draggable objectreturn 1 to abort
after_dragthe dragged object
before_mountpotential mountreturn 1 to abort
after_mountthe mount
before_dismountthe mountreturn 1 to abort
after_dismountthe former mount
before_holditembefore most things, return 1 to abort
releaseitembefore messaging, return 1 to abort calls to release or hold commands. not triggered by throw, drop, disp, etc
releaseitembefore messaging, return 1 to abort calls to release or hold commands. not triggered by throw, drop, disp, etc
after_discoveredobject being discoveredobject examined to cause discovery
examinething examinedbefore "You examine..." messages, return 1 to abort
before_examinething examinedafter "You examine...", you are wearing messages, but before main desc ; return 1 to abort
before_show_descthing examinedinstead of printing the 'desc' when examined. returning 1 averts that, but will still print clothes etc.
after_show_descthing examinedafter desc displayed but before clothing, contents, etc. Return 1 to hide those.
after_examinething examinedafter everything
follow
after_followedleaderafter everything, including CanLeader or player check
leave
after_leftformer leadercalled after pl has stopped following o1
before_pourfromintocalled before messaging and checks. return 1 to abort pouring.
after_fillcontainersourcecalled after everything including fluid object updating.
before_fountainfountaincontainer to fillcalled before messaging. return 1 to abort filling.
before_fillcontainer to fillsourcecalled before messaging or source-fluid checks but after basic validity checking. return 1 to abort filling.
newbie_starttheir nationreturn 1 to not clone default newbie kit for them
newbie_starttheir nationreturn 1 to not clone default newbie kit for them
get_shortdescreturn the short description to give, if any.
before_descibe_lightroomTriggered before any lighting messages are sent. Return a string describing the light to suppress any further description
descibe_light_outdoorsroomTriggered on outdoor rooms after any lit objects are described. Return a string describing the light to suppress any further description
before_room_descroombefore room desc printed. return 1 to not print room desc (but can't suppress daylight). don't use pl:send, as text will appear out of order to the player... use a room_desc trap for that instead
room_descroomreturn a string to override room description. don't use pl:send, as text will appear out of order to the player
after_room_descroomafter room desc and daylight status printed. return a string to send text to the player, don't use pl:send as it will appear out of order
acceptmission object
before_acceptmission objectboardreturn 1 to prevent acceptance
consumewhat eatenbefore everything, return 1 to abort
before_fountainfountainbefore someone uses a fountain. if on container, being drunken from. return 1 to abort.
after_consume
before_consume_wearingitem of clothingbefore any edibility checking, messaging. return 1 to prevent any consumption.
getobject gettingbefore any checking, messaging. return 1 to abort.
before_getfromtable or containerobject being takenreturn 1 to abort
handleobject gottenafter an object has been picked up in any way, or been given.
after_getobject gottenafter everything
after_getfromtable or containerobject that was taken
before_stealobject to stealvictimreturn 1 to abort
after_stealobject stolen
before_paidmobile paidthe currencybefore messaging/cash transfer, return 1 to abort
after_paidmobile paidthe currency
after_shown_toobjectmobilereturn 1 if we saw it.
shown_missionmobilemissionreturn 0 to not want to see the mission. If you return 1, mission_shown will not be called.
mission_shownmissionmobilereturn 0 to not want to see the mission.
after_shownmobileobjectreturn 0 to not want to see.
givengiftmobileafter basic validity checking. return 1 to abort
givemobilegiftafter basic validity checking. return 1 to abort
after_givengiftmobileafter object given; return 1 to suppress an auto-give-back
after_givemobilegiftafter object given; return 1 to suppress an auto-give-back
emptycontainerbefore openness checking; return 1 to abort
before_poured_uponontofromcalled before messaging. return 1 to abort pouring.
after_emptiedcontents objectcontainercalled after movement into new location, etc
after_emptycontaineronly called if something was actually emptied
lightobjectbefore anything; return 1 to abort
extinguishobjectbefore anything; return 1 to abort
before_putontableobject you are putting on itcalled whether or not o1 is a table, return 1 to abort
before_putuponobjecttablecalled whether or not o2 is a table, return 1 to abort
after_putontableobject you have put on it
after_putuponobject you have put on ittable
after_placeobject droppedafter messaging, before specials
putobjectcontainercalled whether or not o2 is a container, return 1 to abort
containcontainerobjectcalled whether or not o1 is a container, return 1 to abort
after_putobjectcontainercalled after everything
after_containcontainerobjectcalled after everything
before_displaceroom and every object in from roomdestinationbefore we are about to move. return 1 to abort
before_divecurrent locdestination locreturn 1 to abort dive
before_surfacecurrent locdestination locreturn 1 to abort surface
get_costshopkeeperitemreturn a number to override the default cost of /item/
before_tradeshopshopkeeperreturn 1 to abort the list process
wont_selltoobjectshopkeeperreturn 1 (or a string for a reason) to not be allowed to sell. Invoked by list as well as buy. Must be silent. Trap is const-exec'd... no side effects allowed.
sellshopkeeperobject offeredif the shopkeeper wants the item, return 1 and set !offered on o2 to the offer, if he doesn't want it, just return 1
before_soldobjectshopkeeperif the shopkeeper wants the item, return 1 and set !offered on o2 to the offer, if he doesn't want it, just return 1
after_sellshopkeeperitemreturn 2 to NOT RESTOCK this item
after_soldobjectshopkeeperreturn 1 to NOT VANISH the object and not stock the shop with this object; return 2 to merely not stock the item
previewitem being previewedshopkeeperreturn 1 to hide display of object's description
after_previewitem being previewedshopkeeperafter object's description shown but before 'abilities' line. return 1 to hide abilities
vend_to_othershopkeeperperson buying fortemplatereturn 1 to abort, return a string to abort and use as tell message
bought_forperson being bought fortemplateshopkeeperreturn 1 to allow and suppress messaging
buy_fortemplateperson buying forshopkeeperreturn 1 to allow and suppress messaging
buytemplateshopkeeperreturn 1 to abort. before anything is actually cloned. set !virtrade to 1 on o1 if you want it to not actually clone the items, but to do the paying thing.
before_vendshopkeeperobject to buyreturn 1 to abort.
boughtactual itemshopkeeperreturn 1 if you don't want the shopkeeper to 'give' item to player
vendshopkeeperactual itemreturn 1 if you don't want the shopkeeper to 'give' item to player
after_boughttemplate boughtshopkeeperafter everything but before object removed from stock
after_buyshopkeepertemplate boughtafter everything but before object removed from stock
after_bought_forperson who was bought fortemplateshopkeeperafter everything
before_traverseexit or doorbefore everything, including door openness checking. Return a string to send any messaging or return 1. Either aborts traversal, wandering or routefinding. Trap is const-exec'd... no side effects allowed.
before_try_traversetraverserexit or doorbefore everything except before_traverse, including door openness checking. Return a string to send any messaging or return 1. Either aborts traversal, wandering or routefinding. Trap is const-exec'd... no side effects allowed.
try_traversetraverserexit or doorbefore door openness checking. Return a string to send any messaging or return 1. Either aborts traversal.
traverseexit or doorcalled after door and confined space checking. Return a string to send any messaging or return 1. Either aborts traversal.
before_movednew roomexit followedreturn 1 to abort
before_departevery object in from roomdestinationbefore we are about to move. return 1 to abort.
before_gothing movingnew roombefore we are about to move. return 1 to abort.
before_leaveold roomnew roombefore we are about to move. return 1 to abort.
before_entrynew roomold roombefore we are about to move. return 1 to abort.
after_party_entrynew roomold roomafter all party has arrived
after_party_leaveold roomnew roomafter all party has arrived
party_arrivalevery object in destold roomafter all party has arrived
after_party_movednew roomreturn 1 to abort
before_try_unlockobject we want to lockreturn 1 to abort. before everything, including testing that it is locked
before_unlockobject to be unlockingreturn 1 to abort
before_try_lockobject we want to lockreturn 1 to abort. before everything, including testing that it is unlocked
before_lockobject to be lockingreturn 1 to abort
after_lockobject locked
before_try_openobject we want to openreturn 1 to abort. before everything, including testing that it is even openable
before_try_closeobject we want to closereturn 1 to abort. before everything, including testing that it is even closeable
openobject to openreturn 1 to abort. if o1=='other' of the object really being opened, o2==the real object, and return 1 doesn't abort.
closeobject to closereturn 1 to abort. if o1=='other' of the object really being closed, o2==the real object, and return 1 doesn't abort.
after_openobject opened
after_component_openedcomposite objectcomponent object
after_closeobject closed
after_component_openedcomposite objectcomponent object
before_injectobject to injectthing to inject intoreturn 1 to not give error
injectobject to injectreturn 1 to not give error message
pushobject to movereturn 1 to abort
pushreturn 1 to abort
pressreturn 1 to abort
push_mountobject being mounted by someone who has been pushedthe person themselfreturn 1 to abort
push_uponobject target is uponperson being pushedreturn 1 to abort
combinean objectanother objectcalled both ways; return 1 to abort
tieobjectobject toreturn 1 to abort
untieobjectreturn 1 to abort
cleanreturn 1 to abort
digroomreturn 1 to abort
wildernessthe default wilderness objectthe new wilderness room being describedthe wilderness template being usedonly ever used on wilderness_default
wild_createthe zone objectthe wilderness that has just had a description made from itprobably before exits are made.
wild_terrain_createthe new wilderness roomcalled after all wilderness logic has completed
before_screenreader_mapplayer owner or zone it belongs tocalled before before_map, return 1 to not do any further map handling
before_mapplayer owner or zone it belongs toreturn 1 to not do any further map handling
after_discard_in_roomthe roomafter a discard
ship_landedpassenger or cargoshipplace it landedcalled before the door has opened.
landedshipplace it landedcalled before the door has opened.
landed_hereplace ship landedshipcalled before the door has opened.
after_ship_landedpassenger or cargoshipplace it landedcalled after the door has opened and LeaveShip flagged mobiles have left.
after_landedshipplace it landedcalled after the door has opened.
after_landed_hereplace ship landedshipcalled after the door has opened.
before_takeoffshipbefore doors close, return 1 to abort takeoff and reschedule in 5 seconds time
after_takeoffshipplace it took off from
start_programa holo objectcalled on every holoobject when created
before_start_programa holo programcalled before any objects clone but after crystal inserted, return 1 to abort program start. crystal will not be altered or removed
after_startprogramthe instance of the holo containerCalled after the green glow, but before they 'look'
before_endprogramprogramdeckIf you return 1, doesn't let player end program, just moves them to the deck.
before_insert_crystalslotcrystalAfter valid crystal checks. Return 1 to abort
before_crystal_insertedprogramcrystalAfter valid crystal checks. Return 1 to abort
caught_smugglingcontraband itemcustoms officersmuggler destinationreturn 1 to smuggle this item safely
caught_smugglercustoms officercontraband itemsmuggler destinationreturn 1 to ignore this smuggling attempt
after_caught_smugglingcontraband itemcustoms officersmuggler destinationreturn 1 to not be punished and suppress messaging, return 2 to allow past as well
after_caught_smugglercustoms officercontraband itemsmuggler destinationreturn 1 to not be punished and suppress messaging, return 2 to allow past as well
pressuriseroom being pressurisedcalled on members of a roomgroup being pressurised
depressuriseroom being depressurisedcalled on members of a roomgroup being depressurised
depressuriseroom being depressurisedcalled on members of a roomgroup being depressurised
chargeobject mountedthing chargedreturn 1 if you handled it.
climbobject to climbreturn 1 to abort
cutobject to cutobject to cut with or weapon or nilreturn 1 to abort
after_depositbanker mobilecurrency object for type of currency being handled
jump_mountobject that you are mountingreturn 1 to abort
jump_overobject that you are jumping overreturn 1 to allow
jump_intoobject that you are jumping intoreturn 1 to allow
jump_onobject to jump onreturn 1 to abort
jump_standingobject that you are standing uponreturn 1 to abort
jumproom you are inreturn 1 to abort
jump_standingobject that you are standing uponreturn 1 to abort
kicktargetreturn 1 to abort
after_kicktarget
liftobject to liftreturn 1 to abort
pullobject to pullreturn 1 to abort
rentthe room someone tried to rent inreturn 1 if you handled it
signobject to sign onreturn 1 to abort
swingobject to swing onreturn 1 to abort
trap
turnobject to turnreturn 1 to abort
after_withdrawbanker mobilecurrency object for type of currency being handled

Undocumented or Unused Traps

after_component_closed

batch_vend
lay_in_room
lay
before_lay
before_died
before_jump_mount
killing_allowed
before_wield
unwield
unhold
minican
minicreate
mission_check
after_jump_standing
after_stop_dragging
exit_invisible
after_smashed
state
after_post
before_heal
after_heal
wild_name
wild_name_over
wild_name_under
wild_desc
wild_exit
wild_desc_near
wild_desc_near_plural
wild_desc_far
wild_desc_far_plural
wild_desc_same
wild_desc_same_all
wild_desc_over
wild_desc_under
get_dragging_verb
get_riding_verb
effect_get_hallucination
effect_get_colour_override
before_describe_light
describe_light_outdoors
describe_container
hazardsuit
get_name_in_shop
get_min_rank
get_offer
wound
stock_list
temp_stock_list
mplex
random_name
before_ranks
calc_level
verb
action
kicked_off_stool
get_trading_inventory
get_trading_inventory_name
schema
lib
lib
primitives
targets
helpers
verb
verb
try_lift
allowed_on_ship
get_hospital
get_lighting
use_fuel
get_save_location
move
after_look_in
after_observed