:display_message(preamble,msg) --- prints msg to player.
:parse_message_seq from_msg_seq %from_msg_seq to_msg_seq %to_msg_seq subject_msg_seq body_msg_seq kept_msg_seq unkept_msg_seq display_seq_headers display_seq_full messages_in_seq list_rmm new_message_num length_num_le length_date_le length_date_gt length_all_msgs exists_num_eq msg_seq_to_msg_num_list msg_seq_to_msg_num_string rm_message_seq undo_rmm expunge_rmm renumber keep_message_seq - parse_message_seq(strings,cur) => msg_seq
:msg_text(@msg) => list of strings.
:notify_mail(from,recipients[,msgnums])
:current_message([recipient])
:get_current_message([recipient])
:set_current_message(recipient[,number[,date]])
:make_current_message(recipient[,index])
:kill_current_message(recipient)
:current_folder() => default folder to use, always an object, usually `this'
:parse_folder_spec(verb,args,expected_preposition[,allow_trailing_args_p])
:parse_mailread_cmd(verb,args,default,prep[,trailer])
@mail - @mail <msg-sequence> --- as in help @mail
@read @peek - @read <msg>... -- as in help @read
@rmm*ail - @rmm <message-sequence> [from <recipient>]. Use @unrmm if you screw up.
@unrmm*ail - @unrmm [on <recipient>] -- undoes the previous @rmm on that recipient.
@answer @repl*y - @answer <msg> [on *<recipient>] [<flags>...]
@forward - @forward <msg> [on *<recipient>] to <recipient> [<recipient>...]
@skip - @skip [*<folder/mailing_list>...]
@subscribe*-quick @unsubscribed*-quick - @subscribe *<folder/mailing_list> [with notification] [before|after *<folder>]
:mail_option(name)
@unsub*scribe - @unsubscribe [*<folder/mailing_list> ...]
:send_self_netmail(msg [ ,from ])
@netforw*ard - @netforward <msg>... -- as in help on @netforward
@@sendmail - Syntax: @@sendmail
@keep-m*ail @keepm*ail - @keep-mail [<msg-sequence>|none] [on <recipient>]
:my_match_recipient(string) => matches string against player's private mailing lists.
:msg_full_text(@msg) => list of strings.
@resend - @resend <msg> [on *<recipient>] to <recipient> [<recipient>...]
:expirable_msg_seq - Return a sequence indicating the expirable messages for this player.
:format_for_netforward - Takes a message sequence (the actual messages, not just the sequence describing it) and grovels over it filling text etc. Returns a two valued list: {formatted message, header for same}
:format_for_netforward_debug - Takes a message sequence (the actual messages, not just the sequence describing it) and grovels over it filling text etc. Returns a two valued list: {formatted message, header for same} @nn - @nn -- reads the first new message on the first mail_recipient (in .current_message) where new mail exists.
@unread - @unread <msg> [on *<recipient>] -- resets last-read-date for recipient to just before the first of the indicated messages.
@refile @copym*ail - @refile/@copym*ail <msg-sequence> [on <recipient>] to <recipient>
@quickr*eply @qreply - @qreply <msg> [on *<recipient>] [<flags>...]
@mail-all-new*-mail - @mail-all-new-mail
@read-all-new*-mail @ranm - @read-all-new-mail [yes]
@quick*send @qsend - Syntax: @quicksend <recipients(s)> [subj=<text>] [<message>]
@add-notify - Ideally, in order for one person to be notified that another person has new mail, both the mail recipient and the notification recipient should agree that this is an OK transfer of information.
@unsend - USAGE: @unsend [message-sequence] from <player>
:do_unsend(seq) -> Remove the specified messages. Used by @unsend. Cannot be overridden by players or player classes; @unsend won't bother to call the verb.
:my_huh - Extra parsing of player commands. Called by $command_utils:do_huh.
:last_huh(verb,args) final attempt to parse a command...
:my_match_object(string [,location])
:linesplit(line,len) => list of substrings of line
@pagelen*gth - @pagelength number -- sets page buffering to that many lines (or 0 to turn off page buffering)
:set_gaglist(@newlist) => this.gaglist = newlist
:receive_page - called by $player:page. Two args, the page header and the text, all pre-processed by the page command. Could be extended to provide haven abilities, multiline pages, etc. Indeed, at the moment it just does :tell_lines, so we already do have multiline pages, if someone wants to take advantage of it.
:page_origin_msg page_echo_msg page_absent_msg away_msg oaway_msg back_msg oback_msg away_absent_msg - set_task_perms(this.owner)
:display_option(name) => returns the value of the specified @display option
:edit_option(name) => returns the value of the specified edit option
:set_edit_option(oname,value)
:set_name - set_name(newname) attempts to change this.name to newname
:set_aliases - set_aliases(alias_list)
:set_gender - set_gender(newgender) attempts to change this.gender to newgender
:set_brief - set_brief(value)
@mode - @mode <mode>
:add_feature - Add a feature to this player's features list. Caller must be this or have suitable permissions (this or wizardly).
:remove_feature - Remove a feature from this player's features list. Caller must be this, or have permissions of this, a wizard, or feature.owner.
:is_listening - return true if player is active.
:linewrap - Return a true value if this needs linewrapping.
@set-note-string @set-note-text - Usage: @set-note-{string | text} {#xx | #xx.pname}
:set_linelength - Set linelength. Linelength must be an integer >= 10.
:set_pagelength - Set pagelength. Must be an integer >= 5, or 0 to turn pagelength off.
:set_home - set_home(newhome) attempts to change this.home to newhome
@registerme - @registerme as <email-address> -- update your account email address
:ctime([INT time]) => STR as the function.
news - Usage: news [contents] [articles]
@password - Last modified Sun Dec 7 01:44:07 2025 UTC by Claude (#13505@Mongoose).
:title - random april fools jokes :)
@remove-feature @rmfeature - Copied from generic player (#6):@rmfeature [verb author Daiverd (#2)] at Sun Jul 23 09:34:27 2006 PDT
:you - What should this object be replaced with when printing messages about itself to itself?
@sgag*! - Copied from generic player (#6):@gag [verb author Q (#249)] at Fri Jul 14 16:58:44 2023 UTC
:set_sgaglist - Copied from generic player (#6):set_gaglist [verb author daiverd (#2)] at Fri Jul 14 17:03:52 2023 UTC
@listsgag - Copied from generic player (#6):@listgag [verb author daiverd (#2)] at Fri Jul 14 17:05:08 2023 UTC
:sgag_p - Copied from generic player (#6):gag_p [verb author daiverd (#2)] at Fri Jul 14 17:09:09 2023 UTC
@sungag - Copied from generic player (#6):@ungag [verb author daiverd (#2)] at Sat Jul 15 05:01:26 2023 UTC
rps - rps <player> - Challenge another player to rock-paper-scissors
:mass - Copied from Root Class (#1):mass [verb author Daiverd (#2)] at Mon Nov 10 23:04:48 2008 CET
:cube - Copied from Root Class (#1):cube [verb author Daiverd (#2)] at Mon Nov 10 23:12:50 2008 CET
:weight - Copied from Root Class (#1):weight [verb author Daiverd (#2)] at Thu Nov 13 07:04:56 2008 CET
:travel_to(destination_coords, ?speed, ?callback_verb) -> arrival_time or error
:test_interpolated_coordinates - Test position interpolation along a path
:test_interpolated_coords_multiseg - Test interpolation with multiple path segments
:test_stop_travel - Test stopping mid-travel
:test_arrive - Test arrival at destination
:test_travel_to - Test travel_to setup
:interpolated_coordinates() -> {x, y, z}
:stop_travel() - Stop traveling and set coords to current interpolated position
:arrive() - Complete travel and set coords to destination
:add_option(<description>, <default value>)
:set_name - set_name(newname) attempts to change this.name to newname
:set_aliases - set_aliases(alias_list) attempts to change this.aliases to alias_list
:set_description - set_description(newdesc) attempts to change this.description to newdesc
:eject eject_nice eject_basic - eject(victim) --- usable by the owner of this to remove victim from this.contents. victim goes to its home if different from here, or $unclaimed or $player_start according as victim is a player.
:set_message(msg_name,new_value)
:do_examine - do_examine(examiner)
:examine_key - examine_key(examiner)
:examine_names - examine_names(examiner)
:examine_desc - examine_desc(who) - return the description, probably
:examine_contents - examine_contents(examiner)
:examine_verbs - Return a list of strings to be told to the player. Standard format says "Obvious verbs:" followed by a series of lines explaining syntax for each usable verb.
:get_message(msg_name)
:contents objects_for_match - Returns a list of the objects that are apparently inside this one. Don't confuse this with .contents, which is a property kept consistent with .location by the server. This verb should be used in `VR' situations, for instance when looking in a room, and does not necessarily have anything to do with the value of .contents (although the default implementation does). `Non-VR' commands (like @contents) should look directly at .contents.
:examine_verb_ok - examine_verb_ok(loc, index, info, syntax, commands_ok, hidden_verbs)
:is_listening - return 1 if the object can hear a :tell, or cares. Useful for active objects that want to stop when nothing is listening.
:hidden_verbs - hidden_verbs(who)
:examine_owner - examine_owner(examiner)
commands cmd*s - This verb allows players to see commands for an object.
:loc_enter loc_exit - syntax: what, where, levels from original
:integrate_room_msg integrate_container_msg - If this.(verb) is not set, return this:integrate_msg(@args).
:empty_message - Usage: :empty_msg(msgname)
:ps*c po*c pr*c pp*c pq*c psu pou pru ppu pqu - Get the appropriate pronoun.
:vitals - Pass vitals upwards, towards vehicles/ships/etc
:match_targets() => Returns a list of objects used for matching code. Child implementations should probably call pass() before overriding.
- - - - -
See "help mail-system" for a description of the programming interface to the mail system.
In particular, see "help $mail_recipient" for information on creating new mail collections.