Class Hierarchy
            UObject             Account      PolCore()       DataFileElement
               |
               |                Guild        Script          Datastore
     +---------+--------+
     |                  |       Array        Dictionary      Datafile
   Character           Item
     |                  |       AuxConnection   Error        String
    NPC                 |
                        |                                    Struct
     +------------------+--------------+-----------+
     |                  |              |           |
 Equipment           Lockable         Map        Multi
     |                  |                          |
 +---+----+        +----+--------+            +----+----+
 |        |        |             |            |         |
Armor  Weapon     Door        Container      Boat     House
                                 |
                            +----+----+
                            |         |
                         Spellbook   Corpse

Last Modified: 6/12/2003

Account
Explanation
Object describing a player's game account
Members
Name Type Desc Access
name String the name of the account r/o
enabled boolean true if enabled r/o
banned boolean true if banned r/o
PasswordHash string MD5 password hash string r/o
UsernamePasswordHash string MD5 username+password hash string r/o
Methods
Prototype Returns Desc
ban() true bans the account
unban() true unbans the account
enable() true enables the account
disable() true disables the account
setpassword(string newpass) true/error sets the account password to newpass
checkpassword(string pass) boolean/error returns true if 'pass' is the account's password
setname(string newname, string newpass) true/error sets the account name to newname, newpass optional
getcharacter(integer slot) true/OfflineCharacterRef gets an OfflineCharacterRef for the character in slot 'slot'. returns error if not character in that slot (1..5)
deletecharacter(integer slot) true/error Deletes character in slot 'slot'. returns error if not character in that slot (1..5)
getprop(string propname) true/error GetObjProperty for account objects.
setprop(string propname, propval) true SetObjProperty for account objects.
eraseprop(string propname) true EraseObjProperty for account objects.
propnames() Array returns an array of cprop names on this account



Armor
Parent
Equipment
Explanation
Equipable items that protect against damage in combat
Members
Name Type Desc Access
ar_mod integer Armor factor modifier r/w
ar integer Modified armor factor r/o
ar_base integer Base armor factor (as in itemdesc.cfg) r/o
onhitscript string Script name that runs when armor is hit r/w



Array
Explanation
Data structure for linear storage, dynamically resizes to fit more elements. Declare with var a := array;
Methods
Prototype Returns Desc
size() int number of elements in the array
erase(int index) true/false erases the element at index
insert(int index, object) void/error inserts a new object into the array at index
shrink(index) true/error erases index to end of array
append(object) true/error inserts object in the end of the array
reverse() true reverses the elements of the array
sort() true sorts the elements of the array
+ array array concatinates 2 arrays



AuxConnection
Explanation
An object passed to an Aux Service Script that allows the script to transmit and recieve packed data over a TCP/IP port. use wait_for_event() in the service script to recieve data.
Methods
Prototype Returns Desc
transmit(object o) error/0 Transmits the packable object 'o' over the Aux connection.



Boat
Parent
Multi
Explanation
A Multi object that moves in water.
Members
Name Type Desc Access
items array Array of Item References on the deck of the boat r/o
mobiles array Array of Character References on the deck r/o
has_offline_mobiles boolean true if players are logged out on the deck r/o
tillerman Item ItemRef to the tillerman item r/o
portplank Item ItemRef to the left-side plank item r/o
starboardplank Item ItemRef to the right-side plank item r/o
hold Item ItemRef to the hold container item r/o
Methods
Prototype Returns Desc
move_offline_mobiles(int x, int y, int z) true/false moves offline mobiles on boat to x,y,z



Character
Parent
UObject
Children
NPC
Explanation
A mobile object that exists in the world (NPC or player character)
Members
Name Type Desc Access
warmode integer 1 if in warmode r/o
gender integer 0=male 1=female r/w
trueobjtype integer original objtype r/w
truecolor integer original color r/w
ar_mod integer Armor factor modifier r/w
hidden boolean 1 = normal players cannot see r/w
concealed integer cmdlevel below this value cannot see r/w
frozen boolean 1 = player is frozen (by a GM) r/w
paralyzed boolean 1 = player is paralyzed r/w
poisoned boolean 1 = player is poisoned r/w
stealthsteps integer number of walk steps left until player is revealed r/w
squelched integer 1 = player cannot speak r/o
dead integer 1 = player is dead r/o
ar integer total armor factor r/o
backpack Item Reference to character's pack (if any) r/o
weapon Item Reference to character's weapon (if any) r/o
acctname Account Account name string (if not NPC) r/o
acct integer Account Reference (if not NPC) r/o
cmdlevel integer command level of character r/w
cmdlevelstr String string name of command level r/o
criminal integer 1 = player is criminal (gray) r/o
ip String IP Address string r/o
gold integer Amount of gold in character's pack r/o
title_prefix String String placed before name i.e. Lord Racalac r/w
title_suffix String String placed after name i.e. Racalac the Brave r/w
title_guild String String guild title i.e. [ROX, super d00d] Racalac r/w
title_race String String race title after suffix in paperdoll r/w
guildid integer guild ID number r/o
guild Guild guild object reference r/o
murderer boolean 1 = player flagged murderer (red) r/w
attached Script Script reference for attached script r/o
reportables Array (reputation system) Array of Structs: { serial, killer, gameclock }, serial = killer's serial, killer = 'offline mobile reference' to the killer, gameclock = game time when the death occurred r/o
clientversion string UO Client version string r/o
Methods
Prototype Returns Desc
setpoisoned(bool) true/error sets the character poisoned, controller of calling script is flagged as in repsystem
setparalyzed(bool) true/error sets the character paralyzed, controller of calling script is flagged as in repsystem
setcriminal(int level) true/error sets the character criminal. level multiplies the CriminalFlagInterval as defined in repsys.cfg. level=0 clears criminal timer.
setlightlevel(int level, int duration) true sets the light level of the character to 'level' for 'duration' seconds
squelch(int duration) true character cannot talk for 'duration' seconds. -1 means forever. 0 clears the squelch
enable(string setting) true/error enables the 'granted' privilage to the character
disable(string setting) true disables the 'granted' privilage to the character
enabled(string setting) true/false true if the privilage is enabled
setcmdlevel(string cmdlevel) true/error grants the command level to the char as defined in cmds.cfg
spendgold(int amount) true/error if enough gold, removes it from the player's pack
setmurderer(bool) true/error flags the character as a murderer (red)
removereportable(int serial, int gameclock) true/error removes the killer with 'serial' from the reportables list that was added at 'gameclock'
getgottenitem() error/ItemRef returns an ItemRef to the item held on the player's cursor, if any.
setwarmode(boolean) integer/error Sets the internal warmode flag and sends the update to the player. Returns the new warmode value.



Container
Parent
Lockable
Children
Corpse
Explanation
Items that can be locked, and have other items inside them



Corpse
Parent
Lockable
Explanation
Objects that are created when character objects are killed
Members
Name Type Desc Access
corpsetype integer objtype of the character killed r/o



Datafile
Explanation
Object representing a data file in a data store
Methods
Prototype Returns Desc
CreateElement(key) error/DataFileElemRef key is int or string, depending on datafile flags
FindElement(key) error/DataFileElemRef see key notes above
DeleteElement(key) error/true see key notes above
Keys() array array of ints or strings, depending on datafile flags



DataFileElement
Explanation
A data element inside a datastore file
Methods
Prototype Returns Desc
GetProp(string propname) script object/error Returns an unpacked script object (i.e. int,string,array,etc)
SetProp(string propname, object propvalue) true/error Sets a packable object to a property
EraseProp(string propname) true/error Erases the property named 'propname'
PropNames() array Returns an array of property name strings



Datastore
Explanation
Functions for manipulating a datastore. Not an actual object, but funcs found in datafile.em, presented here for completeness.
Methods
Prototype Returns Desc
CreateDataFile(string name, int flags) DataFileRef/error Creates a datafile
OpenDataFile(string name) DataFileRef/error Opens a datafile
UnloadDataFile(string name) true/error Unloads a datafile



Dictionary
Explanation
Data structure for key->value pairs (i.e."associative array"). Keys may be intgers, strings, reals, mobrefs, or itemrefs. Declare with var d := dictionary;
Methods
Prototype Returns Desc
size() int number of pairs in dictionary
erase(key) true/error erases a pair from the dict
insert(key, value) error/int inserts a pair into the dict, returns new size
exists(key) error/int if exists, returns count of matching key
keys() array returns an array of the keys
[key] value gets value at key, or uninit if key doesn't exist



Door
Parent
Lockable
Explanation
A door item that automatically closes.
Members
Name Type Desc Access
isopen boolean true if the door is open r/o
Methods
Prototype Returns Desc
open() true opens the door
close() true closes the door
toggle() true toggles the door to the other state



Equipment
Parent
Item
Children
Weapon
Armor
Explanation
Class containing concrete subclasses which are equipable and have hit points
Members
Name Type Desc Access
quality float 1.0=Average r/w
hp integer Hit points of item r/w
maxhp_mod integer Maximum Hit Point modification r/w
maxhp integer Maximum Hit Points of item r/o



Error
Explanation
An object representing a script error. Comparing this object against the keyword 'error' allows the scripter to know if the result of a core function was an error.
Members
Name Type Desc Access
errortext string Informational Error string r/w



Guild
Explanation
Object representing a player guild association
Members
Name Type Desc Access
members array Array of Character Refs who are guild members r/o
allyguilds array Array of GuildRefs who are allied guilds r/o
enemyguilds array Array of GuildRefs who are enemy guilds r/o
guildid integer Guild ID number r/o
Methods
Prototype Returns Desc
ismember(Character) error/true true if the character is a member of the guild
isallyguild(GuildRef) true/error true if the guild is an ally
isenemyguild(GuildRef) true/error true if the guild is an enemy
addmember(CharacterRef) true/error adds a character to the guild
addallyguild(GuildRef) true/error adds an ally guild
addenemyguild(GuildRef) true/error adds an enemy guild
removemember(CharacterRef) true/error removes a character member
removeallyguild(GuildRef) true/error removes an ally guild
removeenemyguild(GuildRef) true/error removes an enemy guild



House
Parent
Multi
Explanation
A Multi object where players hoard items.
Members
Name Type Desc Access
components Array Array of House components, i.e. sign, doors r/o
items Array Array of Item References in the house r/o
mobiles Array Array of Character References in the house r/o



Item
Parent
UObject
Children
Equipment
Lockable
Map
Multi
Explanation
Represents a physical item in the world.
Members
Name Type Desc Access
amount integer stack size r/o
layer integer equipment layer r/o
container Item item contained in r/o
usescript string double-click action script. set to empty string for itemdesc.cfg default script. r/w
equipscript string script run when item equipped on a character r/w
unequipscript string script run when item unequipped r/w
desc string single click description string r/w
movable boolean true if player may move the item r/w
invisible boolean true if the item is invisible r/w
decayat integer game clock value after which this item might decay r/o
sellprice integer Amount of gold an NPC sells this item for. 0=not for sale, -1=itemdesc default. r/w
buyprice integer Amount of gold an NPC buys this item for. 0=not for sale, -1=itemdesc default. r/w
newbie boolean true if the item remains with the ghost when player dies r/w
item_count integer number of items in container (or 1 if this item is not a container) r/o



Lockable
Parent
Item
Children
Door
Container
Explanation
Class containing concrete subclasses which can 'lock'
Members
Name Type Desc Access
locked boolean true if the item is locked r/w



Map
Parent
Item
Explanation
A Map item that shows a a map image in a gump when double clicked.
Members
Name Type Desc Access
xeast integer east gump edge (world coord) r/w
xwest integer west gump edge (world coord) r/w
ynorth integer north gump edge (world coord) r/w
ysouth integer south gump edge (world coord) r/w
gumpwidth integer width in pixels of map gump r/w
gumpheight integer height in pixels of map gump r/w
Methods
Prototype Returns Desc
getpins() array returns array of structs{x,y} of pins for the map
insertpin(int index, int x, int y) true/error insert pin{x,y} before index
appendpin(int x, int y) true/error append pin{x,y} to end of course
erasepin(int index) true/error erase pin at index



Multi
Parent
Item
Children
House
Boat
Explanation
Special items that display as many pieces of a large structure, as defined in multi.cfg



NPC
Parent
Character
Explanation
A Non-Player Character mobile object
Members
Name Type Desc Access
npctemplate string NPC template name in npcdesc.cfg r/o
master Character controlling player character, false if none r/o
process Script Control script reference, error on none r/o
eventmask integer bitwise-ORd list of sysevents that have been enabled, error if no control script running r/o
speech_color integer NPC speech text color r/w
speech_font integer NPC speech text font r/w
script string control script name r/w
use_adjustments boolean Use movement adjustments to avoid single-tile obsticals r/w
run_speed integer NPC walk delay (maximum 250) r/w
Methods
Prototype Returns Desc
setmaster(CharacterRef master) true/false Sets the master character for the NPC, if not passed, clears master.



Polcore
Explanation
Object containing server data
Members
Name Type Desc Access
itemcount integer Total Item Count r/o
mobilecount integer Total Mobile Count r/o
uptime integer Uptime in seconds r/o
sysload integer System Load r/o
sysload_severity integer System Load Severity r/o
bytes_sent integer Number of bytes sent r/o
bytes_received integer Number of bytes received r/o
version integer Version, i.e. 95 r/o
systime integer UNIX time() r/o
events_per_min integer Events per minute r/o
skill_checks_per_min integer Skill checks per minute r/o
combat_operations_per_min integer Combat operations per minute r/o
error_creations_per_min integer Script errors per minute r/o
tasks_ontime_per_min integer Tasks ontime per minute r/o
tasks_late_per_min integer Tasks late per minute r/o
tasks_late_ticks_per_min integer Tasks late ticks per minute r/o
instr_per_min integer Script instructions per minute r/o
priority_divide integer Priority Divide r/o
verstr string Version String r/o
compiledate string Compile Date r/o
compiletime string Compile Time r/o
packages array Array of enabled package names r/o
all_scripts array Array of all cached script objects r/o
script_profiles array Array of structs: struct have members name, instr, invocations, instr_per_invoc, instr_percent r/o
iostats integer struct of arrays of structs - iostats["sent"array->256 elements of struct["count","bytes"],"received"array->256 elements of struct["count","bytes"]] r/o
queued_iostats array structure same as iostats, but for queued I/O stats r/o
Methods
Prototype Returns Desc
log_profile(bool clear) true/false Writes the script profile to the log, optionally clearing it after.
set_priority_divide(int divide) true/false Sets the priority divide to 'divide'
clear_script_profile_counters() true/false Clears the script profile counters



Script
Explanation
Object representing a script in the system
Members
Name Type Desc Access
pid integer Process ID r/o
name string Script name r/o
state string Script state r/o
instr_cycles integer Instruction Cycles r/o
sleep_cycles integer Sleep Cycles r/o
consec_cycles integer Consecutive Cycles r/o
PC integer Program Counter r/o
call_depth integer Call depth r/o
num_globals integer Number of global variables r/o
var_size integer Number of variables r/o
globals Dictionary Dictionary of global variable name=>value pairs r/o
Methods
Prototype Returns Desc
sendevent(obj event) error/true sends a event to this script (usually a struct)
kill() true Kills this script
clear_event_queue() true clears the event queue of the script



String
Explanation
An ordered collection of ascii (1-byte) characters. Declare with var s := "my string"
Methods
Prototype Returns Desc
[start,length] string 'Substring': returns a new string from the character range between start and length, inclusive. Returns error if index out of range. Ex: var str := "yomama"; str[2,3] would return "oma".
[substr] string/uninit seaches the string for 'substr'. If found, returns the first character of the substring, else uninitialized object.
[substr] := replace_str string finds the first occurance of 'substr' and replaces substr with 'replace_str'. returns the new string.
+ string string concatenates the strings, returns the new string.



Struct
Explanation
Data structure with explicitly named members (keys). Keys may be only be strings. Declare with var s := struct; Pre-intialize with: var s := struct { a := 1, b :=2 }
Methods
Prototype Returns Desc
.+member n/a struct.+member adds a member
.member value gets value of member
[member] value gets value of member ONLY when member is a string! no using integers here like an array.



UObject
Children
Character
Item
Explanation
The base UO Object class
Members
Name Type Desc Access
x integer x coordinate r/o
y integer y coordinate r/o
z integer z coordinate r/o
name String name string (for items use .desc for single-click text) r/w
objtype integer object type as defined in itemdesc.cfg r/o
graphic integer art id number r/w
serial integer unique object identifier r/o
color integer color value (0 to 0xFFF) r/w
facing integer facing or the object (meaningful for mobiles and light-emitting items) range 0-127 r/w
height integer height of the graphic as defined in tiledata.mul r/o
weight integer weight of the graphic as defined in tiledata.mul r/o
multi Multi MultiRef for the Multi the object is on r/o
Methods
Prototype Returns Desc
isa(POLCLASS_*) boolean True if the derived class is the same as the passed class type (see uo.em for all constants)
set_member(string membername, obj value) object, new value of member or error Sets the built-in member 'membername' to 'value'. obj.set_member("name","u suck") is the same as obj.name := "u suck"
get_member(string membername object, value of member or error Gets the value of the built-in member 'membername'. var objname := obj.get_member("name") is the same as var objname := obj.name



Weapon
Parent
Equipment
Explanation
Equipable items that deal damage in combat
Members
Name Type Desc Access
dmg_mod integer Damage Modifier r/w
attribute string Attribute name this weapon uses as a skill r/o
hitscript string Script name that runs when weapon makes a hit r/w




If you know if any information is incorrect on these pages, mail your corrections to racalac@burdell.org

Copyright ©2003 David Carpman, all rights reserved. DO NOT REPRODUCE, MIRROR, ALTER, SPINDLE, MUTILATE, OR SIT ON.