Last Updated: 16. September, 2020
UOX3 Version: v0.99.3a
UOX3 - or Ultima Offline eXperiment 3 - is an open-source server emulator for Ultima Online that allows you to run your own private (or public) UO server where you are in control of what rules apply, what features are available and what type of players will inhibit Britannia.
If you want to dive right in and get started with UOX3, hop on over to the Installation and Setup section.
To see what's new in the latest stable release of UOX3, or to do an in-depth dive into the history of the UOX3 project itself, check out the History and Credits section of this document.
The core features listed below are the heart and soul UOX3, and are what helps UOX3 stand out from the other UO server emulators out there:
Aside from the UO-specific features listed in the next section, UOX3 also comes with a host of custom (and optional) gameplay features that can be customized and tweaked by shard admins to their content:
Aside from the UO-specific features listed in the next section, UOX3 also comes with a host of custom (and optional) gameplay features that can be customized and tweaked by shard admins to their content:
If at any point during your adventures with UOX3 you feel you could use someone to talk to, whether to help you resolve an issue you've encountered or just to have someone to share your journey with, feel free to join and post at the community forums at UOX3.org, or hop onto the UOX3 Discord server if you'd rather have a more direct line of communication with fellow UOX3 users and developers. Or do both!
So, you want to contribute to UOX3, and have your name written into the history books - well, at least into the UOX3 Hall of Fame - for all eternity? Then read on, because you've come to the right place!
It doesn't matter if you're not the world's best programmer, or if you are not well versed in scripting - contributions to UOX3 can come in many forms, and all are equally well received and appreciated.
Examples of areas where contributions can be made, either of which can make a difference:
Any contributions that involve making changes to UOX3 can either be posted in the Submissions - Fixes & Improvements section of the UOX3.org forums, or can be submitted as a Pull Request on UOX3's GitHub page, for those familiar with that workflow. Do note that any such contributions will be reviewed for quality and fit with the project before being accepted and merged into the core UOX3 project.
If it so happens, that your code or script contribution is not approved for inclusion in the core UOX3 project, you can still post it as custom additions/tweaks in other parts of the UOX3.org forums, for other users to download! Alternatively, if your changes are extensive enough, you can do what many others have done before you and branch off the main UOX3 project to create something else entirely!
"Story? You mean UOX3 has LORE?"
Yep! As the only UO Server Emulator, UOX3 comes with its own background story, originally written by Cironian back in 1997/1998. Check it out below!
You knew that the world was ending right now before your eyes, and there was nothing you could do about it anymore. Lord British was dead and the Guardians demon legions were swarming all through the once proud city of Britain. Bodies were lying all around the streets, thieves next to nobles and the former castle guards.
That body which you used to call your own is still bleeding at your slightly transparent feet but it is obviously too late for any kind of medical treatment. Your spells have allowed you to take two of those red abnormities with you, but when the Shadowlord Astaroth approached you, you knew that your last minute has come. You stood paralysed as his dark finger stretched out to your chest and when it touched you, you had left your body even before it hit the ground. You notice that some of those who are falling to the assault of the demons don't even leave a spirit behind anymore; it seems like after his death the magic that Lord British gave to his citizens to survive past their own death is beginning to fade.
Having wandered through the bloody streets for some time you see that there is still some light spilling through the windows of one of the nearby houses. You glance up to the sign above the door and note the symbol of the virtues, the ankh, painted onto it. Even though you ghostly state denies all colors of the world reach you, somehow you still recognize the golden color of the symbol. After thinking for only a moment you reach for the doorknob, only to see your hand go right through it. "Oh, I forgot...", you smile to yourself, these words being only a whisper in the storm of the fighting to those still standing locked in combat with the demonic hordes.
Despite your current disembodied state you take a deep breath and then step right through the closed door.
Inside the building you can make out a few people in grey robes, sitting around a candle like it could protect them from the Guardians assault outside. One of the people seems to note your presense and turns around:
"Ah, another lost soul that has found the way here. With the forces of chaos drawing into this realm, my healing powers are fading from minute to minute, but I might try to give you a new body if you assist me". The healer is beginning to make arcane gestures and you feel a wave of restoring energy rush through your astral body. With the rest of your powers you finally succeed to become physical again.
"This is it", the healer says, "my powers are now completely gone". You place your weak body among the others and listen to the screams outside, although those are becoming less and less by now.
You know that this new life will certainly only last for a couple of minutes, as the magic forces which bind this world together are beginning to fail, with obvious consequences: Lightnings are striking down from the sky by the dozen, giant earthquakes are threatening to tear the land apart and you can almost feel the pure evil power of the Guardian condensing in the air, converting this world to - what? You remember hearing one of the court mages whisper with his dying breath that the Guardian would use conquered worlds to create the Shadowlords. If that is true, then this world is really lost.
You glance out through the window and see one of the black moongates open with more demons stepping out of it. A thought crosses your mind: There can be no place worse than this one, so it might be worth the try. You tell the others that you intend to go through one of those gates to survive the end of this world and most of them agree to try it. You walk over to the door and silently unlock it and open it just so much that you can get a look at a part of the road outside. What you see is terrible. Sweet Dreams Inn is already completely burned down and the ground seems to be painted with blood.
"Now!", you scream as you see another of the black gates open just a few steps away from the door. You hit the door open and start to run, but just a second before you would have reached the gate a demon steps out of it, looking down at you in a quite angry way. You signal the other to run into the gate while you divert the creature, even though you have no idea on how to do that. As it rushes toward you, you notice one of Lord Britishs personal castle guards lying on the ground here. Still in his hand you see one of the famous order shields, magically treated by the King himself. You reach for it and with all your strength hold it in front of you as the demon brings his fist down on you.
The shield is shattered in two under the might of the blow, but by that the magic still inherent in it is released in a brilliant flash of light; not enough to kill the demon, but enough to render it helpless for a moment and you do not need any more time to run between its legs and towards the black gate. Knowing that this world could die any second now you jump through the gate...
You find yourself flying through some sort of dark tunnel; at the end of which you see another world. But you can't say that world appears much better to you than the one you just left, because it looks like the homeland of the demons. Thousands of them are waiting at the exit of the gate and it seems like they have already taken care of those that entered the gate before you. You look back over your shoulder at the place you came from and at the same moment that world ends. Suddendly the gate, having lost one of its exits vanishes, leaving you suspended in the Ethereal Void.
You see millions of stars all around you, except that those are no stars but worlds; just like the one you were born and lived in until this day, and another one of them is now serving the Guardian...
You awaken. You are lying on a perfectly ordinary bed in an absolutely normal room of an inn. You rise to your feet and look out of the window to see the wonderful town of Britain, still quite unharmed as if that which you remember never happened. You get dressed and walk down the stairs of the inn. The first thing you notice is the lack of people that are usually shoving past each other here. On the street you see that this phenomenon is not limited to the inn, but seems to be present all around Britain.
You spin around as you notice a movement in the corner of your eye. Your eyes widen as you see Lord Blackthorne himself standing there as if the Guardians attack on Britannia never happened.
"I guess thou hast questions on your mind", your hear him,"like why thou art here when your memories tell thee that everything must be quite different. The reason for that is that thou art no longer in the world that thou knowest - nor one even like it. As thou possibly knowest, there are thousands of copies of the land called Britannia existing in the shards of Mondains foul gem of immortality. Now, for some reason when the worlds were split from each other, this special world was created without any inhabitants. Now, as the creature calling himself the Guardian conquered other worlds like yours, some people always entered one of the black moongates in the moment of destruction and thus ending up here. Thou mightest call this world the Lost Splinter. Well, I would really like to discuss this matter further with thee, but I am due for a game of chess with Lord British."
"He lives?", you exclaim. "Well, in fact the two of us ended up here when we were fleeing from the world that later became the Shadowlord Nosfentor." His face turns sad: "How fitting to run away from that world which became the embodiment of cowardice... But now I must hasten to the castle. Feel free to take a look around this world. There are not many people here, but at least the ecology yield more than enough food and resources for us few."
As you watch the Lord disappear down the street you start to think. At least you would be safe from the Guardian here - for now. You start to walk through an unusually empty Britain; there is so much to learn about this world, so you might as well start right now.
UOX3 comes with cross-platform support for running on a variety of Windows (~Win7 to Win10), Linux and macOS versions, in both 32bit and 64bit.
Default install size for UOX3 alone clocks in at under 8MB, with an additional 400-500 MB being required for data files from Ultima Online. Total size will grow based on amount of content added to shard. Minimum 1+ GB free storage space recommended.
Default memory usage for an empty shard ranges from 35-50 MB, but will grow based on amount of content added to shard and number of players connected at any given time. Minimum 1+ GB RAM recommended.
It is highly recommended to use the same data files for your UOX3 shard as found in the Ultima Online client you will be connecting to UOX3 with, to minimize the chance of issues related to mismatching files.
UOX3 currently supports client versions ranging from 4.0.0p to at least 7.0.86.x, and requires the following minimum set of UO data files to run: map0.mul/map0LegacyMUL.uop (depending on client version), staidx0.mul, statics0.mul, multi.mul, multi.idx and tiledata.mul. Additional map and statics data files are optional, and required only if you want the other worlds/facets to be available on your shard.
Clients after v7.0.24.2 started using new file format for map files - uop - that previously required conversion to mul format in order to be loaded by UOX3, leading to a recommendation of using a client version earlier than this. However, starting with v0.99.3, UOX3 can now load these uop files directly. No need to convert! If for whatever reason you still want to convert files between the .mul and .uop formats, check out the Additional UOX3 Info > Converting UOP to MUL section!
It is strongly recommended that you download and install a version of Ultima Online before continuing with the download and setup of UOX3 itself. You can either download the latest available Classic Client from the official UO website, or you can head on over to the community forums to read more about UOX3's compatibility with various UO Client versions.
While you're at it, go grab the UO:R Community Edition of Razor, a tool you'll need later to remove the encryption from the UO client, allowing it to connect to UOX3 - which only accepts encryption-less connections.
While UOX3 supports both Linux and macOS, neither the UO client nor Razor run natively on these platforms. As an alternative, have a look at ClassicUO, an open-source, cross-platform client that supports both Linux and macOS, and which does not rely on Razor to work.
To get started with UOX3, you have a couple of different options:
The first, and most straight-forward option is to download the latest stable All-in-One UOX3 package for your platform (Windows/Linux/macOS) from the Downloads page at UOX3.org. It contains all the files you need to get a bare-bones version of UOX3 up and running; a clean slate for you to build on.
If it has been some time since the stable All-in-One package was updated, it might be a better approach to try out the "Experimental Build" sometimes posted on the forums at UOX3.org. These versions contain all the latest changes and additions that have been made to UOX3 since the previous stable release, but could also potentially contain additional bugs and errors due to the "cutting edge" nature.
Note: For either of the two above options, unzip the downloaded file to a folder of your choice, preferably something easy to find and access, like C:\UOX3.
The third option, for more advanced users, would be to download the UOX3 source-code directly from GitHub and compile it yourself. If you're interested in the inner workings of UOX3 and/or potentially want to contribute code-wise, this might be the option for you. See Additional UOX3 Info > Compiling UOX3 Source for further instructions!
If you think the detailed instructions below are too wordy, try this quick start guide instead, and refer to the full setup guide if you run into any problems along the way:
Assuming you now have a UOX3 folder that contains UOX3.exe (Windows only), uox3 binary (Linux/macOS only), some .ini files and a bunch of folders like accounts, dfndata and js, it's time to dig in and get your hands dirty with some ini editing!
Open UOX.INI from the root UOX3 folder using your favourite text editor (Notepad, Notepad++, Sublime Text, Vim, nano, etc.)
Under the [clientsupport] section, enable or disable specific UO client version ranges to determine which versions of the UO client are allowed to connect to your UOX3 shard. As a general rule, try to keep the allowed ranges as narrow as possible to avoid potential issues with different client versions behaving differently. Any clientversion you enable here also enable a range of versions up to the version in the next available setting.
Locate the section called [play server list], which should contain a line similar to this:
SERVERLIST=Default UOX3 Server,127.0.0.1,2593
Replace "Default UOX3 Server" with the name you'd like to use for your UOX3 shard. Keep the name short (below 30 chars); the longer it is, the less likely it will show up in the UO client's server list without being truncated.
If you are running UOX3 on the same computer as your UO client, and you only intend to access the server locally, you can leave the IP address in the SERVERLIST line as is (127.0.0.1). If you intend to have the shard accessible over LAN or the Internet, you need to replace 127.0.0.1 with with your LAN or public Internet IP.
However, instead of replacing the local IP with a LAN/Internet IP, which will restrict you from connecting to the shard locally, you can alternatively add multiple SERVERLIST= lines in the .ini file, each one with a different IP assigned. The below example would allow connections from both local, LAN and Internet sources:
[play server list]
{
SERVERLIST=Local UOX3 Shard,127.0.0.1,2593
SERVERLIST=LAN UOX3 Shard,192.168.1.X,2593
SERVERLIST=Online UOX3 Shard,X.X.X.X,2593
}
2593 is the Port address that your UOX3 shard will be listening for connections on, and can be left as the default value unless you have a specific reason to use another Port.
Scroll down to the [directories] section of the ini file, and locate this line:
DATADIRECTORY=c:/program files/ultima online/
If you're running UOX3 on the same computer as your UO client, point the DATADIRECTORY filepath to the folder where you installed Ultima Online.
If you're running UOX3 on a computer without the UO client installed, point the DATADIRECTORY filepath to a folder that contains the following data-files, copied from the UO Client:
NOTE: The * in the above filenames indicate that there's more than one similarly named files, and the different numbers in each filename represents a different world/facet. If you want your shard to support all the available worlds/facets in the client, make sure to copy all of these files. Alternatively, just copy the files with a 0 in the name, if you just want the original UO map and nothing else - although be aware that in this case players will be unable to go to those additional worlds!
The final step in the UOX3 setup process is to setup the administrator account for your shard! Save and close UOX.INI, and instead navigate your way to the UOX3/accounts/ folder, where you open the file called accounts.adm in your text editor, before locating this section of the file:
SECTION ACCOUNT 0
{
NAME admin
PASS admin
FLAGS 0x8000
PATH ./accounts/admin/
TIMEBAN 0x0
LASTIP 127.0.0.1
CONTACT unknown
CHARACTER-1 0xffffffff [UNKNOWN]
CHARACTER-2 0xffffffff [UNKNOWN]
CHARACTER-3 0xffffffff [UNKNOWN]
CHARACTER-4 0xffffffff [UNKNOWN]
CHARACTER-5 0xffffffff [UNKNOWN]
CHARACTER-6 0xffffffff [UNKNOWN]
CHARACTER-7 0xffffffff [UNKNOWN]
}
This is account #0 on your shard, also known as the administrator account. Any character created on this account will automatically be granted all GM powers. As such, it would be a good idea to change the username and password from the default ADMIN/ADMIN to something more original, creative and most importantly - secure!
Additional accounts can be created by copying an existing SECTION ACCOUNT # and pasting it at the bottom of the file, followed by manually incrementing the account number of the new account to the next available number (1 higher than the previous one). It can be a good idea to create a second, non-admin account to use for testing purposes, as GM/admin characters are often not subject to the same gameplay rules as regular players.
If you make changes to this file while UOX3 is already running, you will have to reload the accounts from UOX3's console menu.
Tip #1 - Adding accounts through newaccounts.adm
A second, alternate way of adding new accounts is to edit - or create, if it doesn't already exist, a file called newaccounts.adm in the same folder, and adding in one line of the following lines (pressing Enter after each) for each account you want to create:
USER=username,password,flags,email
Note that additions to newaccounts.adm only go into effect when the server is restarted.
Tip #2 - Enabling auto-creation of accounts
Finally, you can enable auto-creation of accounts on login by setting the UOX.INI setting INTERNALACCOUNTCREATION from 0 to 1 and restarting your UOX3 shard (or reloading the INI from the UOX3 console menu).
By default, UOX3 comes as a blank slate - a tabula rasa - on which you can build and craft your own unique UO shard. However, should you wish to get a head-start, you can use of the "Default UOX3 Worldfiles" to add basic decorations such as doors and signs for all the mainland UO towns on the Felucca facet (world 0), and/or the "Community-made Spawn.dfn" file that will populate your world with all kinds of NPCs, from animals and monsters to shopkeepers and townfolk.
Note: It is recommended that you download and add these default worldfiles to your shard BEFORE your first startup and before you create your first character, as applying these will essentially overwrite your existing worldfiles and erase any characters or items you might have created already.
Click the Default UOX3 Worldfiles link over at the UOX3.org Downloads-page to download a zip-file containing a default set of world decorations for your shard. Once the download is complete, unzip this file into your UOX3/shared/ folder, overwriting any existing files in that folder.
Click the Community-made Spawn.dfn link over at the UOX3.org Downloads-page to download a zip-file with regional spawns setup to spawn a variety of NPCs across the Felcuca facet (world 0) of your UOX3 shard. Unzip this file into the UOX3/dfndata/spawn/ folder, overwriting any existing (and presumably empty) spawn.dfn file in that folder.
Navigate to the root of your UOX3 folder, and double-click on UOX3.exe to start UOX3.
Open a new terminal window, navigate to the root of your UOX3 directory, and start UOX3 by entering the following command: ./uox3
UOX3 should now start up, and a barrage of text should scroll off your screen as UOX3 loads the various UO data files, DFNs and scripts. Barring any errors during this process, the scrolling should come to a halt with the following lines displayed at the bottom:
| UOX: Startup Complete
o------------------------------------------------------------------------------o
| Thread: CheckConsoleThread has started
If you see these lines, and there were no errors highlighted with a red [failed] during the startup process, your UOX3 shard is now ready to accept its first client connection!
Should you ever need to shut down UOX3 for any reason, it's important that you do it correctly to avoid any loss of data. If you simply close UOX3 using the 'x' in the corner of the window, any changes made since the last worldsave will be permanently lost.
Instead, either use the in-game GM command 'shutdown # (where # is the number of seconds until shutdown), or press * in the UOX3 console to disable safe-mode, followed by either Q or Esc. This will prompt UOX3 to initiate the shutdown process, saving the game world and freeing up used memory.
A couple of things are required to connect and login to your UOX3 shard; an Ultima Online client, and a tool that can remove encryption from said client. Such a tool is needed since UOX3 does not accept connections from encrypted clients.
If you followed the recommendations in the Requirements section up above, you will already have an Ultima Online client installed, and can skip to the next step about Razor. If not - don't panic! Go grab the latest client download - titled Classic Client - from the official UO website and install it, or visit the UOX3 community forums to read more about different UO client versions/expansions and compatibility with UOX3.
With a UO client downloaded and installed, it's time to take care of the encryption. Go grab the UO:R Community Edition of Razor if you haven't already. It's being regularly maintained and updated, unlike the original Razor. Once installed, start it!
After a short wait, you'll be greeted by a welcome screen. Unless you encounter any issues, or you have multiple UO Client versions installed, just leave the Load Client part at 2D Client (Auto Detect). Make sure Patch client encryption is checked, and that the IP and Port matches what you setup for UOX3 in UOX.INI. If running client and server on same computer, the default UOX3 settings are 127.0.0.1 as IP and 2593 as Port.
Once basic setup of Razor is complete, click the Okay button to launch the UO client. At this point you are now ready to enter your UOX3 username and password and log in!
Note for Linux/macOS (and even Windows) users: An alternative to the regular UO client and Razor, neither of which run natively on Linux or macOS, is the ClassicUO client - an open-source, cross-platform client that can be used to connect to UOX3 without Razor - though it still requires the original UO data files to run, so you'll need to figure out a way to get those files over to your Linux/macOS machine.
ClassicUO is a cross-platform (Windows, Linux, macOS), open source implementation of the Ultima Online Classic Client that runs faster, smoother and with more features and customizability than the original UO client. Some of the interesting features it offers:
Check it out at the ClassicUO Website or @ GitHub!
Once your UOX3 shard has successfully started up (and importantly, remains running), and the UO client has loaded the login screen after you started it using a tool like Razor, you are ready to log in to your UOX3 shard for the first time.
Enter the same username and password that you added in UOX3/accounts/accounts.adm during the initial UOX3 setup, and click Login. Select your UOX3 shard from the server listing that appears, and proceed through character creation to create your first character. Note that if you are logging in using the first account listed in accounts.adm - account 0 - all characters created on this account will automatically receive GM powers!
Great! You have a character. Now what?
If you're playing on the first account listed in UOX3\ACCOUNTS\accounts.adm (as you should), your characters will be classified as "admin" characters with automatic access to all Game Master and Admin powers and commands. However, the character doesn't quite look the part yet!
Let's start by turning your character into a proper Game Master. Type the following command into the UO client (don't forget the command prefix at the start of the command!):
'make gm
Once you hit Enter, your regular UO mouse cursor (a hand) will be replaced by a targeting cursor, so go ahead and target your own character, who should now get a nice, new, shiny red GM robe, which also grants the awesome, ultimate destructive power of... being able to walk through doors. For admin characters, who already have access to all commands, this is more of a formality than anything else.
By default, the command prefix character used at the start of every GM command in UOX3 is set to '. You can change this command prefix via a setting called COMMANDPREFIX in UOX.INI if you'd rather use something else.
Should you not be happy with the colour of your new robe, you can give it a facelift using the following command:
'dye
Once you target your character - or any other dynamic object in the game world - a menu (referred to in UO as a GUMP) will pop up, allowing you to choose a colour to apply to the targeted object.
Items you see in-game can usually be divided into two broad categories - dynamic and static items.
Static items are a permanent addition to the map, and can be seen even when logged into an otherwise empty shard. These items cannot be removed, modified or moved around without the use of specialized, 3rd party map-editing tools.
Dynamic items, on the other hand, are items you add to the game world, ones you can remove, move and manipulate. These are the decorations you place out, the doors that can be opened and the items in your backpack and equipped on your character's paperdoll. Some other emulators refer to these items (and characters) under the umbrella term mobiles.
If you want to revert back to looking like a normal player, or if you want to strip another player of their GM powers, you can use this command to reverse the process (don't worry, as an admin you'll still retain all your GM powers!):
'make player
The make command has a third variant, which allows you to assign someone as a Counselor for your shard. Like for GMs, the role of Counselor comes with a fancy robe, but a blue one instead of the GM's red:
'make cns
Someone who has been made a Counselor will have access to some - but not all - GM powers, in particular those that involve responding to player help requests and travelling around the game world.
As with the command to turn someone into a GM, be careful who you deal out such power to. Remember: Power tends to corrupt, and absolute power corrupts absolutely!
Some of the most important GM commands to learn are the ones that allow you to traverse across Britannia and other realms in the blink of an eye, and the ones that provide you with information about where you are at any given point of time.
The 'where command will show you the current in-game coordinates of your character, in the format of x, y, z, worldNumber, instanceID. If you walk around for a bit in the game, and use the command a couple more times, you might notice these coordinates changing. Before moving on to the next step, use where again, but this time make a note of the first three values. You'll need them soon!
Next, as an exercise, try out the following GM commands to see what they do:
'tele
'travel
'goplace 1
'goplace 20
Now that you have travelled the world, been places, maybe seen things you can never forget... it's time to return to your roots. Let's go back to the starting point, the location you were at when you used the where command earlier:
'go x y z (replace x y and z with the values you got from the 'where command)
UOX3 has many other commands that allow you to manipulate the coordinates of both characters and items in various ways, but these basic few are your bread and butter, the ones you'll keep coming back to in order to get things done.
With the basics of travel commands under your belt already, it's time to move on to something a bit more interesting: Learning how to add objects like items and NPCs to your UOX3 shard! Your go-to tool for this will be the add command, which is a multi-purpose command that can be used in a variety of ways.
Let's jump right in using the following command:
'add
A GUMP menu system should now pop up, listing items and NPCs categorized by function and purpose. Select "Gear" from the menu, then "Clothing" from the next sub-menu, then "Headwear", before finally selecting "feathered hat". This last selection will close the GUMP menu, and add the selected object - in this case a feathered hat - into your character's backpack.
Open the backpack by double-clicking your character, then double-clicking the backpack in the character paperdoll that pops up, or by using the default UO shortcut key - alt+i. Next, click and drag the feathered hat out of your backpack and onto the character paperdoll to equip it. Congratulations! You are now a GM wearing a feathered hat.
This "add-menu" can be used to add a variety of items to the game. Some are gear, like the feathered hat, some are decorations that you drag out of your backpack and place in the game-world somewhere, and some are tools or resources used by your character's skills - like a pickaxe for mining, or a hammer for blacksmithing.
While adding items to your world, you might encounter a situation where the items you add won't highlight when you move your mouse cursor over them, and they cannot be picked up or dragged around, perhaps due to the item's movable state makes it immovable. The quickest way to overcome this issue is to use the following command, which will allow you to move all dynamic objects regardless of their immovable state:
'allmove on
You can also add NPCs using the same command. Open the add-menu again using the same 'add command, and select "NPCs" from the menu. Next, select "Monsters", followed by "Humanoids", and finally "Orc". A targeting cursor will be presented, and once you select a spot in the game world, an Orc will appear.
Since you're a GM with unlimited power, you are by default invulnerable to damage, so the Orc won't even bother attacking you, but will just start wandering around aimlessly. However, should you wish to engage the Orc in a fight, you can disable your invulnerability through the make player command from earlier, or the following command:
'invul false
If you bit off more than you could chew, and the Orc actually ended up killing your character, and you're now stuck in the bleak, grey realm of the dead - despair not! There's a command for that:
'resurrect
Target the ghost of any dead player character using this command to instantly bring them back to life!
Adding objects through the add-menu is all swell and good, but it can be a bit cumbersome and slow, especially if the items you need are nested deep inside some sub-menu! Thankfully there are faster ways of adding these objects. As long as you know the ID of the object you want to add, you can use the add command to add these objects directly without needing to slog through any menus!
Try the following two commands:
'add item 0x171A
'add npc orc
Both of the above examples should provide you with a targeting cursor to let you choose exactly where to add the item with ID 0x171a (feathered hat) or the NPC with id "orc" (Orc, duh). What if you don't know the ID of the object, though?
To find the ID of an object that you want to add, you can either look it up in the DFN files under the UOX3\DFNDATA\ITEM or UOX3\DFNDATA\NPC folders, or you can use an in-game command that is also a powerful GM tool for adjusting the properties of objects - the tweak command.
Try using this command to find the ID of the feathered hat or the Orc that you previously added:
'tweak
Take note of the ID displayed in the GUMP menu that pops up, and compare it to the ID you supplied to the add command above.
Both items and NCPs can be removed using the remove command, which will bring up a targeting cursor to let you select which object to remove. Try it now, and target either the Orc or the feathered hat you previously dragged to your character's paperdoll:
'remove
As soon as you target an object, said object will be instantly and permanently removed from view and deleted from the game world!
What is covered in the previous few sections of this document just barely scratches the surface of all there is to learn, know and do in UOX3, and it would be impossible to cover everything without writing a long novel of an instruction manual.
From here on out, it's up to you to really dig into the guts of UOX3 to explore, discover, learn and eventually grok UOX3 completely. Fret not, however! You still have tools like these your disposal to ease your journey:
The command list contains detailed information on each and every command available in UOX3. If you're unsure about the specifics of a certain command, this is where you go. It can be found in the next section below, titled Additional UOX3 Info.
Extensive documentation is also available for each major feature supported by UOX3. Go to the Feature Documentation section of this document if you want to dig into the various systems.
The JS Engine docs provide details of all the various events/triggers, methods, functions and properties that you can make use of in your JS scripts to make your shard come to life.
The community forums at UOX3.org contains many resources for both coding, scripting and managing your UOX3 shard. It can also be a great place to have a discussion on topics that don't require an immediate and instant response.
Join the UOX3 community on Discord for a more direct line of communication with fellow UOX3 users and developers. Forums are great, but often it can be more efficient to have direct, near real-time conversations with other people.
Using the above tools, and through the magic of friendship and community, there is nothing you cannot accomplish in UOX3 if you set your mind to it.
The settings listed below can be found in uox.ini in the root UOX3 data folder, and can be modified and reloaded dynamically while UOX3 is running. After making a change, simply use the 'reloadini command in-game, or console command '1' after unlocking the UOX3 console by pressing '*'.
SERVERNAME=Default UOX3 Server
Servername used to support UOG Info Request.
PORT=2593
Port number that server listens on for connections.
NETRCVTIMEOUT=0
The time it takes for a connection to be dropped if no packets are received.
NETSNDTIMEOUT=3
Not in use.
NETRETRYCOUNT=0
The number of times a network recieve will be attempted before it throws an error.
CONSOLELOG=1
Allows various levels of logging; 0 = none, 1 = errors/warnings, 2 = errors/warnings + all speech
CRASHPROTECTION=1
Number of crash restart attempts before stopping - Not in use.
COMMANDPREFIX='
Character that acts as the command prefix.
ANNOUNCEWORLDSAVES=1
Determines if world-saves are announced.
JOINPARTMSGS=1
Determines if player join/part messages are enabled.
BACKUPSENABLED=0
Determines if backups are enabled.
BACKUPSAVERATIO=5
Number of saves before a backup occurs.
SAVESTIMER=300
Number of seconds between world saves.
ACCOUNTISOLATION=1
Not in use.
UOGENABLED=0
Determines if support for the UOGateway Info Request Service is enabled.
RANDOMSTARTINGLOCATION=0
If 1, new player characters start in a random starting location instead of one they choose during character creation.
ASSISTANTNEGOTIATION=0
If 1, UOX3 will attempt to negotiate features with the player's assist-tool (Razor, AssistUO, etc). Negotiate, in this context, means tell the assist tool what features to disable! See [disabled assistant features] for a list of features that can be disabled.
KICKONASSISTANTSILENCE=0
If 1, UOX3 will disconnect players who's clients (or assist tools, rather) don't respond to the request to negotiate features.
CLASSICUOMAPTRACKER=0
If 1, UOX3 will respond to ClassicUO client's WorldMap packet request for party/guild member location info.
Note that each of these settings represents a range of client versions, ranging from the one specified to the next one just before the next available setting. So CLIENTSUPPORT4000 ranges from v4.0.0.0 until whichever the last version before v5.0.0.0 (CLIENTSUPPORT5000) was.
NOTE: While it is possible to enable login-support for all the ranges of client-versions listed below, how well they will work depends very much on what version of the datafiles are used on the server. It is highly recommended to restrict client-support to whichever range of versions is closest to the client-version the datafiles in use on the server are from.
CLIENTSUPPORT4000=0
Enables login-support for all clients in the 4.0.x range
CLIENTSUPPORT5000=0
Enables login-support for all clients in the 5.0.x range
CLIENTSUPPORT6000=0
Enables login-support for clients from 6.0.0 to 6.0.4.x
CLIENTSUPPORT6050=0
Enables login-support for clients from 6.0.5.0 to 6.0.14.x
CLIENTSUPPORT7000=0
Enables login-support for clients from 7.0.0.0 to 7.0.8.x
CLIENTSUPPORT7090=0
Enables login-support for clients from 7.0.9.0 to 7.0.15.x
CLIENTSUPPORT70160=0
Enables login-support for clients from 7.0.16.0 to 7.0.23.x
CLIENTSUPPORT70240=0
Enables login-support for clients from 7.0.24.0 to 7.0.29.x
CLIENTSUPPORT70300=0
Enables login-support for clients from 7.0.30.0 to 7.0.33.0
CLIENTSUPPORT70331=1
Enables login-support for clients from 7.0.33.1 to 7.0.45.64
CLIENTSUPPORT704565=1
Enables login-support for clients from 7.0.45.65 to 7.0.60.x
CLIENTSUPPORT70610=1
Enables login-support for clients from 7.0.61.0 and above
SERVERLIST=Default UOX3 Server,127.0.0.1,2593
Series of server entries for shard list. Multiple entries supported, each with different name, IP and Port.
SKILLLEVEL=5
Global difficulty level for crafting items. 1=Easiest, 5=Default, 10=Difficult.
SKILLCAP=7000
Total number of skillpoints available for each player.
SKILLDELAY=5
Number of seconds that must pass after a skill is used, before another skill can be used.
STATCAP=325
Total number of statpoints available for each player.
EXTENDEDSTARTINGSTATS=1
Toggles whether to allow the extended starting stats (90 statpoints in total) for new characters created with client versions 7.0.16+
EXTENDEDSTARTINGSKILLS=1
Toggles whether to allow the fourth starting skill (and 120 skillpoints in total) for new characters created with client versions 7.0.16+
MAXSTEALTHMOVEMENTS=10
Max number of steps allowed with stealth skill at 100.0
MAXSTAMINAMOVEMENTS=15
Max number of steps allowed while running before stamina is reduced.
SNOOPISCRIME=0
Determines if snooping is a crime or not.
ARMORAFFECTMANAREGEN=1
Toggles whether or not armor affects mana regeneration rate
CORPSEDECAYTIMER=900
Amount of time for a corpse to decay.
WEATHERTIMER=60
Amount of time between changing light levels (day cycles).
SHOPSPAWNTIMER=300
Amount of time between shopkeeper restocks.
DECAYTIMER=300
Amount of time a decayable item will remain on the ground before disappearing.
INVISIBILITYTIMER=60
Duration of the invisibility spell.
OBJECTUSETIMER=1
Amount of time a player must wait between using objects.
GATETIMER=30
Duration of a summoned moongate.
POISONTIMER=180
Duration of the poison effect on a character.
LOGINTIMEOUT=300
Amount of time for an idle connection to time out.
HITPOINTREGENTIMER=8
Amount of time required to regenerate a single point of health.
STAMINAREGENTIMER=3
Amount of time required to regenerate a single point of stamina.
MANAREGENTIMER=5
Amount of time required to regenerate a single point of mana.
BASEFISHINGTIMER=10
Base time for fishing skill to complete an attempt at fishing.
RANDOMFISHINGTIMER=5
Max random time for fishing skill to complete.
SPIRITSPEAKTIMER=30
Duration of the spirit speak skill.
PETOFFLINECHECKTIMER=600
Sets the interval in seconds between checks for the player offline time.
DIRECTORY=./
Root UOX3 directory
DATADIRECTORY=C:/Program Files/Ultima Online/
Where UOX3 looks for the UO data files.
Minimum required data files: map0.mul/map0LegacyMUL.uop, multi.idx, multi.mul, staidx0.mul, statics0.mul, tiledata.mul
Optional data files: map(1-5).mul/map(1-5)LegacyMUL.uop, mapdif(0-2).mul, mapdifl(0-2).mul, stadif(0-2).mul, stadifi(0-2).mul, stadifl(0-2).mul, staidx(1-5).mul, statics(1-5).mul
DEFSDIRECTORY=./dfndata/
Where UOX3 looks for the DFN-files.
BOOKSDIRECTORY=./books/
Where UOX3 saves the .bok files for books.
ACTSDIRECTORY=./accounts/
Where UOX3 looks for/saves account files.
SCRIPTSDIRECTORY=./js/
Where UOX3 looks for Javascripts
BACKUPDIRECTORY=./archives/
Where UOX3 backs up worldsaves.
MSGBOARDDIRECTORY=./msgboards/
Where UOX3 stores bulletin-board messages.
SHAREDDIRECTORY=./shared/
Where UOX3 stores the worldfiles.
ACCESSDIRECTORY=./accounts/
Where UOX3 looks for/saves account files.
HTMLDIRECTORY=./html/
Where UOX3 generates serverstatus-HTML-files
LOGSDIRECTORY=./logs/
Where UOX3 saves server logs.
DICTIONARYDIRECTORY=./dictionaries/
Where UOX3 looks for dictionary-files.
LOOTDECAYSWITHCORPSE=1
Determines if loot decays along with corpses or not.
GUARDSACTIVE=1
Determines if guards are enabled globally or not.
DEATHANIMATION=1
Determines if the Deathanimation is played when a player dies.
AMBIENTSOUNDS=5
Ambient sounds, from 1 - 10. Higher value means ambient sounds are played less often.
AMBIENTFOOTSTEPS=0
Determines if the footstep-sounds hardcoded in UOX3 are used or not (different sounds on different tiles).
INTERNALACCOUNTCREATION=0
If enabled, new accounts are created automatically when someone logs in with an unknown username.
SHOWOFFLINEPCS=1
If enabled, offline PCs can be seen by GMs.
ROGUESENABLED=1
If enabled, then the stealing skill is enabled.
PLAYERPERSECUTION=0
If enabled, dead players can attack living ones, and thus drain their mana.
ACCOUNTFLUSH=0
How often (in minutes) online accounts are checked to see if they really ARE online.
HTMLSTATUSENABLED=-1
If > 0 then UOX3 generates server-status pages in the HTML directory.
SELLBYNAME=0
Determines if items are sold by their name, not just ID/Colour.
SELLMAXITEMS=5
Maximum number of items that can be sold to a vendor at a time.
TRADESYSTEM=0
Determines if the Tradesystem is enabled or not (fluctuation of vendor prices across regions - check documentation for Advanced Trade System.)
RANKSYSTEM=1
If enabled, item creation allows for variable quality of items.
CUTSCROLLREQUIREMENTS=1
If enabled, there is no skill requirements for casting spells from scrolls.
NPCTRAININGENABLED=1
If enabled, NPCs can train player-characters.
HIDEWILEMOUNTED=1
If enabled, a character can hide/stealth while mounted.
WEIGHTPERSTR=3.5
How much weight per point of STR a character can hold.
POLYDURATION=90
Duration of the polymorph spell.
CLIENTFEATURES=1021183
Can be used to enable/disable specific expansion-related client-side features. See clientfeatures List for details:
(0x01) 1: Enable T2A support (chat-button, lost lands)
(0x02) 2: Enable UO:R support (Felucca/Trammel)
(0x04) 4: Enable TD support (First 3D client, Ilshenar)
(0x08) 8: Enable LBR support (skills, maps, MP3s, LBR monsters in 2D client)
(0x10) 16: Enable AoS support (necro/palas, malas map, resistances, weapon abilities, AoS monsters, detailed tooltips) (Not implemented)
(0x20) 32: Enable Sixth Character Slot support
(0x40) 64: Enable SE support (ninja/samurai, spells, skills, tokuno-map)
(0x80) 128: Enable ML support (elves, spells, skills)
(0x100) 256: Enable (basic) KR support (2D client only, up to 6.0.14.1)
(0x200) 512:Enable the Ninth Age splash screen and crystal/shadow housing tiles
(0x400) 1024:Enable the Tenth Age
(0x800) 2048:Enable increased housing and bank-storage
(0x1000) 4096:Enable 7th character slot
(0x2000) 8192:Enable KR faces (Not implemented)
(0x4000) 16384:Enable Trial Account (Not implemented)
(0x8000) 32768: Live (non-trial) Account. Since client 4.0 this bit has to be set, otherwise bits 3..14 are ignored.
(0x10000) 65536: Enable SA features: gargoyle race, spells, skills, housing tiles (Partially implemented)
(0x20000) 131072: Enable HS features (Not implemented)
(0x40000) 262144: Enable Gothing housing tiles
(0x80000) 524288: Enable Rustic housing tiles
(0x100000) 1048576: Enable Jungle housing tiles
(0x200000) 2097152: Enable Shadowguard housing tiles
(0x400000) 4194304: Enable Time of Legends features (Not implemented)
(0x800000) 8388608: Enable Endless Journey account (Not implemented)
The above flags can be mixed and matched to enable specific features on the client (depending on client version). Simply add together the decimal numbers of the desired features, and put the end-result in the CLIENTFEATURES tag.
SERVERFEATURES=4584
Can be used to enable/disable specific expansion-related server-side features. See serverfeatures List for details:
(0x01) 1: Unknown
(0x02) 2: IGR
(0x04) 4: OneChar - One char per account only, Siege Perilious style,
(0x08) 8: ContextMenus
(0x10) 16: LimitChar - Limit amount of chars, combine with OneChar
(0x20) 32: AoS - Enable Tooltips, fight system book
(0x40) 64: SixChars - Six character slots
(0x80) 128: SE
(0x100) 256: ML
(0x200) 512: Unknown2 - added with UO:KR launch
(0x400) 1024: Send UO3D client type? client sends 0xE1?)
(0x800) 2048: Unknown3 - added sometime between UO:KR and UO:SA
(0x1000) 4096: SeventhCharacterSlot
(0x2000) 8192: Unknown4 - added with UO:SA launch
(0x4000) 16384: new movement system (Not implemented)
(0x8000) 32768: Unlock new Felucca faction-areas (Not implemented)
The above flags can be mixed and matched to enable specific features on the server. Simply add together the decimal numbers of the desired features, and put the end-result in the SERVERFEATURES tag.
OVERLOADPACKETS=1
Toggles whether or not JS can handle incoming/outgoing network packets
ADVANCEDPATHFINDING=1
Enables/disables the A* Pathfinding routine for NPCs
LOOTINGISCRIME=1
Toggles whether looting (innocent/blue) corpses is a crime or not
BASICTOOLTIPSONLY=0
If enabled, tooltips will only show name and weight of items
GLOBALITEMDECAY=1
Toggles decay on/off on a global scale. Does not remove decay flag from items, only stops them from decaying
SCRIPTITEMSDECAYABLE=1
Toggles default decay status of DFN items. Can be overriden by DECAY tag in item-DFNs
BASEITEMSDECAYABLE=0
Toggles default decay status of base items. Can be overriden by DECAY tag in harditems.dfn
ITEMDECAYINHOUSES=0
Toggles default decay status of non-locked down items in multis (houses and boats). Defaults to off.
PAPERDOLLGUILDBUTTON=1
Toggles whether or not the Guild-button on the paperdoll can be used as a shortcut for interacting with guildstones. Defaults to on.
FISHINGSTAMINALOSS=2
Sets the amount of stamina lost when fishing.
CHECKITEMS=1.5
How often (in seconds) items are checked for decay and other things.
CHECKBOATS=0.65
How often (in seconds) boats are checked for motion and so forth.
CHECKNPCAI=1
How often (in seconds) NPCs can execute an AI routine.
CHECKSPAWNREGIONS=30
How often (in seconds) spawn regions are checked for new spawns.
NPCMOVEMENTSPEED=0.6
Allows customization of NPC movement speed. Can be overridden by WALKINGSPEED tag in NPC-DFNs
NPCRUNNINGSPEED=0.2
Allows customization of NPC running speed. Can be overridden by RUNNINGSPEED tag in NPC-DFNs
NPCFLEEINGSPEED=0.4
Allows customization of NPC fleeing speed. Can be overridden by FLEEINGSPEED tag in NPC-DFNs
NPCSPELLCASTSPEED=1
Used to adjust how often NPCs cast spells in combat. Global setting, defaults to 1. Can be finetuned per NPC using SPADELAY DFN tag.
GLOBALATTACKSPEED=1
Used to adjust the attack speed globally for all characters. Defaults to 1. Can be finetuned per NPC via DEX stat in DFNs.
POSTINGLEVEL=0
If 0, only GMs can post on Bulletin Boards, otherwise free for all.
REMOVALLEVEL=0
If 0, only GMs can remove posts on Bulletin Boards, otherwise free for all.
ESCORTENABLED=1
If 1, NPC escorting is enabled.
ESCORTINITEXPIRE=900
Amount of time until an escort-NPC will vanish while waiting for someone to start escorting it.
ESCORTACTIVEEXPIRE=600
Amount of time until an escort NPC will vanish while a player is escorting it.
ESCORTDONEEXPIRE=600
Amount of time until an escort NPC will vanish when it has reached it's destination.
DUNGEONLEVEL=3
Specifies the light-level of Dungeon-areas.
BRIGHTLEVEL=0
Specifies the brightest light-level in the day/night cycles.
DARKLEVEL=5
Specifies the darkest light-level in the day/night cycles.
SECONDSPERUOMINUTE=5
Number of real seconds per UOX3 minute.
BASERANGE=10
Minimum range even a novice can track from.
BASETIMER=30
Tracking timer - maximum time a GrandMaster can track someone.
MAXTARGETS=20
Maximum number of targets that can be tracked.
MSGREDISPLAYTIME=30
How often (in seconds) the tracking message is redisplayed.
MURDERDECAYTIMER=60
Amount of time before a permanent murder count will decay.
MAXKILLS=4
Maximum number of kills before turning red.
CRIMINALTIMER=120
Amount of time a character remains criminal after committing a criminal act.
MINECHECK=1
Type of mining check performed - 0 = anywhere, 1 = mountains/cavefloors, 2 = region based (not working)
OREPERAREA=10
Maximum number of ores in a given resource area.
ORERESPAWNTIMER=600
Amount of time it takes for 1 single ore to respawn in a resource area.
ORERESPAWNAREA=10
Number of ore-areas to split the world into.
LOGSPERAREA=3
Maximum number of logs in a given resource area.
LOGSRESPAWNTIMER=600
Amount of time it takes for 1 single log to respawn in a resource area.
LOGSRESPAWNAREA=10
Number of log-areas to split the world into.
HUNGERRATE=6000
Amount of time a player has before his hunger level decreases.
HUNGERDMGVAL=2
Amount of damage applied if hungry and below threshold.
PETHUNGEROFFLINE=1
Toggles whether pets should hunger while the player (owner) is offline or not.
PETOFFLINETIMEOUT=5
Sets the time in days for when an offline player's pet becomes wild again.
MAXRANGE=10
Maximum range (in tiles) at which combat can occur.
ARCHERRANGE=7
The range at which NPC archers stop charging their target in combat (default 7).
SPELLMAXRANGE=10
Maximum range (in tiles) at which spells can be cast.
DISPLAYHITMSG=1
If 1, hit messages are displayed in combat.
DISPLAYDAMAGENUMBERS=1
If 1, damage numbers are displayed above characters in combat.
MONSTERSVSANIMALS=1
If 1, monsters can attack animals.
ANIMALATTACKCHANCE=15
The chance of animals being attacked by monsters (0-100)
ANIMALSGUARDED=0
If 1, animals are under the protection of town guards.
NPCDAMAGERATE=2
NPC Damage divisor - PCs sustain less than NPCs. If a PC, damage is 1/value.
NPCBASEFLEEAT=20
% of HP where an NPC will flee from combat, if it's not defined for it already in the DFNs.
NPCBASEREATTACKAT=40
% of HP where an NPC will resume attacking, if it's not defined for it already in the DFNs.
ATTACKSTAMINA=-2
Amount of stamina lost when hitting an opponent.
ATTACKSPEEDFROMSTAMINA=1
If 1, attack speed in combat is derived from stamina instead of dexterity.
SHOOTONANIMALBACK=0
If 1, archery from horseback is possible.
COMBATEXPLODEDELAY=2
The amount of time it takes for the damage from the Explosion spell to be inflicted on the target.
WEAPONDAMAGECHANCE=17
The chance (in %) of weapons taking damage in combat.
WEAPONDAMAGEMIN=0
The min amount of damage (randomized) weapons can take if it takes damage in combat.
WEAPONDAMAGEMAX=1
The max amount of damage (randomized) weapons can take if it takes damage in combat.
ARMORDAMAGECHANCE=33
The chance (in %) of armor taking damage in combat.
ARMORDAMAGEMIN=0
The min amount of damage (randomized) armor can take if it takes damage in combat.
ARMORDAMAGEMAX=1
The max amount of damage (randomized) armor can take if it takes damage in combat.
Startlocations used by the character-creation process in the client. Fixed amount of locations, using the following format: LOCATION=TOWN,BUILDING,X,Y,Z,WORLD,INSTANCE,CLILOCMSG (description of town)
Default setup:
LOCATION=Yew,Center,545,982,0,0,1075072
LOCATION=Minoc,Tavern,2477,411,15,0,1075073
LOCATION=Britain,Sweet Dreams Inn,1495,1629,10,0,1075074
LOCATION=Moonglow,Docks,4406,1045,0,0,1075075
LOCATION=Trinsic,West Gate,1832,2779,0,0,1075076
LOCATION=Magincia,Docks,3675,2259,26,0,1075077
LOCATION=Jhelom,Docks,1492,3696,0,0,1075078
LOCATION=Skara Brae,Docks,639,2236,0,0,1075079
LOCATION=Vesper,Ironwood Inn,2771,977,0,0,1075080
STARTGOLD=1000
Amount of gold a new PC starts with.
STARTPRIVS=0
Starting privileges of new characters (UNUSED).
TITLECOLOUR=0
Default text colour for titles in gumps.
LEFTTEXTCOLOUR=0
Default text colour for left text in gumps (2 column ones).
RIGHTTEXTCOLOUR=0
Default text colour for right text in gumps (2 column ones).
BUTTONCANCEL=4017
Default Button ID for cancel button in gumps.
BUTTONLEFT=4014
Default Button ID for left button (navigation) in gumps.
BUTTONRIGHT=4005
Default Button ID for right button (navigation) in gumps.
BACKGROUNDPIC=2600
Default Gump ID for background gump.
POLLTIME=3600
Time (in seconds) for which a town voting poll is open.
MAYORTIME=36000
Time (in seconds) that a PC would be a mayor.
TAXPERIOD=1800
Time (in seconds) between periods of taxes for PCs.
GUARDSPAID=3600
Time (in seconds) between payments for guards.
AF_FILTERWEATHER=0
Weather Filter
AF_FILTERLIGHT=0
Light Filter
AF_SMARTTARGET=0
Smart Last Target
AF_RANGEDTARGET=0
Range Check Last Target
AF_AUTOOPENDOORS=0
Automatically Open Doors
AF_DEQUIPONCAST=0
Unequip Weapon on spell cast
AF_AUTOPOTIONEQUIP=0
Un/Re-equip weapon on potion use
AF_POISONEDCHECKS=0
Block heal If poisoned/Macro IIf Poisoned condition/Heal or Cure self
AF_LOOPEDMACROS=0
Disallow Looping macros, For loops, and macros that call other macros
AF_USEONCEAGENT=0
The use once agent
AF_RESTOCKAGENT=0
The restock agent
AF_SELLAGENT=0
The sell agent
AF_BUYAGENT=0
The buy agent
AF_POTIONHOTKEYS=0
All potion hotkeys
AF_RANDOMTARGETS=0
All random target hotkeys (Not target next, last target, target self)
AF_CLOSESTTARGETS=0
All closest target hotkeys
AF_OVERHEADHEALTH=0
Health and Mana/Stam messages shown over player's heads
AF_AUTOLOOTAGENT=0
The autoloot agent (AssistUO)
AF_BONECUTTERAGENT=0
The bone cutter agent (AssistUO)
AF_JSCRIPTMACROS=0
Javascript macro engine (AssistUO)
AF_AUTOREMOUNT=0
Auto remount after dismount (AssistUO)
AF_ALL=0
Every feature possible
Most of the commands below can be executed by GameMasters or Administrators only, but some are also usable by regular players. To make changes to who can access a particular command, check the RegisterCommand() line at the top of every command script in the UOX3\js\commands folder, or the UOX3\dfndata\commands\commands.dfn file for commands that are still hardcoded.
In both cases, the number associated with a given command makes it available to either admins (5), GMs (2), Counselors (1) or Players (0). These default command levels can be modified in UOX3\dfndata\commands\commands.dfn.
d - Decimal number
x, y, z - Coordinates in decimal numbers
h - Hexdecimal number, often in the form of 0x####
s - String
text - Text to send with the command
target - A target is required.
on / off - Used to toggle settings
nothing - Command that accepts params, but can function without them
Note that commands are non-case-sensitive, and are shown in camelCase here just for readability's sake.
The character of the player using this command performs the specified animation. See NPCAction list for possible actions!
Command: 'action
Parameters: (h/d) (hex or decimal)
Example: 'action 1
Opens GM Add-menu if no parameters provided, or adds raw item if provided with hex-id, while item adds specified item from item-dfns, npc adds specified NPC from npc-dfns, and spawner adds a specified item from the item-dfns, to function as a spawner.
Command: 'add
Parameters: (nothing) / (h) / item (s) / npc (s) / spawner (s)
Examples:
'add npc orc
'add 0x04a9 (add raw wooden floor tile)
'add item 0x171a (add feathered hat)
Adds an account. First string is username, seconds is password, hex parameter is privs (if any).
Command: 'addAccount
Parameters: (s s h)
Example: 'addAccount testuser testpass 0x0
With no parameters, it adds a backpack (if missing) to any targeted character. Using either string or HEX hexid will add the specified item (string = from dfns, hex = from tiledata) to targetted player's backpack.
Command: 'addPack
Parameters: (target) / (s) / HEX (h)
Examples:
'addPack (add backpack to targeted character)
Adds a new raw item to your current location.
Command: 'addX
Parameters: (h)
Example: 'addX 0x04a9
Broadcasts text to all players online with command level of 3 and above.
Command: 'adminYell
Parameters: (text)
Example: 'adminYell Hello fellow admins!
Enables or disables a GMs ability to pick up all objects.
Command: 'allMove
Parameters: on / off
Example: 'allMove on
Enables or disables global announcement of worldsaves.
Command: 'announce
Parameters: on / off
Example: 'announce off
Used to perform other commands on all items within a targeted area.
Command: 'areaCommand
Parameters: dye (h) /
wipe /
incX (d) /
incY (d) /
incZ (d) /
setX (d) /
setY (d) /
setZ (d) /
setType (d) /
newbie (d) /
setScpTrig (d) /
movable (d)
Example: 'areaCommand dye 0x83ea
Animates a harmless lightning bolt on target.
Command: 'bolt
Parameters: (target)
Opens a specified website in user's default browser.
Command: 'browse
Parameters: (s)
Sets the brightest lightlevel in the day/night-cycles (Day: 0x00. Traditional OSI night: 0x09. Pitch black: 0x1F)
Command: 'brightLight
Parameters: (d / h)
Opens the "buy"-gump for specified vendor.
Command: 'buy
Parameters: (target)
Deletes all corpses and temporary moongates in the world.
Command: 'cleanup
Counselor Yell - Announces a message to all with Counselor privileges or above.
Command: 'cnsYell
Parameters: (text)
Example: 'cnsYell Everyone meet up at Counselor HQ in 10 minutes!
Manually executes commands normally triggered from scripts like menus.dfn, item DFNs, etc. Most are already available as stand-alone commands.
Command: 'command
Parameters: (cmd param)
addItem (itemID)
addSpawner (spawner ID)
cPage (text)
gmMenu (menu ID)
gmPage (text)
gCollect
goPlace (location ID)
guiInformation
itemMenu (item menu ID)
information
makeMenu (crafting menu ID)
polymorph (skin ID)
sysMessage (text)
skin (colour)
version
webLink (url)
Examples:
'command addItem 0x171a (add a feathered hat in inventory)
'command cPage Hello, anyone there? (adds a help request in Counselor queue)
'command gmMenu 1 (opens gmMenu 1 from menus.dfn - same as gmMenu command)
'command guiInformation (shows same server info gump as from help menu)
'command makeMenu 1 (opens makeMenu 1 from create DFNs)
'command sysMessage Event starts in 10 minutes, at Castle British! (sends system message to all players)
Just displays some colourful stuff in the UOX3 console, just a test command =)
Command: 'consoleTest
Shortcut command to make targeted item a container, and set it to nondecay and movable 2.
Command: 'cont
Parameters: (target)
Perform various tasks relating to the Counselor Queue; Go to next call in the queue, clear the current call, go to current call, transfer current call to GM queue.
If nothing is specified, the Counselor Queue will be displayed.
Command: 'cq
Parameters: (nothing) / next / clear / curr / transfer
Opens a gump displaying the stats of the targeted character.
Command: 'cStats
Parameters: (target)
Sets the darkest lightlevel in the day/night cycles (Day: 0x00. Traditional OSI night: 0x09. Pitch black: 0x1F)
Command: 'darkLight
Parameters: (d / h)
Enables decay for the targeted item, after which it will follow regular rules for item decay.
Command: 'decay
Parameters: (target)
Deletes the targeted player-character.
Command: 'deleteChar
Parameters: (target)
Deletes ALL items in the world with specified ID.
Command: 'delID
Parameters: (h)
Disconnects player connected to the specified socket.
Command: 'disconnect
Parameters: (d)
Sets the default lightlevel for dungeon areas (Day: 0x00. Traditional OSI night: 0x09. Pitch black: 0x1F)
Command: 'dungeonLight
Parameters: (d / h)
Duplicates a targeted item either once (if no amount specified) or d times
Command: 'dupe
Parameters: (nothing / d) (target)
Dyes an item or character the specified colour, or brings up the dye menu if no colour is specified.
Command: 'dye
Parameters: (h) (target)
Targeted character (and character being fought) will stop fighting.
Command: 'endFight
Parameters: (target)
Find item at specified layer on targeted character.
Command: 'findItem
Parameters: (d / h) (target)
Attempts to fix incorrect Z coordinates, or teleports character to specified Z.
Command: 'fix
Parameters: (nothing) / (h)
Replaces legacy spawner objects that have incorrect item type
Command: 'fixSpawn
Used to specify which player (target 1) an NPC (target 2) should follow when in NPCWANDER-mode 1.
Command: 'follow
Parameters: (target 1) > (target 2)
Brings up an interactive list of online users.
Command: 'forceWho
Freezes the targeted object to the ground so it cannot be moved/picked up (also see: unfreeze)
Command: 'freeze
Parameters: (target)
Sets all temporary stats (hp, mana, stamina) on targeted character to full.
Command: 'fullStats
Parameters: (target)
Creates a moongate using the location set on targeted rune.
Command: 'gate
Parameters: (target)
Returns serial of the multi that the targeted object belongs to (is inside), if any.
Command: 'getMulti
Parameters: (target)
Forces "Garbage Collection" routine to delete objects in the deletion queue. May cause unstability when used manually, be careful about using this command on a live server!
Command: 'gCollect
Parameters: (nothing)
Gets ammoeffect on a bow - the ID of the moving effect that is played when bow is fired at a target. Also see setAmmoEffect command.
Command: 'getAmmoEffect
Parameters: (target)
Gets ammotype on a bow - the ID of the items the bow uses as ammo. Also see setAmmoType command.
Command: 'getAmmoType
Parameters: (target)
Displays the current ingame lightlevel.
Command: 'getLight
Parameters: (nothing)
Retrieves and displays value of the specified tagname from a target, if such a tag has been set. Also see settag.
Command: 'getTag
Parameters: (s) (target)
Example: 'getTag tempTag
Gives glowing property to a targeted object.
Command: 'glow
Parameters: (target)
Opens the specified "Help" menu from menus.dfn.
Command: 'gmMenu
Parameters: (d)
Displays a list of all online GMs.
Command: 'gms
Parameters: (nothing)
Broadcasts message to all online GMs.
Command: 'gmYell
Parameters: (text)
Teleports you to specified coordinates, or to a specific character based on their serial (in 4 parts) or to a location (place) from locations.dfn.
Command: 'go
Parameters: (x y z) / (x y z world) / (x y z world instance) / char (h h h h) / place (d)
Examples:
'go 5600 1200 0 0 (teleports you to Green Acres - the expansive, empty, grassy fields in the dungeon/lost lands area of the Felucca map)
'go 0 0 0 1 (teleports you to the top left corner of the map on Trammel - ocean as far as the eye can see!)
'go place 1 (Go straight to jail, do not pass go, do not collect 200 gold coins)
Opens GM Queue if no parameters are used. next goes to next call in the queue, clear clears the call you are currently on, curr goes to the call you are currently on.
Command: 'gq
Parameters: (nothing) / next / clear / curr
Enables/Disables town guards globally.
Command: 'guards
Parameters: on / off
Opens the specified Gump menu from gumps.dfn.
Command: 'gumpMenu
Parameters: (d)
Fully heals targeted character.
Command: 'heal
Parameters: (target)
Permanently hides targeted character. Also see unhide command.
Command: 'hide
Parameters: (target)
Enables or disables the display of houses as houseicons (deeds) instead of multis.
Command: 'houseIcons
Parameters: on / off
Opens a list of commands, with explanations of how to use each specific command.
Command: 'howTo
Parameters: (nothing)
Increments the X value of target by specified amount (can be a negative number).
Command: 'incX
Parameters: (d) (target)
Increments the Y value of target by specified amount (can be a negative number).
Command: 'incY
Parameters: (d) (target)
Increments the Z value of target by specified amount (can be a negative number).
Command: 'incZ
Parameters: (d) (target)
Displays info about the targeted map tile.
Command: 'info
Parameters: (target)
Displays a gump with information on the targeted item.
Command: 'iStats
Parameters: (target)
Opens specified item-menu.
Command: 'itemMenu
Parameters: (d)
Deletes all items NOT inside the specified area (coordinates or target area if no coordinates specified).
Command: 'iWipe
Parameters: (x1 y1 x2 y2) / (nothing) (target)
Jails the targeted character for specified amount of time in seconds (defaults to 100000s if no value provided). Also see release command.
Command: 'jail
Parameters: (target) / (d) (target)
Kicks targeted player off the server.
Command: 'kick
Parameters: (target)
Kills character, or removes specified item from character.
Command: 'kill
Parameters: char (target) / hair (target) / beard (target) / pack (target) / layer (d / h) (target) /
Kills specified percentage of ALL characters in the world, and broadcasts text.
Command: 'killAll
Parameters: (d) (text)
Link two doors together so that if one is opened, both will open. Also see unLinkDoors command.
Command: 'linkDoors
Parameters: (target1) (target2)
Loads the default uox.ini settings.
Command: 'loadDefaults
Parameters: (nothing)
Changes privileges of targeted character to either gm, counselor or player
Command: 'make
Parameters: gm (target) / cns (target) / player (target)
Turns a basic NPC into a shopkeeper, adding in the appropriate layers all the required bags needed for buying and selling items
Command: 'makeShop
Parameters: (target)
Refills mana of targeted character.
Command: 'mana
Parameters: (target)
Marks a recall rune at the character's current location.
Command: 'mark
Parameters: (target)
Opens a gump displaying useful information on UOX3's memory usage.
Command: 'memStats
Parameters: (nothing)
Sets speed of targeted character to specified hex value (0x0 Normal, 0x1 Mounted, 0x2 Slow (walk only), 0x3 Hybrid ("jog"?), 0x4 Frozen).
Command: 'moveSpeed
Parameters: (h)
Plays the specified midi/mp3 file. Note that you can only switch what music plays every so often.
Command: 'music
Parameters: (d)
The exact music available is dependent on which UO client version you're using. No matter which version you're using, you will find a file called Config.txt under the [path to UO]\Music\Digital\ subfolder, which lists out the available music, from 0-67 (v5.0.0b to v6.0.1.10?), 0-87 (v7.0.8.2 to v7.0.20.0+) or 0-102 (v7.0.30.1 to v7.0.86.2).
Set the server minecheck status to either 0 (everywhere), 1 (only on mountainsides and cave floors) or 2 (miningregions only).
Command: 'mineCheck
Parameters: (d)
Moves targeted item into your backpack.
Command: 'moveToBag
Parameters: (target)
Mutes targeted player for specific amount of time, if any. If character is already muted, unmutes.
Command: 'mute
Parameters: (target) / (d) (target)
Account Management. No parameters will open a list of all accounts. Or would, rather, if it was fully implemented. :P
Command: 'nAcct
Parameters: (nothing) / add / ban edit / view / list /
Disables decay for targeted item. Also see decay command.
Command: 'noDecay
Parameters: (target)
Makes targeted character perform specified animation.
Command: 'npcAction
Parameters: (d) / (h)
Sets bounding circle (x y radius) for targeted NPC.
Command: 'npcCircle
Parameters: (d d d)
Sets bounding box (x1 y1 x2 y2) for targeted NPC.
Command: 'npcRect
Parameters: (x1 y1 x2 y2)
Opens targeted player's bank box.
Command: 'openBank
Parameters: (target)
Opens specified layer on character, or the backpack if none specified.
Command: 'openLayer
Parameters: (nothing) / (d / h) (target)
Displays some information about UOX3's performance.
Command: 'pDump
Parameters: (nothing)
Polymorph yourself into specified creature body.
Command: 'poly
Parameters: (d) / (h)
Displays the current bulletin board posting mode for the players.
Command: 'post
Parameters: (nothing)
Adds item of specific hex-id at multiple targeted locations.
Command: 'rAdd
Parameters: (h) (multiple target locations)
Adds item of specified item-id from DFNs at multiple targeted locations.
Command: 'rAddItem
Parameters: (s) (multiple target locations)
Adds npc of specified npc-id from DFNs at multiple targeted locations.
Command: 'rAddNpc
Parameters: (s) (multiple target locations)
Dyes multiple targeted objects with specified color.
Command: 'rDye
Parameters: (h) (multiple targets)
Teleports your character to the location marked on a targeted rune.
Command: 'recall
Parameters: (target)
Teleports character to its current location. Potentially useful for players to refresh screen if encountering any visual glitches.
Command: 'refresh
Parameters: (nothing)
Get information on current region player is in. Also see xRegionInfo command.
Command: 'regionInfo
Parameters: (nothing)
Forces either ALL or specified spawnregions to spawn new objects.
Command: 'regSpawn
Parameters: (d) / all
Releases targeted character from jail.
Command: 'release
Parameters: (target)
Deletes targeted item/NPC.
Command: 'remove
Parameters: (target)
Turns the targeted shopkeeper back into a normal character, removing the specific backpacks used for buying and selling items.
Command: 'removeShop
Parameters: (target)
Renames targeted object to specified text.
Command: 'rename
Parameters: (text) (target)
Writes out a bugreport to a file.
Command: 'reportBug
Parameters: (text)
Teleports character to its current location, and resends self to all nearby players.
Command: 'resend
Parameters: (nothing)
Forces all spawners in the world to run through a respawn cycle and spawn new objects.
Command: 'respawn
Parameters: (nothing)
Forces a manual vendor restock. if all is specified, restocks all vendors to maximum. If not, does normal restock.
Command: 'restock
Parameters: all / (nothing)
Resurrects targeted character from the dead.
Command: 'resurrect
Parameters: (target)
Increases X value of multiple targets by specified amount (can be a negative number).
Command: 'rIncX
Parameters: (multiple targets)
Increases Y value of multiple targets by specified amount (can be a negative number).
Command: 'rIncY
Parameters: (multiple targets)
Increases Z value of multiple targets by specified amount (can be a negative number).
Command: 'rIncZ
Parameters: (multiple targets)
Tiles a random item from [startID] to [endID] of the specified [hue] at the (optional) specified [Z], with an (optional) [movable true/false] state.
Command: 'rndTile
Parameters: (d / h) (d / h) (d / h) (z) (true / false) (target location 1) (target location 2)
Removes multiple targeted items without having to reenter command.
Command: 'rRemove
Parameters: (multiple targets)
Lets the player teleport to multiple targeted locations in a row without having to reenter command.
Command: 'rTele
Parameters: (multiple target locations)
Sets multiple targeted objects to specified type without having to reenter command.
Command: 'rType
Parameters: (d) (multiple targets)
Forces a worldsave.
Command: 'save
Parameters: (nothing)
Sets the number of real-world minutes that pass for each UO minute.
Command: 'secondsPerUoMinute
Parameters: (d)
Opens the sell-menu of targeted shopkeeper.
Command: 'sell
Parameters: (target)
Sets property of targeted object to specified value.
Command: 'set
Parameters: (variable, see below)
Syntax:
Base Objects (Characters, Items, Spawners)
color/colour (h) - Sets the hue of the object.
dex (d) - Sets dex of targeted character/dex-requirement for wielding targeted item.
fame (d) - Sets the fame of the object.
id (h) - Sets the ID (art) of the object.
int (d) - Sets int of targeted character/int-requirement for wielding targeted item.
karma (d) - Sets the karma of the object.
kills (d) - Sets the number of kills of the object.
name (s) - Sets the name of the object.
owner (target x 2) - Sets the owner of the object.
str (d) - Sets str of targeted character/str-requirement for wielding targeted item.
tempdex (d) - Debug command to fix erroneous dexterity bonus on a character
tempint (d) - Debug command to fix erroneous intelligence bonus on a character
tempstr (d) - Debug command to fix erroneous strength bonus on a character
visible (d) - Sets the visibility level of the object (0=Visible, 1=Hidden, 2=Magically Invisible, 3=Visible to GMs only).
x (d) - Sets the X coordinate of the object.
y (d) - Sets the Y coordinate of the object.
z (d) - Sets the Z coordinate of the object.
Characters
advobj (d) - Sets the advancement type the character has used.
allskills (d) - Sets all of the character's skills to specified value.
armor/armour (d) - Set the armour level of the character.
dir (d) - Sets the direction of a character, or lightradius of a lightsource-item.
cantrain (d) - Toggle NPC's ability to train PCs (0 = false, 1 = true)
commandlevel (d) - Sets the commandlevel of the targeted player.
font (d) - Sets the speech font type of the character.
frozen (d) - Toggles characters ability to move (0 = not frozen, 1 = frozen)
invulnerable (d) - Toggles the character's invulnerability (0 = false, 1 = true)
maxhp (d) - Sets the maximum HP of the character.
maxmana (d) - Sets the maximum MANA of the character.
maxstamina (d) - Sets the maximum STAMINA of the character.
npcai (d) - Sets the NPCAI type of the character
npcwander (d) - Sets the NPCWander mode of the character (0 = none, 1 = follow, 2 = free, 3 = box, 4 = circle)
orgskin (h) - Sets the original skin of the character.
poison (d) - Sets the poison strength of the character.
[skillname] (d) - Sets the specified skillpoints for specified skillname.
spattack (d) - Sets the SPAttack value of the character.
spdelay (d) - Sets the SPDelay value of the character.
split (d) - Amount of creatures an NPC can split into.
splitchance (d) - Chance of NPC splitting when hit.
title (s) - Sets the title of the character.
totame (d) - Sets the skill required to tame a creature.
toprov (d) - Sets the skill required to provoce a creature.
topeace (d) - Sets the skill required to peacemaking a creature.
vulnerable (d) - Makes a creature vulnerable or not (0=invulnerable, 1=vulnerable).
Items
amount (d) - Sets the amount in a pile of items.
buyvalue (d) - Sets item buy value.
decayable (d) - Toggles item's decay status (0 = not decayable, 1 = decayable)
desc (d) - Sets the item description (as displayed on tooltips, on player vendors)
def (d) - Sets the item's armorvalue.
devinelock (d) - Toggles item's devine lock status (0 = not locked, 1 = locked)
hidamage (d) - Sets the maximum amount of damage done with a weapon.
layer (d) - Sets the layer this item will be equipped at.
lodamage (d) - Sets the minimum amount of damage done with a weapon.
more (h) - Sets item's "more" value.
morex (h) - Sets item's "morex" value.
morey (h) - Sets item's "morey" value.
morez (h) - Sets item's "morez" value.
morexyz (h h h) - Sets item's morex, morey and morez values.
movable (d) - Toggles items ability to be moved (0 = default, 1 = movable, 2 = not movable, 3 = locked down)
name2 (s) - Sets items name2 value (for use with Item-ID).
newbie (target) - Makes targeted item a newbie/blessed item.
restock (d) - Sets amount of a targeted item to restock on a shopkeeper.
sellvalue (d) - Sets item sell value
type (d) - Sets item's TYPE.
weight (d) - Sets an item's weight (100 = 1.00 stone)
wipable (d) - Toggles items wipeable status (0 = false, 1 = true)
Spawners
spawnsection (s) - Sets the script section for spawner to pull data from.
mininterval (d) - Sets the minimum spawn interval.
maxinterval (d) - Sets the maximum spawn interval.
Sets ammoeffect on a bow - the ID of the moving effect that is played when bow is fired at a target. Also see getAmmoEffect command.
Command: 'setAmmoEffect
Parameters: (h) (target)
Sets ammotype on a bow - the ID of the items the bow uses as ammo. Also see getAmmoType command.
Command: 'setAmmoType
Parameters: (h) (target)
Sets the level of poison a character is infected with.
0 - not poisoned
1 - lesser poison
2 - poison
3 - greater poison
4 - deadly poison
Command: 'setPoisoned
Parameters: (d)
Sets your bulletin board posting type.
global - makes your next post appear in all bulletin boards.
regional - makes your next post appear in all bulletin boards in your current region.
local - makes your next post appear only on the next bulletin board you use.
Command: 'setPost
Parameters: global / regional / local
Sets your character's race to specified raceid.
Command: 'setRace
Parameters: (d)
Assigns specified scriptID to targeted object.
Command: 'setScpTrig
Parameters: (d)
Sets the restock rate of all shops in the world (in minutes)
Command: 'setShopRestockRate
Parameters: (d)
Used to assign a value to a specified tag on a targeted object.
Command: 'setTag
Parameters: (s) (d)
Sets the current UO time in hours and minutes.
Command: 'setTime
Parameters: (d d)
Plays the specified sound effect.
Command: 'sfx
Parameters: (d)
Displays type info for targeted dynamic item.
Command: 'showDetail
Parameters: (target)
Display the serial number of every character on screen.
Command: 'showIDs
Parameters: (nothing)
Opens a gump displaying the skills of targeted character.
If parameter is 0, will use base skill and display only those skills greater than 0.
If 1, will use base skill and display all skills.
If 2, will use actual skill and display only those skills greater than 0.
If 3, will use actual skill and display all skills.
Command: 'showSkills
Parameters: (d)
Displays the current UO time.
Command: 'showTime
Parameters: (nothing)
Initiates server shutdown sequence in d minutes.
Command: 'shutdown
Parameters: (d)
Changes the hue of your character's skin to specified color.
Command: 'skin
Parameters: (d) / (h)
Kills all characters spawned by specified spawnregion.
Command: 'spawnKill
Parameters: (d)
Same as Mute command; it "squelches" (mutes) targeted character either indefinitely or for a specified amount of seconds.
Command: 'squelch
Parameters: (target) / (d) (target)
Rejuvinates targeted character's stamina to full.
Command: 'stamina
Parameters: (target)
Opens the HTML status information gump.
Command: 'status
Parameters: (nothing)
Teleports you to the targeted location.
Command: 'tele
Parameters: (target)
Moves targeted object to targeted location.
Command: 'teleStuff
Parameters: (target1) (target2)
Sends a message to the user logged into the specified socket slot.
Command: 'tell
Parameters: (d) (text)
Displays the current temperature.
Command: 'temp
Parameters: (nothing)
Tiles the specified item over a targeted area. If coordinates are specified(x1 x2 y1 y2), will tile the item inside those coordinates.
Command: 'tile
Parameters: (h) (target1) (target2) / (h x1 y1 x2 y2)
Displays the current in-game time.
Command: 'time
Parameters: (nothing)
Shortcut for opening itemMenu 6000 - which is the GM Travel-menu.
Command: 'travel
Parameters: (nothing)
Opens the tweak menu allowing you to modify many settings on the targeted object.
Command: 'tweak
Parameters: (target)
Character will completely undress all equipped items.
Command: 'undress
Parameters: (nothing)
Allows targeted object to move/be moved. Also see freeze command.
Command: 'unfreeze
Parameters: (target)
Removes the glowing attribute from an object which has it. Also see glow command.
Command: 'unglow
Parameters: (target)
Shows a player who has previously been permanently hidden. Also see hide command.
Command: 'unhide
Parameters: (target)
Displays all valid commands for your character.
Command: 'validCmd
Parameters: (nothing)
Displays your current x, y, z coordinates as well as world number and instance ID.
Command: 'where
Parameters: (nothing)
Displays a list of all online players, what slot they're connected to, and their serial number.
Command: 'who
Parameters: (nothing)
Displays a gump of all online (if no parameter) or offline (if OFF) players on your shard.
Command: 'whoList
Parameters: off / (nothing)
Wipes items inside specified area, or everything in the game world of specific type. If no parameters are provided, area can be chosen with targeting cursors.
Command: 'wipe
Parameters: (nothing) (target1) (target2) / (x1 y1 x2 y2) / all / items / npcs
Displays information on an NPC's wander mode.
Command: 'wStats
Parameters: (target)
If you specify a single number, teleports player logged into that slot to you. If you specify nothing it brings up targeting cursor to target player to tele to you. If you specify a serial number, teleports player wih that serial to you.
Command: 'xTeleport
Parameters: (d) / (nothing) / (h h h h)
Opens a gate to a specified location from locations.dfn
Command: 'xGate
Parameters: (d)
Sends targeted player to specified location from location.dfn, or to a specific set of coordinates with optional world and instance parameters.
Command: 'xGo
Parameters: (d) / (x y z) / (x y z world) / (x y z world instance)
Get information on current region a target character is in. Also see regionInfo command.
Command: 'xRegionInfo
Parameters: (target)
Makes targeted character/item say specified text.
Command: 'xSay
Parameters: (text) (target)
Broadcasts text to all players online with command level of 0 and above.
Command: 'yell
Parameters: (text)
Example: 'yell Hello all players!
Resets all players' kills back to 0.
Command: 'zeroKills
Parameters: (nothing)
The UOX3 server console provides some useful commands for shard admins that can be executed locally without logging onto the shard with a client. These commands can be executed with shortcut keys after the console has been unlocked by pressing the * key on your keyboard. Note that the shortcut keys below are not case-sensitive.
* - Locks/Unlocks Console.
? - Displays console command list.
C - Displays some basic server setting information.
Y - Console broadcast. Will broadcast a system message entered in console, to all online players.
1 - Reloads uox.ini.
2 - Reload user accounts to import new accounts added to newaccounts.adm
3 - Reload regions from regions.dfn.
4 - Reload spawn regions from spawn.dfn.
5 - Reload spells from spells.dfn.
6 - Reload commands.
7 - Reload all DFN files.
8 - Reload all JavaScripts.
9 - Reload HTML Templates.
0 - Reload everything that can be reloaded.
! - Save account data. Normally done during world saves.
@ - Save world data, and import new accounts added to newaccounts.adm.
P - Display performance dump with details about server performance.
W - Display list of players currently online.
M - Display information about UOX3's memory usage.
T - Schedule a server shutdown in 10 minutes, with in-game announcement.
F - Dump information about DFN Priority Maps to file in root UOX3 folder.
D - Disconnect player connected to first socket connection on server.
K - Disconnect ALL players.
Z - Disable network logging.
TODO
TODO
Upon startup, UOX3 will attempt to load map and statics files based on the parameters provided in UOX3/dfndata/maps/maps.dfn. It is important that the map sizes (in height and width) defined in this file match up to the actual files being loaded. Note that the default sizes match up with map files present in v5.0.0a and newer.
To make UOX3 load maps of a different size, make sure to update the X and Y sizes in this file accordingly!
UOX3/dfndata/maps/tiles.dfn allows overriding flags/properties stored in tiledata.mul for different tiles in UO, which UOX3 uses for various purposes such as determining whether a surface is walkable, climbable (ladders) or blocks line of sight. It is most commonly used to address various issues with tiles, such as missing or incorrect flags, without having to modify the tiledata.mul file itself.
Example of syntax:
[TILE 0x0AA4] // Tile ID
{
BLOCKING=1 // Tiledata flag, on (1)
STANDABLE=0 // Tiledata flag, off (0)
}
CTile Properties
WEIGHT - Default weight
HEIGHT - Default height
LAYER - Default layer
HUE - Default hue
QUANTITY - Default quantity
ANIMATION - Default animation
NAME - Default name
BaseTile Flag 1
ATFLOORLEVEL - Background
HOLDABLE - Weapon
SIGNGUILDBANNER - Transparent
WEBDIRTBLOOD - Translucent
WALLVERTTILE - Wall
DAMAGING - Damaging
BLOCKING - Impassable
LIQUIDWET - Wet
// BaseTile Flag 2
UNKNOWNFLAG1 - Unknown
STANDABLE - Surface
CLIMBABLE - Bridge
STACKABLE - Generic/Stackable
WINDOWARCHDOOR - Window
CANNOTSHOOTTHRU - No Shoot
DISPLAYASA - Prefix A
DISPLAYASAN - Prefix An
// BaseTile Flag 3
DESCRIPTIONTILE - Internal (things like hair, beards, etc)
FADEWITHTRANS - Foliage
PARTIALHUE - Partial Hue
UNKNOWNFLAG2 - Unknown
MAP - Map
CONTAINER - Container
EQUIPABLE - Wearable
LIGHTSOURCE - LightSource
// BaseTile Flag 4
ANIMATED - Animated
NODIAGONAL - No Diagonal
UNKNOWNFLAG3 - Unknown
WHOLEBODYITEM - Armour
WALLROOFWEAP - Roof
DOOR - Door
CLIMBABLEBIT1 - Stair Back
CLIMBABLEBIT2 - Stair Right
In UO Client v7.0.24.2, a new fileformat was introduced - UOP, that would eventually replace some of the files using the old MUL format. Amongst the files converted were the various map*.mul files, which became map*LegacyMUL.uop files. At the time, and before the different UO emulators (including UOX3) added support to load this new fileformat, prospective shard admins had to convert those .uop files back to .mul files before they could be used.
Thankfully, creative souls came up with several tools that could be used to convert UO data files between these two file formats, for instance UOFiddler and LegacyMULConverter-N.
Do take note, that starting with UOX3 v0.99.3, these .uop files can be read by UOX3 directly without a need to convert them to back to the original format first. No need to convert! Should you for whatever reason still want to convert the map files back to .mul files, for instance to use them with an older version of UOX3, or to load them in a map-editing tool that doesn't support the newer format, here follows a quick guide on how you can do just that, using UOFiddler:
Before doing anything else, locate your UO folder and copy all the .UOP files from that folder and into a new folder of your choice, so you don't mess with the original files in the UO client - just in case something goes horribly wrong.
Second, download the latest version of UOFiddler from the link above, unzip it, and start UOFiddler.
Second, click Settings > Path Settings and make sure that the path to your UO folder is correct in the window that pops up. If you need to correct the path, use the Set path manual button and locate your UO folder.
Next, hit Settings > Reload Files to have UOFiddler reload the data files from the path you selected.
Once this is done, either use the small arrow buttons in the top right corner of UOFiddler to navigate to the far right tab called UOP Packer, or expand the size of the window until you see and can click that tab.
Select the folder you copied the .UOP files into previously, using the file picker or by typing the path into the text-field, then select Extract UOP to MUL and hit Start.
After around 15-30 seconds, UOFiddler should have finished converting the UOP files in your temporary folder to MUL files!
Note that this process also works in reverse! If you have made any changes to the .mul files and want to convert them back to .uop to have them be read by the client, just follow the same procedure except choose Pack MUL to UOP in the last step instead!
Follow the steps below for your preferred platform if you wish to download and compile the UOX3 source directly from GitHub yourself.
If you'd rather grab another branch of the git repository, like the develop branch where most updates get pushed first before being merged into the master branch, you can click the Current branch dropdown menu in GitHub Desktop and select the branch you wish to check out.
This option will let you use Visual Studio solution/project files to compile both UOX3 and SpiderMonkey with Visual Studio's default VC++ compiler. Note that you can download the Free Community Edition of Visual Studio if you don't have it already. This approach also embeds SpiderMonkey directly inside UOX3 for a slightly larger (~1-2MB) executable, instead of requiring a separate DLL file, and comes with options for compiling either 32-bit or 64-bit (default) versions of UOX3.
If VS give you link errors when attempting to build UOX3, references to SpiderMonkey might have gone missing! Try the following steps to add them back.
This option requires installing the Visual Studio toolset named Linux development with C++ and the component called Visual C++ tools for CMake and Linux. Use the Visual Studio Installer to modify your install of Visual Studio if you don't already have these installed! This approach compiles SpiderMonkey to a separate DLL (js32.dll) file that needs to live inside the same folder as the main UOX3 executable, and currently only supports compiling a 32-bit version of UOX3.
Once this process is done, you can copy your new UOX3.exe (and if using CMake, js32.dll) file from the appropriate output folders (depending on which method and configuration you used) to the root folder of your actual UOX3 project. You'll also need to copy the files and folders contained within the data subfolder of the UOX3 repository, if you don't already have these.
It is recommended to run your UOX3 shard from a separate, dedicated folder instead of the data folder in your local UOX3 git repository, to avoid potential git conflicts and accidental overwrites when pulling updates to UOX3 from GitHub in the future.
Once you have all the files in place, you can follow the regular steps listed under Installation and Setup > Configuring Your UOX3 Shard to finish your UOX3 setup!
First step, open a new terminal and enter the following commands:
If you'd rather grab another branch of the git repository, like the develop branch where most updates get pushed first before being merged into the master branch, you can use the following command *after* completing the previous step: git checkout develop
You'll need a couple tools before you can compile UOX3 on Linux, like GNU Make (4.2.1 or higher recommended) and gcc. Install these through your favourite package manager or through your flavour of Linux' variant of the following terminal command (specific to Debian/Ubuntu Linux flavours):
Once these tools are in place, navigate to the UOX3 project directory in your terminal and execute the following commands from the project's root directory, in order:
If you don't wish to rely on the automake.sh script, but want control over the process yourself, follow these steps (same as what automake.sh does):
Once this process is done, you will find the compiled uox3 binary in the root UOX3 directory. You can copy this binary to the directory you intend to run your UOX3 shard from, along with all the files and folders contained in the UOX3/data/ subdirectory.
It is recommended to run your UOX3 shard from a separate, dedicated directory instead of the data directory in your local UOX3 git repository, to avoid potential git conflicts and accidental overwrites when pulling updates to UOX3 from GitHub in the future.
This is an example of how to copy all required files to a directory called UOX3 in your user account's home directory
Once you have all the files in place, you can follow the regular steps listed under Installation and Setup > Configuring Your UOX3 Shard to finish your UOX3 setup.
Why? Where? Who? When? What?
While one of UOX3's goals is to emulate the functionality and features of the official Ultima Online servers and allow anyone to run a server of their own, another is to allow its users to tweak all aspects those features, and even to create new ones altogether - either through UOX3's JavaScript scripting engine (based on a SpiderMonkey-implementation of JavaScript) or by modifying the source-code for UOX3 directly.
Nothing. Anyone who wants can download and use UOX3 for free!
UOX3 is licensed under v2 of the GNU General Public License (GPL), with the following addendum:
"In addition to that license, if you are running this program or modified versions of it on a public system you HAVE TO make the complete source of the version used by you available or provide people with a location to download it."
UOX was the first incarnation of the UO Server emulator, and was created by a fellow nicknamed Jaegermeister. It was short-lived, however, and Cironian aka Marcus Rating rewrote it and released it as UOX2.
Later on he rewrote UOX2 completely and released UOX3 - which he eventually also open-sourced - which is still the same version we're using now, though quite a lot has changed since then, and a lot of people have contributed to what we're using right now.
Disclaimer: This should not be considered as legal advice - it was not written by and is not the opinion or the advice of a lawyer
Running an UOX3 shard, developing the UOX3 code, distributing the UOX3 program - all that is perfectly legal. There are some more complicated issues however, when it comes to client-files distribution (custom maps, specific versions of client.exe, etc). I suggest you read up on the following document, written by Knox: legality.txt (Note that this should not be considered as legal advice!)
There can be a number of different reasons for why you are unable to connect to a UOX3 shard. Here are some of the most common ones:
You're trying to connect to UOX3 using an encrypted UO client
Make sure you remove/patch away the UO client encryption through the use of Razor or a similar programs before trying to connect to a UOX3 shard. UOX3 will only accept clients with no encryption.
You set the IP and/or Port incorrectly in UOX.INI
Having the wrong IP or Port in UOX.INI will give you a connection-error when you try to select the UOX3 shard in your client's server-list. The initial connection that checks for user-name/password might still go through, but not the server-selection part.
You set the IP and/or Port incorrectly in Razor/other tool used to start the client
If you set the wrong IP to connect to in Razor/other tool you use to start the client, you will not be able to connect to the UOX3 shard at all, it will just give a connection-error immediately. If you set the correct IP but the wrong Port, you will be able to connect and verify your user-name/password, but will not be able to connect to the chosen server in the client's server-list.
The UO client computer's firewall is blocking outgoing connections
The computer you're running the UO client on might be blocking outgoing connections, either through firewalls (like the built-in Windows firewall) or through 3rd-party security/antivirus-software. Try to disable whichever software might be blocking the outgoing connection temporarily to see if the connection is then allowed to go through, and/or include the UO client-executable and/or outgoing IP/Port in the exclusion-rules for these softwares.
The UOX3 shard computer's firewall is blocking incoming connections
The computer that's running the UOX3 software might be blocking incoming connections, either through software firewalls (like the built-in Windows firewall) or through 3rd-party security/antivirus-software. Try to disable whichever software might be blocking the incoming connection temporarily to see if the connection is then allowed to go through, and/or include the UOX3 software and/or incoming IP/Port in the exclusion-rules for these softwares.
The UOX3 shard computer's router is not setup to forward incoming connections properly
If you're trying to connect to the UOX3 shard from an external computer through the Internet, you might have to setup the UOX3 shard computer's Internet-router (if one is present) to forward incoming connections on the specified UOX3 port (2593 by default), to the internal LAN/local-IP of the UOX3 shard computer.
Various parts of UOX3 such as combat calculations, weapon/armor values etc are roughly based around UO from the time just before (archive.org) the Age of Shadows expansion (Publish 17) was released. NPC stats less so, due to the lack of accurate data on such stats from back then.
Note that the combat calculations are hardcoded, but can be overridden through the JavaScript system (or changed in code, of course). The stats of gear and NPCs can be easily tweaked with any text editor, and there are UOX.INI settings that can globally increase/decrease combat difficulty and/or speed.
If NPCs aren't fighting back when you attack them, chances are that you are playing on either a GM character, or a character on the admin-account (which all have GM privileges by default). One of the privileges of being a GM (or an admin-character) is that you are flagged as "invulnerable" by default. Since NPCs (and players) can't attack invulnerable characters, this means they will never fight back when you try to attack them. In fact, UOX3 might not allow you to attack them at all.
Try turning off your invulnerability by using either of these commands:
'invul false
'set vulnerable 1
If the server you intend to run your UOX3 shard on is behind a NAT router, then you might have to forward any incoming connections on port 2593 (or whichever other port you decided to use for UOX3) to the internal LAN-IP given to your server by the router. This is called Port Forwarding (Wikipedia), and whether or not it is required depends on the router and how it is setup. The easiest way to find out is to have someone try to connect to your UOX3 server over the Internet. If they are unable to connect, and you've ruled out all other options (mis-configuration of UOX3/UO Client, firewalls running on host/client computers, etc), then you might have to setup port-forwarding on your router.
How do I do Port Forwarding?
The exact procedure varies from router to router, but in general it involves connecting to the router's IP through your browser/Windows Explorer/Linux equivalent, entering the user-name and password required to log on to the router (these can either be default to the router-brand, or custom depending on your Internet-provider), and then adding the UOX3 port to whatever port-forwarding configuration exists for your router.
Various sites on the World Wide Web include step-by-step instructions for how to setup port-forwarding on different types of routers. One such site is PortForward.com. If the default username/password specific to your router (usually mentioned on these sites) is not working, you might have to consult the documentation that came along with the router, or contact your ISP to get them to provide the username and password.
How can I check if I set it up correctly?
To quickly check if you setup your port-forwarding correctly, you can visit CanYouSeeMe.org (Open Port Check Tool) and just enter the port you're trying to forward. Click the 'check' button, and the tool should tell you whether or not it can see a service running on your server through said port.
The other option is of course to have someone actually try to connect to your shard! :)
The Advanced Trade System was originally created by Magius(CHE), and can be used to set up a system with fluctuating prices for goods (items bought and sold by NPC vendors) across different regions of the game world. Every time the vendors restock their goods, the prices will be adjusted positively or negatively depending on a random range set for each type of good.
By default, UOX3 comes with categories for goods already assigned to a multitude of items, ready to be used in the trade system, but you'll need to setup the regions portion of the system yourself. See list of Default Goods Categories below.
You can add your own custom categories of goods by just adding good=# tags to items with values not already in use below. You can also create your own categories from scratch by removing all existing good tags from the item DFNs, for instance if you want to go with something less complex (or more complex!).
1 - Chairs
2 - Tables
3 - Mushrooms
4 - Kitchenware
5 - Leather Containers
6 - Metal Containers
7 - Baskets, Kegs, Barrels, Tubs
8 - Wooden Containers
9 - House/Boat/Playervendor Deeds
10 - Ringmail Armor
11 - Chainmail Armor
12 - Platemail Armor
13 - Leather Armor
14 - Bone Armor
15 - Helmets
16 - Shields
18 - Clothes
19 - Footwear
20 - Headwear
21 - Swords
22 - Fencing Weapons/Staves and Polearms
23 - Missile Weapons
24 - Axes
25 - Daggers
26 - Hammers
27 - Wands
28 - Magic Items
29 - Potions
30 - Magic Reagents
31 - Scrolls
32 - Books
33 - Drinks
34 - Food
35 - Games
36 - Gems
37 - Jewelry
38 - Keys
39 - Mounts
40 - Raw Food
41 - Music Instruments
42 - Carpentry Resources
43 - Fletching Resources
44 - Leatherworking Resources
45 - Lumberjacking Resources
46 - Mining Resources
47 - Misc Resources
48 - Blacksmithing Resources
49 - Tailoring Resources
50 - Tinkering Resources
51 - Alchemy Resources
52 - Blacksmithing Tools
53 - Carpentry Tools
54 - Fishing Tools
55 - Healing Tools
56 - Inscription Tools
57 - Mining Tools
58 - Tailoring Tools
59 - Thieving Tools
60 - Tinkering Tools
Each item to be affected by the fluctuating prices in the trade system need to have a value and a category of goods assigned to them in the item DFNs. This is done by adding the following tags to the items in question, if they're not already present:
value=buyPrice sellPrice - base price of item when buying or selling from/to NPC vendors. Required for trade system to be able to make any adjustments to value of item!
good=goodCategory - the category of goods to associated a given item with (see list above)
Once those tags have been added in the Item DFNs, the next step is to setup the various "regions" in regions.dfn. This is done by adding the following tags to the regions that should impact the trade system:
good=goodCategory - a category of goods (see list above) that the region should have an impact on the prices for. A region can affect multiple goods, and each such tag should be immediately followed by the following two tags:
buyable=# / # # - Fixed or random % modifier (accepts negative numbers) by which the baseValue of items belonging to the associated category of goods will be modified when bought from NPC vendors in the region.
sellable=# / # # - Fixed or random modifier value (accepts negative numbers) by which the baseValue of items belonging to the associated category of goods will be modified when sold to NPC vendors in the region.
randomvalue=# Random modifier value (accepts negative numbers) by which the baseValue of items belonging to the associated category of goods will be modified when vendors restock the item.
A feathered hat ([0x171A] in headwear.dfn) is setup with value=27 13 and good=20 (the goods category for headwear). Normally, this item is sold by NPC vendors for 27 gold, and they'll buy the same item from players at a price of 13 gold.
A region - for instance Britain - is setup with good=20, buyable=100 (+10.0%) and sellable=-100 (-10.0%) and finally randomvalue=-50 50.
Meanwhile, another region - for instance Trinsic - is setup with good=20, buyable=-100 (-10.0%) and sellable=1500 (+150.0%) and finally randomvalue=-50 50 (-5.0% to 5.0%).
A player goes to a tailor NPC in Britain, buys a feathered hat for a price of 27 * 1.1 (+10.0%) = 30 gold, then heads off to Trinsic, where they sell the feathered hat to another tailor NPC for the price of 13 * 2.5 (+150.0%) = 33 gold. Profit! The player then makes the mistake of buying another feathered hat in Trinsic for the price of 27 * 0.9 (-10.0%) = 24 gold, heads back to Britain and sells it to the vendor there for 13 * 0.9 (-10.0%) = 12 gold! Ouch.
A little while later, the vendors restock their goods, and randomvalue=-50 50 kicks in and adjusts the overall price of feathered hats by +5% in Britain and -3% in Trinsic. Feathered hats can now be bought and sold in Britain for 28 gold and 14 gold respectively, while they go for 26 gold and 13 gold respectively in Trinsic. The selling price in Trinsic remains the same, because an adjustment of -3% is not enough to overcome the powers of rounding (12.61 gold = 13).
Advancement Gates is a concept in UOX3 that allows you to set up automated shortcuts for giving players a boost to stats, skills and items in-game without GM intervention. They can for instance be used to create custom class templates beyond what is offered during character creation in the client, can be used for events where you'd like to give players some special items, and can even be combined with another concept such as Monster Gates and the Race System to allow players to take on the roles of monsters on your shard.
Note: Although they're called advancement "gates", they can actually be any object the player is able to walk onto/collide with!
The basis for the advancement gates lies in DFNDATA/ADVANCE/advance.dfn. Below is an example of an entry from that file, with explanations for what each line does (click to expand):
// Master Smith Label for easy identification of advancement gates
[ADVANCEMENT 1] Unique identifier
{
STR=95 Sets Strength to 95
DEX=80 Sets Dexterity to 80
INT=60 Sets Intelligence to 60
BLACKSMITHING=940 Sets Blacksmithing skill to 94.0
MINING=940 Sets Mining skill to 94.0
TINKERING=940 Sets Tinkering skill to 94.0
EQUIPITEM=0x13e3 Adds an equips a smith's hammer
PACKITEM=0x0fbc Adds tongs in backpack
PACKITEM=0x1bf2,30 Adds 30 iron ingots in backpack
PACKITEM=0x0e85 Adds a pick-axe in backpack
PACKITEM=0x1ebc Adds Tinker's Tools in backpack
}
An additional tag that is supported, but not used in the above example, is the SKIN=0x#### tag, which allows you to modify the skincolor of a character to the specified hue.
Once a player steps into a gate with the above advancement setup, they'll have their stats and skills set as defined, and will get any items listed added to their inventory.
To actually set up an advancement gate in-game, there are two paths you can take. You can either add them by hand, in-game, using GM commands, or you can set up predefined items in the item DFNs that can be quickly added anywhere at any time with a single GM command. Let's look at each option.
1) Add a gate item (or another item players can walk over) where you want your advancement gate to be.
For a blue moongate, try 'add 0x0f6c
For a red moongate, use 'add 0x0dda
You can also dye these a different color using the 'dye command.
2a) If you want players to only able to make use of the advancement gate a single time, use 'set type 80 and targeting the gate to set it up as a "single use" advancement gate.
2b) Alternatively, use 'set type 81 to make it a "multiple use" advancement gate that can be used over and over again.
3) Use 'set morex # to point the advancement gate to a unique identifier already setup in advance.dfn (see above). For example, 'set morex 1 would assign the [ADVANCEMENT 1] gate setup from advance.dfn to the item, and players stepping onto the gate will become a Master Smith, based on the example from above.
4) To make sure your gate item doesn't vanish into thin air, use the 'nodecay command on it to stop it from decaying.
5) To make sure your players can't pick it up and run away with it, use the 'set movable 3 command on it.
6) Finally, use the 'tweak command on the gate to give it an identifying name so players can tell what it is if they click on it.
If you want to create re-usable definitions (templates, if you will) for advancement gates that let you quickly add them in multiple areas without having to set up each one from scratch, you can add items like this to a custom .dfn file inside the DFNDATA/ITEMS/ folder:
[adv_gate_mastersmith] Name of custom item
{
get=base_item Inherit basic item properties from base item so we don't have to re-add them here
name=Master Smith Advancement Gate Name that shows when players click on the gate
id=0x0f6c ID of the item to be used as a gate; a blue moongate in this example
type=80 Sets item to "single use advancement gate" itemType (use 81 for multi-use gates)
morex=1 Assigns the advancement ID from advance.dfn
decay=0 Makes item not decay
movable=3 Makes item immovable
}
For each advancement gate setup you have in advance.dfn, set up one such item definition. Once done, either restart UOX3 or reload DFNs using the UOX3 console menu (press * to deactivate safe mode, followed by 7 to reload DFNs or ? to see menu).
The next time you log into your shard, you can use the following GM command to add your custom advancement gate item anywhere you want:
'add item adv_gate_mastersmith (replace name with name you give your custom gate item)
UOX3 comes with a custom dictionary system that allows shard admins to set up and translate their own system and script messages to any language supported by the UO client. This system has some pros and cons over the usual "cliloc" (client localization, also supported!) system UO uses, in that it allows shard admins to send completely customized messages to the client (even if not setting up for multiple languages), at the cost of using more bandwith than the built-in cliloc system in the client.
The dictionaries are set up in the UOX3/dictionaries/ folder, with each language contained in its own dictionary file with a file-ending matching a group of language codes used in the UO client. ENG, for instance, covers all English language codes, and FRE does the same for French ones. The exceptions are the files with a .ZRO and .UNK extensions. These are used as default files when no/an unknown language is returned from the client.
UNK (Unknown - Used when unknown language code is returned from client)
ZRO (Default - Used )
ENG (English - ENU, ENG, ENA, ENC, ENZ, ENI, ENS, ENJ, ENB, ENL, ENT, ENW, ENP)
GER (German - DEU, DES, DEA, DEL, DEC)
SPA (Spanish - ESP, ESM, ESN, ESG, ESC, ESA, ESD, ESV, ESO, ESR, ESS, ESF, ESL, ESY, ESZ, ESB, ESE, ESH, ESI, ESU)
FRE (French - FRA, FRB, FRC, FRS, FRL, FRM)
JAP (Japanese - JPN)
ENG (English)
DEU (German)
ESP (Spanish)
FRA (French)
CHT (Chinese)
CHS (Non-Traditional Chinese)
JPN (Japanese)
KOR (Korean)
In older client versions, it is possible to change the client language by changing a setting - UserLanguageCodeString - in the uo.cfg file. Example: UserLanguageCodeString=DEU. In modern client versions, this seems to instead be dictated automatically by the regional settings in Windows, meaning the above uo.cfg setting might not work.
By default, UOX3 is setup with a very simple, yet customizable mining system, with some options in uox.ini to determine certain basic things.
[resources]
{
MINECHECK=1 // Determines where players can mine for ore (0 = Anywhere, 1 = Mountains and cave floors, 2 = Region based)
OREPERAREA=10 // Maximum number of ores to spawn in a given resource area
ORERESPAWNTIMER=600 // Amount of time it takes for 1 ore to respawn/regenerate in a resource area
ORERESPAWNAREA=10 // Number of resource areas to split the world into
LOGSPERAREA=3
LOGSRESPAWNTIMER=600
LOGSRESPAWNAREA=10
}
The different types of ore a player can mine are defined at the bottom of skills.dfn, in a section called [ORE_LIST]. Shard admins can easily add or remove ore types to/from this list.
[ORE_LIST]
{
Iron
DullCopper
ShadowIron
Copper
Bronze
Golden
Agapite
Verite
Valorite
}
Each of the ores in that list is then defined and fleshed out in more detail in a section of their own, below the list. If adding new ore types to the above list, remember to add a definition for your ore here, as well!
[Iron] // Section ID of ore type, matching the name given in ORE_LIST
{
COLOUR=0x0 // Color of the ore
MAKEMENU=1 // Crafting menu to open when smelting this ore type?
MINSKILL=0 // Minimum skill needed to mine this ore type
NAME=iron // Name of the ore, shown to player when they find some while mining
}
[DullCopper] // A second ore type, with a different section ID
{
COLOUR=0x0973
MAKEMENU=200
MINSKILL=650
NAME=dull copper
}
By default, players can mine any ore from anywhere, as long as their Mining skill surpasses the minimum skill requirement for mining a given type of ore. This means, however, that high level miners can mine the most valuable ore from any old mountain/cave, even if it's just outside the safe zone of a major city.
For shard admins who want it to require some more effort than that, there's the regional based mining option. Firstly, change the MINECHECK setting in uox.ini (see Mining Settings in uox.ini section above) to 2. Secondly, go to UOX3/dfndata/regions/regions.dfn and make use of the "orepref" and "chanceforbigore" tags to setup ore type preferences and chances in various regions.
NPCs can be assigned an AI type that will make them behave or react to events around them in particular ways. Some of these AI types are combat-oriented (guards, monsters), and some are more service-oriented (bankers, healers, playervendors).
NPC AI types can be assigned at spawn-time through the npcai=# tag in NPC DFNs, or at run-time via the 'set npcai # GM command or the aitype JS character property.
Example: The Orc NPC contains the tag npcai=2 in its definition in DFNDATA/NPC/humanoids.dfn. This assigns it the "evil" AI that most monsters use, which makes it attack innocent characters (including players) on sight.
0 - AI_NONE
Default - no AI.
1 - AI_HEALER_G
Will resurrect dead (non-criminal) players who come within range.
2 - AI_EVIL
Will attack all good monsters/animals and players.
4 - AI_GUARD
Will attack all evil monsters, and players that commit crimes within town limits.
5 - AI_FIGHTER
Same as a guard, minus the teleporting and yelling of "Halt!"
6 - AI_ANIMAL
Predatory animal AI that grow hungry over time and has a chance to attack other creatures (and humans) when hungry.
7 - AI_DUMMY
Passive AI that doesn't fight back or react to being attacked.
8 - AI_BANKER
Bankers give players access to their bank boxes when saying the word "bank" nearby. Tip: This can also be used on players to ALWAYS give them access to their bankbox ;)
17 - AI_PLAYERVENDOR
Used by playervendors placed by players at their houses to sell items to other players.
32 - AI_PET_GUARD
Guarding AI used by pets when responding to the "guard" pet command.
88 - AI_CHAOTIC
This AI does not discriminate, and attacks anything from innocents to monsters (Blade Spirit/Energy Vortexes use this AI).
666 - AI_HEALER_E
Evil version of the regular Healer AI, except it resurrects murderers and criminals instead of innocents.
NPC Escort Quests allow players to earn a bit of extra gold by escorting NPCs from one location to another (gold paid upon safe arrival in target region). More details on this system coming soon!
The movement of NPCs in UOX3 is largely controlled by a property of NPCs called wanderMode. This property can be controlled to some degree through NPC setup in the DFNs (more on that below), but it's also dynamically altered at run-time based on the state of the NPC and what they're supposed to be doing.
For instance, a player's pet who is given the pet command "follow me", will have its wanderMode altered to follow (wanderMode 1), and will follow that player until another command is used or another event takes place that cause its wanderMode to be altered.
An Orc that sees and wants to attack a player also goes into the follow wanderMode, and will attempt to follow the player until they get into range and can perform their attack. However, should the player deal enough damage to the Orc, it might instead enter the flee wanderMode (wanderMode 6) and try to escape with its life.
Another wanderMode - pathfind (wanderMode 7) - is a temporary wanderMode set by UOX3 that functions similarly to the follow mode, but instead of continuing to follow someone indefinitely, it stops and reverts back to its original wanderMode (whatever that might be) when it reaches the intended target (or if it fails to pathfind there).
By default, the advanced pathfinding setting is enabled for NPCs in UOX3. This mode of pathfinding utilizes the popular A* algorithm to find the shortest paths NPCs need to take in order to reach their intended location. This setting can be enabled or disabled via the ADVANCEDPATHFINDING flag in UOX.INI, though it is recommended to leave this setting enabled unless experiencing performance drops due to too many/too heavy pathfinding calculations.
Some of these wanderModes are used almost exclusively by UOX3's internal code (like the pathfind and follow modes), while others can be set as default modes for NPCs in the DFNs via the npcwander DFN tag. Let's look at the most common options for that tag:
npcwander=0 (None)
The most basic of wanderModes. Essentially, the NPC has no default mode of movement and will stand still on the spot after spawning until something causes its wanderMode to be altered (like being attacked). Once such an event stand, they once again become motionless.
npcwander=2 (Free)
The popular wanderMode for free-spirited NPCs who like to roam wherever the wind takes them. NPCs with this wanderMode will move around randomly, with no restrictions on direction or distance. There's no saying where they'll end up!
npcwander=3 (Box)
NPCs with this wanderMode are unable to 'think outside the box'. The box is their entire life; if there's a world beyond the box, the NPC either doesn't know about it - or doesn't care! However, if provoked, they might leave their box for a limited time, before returning should the situation calm down. This wanderMode requires some additional setup (see below).
Usage of the "box" wanderMode (3) requires the following additional tags setup in the DFN, in order to define a bounding box that restricts the NPC's movement:
fx1=-1 / fixedXCoordinate
Set to -1 to use the NPC's spawn location combined with a "radius" (fx2 if specified, otherwise defaults to 10) to determine the farthest number of tiles NPC is allowed to move in directions east and west from spawn point. Can also be given a positive value to set a fixed X1 coordinate for the bounding box.
fy1=-1 / fixedYCoordinate
Set to -1 to use the NPC's spawn location combined with a "radius" (fx2 if specified, otherwise defaults to 10) to determine the farthest number of tiles NPC is allowed to move in direction north and south from spawn point. Can also be given a positive value to set a fixed Y1 coordinate for the bounding box.
fx2=radius / fixedXCoordinate
If fx1 and fy1 are set to -1, any positive value given for fx2 will act as a "radius" determining how far in each direction from the spawn point (east, west, north, south) NPC is allowed to move. If fx1 and fy1 have positive values (fixed coordinates), fx2 will be used to set a fixed X2 coordinate for the bounding box.
fy2=fixedYCoordinate
Only used when setting up bounding box with fixed coordinates, and is used to set the Y2 coordinate for said bounding box.
npcwander=4 (Circle)
Unlike their 'square' peers in wandermode 3, NPCs setup with wanderMode 4 have a more rounded taste, and embrace a lifestyle entirely without corners. They're all about circles! However, if provoked, they might leave their precious circle for a limited time, before returning should the situation calm down. This wanderMode requires some additional setup (see below).
Usage of the "circle" wanderMode (4) requires the following additional tags setup in the DFN, in order to define a bounding circle that restricts the NPC's movement:
fx1=#
Determines the X coordinate for the center of the bounding circle that restricts the NPC's wandering. If set to -1, will instead get the X coordinate from the NPC's spawn point.
fy1=#
Determines the Y coordinate for the center of the bounding circle that restricts the NPC's wandering. If set to -1, will instead get the Y coordinate from the NPC's spawn point.
fz1=#
Determines the Z (height) coordinate for the center of the bounding circle that restricts the NPC's wandering. NPC's bounding circle is considered valid if NPC is within a Z of 5 from this defined value.
fx2=#
Radius (in tiles) of the bounding circle that restricts the NPC's wandering.
npcwander=5 (Frozen)
NPCs in wanderMode 5 are cool as cucumbers, so cool, in fact, that they remain frozen in place on the same spot, unable to move. Come hell or high water, they will remain steadfast and stick to their spot no matter what.
In addition to DFNs and code, an NPC's wanderMode can also be adjusted in JavaScripts used with UOX3's JS Engine, either via JS Methods for characters like Wander( x1, y1, x2 (radius), y2 ) and Wander ( x1, y1, radius ), or the wandertype JS property for characters. See the UOX3 JS Docs for more details on syntax and some examples!
More details on UOX3 race system coming here soon! Check out UOX3/dfndata/race/races.dfn for examples.
More details on UOX3 region system coming here soon! Until then, check out UOX3/dfndata/regions/regions.dfn for examples.
The gain of skills and stats in UOX3 is governed by a system setup in UOX3/dfndata/skills/skills.dfn, where each skill has a setup similar to this:
// Alchemy
[SKILL 0]
{
NAME=ALCHEMY
STR=0
DEX=50
INT=50
SKILLPOINT=0,75,50
SKILLPOINT=100,60,30
SKILLPOINT=200,45,25
SKILLPOINT=300,40,20
SKILLPOINT=400,35,15
SKILLPOINT=500,30,5
SKILLPOINT=600,25,5
SKILLPOINT=700,20,0
SKILLPOINT=800,15,0
SKILLPOINT=900,10,0
SKILLPOINT=990,5,0
SKILLPOINT=1000,0,0
MADEWORD=mixed
}
SKILLPOINT Entries work in this way:
Each additional SKILLPOINT entry sets a ceiling for the previous one. Thus entries should be created for every step you wish there to be, to gradually slow down skill gain. By default these steps are: 0-100, 100-200, 200-300, 300-400, 400-500, 500-600, 600-700, 700-800, 800-900, 900-990, 990-1000. Note that all skill values are *10, thus 100 instead of 10.0
UOX3's Spawn Object system lets shard admins setup item or NPC spawns in-game using GM commands, or setup predefined spawn objects in the DFNs that GMs can then add anywhere they want something to spawn.
Unlike objects spawned via Spawn Regions, ones spawned from Spawn Objects have a persistent state and will be saved during world saves and will be loaded again if server restarts.
More details coming soon!
UOX3's regional spawning system allows the spawning of thousands of NPCs and items without affecting world saving or loading times negatively, as anything spawned through this system is not saved, and will not persist through a server restart, but will respawn on every server startup. This is useful for generic monster spawns, NPC shopkeepers and townsfolk, random item spawns like magic reagents, etc.
The spawning system is setup through UOX3/dfndata/spawn/spawn.dfn, and an example of a setup for this can be seen below, or by examining the Community-made spawn.dfn file.
The following spawn region was taken from the above-mentioned Community-made spawn.dfn file, and is responsible for spawning orcs in the Yew Orc Fort:
[REGIONSPAWN 283]
{
NAME=Yew Orc fort // Internal name for spawn region
NPC=orc // npcSectionID to spawn from NPC DFNs
MAXNPCS=10 // Max amount of NPCs spawn region is allowed to spawn
X1=626 // Top left corner of coordinate set
Y1=1481 // Top left corner of coordinate set
X2=638 // Bottom right corner of coordinate set
Y2=1487 // Bottom right corner of coordinate set
WORLD=0 // Worldnumber to apply spawn region in
MINTIME=5 // Min time between respawns
MAXTIME=15 // Max time between respawns
CALL=5 // Max amount of orcs to spawn during each respawn
}
For a full list of DFN tags supported in Spawn Regions, take a look at DFN Tag Overview > SpawnRegion DFN Tags!
In addition to dedicated spawn regions, this system also supports setting up generic, predefined spawns that can be applied directly in regions in UOX3/dfndata/regions/regions.dfn. The benefit of such predefined spawns is that they can be re-used in different regions, and can piggy-back on the regions that already exist instead of having to create new dedicated spawn regions with coordinates etc.
The following section is added either at the bottom of an existing DFN file in UOX3/dfndata/spawn/ (below spawnregion entries), or in its own, separate file in the same folder:
[PREDEFINED_SPAWN orcInvasion]
{
NAME=Orc Spawn
NPCLIST=allorc
MAXNPCS=50
MINTIME=0
MAXTIME=1
CALL=10
}
This is then applied to specific sets of coordinates (X1, Y1 -> X2, Y2) within a region in UOX3/dfndata/regions/regions.dfn by adding a SPAWN=orcInvasion tag below the coordinate sets in question:
[REGION 4]
{
NAME=Britain's farmlands
MUSICLIST=21
GUARDED=1
GUARDLIST=guard
GUARDOWNER=The Town
MAGICDAMAGE=0
MARK=1
GATE=1
RECALL=1
X1=1085
Y1=1530
X2=1200
Y2=1695
SPAWN=orcs
X1=1200
Y1=1555
X2=1295
Y2=1695
SPAWN=orcs
X1=1295
Y1=1695
X2=1330
Y2=1850
SPAWN=orcs
X1=1100
Y1=1695
X2=1295
Y2=1915
SPAWN=orcs
}
Note that in this case, the guards have also been disabled via the GUARDED=0 line, to prevent the orcs spawning in the Britain farmlands from getting instant-killed by the town guards!
The spattack= setting in npc.dfn's matches the circle you want an NPC to be able to cast up to (IE a setting of 8 means he can cast any spell from Circle 1 all the way to circle 8 ). Notably, NPC's can currently only cast certain spells, and theese will be chosen at random when the NPC is able to cast spells during its combat cycle.
Following is a list of spells an NPC can cast:
Fixed teleport locations can be setup via UOX3/js/teleport.scp using the following format:
From To Optional X,Y,Z(or ALL), X,Y,Z [,World,World]
Example:
[TELEPORT ENTRIES] { ENTRY=3, 128, All, 257, 784, 64, 3,4 // [Yomotsu_Mines_Exit] ENTRY=3, 1267, All, 666, 928, -80, 2,2 // [Ankh_Dunegon_Exit] }
Notes:
UOX3 comes with a system for townstones that allows players to setup their own player-run governments in different regions of the world.
The basics of the system is as follows:
List of features in Townstones System:
More details being added soon!
UOX3 comes with an extensive weather system that ties in with regions and player races.
More details being added soon!
DFNs - or "definition files" are essentially "templates" or "blueprints" that define the properties of various objects and systems in UOX3, which can be customized by shard admins with any text editor and be reloaded by UOX3 on the fly (only applies to select types of DFNs).
List of DFN types available in UOX3, and what they are used for:
Location: UOX3\dfndata\advance\advance.dfn
Used to setup advancement gates/objects that can quickly boost players skills and stats to desired level.
Location: UOX3\dfndata\carve\carve.dfn
Used to setup lists of items that players will gain when carving particular creatures with bladed items.
Location: UOX3\dfndata\colors\colors.dfn
Contains random colorlists that can be used with color tags in various other DFNs to provide random colors for items and NPCs.
Location: UOX3\dfndata\command\commands.dfn
Contains setup of roles like Administrator, GM, Counselor and Player, as well as the privileges and access to commands that each role will have.
Location: UOX3\dfndata\create\*.dfn
Contains crafting menus with resource costs for crafting each individual item.
Location: UOX3\dfndata\creatures\creatures.dfn
Used to setup things like sound effects, movement types and more for each creature type in the game.
Location: UOX3\dfndata\harditems\harditems.dfn
Used to override properties of "hard/raw" (non-scripted) items added to the world. Normally they get all their properties directly from tiledata.mul, but this file allows overriding the properties for such items, to ensure they all get the proper weight they should have, etc.
Location: UOX3\dfndata\house\house.dfn
Contains the setup for multis/houses/boats in UOX3, and what items (like doors, or signs) are added along with these when players place them in the world using deeds.
Location: UOX3\dfndata\html\default_templates.dfn / *.htf
Used to setup HTML templates for server status, information pages, etc. that can be automatically written by the server on worldsaves. Useful to show status of server on shard homepage, for instance.
Location: UOX3\dfndata\items\*.dfn
Contains all item definitions in the game - the scripted versions of "hard" items, these get all their properties set in these definition files instead of from tiledata.mul. Also contains the contents of the menu shown when using the 'add command, lootlists for NPCs, shoplists for NPC shopkeepers, and more.
Location: UOX3\dfndata\location\location.dfn
Contains definitions of locations in the world - points of interest that GMs can travel directly to using the 'goplace # command, where # aligns with location IDs in this file.
Location: UOX3\dfndata\maps\maps.dfn / tiles.dfn
maps.dfn is used to define what kind of mapfiles UOX3 should be attempting to load - their names, their sizes, etc. tiles.dfn is used to override tiledata properties of items in the game world - useful for marking unclimbable ladders as climbable, for instance.
Location: UOX3\dfndata\menus\menus.dfn / polymorph.dfn / tracking.dfn
Contains various gump menus used in the game, such as menu used by polymorph spell, tracking skill and basic server info gumps.
Location: UOX3\dfndata\misc\books.dfn / gumps.dfn / motdtips.dfn
Contains hardcoded books, message of the day login tips, housing/guild/account management gump menus.
Location: UOX3\dfndata\msgboard\msgboard.dfn
Used to setup NPC escort quests. See separate feature documentation for more info.
Location: UOX3\dfndata\newbie\newbie.dfn
Used to setup newbie items given out to new characters upon creation, based on the skills they choose.
Location: UOX3\dfndata\npc\*.dfn
Contains definitions for all NPCs that can be added in-game; their body IDs, their names, their skills and stats, items equipped (if human), etc. Also contains namelists (namelists.dfn) with random NPC names for humans, orcs, lizardmen, etc.
Location: UOX3\dfndata\race\races.dfn
Used to define races in the game (including player-accessible ones); their strengths and weaknesses, their skill bonuses and penalties, and so forth. See separate feature documentation for more info.
Location: UOX3\dfndata\regions\regions.dfn
Used to define the various regions of the game world and their properties, like whether they are considered safe zones where no harm can befall the players, whether travel spells are enabled or not, whether the guard system is enabled or not. See separate feature documentation for more info.
Location: UOX3\dfndata\skills\skills.dfn
Contains definitions for all the skills in the game, and their skill/stat advancement rates. See separate feature documentation for more info.
Location: UOX3\dfndata\spawn\spawn.dfn
Used to setup spawn regions - areas in the world where NPCs of a particular type will spawn, how many of them will spawn, how often, and so forth. See separate feature documentation for more info.
Location: UOX3\dfndata\spells\spells.dfn
Contains definitions for all spells in the game, their requirements in skills, stats and resources, their words of power and other special properties.
Location: UOX3\dfndata\titles\titles.dfn
Used to define skill titles (such as Blacksmith, Tailor, Swordsman), proficiency titles (such as Apprentice, Master, Grandmaster) and fame/karma related titles (such as Glorious, Infamous, Dread).
Location: UOX3\dfndata\weather\weather.dfn
Contains definitions of weather systems, used by the region system to setup different weather across different regions in the game world. See separate feature documentation for more info.
Here you'll find an overview of all DFN tags that can be used in UOX3, depending on context (characters, items, regions, etc.). The DFNs can be safely modified and dynamically reloaded while UOX3 is running, as the only other time UOX3 reads from these files (and never writes) is on server startup. After making a change, simply use the 'reloaddefs command in-game, or console command '7' after unlocking the UOX3 console by pressing '*'.
alchemy=[skillpoints] or [lowskill highskill]
Set Alchstrongy skill (0 - 1000)
anatomy=[skillpoints] or [lowskill highskill]
Set Anatomy skill (0 - 1000)
animallore=[skillpoints] or [lowskill highskill]
Set Animal Lore skill (0 - 1000)
archery=[skillpoints] or [lowskill highskill]
Set Archery skill (0 - 1000)
armslore=[skillpoints] or [lowskill highskill]
Set Arms Lore skill (0 - 1000)
backpack
If tag is present, add backpack to NPC
begging=[skillpoints] or [lowskill highskill]
Set Begging skill (0 - 1000)
blacksmithing=[skillpoints] or [lowskill highskill]
Set Blacksmithing skill (0 - 1000)
bowcraft=[skillpoints] or [lowskill highskill]
Set Bowcraft/Fletching skill (0 - 1000)
bushido=[skillpoints] or [lowskill highskill]
Set Bushido skill (0 - 1000)
camping=[skillpoints] or [lowskill highskill]
Set Camping skill (0 - 1000)
carpentry=[skillpoints] or [lowskill highskill]
Set Carpentry skill (0 - 1000)
cartography=[skillpoints] or [lowskill highskill]
Set Cartography skill (0 - 1000)
carve=[carvelist-ID]
Set section from UOX3/dfndata/carve/carve.dfn to use when adding items for carved/butchered corpses
chivalry=[skillpoints] or [lowskill highskill]
Set Chivalry skill (0 - 1000)
color/colour=[color]
Set Color by hex-id or decimal value
colorlist/colourlist=[colorlist-ID]
Set Colorlist from UOX3/dfndata/colors/colors.dfn to pick random color from list
colormatchhair/colourmatchhair
If tag is present, makes color of character's beard (if they have one) same as for their hair
cooking<=[skillpoints] or [lowskill highskill]
Set Cooking skill (0 - 1000)
custominttag=[tagname] [value]
Adds custom JS int tag to character.
customstringtag=[tagname] [text]
Adds custom JS string tag to character.
damage/att=[damage] or [lowdmg highdmg]
Set damage/attack values - either fixed or random range
def=[defense] or [lowdef highdef]
Set Physical-resist/defense value - either fixed or random range
detectinghidden=[skillpoints] or [lowskill highskill]
Set Detecting Hidden skill (0 - 1000)
dex=[statpoints] or [lowstat highstat]
Set Dexterity stat for NPC - either fixed or randomg range
dir=[direction]
Set default direction upon spawning (NE, E, SE, S, SW, W, NW, N - or RND to randomize)
elstrongentresist=[fire cold energy poison]
Set Elstrongent-resist stats (0 - 1000 for each stat)
strongotecolour==[color]
Set the default color (in hex or decimal) for the NPC's strongote text
enticstrongent=[skillpoints] or [lowskill highskill]
Set Enticstrongent skill (0 - 1000)
equipitem=[itemSectionID]
Equip item with specified itemSectionID from item DFNs
evaluatingintel=[skillpoints] or [lowskill highskill]
Set Evaluating Intelligence skill (0 - 1000)
fame=[fame value]
Set amount of fame given to/taken from the player if they kill the NPC
fencing=[skillpoints] or [lowskill highskill]
Set Fencing skill (0 - 1000)
fishing=[skillpoints] or [lowskill highskill]
Set Fishing skill (0 - 1000)
flag=[neutral/innocent/evil]
Flag NPC as Neutral, Innocent or Evil
fleeat=[percentage]
Set percentage of health at which NPC will start to flee in combat
fleeingspeed=[movstrongentspeed]
Set the speed at which the NPC flees (0.4 by default, lower = faster)
focus=[skillpoints] or [lowskill highskill]
Set Focus skill (0 - 1000)
food=[foodlist-ID]
Define which food this NPC eats, from UOX3/dfndata/items/foodlists.dfn (primarily used to feed pets)
forensics=[skillpoints] or [lowskill highskill]
Set Forensics skill (0 - 1000)
fx1=[X coordinate]
Coordinate used with NPC Wander-modes
fx2=[X coordinate]
Coordinate used with NPC Wander-modes
fy1=[Y coordinate]
Coordinate used with NPC Wander-modes
fy2=[Y coordinate]
Coordinate used with NPC Wander-modes
fz1=[Z coordinate]
Coordinate used with NPC Wander-modes
get=[npcSectionID]
Inherit properties from NPC defined by npcSectionID in NPC DFNs
gold=[gold] or [mingold maxgold]
Set the amount of gold this NPC carries - either fixed or random range
haircolor/haircolour=[color]
Set the haircolor of the NPC in hex or decimal
healing=[skillpoints] or [lowskill highskill]
Set Healing skill (0 - 1000)
herding=[skillpoints] or [lowskill highskill]
Set Herding skill (0 - 1000)
hidamage=[hidamage]
Set max damage/attack value
hiding=[skillpoints] or [lowskill highskill]
Set Hiding skill (0 - 1000)
hp=[hitpoints] or [lowhp highhp]
Set starting Hitpoints of NPC when spawned - either fixed or random range
hpmax=[hitpoints] or [lowhp highhp]
Set maximum Hitpoints of NPC when spawned - either fixed or random range
id=[bodyID]
Set body ID of creature, in hex. Also determines origID property.
imbuing=[skillpoints] or [lowskill highskill]
Set Imbuing skill (0 - 1000)
inscription=[skillpoints] or [lowskill highskill]
Set Inscription skill (0 - 1000)
intelligence=[statpoints] or [lowstat highstat]
Set Intelligence stat for NPC - either fixed or random range
itemid=[skillpoints] or [lowskill highskill]
Set Item Identification skill (0 - 1000)
karma=[karma value]
Set amount of Karma given to/taken from the player if they kill the NPC
lockpicking=[skillpoints] or [lowskill highskill]
Set Lockpicking skill (0 - 1000)
lodamage=[lodamage]
Set minimum damage/attack value
loot=[lootlist-ID] or [lootlist-ID],[amount] or [lootlist-ID],[minamount maxamount]
Add random loot to NPC based on specified lootlist from UOX3/dfndata/items/lootlists.dfn. Supports (optionally) specifying a fixed amount or a random amount of the specified ID.
lumberjacking=[skillpoints] or [lowskill highskill]
Set Lumberjacking skill (0 - 1000)
macefighting=[skillpoints] or [lowskill highskill]
Set Macefighting skill (0 - 1000)
magery=[skillpoints] or [lowskill highskill]
Set Magery skill (0 - 1000)
magicresistance=[skillpoints] or [lowskill highskill]
Set Magic Resistance skill (0 - 1000)
mana=[statpoints] or [lowstat highstat]
Set starting Mana of NPC - either fixed or random range
manamax=[statpoints] or [lowstat highstat]
Set maximum Mana of NPC - either fixed or random range
meditation=[skillpoints] or [lowskill highskill]
Set Meditation skill (0 - 1000)
mining=[skillpoints] or [lowskill highskill]
Set Mining skill (0 - 1000)
musicianship=[skillpoints] or [lowskill highskill]
Set Musicianship skill (0 - 1000)
mysticism=[skillpoints] or [lowskill highskill]
Set Mysticism skill (0 - 1000)
name=[text]
Set NPC name
namelist=[namelistID]
Set random NPC name based on specified namelist from UOX3/dfndata/npc/namelists.dfn
necromancy=[skillpoints] or [lowskill highskill]
Set Necromancy skill (0 - 1000)
ninjitsu=[skillpoints] or [lowskill highskill]
Set Ninjitsu skill (0 - 1000)
notrain
If tag is present, NPC won't train skills to players
npcai=[npcAI]
Set AI of NPC (0 = none, 1 = Healer, 2 = Evil/Monster, 4 = Guard, 5 = Fighter, 6 = Animal, 7 = Dummy, 8 = Banker, 17 = PlayerVendor, 32 = Pet Guard, 88 = Chaotic, 666 = Evil Healer)
npcwander=[wanderMode]
Set NPC wander-mode (0 = immobile, 1 = follow target, 2 = wander freely, 3 = wander in box, 4 = wander in circle, 5 = frozen). See NPC Movement and Pathfinding for more details.
packitem=[itemSectionID] or [itemSectionID],[amount] or [itemSectionID],[minamount maxamount]
Add specified item from Item DFNs to NPC's backpack (must come after backpack tag!). Supports optional value for amount, or random amount values.
parrying=[skillpoints] or [lowskill highskill]
Set Parrying skill (0 - 1000)
peacemaking=[skillpoints] or [lowskill highskill]
Set Peacemaking skill (0 - 1000)
poisoning=[skillpoints] or [lowskill highskill]
Set Poisoning skill (0 - 1000)
poisonstrength=[poisonStrength]
Set poison strength for NPC (1 = weak, 4 = deadly)
priv=[priv]
Used to set the NPC's starting privileges. Not working at the moment.
provocation=[skillpoints] or [lowskill highskill]
Set Provocation skill (0 - 1000)
race=[raceID]
Set Race ID of NPC, from UOX3/dfndata/race/races.dfn.
reattackat=[percentage]
Defines percentage of health at which NPC will return to combat if fleeing
removetraps=[skillpoints] or [lowskill highskill]
Set Remove Traps skill - either fixed value or random range
rshopitem=[itemSectionID]
NPC will purchase item defined here. itemSectionID is from the Item DFNs
runningspeed=[movementspeed]
Defines running-speed for the NPC (0.2 by default, lower = faster)
runs
If tag is present, NPC will play running animations during combat, and will move at runningspeed instead of walkingspeed
saycolor/saycolour=[color]
Set NPC speech color in hex or decimal
script=[scriptID]
Set scriptID of JS to attach to NPC on creation
sellitem=[itemSectionID]
NPC will sell item defined here. itemSectionID comes from Item DFNs
shopitem=[itemSectionID]
NPC will have item defined here added to their "already bought"-items pack. itemSectionID from item DFNs
shopkeeper
If tag is present, NPC will be turned into a shopkeeper on creation
shoplist=[NPC will buy/sell items defined in the shoplist from UOX3/dfndata/items/shoplist.dfn]
Not in use.
skill=[skillNum] [skillValue]
Set specified skill for NPC (skillValue 0 - 1000)
skin=[color]
Defines skin-color for NPC
skinlist=[colorlistID]
Randomly set NPC skincolor based on colorlist in UOX3/dfndata/colors/colors.dfn
snooping=[skillpoints] or [lowskill highskill]
Set Snooping skill (0 - 1000)
spadelay=[seconds]
Set minimum delay in seconds between each time an NPC can cast spells in combat
spattack=[spellCircle]
Defines which spellcircles of spells the NPC has access to.
spellweaving=[skillpoints] or [lowskill highskill]
Set Spellweaving skill (0 - 1000)
spiritspeak=[skillpoints] or [lowskill highskill]
Set Spirit Speak skill (0 - 1000)
split=[0/1]
If set to 1, NPC will split into two NPCs when hit in combat
splitchance=[percentage]
Set the chance for NPC to split when hit, if split tag is enabled
stamina=[statpoints] or [lowstat highstat]
Set starting Stamina for NPC on creation - either fixed value or random range
staminamax=[statpoints] or [lowstat highstat]
Set maximum Stamina for NPC on creation - either fixed value or random range
stealing=[skillpoints] or [lowskill highskill]
Set Stealing skill (0 - 1000)
stealth=[skillpoints] or [lowskill highskill]
Set Stealth skill (0 - 1000)
strength=[statpoints] or [lowstat highstat]
Set Strength of NPC on creation - either fixed value or random range
swordsmanship=[skillpoints] or [lowskill highskill]
Set Swordsmanship skill (0 - 1000)
tactics=[skillpoints] or [lowskill highskill]
Set Tactics skill (0 - 1000)
tailoring=[skillpoints] or [lowskill highskill]
Set Tailoring skill (0 - 1000)
tamedhunger=[hungerrate percentage]
Set hunger-rate and chance to become wild (600 default for hungerrate, 30 for chance to go wild!)
taming<=[skillpoints] or [lowskill highskill]
Set Animal Taming skill (0 - 1000)
tasteid=[skillpoints] or [lowskill highskill]
Set Taste Identification skill (0 - 1000)
throwing=[skillpoints] or [lowskill highskill]
Set Throwing skill (0 - 1000)
tinkering=[skillpoints] or [lowskill highskill]
Set Tinkering skill (0 - 1000)
title=[text]
Set NPC's title
topeace=[skillpoints]
Set minimum skill to succesfully use peacemaking against this NPC
toprov=[skillpoints]
Set minimum skill to succesfully use provocation against this NPC
totame=[skillpoints]
Set minimum skill to succesfully tame this NPC
tracking=[skillpoints] or [lowskill highskill]
Set Tracking skill (0 - 1000)
veterinary=[skillpoints] or [lowskill highskill]
Set Veterinary skill (0 - 1000)
walkingspeed=[movementspeed]
Set NPC walk speed (0.7 default, uses global uox.ini settings if not set)
willhunger=[0/1]
If 1, NPC is affected by hunger, and will never need food.
wrestling=[skillpoints] or [lowskill highskill]
Set Wrestling skill (0 - 1000)
ac=[armorclass]
Set armorclass of item (higher = better)
addmenuitem=[itemmenuID,tileID,weightPosition,objectFlags,sectionItemID]
Automatically add item to add-menu when said menu is generated. Needs to be combined with insertaddmenuitems tag in associated itemmenu inside UOX3/dfndata/ItemMenu.bulk.dfn (BROKEN)
ammo=[id] or [id][color]
Used with ranged weapons to specify required ammo. Color is optional
ammofx=[id] or [id][color][rendermode]
Used with ranged weapons to specify missile-FX
amount=[amount] or [minamount maxamount]
Set amount of items - either fixed amount or random range
att=[lodamage hidamage]
Used to set minimum and maximum damage values for weapons
baseweight=[weight]
Set base-weight of item (100 = 1 stone). Primarily used to keep a reference to the weight of empty containers, before they contain any items
cold=[0/1]
If set to 1, marks item with elemental type Cold, which defines the type of damage dealt if it's a weapon
color/colour=[color]
Color of item in hex or decimal
colorlist/colourlist=[colorListID]
Color of item randomly picked from specified colorList in UOX3/dfndata/colors/colors.dfn
corpse=[0/1]
If set to 1, defines item as a corpse!
creator=[character serial]
Serial of character that created item. Primarily applied during crafting
custominttag=[tagname][value]
Adds custom JS int tag to character.
customstringtag=[tagname][text]
Adds custom JS string tag to character.
damage=[lodamage hidamage]
Same as Att tag. Used to set minimum and maximum damage values for weapons
decay=[0/1]
If set to 1, item decays based on normal item decay rules. If set to 0, it never decays
def=[defense]
Set physical defense value of item. Primarily used with wearables like armor
dex=[statpoints]
Minimum dexterity required to equip item
dexadd<=[statpoints]
Temporary dexterity bonus applied to character while they have item equipped
dir=[direction]
Direction, but used to define light pattern/radius (0-56?) for light sources
disabled=[0/1]
If set to 1, item is disabled. Primarily used in code to make some items temporarily disabled so they cannot be used again for a short amount of time.
dispellable
If tag is present, marks the item as dispellable. Primarily applied to things like magical field spells that can be dispelled (firefields, poisonfields, etc)
dye
If tag is present, marks the item as dyeable (with dye tubs)
elementresist=[fire cold energy poison]
Set fire, cold, energy and poison resistance values (0 - 1000, where 1000 = 100.0)
get=[itemSectionID]
Inherit properties of item with specified itemSectionID from item DFNs
glow=[0/1]
Attaches a hidden lightsource to the item to make it appear to glow
glowbc=[glowColor]
Sets the color (in decimal or hex) of the glow effect (same as color tag on regular light sources)
glowtype=[glowType]
Set the type of glow-effect to use (same as direction tag on regular light sources)
good=[goodValue]
Set a category of goods used for the Advanced Trade System
heat=[0/1]
If set to 1, marks item with elemental type Heat, which defines the type of damage dealt if it's a weapon
hidamage=[hidamage]
Maximum damage value of a weapon (randomized between this and lodamage)
hp=[hitpoints] or [lowhp highhp]
Set hitpoints of item - either fixed value or random range
id=[tileID]
Set tileID of item art in decimal or hex
intadd=[statpoints]
Temporary intelligence bonus applied to character while they have item equipped
intelligence=[statpoints]
Minimum intelligence required to equip item
interval=[mintime maxtime]
Used by Spawner Objects to determine interval (in minutes) between the spawning of objects
layer=[layer]
Defines which layer (See Layer List NPC should equip item on - if it's equippable
light=[0/1]
If set to 1, marks item with elemental type Light, which defines the type of damage dealt if it's a weapon
lightning=[0/1] or [lowskill highskill]
If set to 1, marks item with elemental type Lightning, which defines the type of damage dealt if it's a weapon
lodamage=[lodamage]
Minimum damage value of a weapon (randomized between this and hidamage)
loot=[lootListID]
Adds random loot to a container based on specified lootListID in UOX3/dfndata/items/lootlists.dfn
maxhp=[hitpoints]
Set maximum hitpoints of item - generally used as durability for armor or items with a limited number of uses.
more=[hex value]
Generic variable whose purpose changes depending on context. For instance:
morexyz=[morex],[morey],[morez]
Generic, comma separated variables whose purpose changes depending on context. For instance:
movable=[movable]
Set movable status of item (0 = Default according to tiledata, 1 = Movable, 2 = GM only, 3 = Locked down, 4 = Owner only)
name=[text]
Name of item. Maximum length: 128 characters
name2=[text]
Secondary, hidden name of item. Revealed with Item Identification. Maximum length: 128 characters
newbie
If present, marks item as a blessed/newbie item that cannot be stolen, and will stay with player even after they die and get resurrected.
offspell=[value]
Can be set to a value between -128 and 127, but is currently not used for anything. In the olden days, this was a part of UOX3's unique armor/weapon engraving system that allowed you to engrave spells on equipment with the Inscription skill.
packitem=[itemSectionID]
Add specified item from item DFNs to container
pileable=[0/1]
If set to 1, item is pileable/stackable. Not all items can be stacked, however!
poisondamage=[0/1]
If set to 1, marks item with elemental type Poison, which defines the type of damage dealt if it's a weapon
poisoned=[poisonStrength]
Sets poison strength applied to item such as weapons and food (1 to 4, where 1 = Weak, 4 = Deadly)
priv=[value]
Set priv value for item - primarily set via code to make item decayable, blessed or dispellable
race=[raceID]
Set ID of race that a weapon will deal double damage against in combat
rain=[0/1]
If set to 1, marks item with elemental type Rain, which defines the type of damage dealt if it's a weapon
rank=[rank]
Used by crafting system to determine quality of item made
restock=[amount]
Shopkeepers who stock this item will restock specified amount of it
script=[scriptID]
Set scriptID of JS to attach to item on creation
sk_made=[skillID]
Defines the skill that is used to create the item
snow=[0/1]
If set to 1, marks item with elemental type Snow, which defines the type of damage dealt if it's a weapon
spawnobj=[itemSectionID] or [npcSectionID]
Used by Spawner Objects to determine which object to spawn from item or NPC DFNs
spawnobjlist=[itemListID] or [npcListID]
Used by Spawner Objects to determine which item or NPC from itemlists in UOX3/dfndata/items/itemlists.dfn or NPClists in UOX3/dfndata/npc/npclists.dfn to spawn
spd=[speed]
Set attack speed of weapon (higher is faster)
stradd=[statpoints]
Set how much strength the item temporarily grants players who equip it
strength=[statpoints]
Set Strength requirement for equipping item
type=[itemType]
Set itemType of item. See Item Types section
value=[buyValue sellValue]
Set item's buyvalue (how much shopkeepers will pay for item from players) and sellvalue (how much shopkeepers will sell item to players for)
visible=[visibility]
Set visibility of item (0 = Visible, 1 = Temporary hidden but visible to owner, 2 = Invisible by magic, 3 = Permanently hidden by GM)
weight=[weight]
Set weight of item (100 = 1 stone)
weightmax=[weight]
Maximum weight-capacity of a container (100 = 1 stone)
wipe=[0/1]
Determines if item is affected by item-wipes or not
abweath=[weatherSystemID]
Assign a weather system from UOX3/dfndata/weather/weather.dfn to this region
appearance=[value]
Set the appreanace of this region (0 = Spring, 1 = Summer, 2 = Autumn, 3 = Winter, 4 = Desolation)
buyable=[number]
See Advanced Trade System for details
chanceforbigore=[percentage]
Chance from 0 to 100 of finding 5 ores instead of 1 while mining in this region
dungeon=[0/1]
If set to 1, marks this region as a dungeon, which is used to determine light level for players who enter
escorts=[0/1]
If set to 1, marks this region as a potential target region for NPC Escort Quests
gate=[0/1]
If set to 1, allows players to Gate in and out of this region
good=[goodID]
See Advanced Trade System for details
guarded=[0/1]
If set to 1, this region is protected by guards
guardlist=[npcListID]
If region is guarded, this sets the NPC list (from UOX3/dfndata/npc/npclists.dfn) to choose from when spawning guards
guardowner=[text]
Set name of guard owner, which is used in a system message to players who enter/leave the region, in the shape of "You are now under the protection of [text] guards"
instanceid=[instanceID]
Set which instance of a world this region should exist in
magicdamage=[0/1]
If set to 1, hostile spells are castable in this region
mark=[0/1]
If set to 1, the Mark spell is usable to mark recall runes in this region
musiclist=[musicListID]
Specifies default music to play in this region, based on sections of music lists (MUSICLIST #) setup in regions.dfn based on entries from config.txt in UO client's music folder
name=[text]
Set name of this region
orepref=[oreName percentage]
Set one of these lines for each ore-type you want players to be able to find in this region, with an optional percentage chance from 0 to 100 of finding said ore
race<=[raceID]
Set the ID of the race this region belongs to. Members of a race can freely perform hostile actions against enemies of said race within this region
randomvalue=[lowvalue highvalue]
See Advanced Trade System for details
recall=[0/1]
If set to 1, players are able to recall in and out of this region
safezone=[0/1]
If set to 1, any and all hostile actions are disallowed within this region
script=[scriptID]
Specifies JS script to assign to this region
sellable=[lowvalue highvalue]
See Advanced Trade System for details
spawn=[predefinedSpawnID]
Set ID of a predefined spawn section setup in UOX3/dfndata/spawn/. See Spawn Regions for details
teleport=[0/1]
If set to 1 (default if not specified), Teleport spell is enabled within this region
world=[worldNumber]
Specifies which world number the region belongs in
x1=[x coordinate]
Defines boundary of region. Multiple X1 Y1 -> X2 Y2 blocks can be set for a single region.
x2=[x coordinate]
Defines boundary of region. Multiple X1 Y1 -> X2 Y2 blocks can be set for a single region.
y1=[y coordinate]
Defines boundary of region. Multiple X1 Y1 -> X2 Y2 blocks can be set for a single region.
y2=[y coordinate]
Defines boundary of region. Multiple X1 Y1 -> X2 Y2 blocks can be set for a single region.
call=[amount]
Max amount of objects to spawn in one batch during respawns
instanceid=[instanceID]
Set ID of instance of a world this spawnregion should be spawning objects in
item=[itemSectionID]
Set sectionID of item to spawn from Item DFNs
itemlist=[itemListID]
Set which itemlist from UOX3/dfndata/items/itemlists.dfn to randomly spawn an item from. Can be used instead of item tag
maxitems=[amount]
Total amount of items spawn region is allowed to spawn
maxnpcs=[amount]
Total amount of NPCs spawn region is allowed to spawn
maxtime=[maxTime]
Max time between respawns for this spawn region
mintime=[minTime]
Min time between respawns for this spawn region
name=[text]
Set name of the spawn region
npc=[npcSectionID]
Set sectionID of NPC to spawn from NPC DFNs
npclist=[npcListID]
Set which npclist from UOX3/dfndata/npc/npclists.dfn to randomly spawn an NPC from. Can be used instead of npc tag
onlyoutside=[0/1]
If set to 1, UOX3 will attempt to only spawn objects from this spawn region outside buildings
prefz=[value]
Set the maximum Z influence a dynamic or static item can have on spawning
validlandpos=[x],[y],[z]
Can be used to pre-define valid spawn locations on land for this spawn region. Useful in case it's an area with few valid spawn locations, to ensure the server can always find one
validwaterpos=[x],[y],[z]
Can be used to pre-define valid spawn locations on water for this spawn region. Useful in case it's an area with few valid spawn locations, to ensure the server can always find one
world=[worldNumber]
Set the world that this spawn region should be spawning objects in
x1=[x coordinate]
Upper left corner of coordinate set
x2=[x coordinate]
Lower right corner of coordinate set
y1=[y coordinate]
Upper left corner of coordinate set
y2=[y coordinate]
Lower right corner of coordinate set
coldchance=[percentage]
Chance for a cold day. If it passes, temperature will be fixed at a value between mintemp and coldintensity
coldintensity=[temperature]
???
heatchance=[percentage]
Chance for a hot day. If it passes, temperature will be fixed at a value between maxtemp and heatintensity
heatintensity=[temperature]
???
lightmin=[lightLevel]
Set minimum light level (0-20)
lightmax=[lightLevel]
Set maximum light level (0-20)
maxtemp=[temperature]
Set maximum temperature of the day. Can be affected by heat waves
mintemp=[temperature]
Set minimum temperature of the day. Can be affected by cold snaps.
maxwind=[text]
Set name of the spawn region
minwind=[npcSectionID]
Set sectionID of NPC to spawn from NPC DFNs
rainchance=[npcListID]
Set which npclist from UOX3/dfndata/npc/npclists.dfn to randomly spawn an NPC from. Can be used instead of npc tag
rainintensity=[0/1]
If set to 1, UOX3 will attempt to only spawn objects from this spawn region outside buildings
raintempdrop=[value]
Set the maximum Z influence a dynamic or static item can have on spawning
snowchance=[x],[y],[z]
Can be used to pre-define valid spawn locations on land for this spawn region. Useful in case it's an area with few valid spawn locations, to ensure the server can always find one
snowintensity=[x],[y],[z]
Can be used to pre-define valid spawn locations on water for this spawn region. Useful in case it's an area with few valid spawn locations, to ensure the server can always find one
snowthreshold=[worldNumber]
Set the world that this spawn region should be spawning objects in
stormchance=[x coordinate]
Upper left corner of coordinate set
stormintensity=[x coordinate]
Lower right corner of coordinate set
stormtempdrop<=[y coordinate]
Upper left corner of coordinate set
Say you, as a shard admin, want to customize some of the DFNs that come with UOX3, but you worry about those changes being overwritten when time comes to update the default UOX3 package with a newer version, or about going through conflict/merge hell trying to weave all your custom changes into a newer version of the scripts.
Enter, the DFN Priority System, the purpose of which is to allow DFNs to be loaded in a specific order, allowing shard admins to potentially override the default script packages by ensuring their custom DFNs get loaded last, aka get priority treatment.
In the root folder of the type of DFNs you wish to override, create a new file using your favourite text-editor, and name it "priority.nfo". For instance, if you wish to override parts of carve.dfn with the contents of a custom file named customcarve.dfn, place the priority.nfo file in the DFNDATA\CARVE\ folder, right alongside the carve.dfn and customcarve.dfn files.
The contents of customcarve.dfn would in this case be a copy & paste of one of the entries from carve.dfn, but with some minor changes applied - carving an alligator gives 24 meat instead of 12:
// alligator
[CARVE 1]
{
ADDITEM=0x09f1
ADDITEM=0xc002,24
}
Next, inside the priority.nfo file, copy paste the following default setup:
[priority]
{
DEFAULTPRIORITY=0
customcarve.dfn=1
}
The DEFAULTPRIORITY line determines the base priority level of all DFN files, which is normally left at zero. In this example, this would assign a default priority of 0 to carve.dfn, while next line would assign a priority of 1 to customcarve.dfn - ensuring that the contents of customcarve.dfn get priority over the default DFN file and is loaded last. Now, if there are any entries in these DFN files that conflict with each other, the copy in customcarve.dfn would take presedence, since it's loaded last!
You can use this method to override any DFN file inside the DFNDATA folder.
UOX3's scripting engine is based on an embedded C++ implementation of JavaScript called SpiderMonkey (v1.7.0). It allows UOX3 to load, read and interpret JavaScript files containing JS events, methods, functions, objects and properties written specifically for UOX3 in order to expose the inner workings of the server to prospective shard admins and script writers.
UOX3's JavaScripts can be reloaded dynamically without restarting the server, making it very easy to iterate on new features or modify existing ones.
Example of a simple JavaScript in UOX3, used with the Dice and Cup object to allow players to roll a dice and have the number displayed for others to see:
function onUseChecked( pUser, iUsed ) { // Generate two random numbers from 1-6 var iDice1 = RandomNumber( 1, 6 ); var iDice2 = RandomNumber( 1, 6 ); // Fetch the name of the player using the object var pName = pUser.name; // Display the result either as an emote above player (if object is in a container) or a message above item (if on ground) if( iUsed.container != null ) pUser.EmoteMessage( pName+" rolls the dice and gets a "+iDice1+" and a "+iDice2+"." ); else iUsed.TextMessage( pName+" rolls the dice and gets a "+iDice1+" and a "+iDice2+"." ); return false; }
The UOX3 JS documentation documents all the various events, triggers, methods, functions and properties available to script writers.
UOX3 comes with SpiderMonkey v1.7.0, which offers an equivalent JavaScript feature set to JavaScript 1.7 or ECMAScript 5, though certain features (such as let, or browser-specific features) might not be fully supported.
For additional help with or discussion around any of these, don't hesitate to make use of the UOX3.org forums or the UOX3 Discord chat!
In the UOX3/js/ folder, you can find three files that are used to map UOX3 JavaScript files to script IDs, and map item IDs or item Types to script IDs.
jse_fileassociations.scp
Through this file you can assign script IDs to JavaScripts for use either with objects, commands, spells, skills, network packets or the console. You'll need to assign your script a scriptID in here before you can assign it to an object or use it in either of the other two files mentioned below. Syntax: [scriptID]=[filepath and name]
SCRIPT_LIST
General mapping of scripts to scriptIDs. Can be assigned to objects in-game, via DFNs, or via other scripts.
COMMAND_SCRIPTS
Mapping of scriptIDs to scripts containing command events and functions. Scripts are executed when using associated commands in-game.
MAGIC_SCRIPTS
Mapping of scriptIDs to scripts containing spell events and functions. Scripts are executed when casting associated spells in-game.
SKILLUSE_SCRIPTS
Mapping of scriptIDs to scripts containing skill events and functions. Scripts are executed when using associated skills in-game.
PACKET_SCRIPTS
Mapping of scriptIDs to scripts containing networking packet events and functions. Scripts are executed when associated network packets are received.
CONSOLE_SCRIPTS
Mapping of scriptIDs to scripts containing console events and functions. Scripts are executed when associated console actions/commands are used.
jse_objectassociations.scp
Items whose IDs have been mapped to scripts via this file will execute the OnUse() JS event in the associated script when the items are used (double-clicked) in-game. Syntax: [itemID]=[scriptID]
jse_typeassociations.scp
Instead of relying on item IDs or directly assigning scripts to items, you can also use this file to map the scripts to specific item types, which when used in-game will execute the onUse() JS event for the associated script. Syntax: [itemType]=[scriptID]
GitHub is the current home for UOX3's sourcecode, and where to go to check up on the latest, cutting-edge developments for UOX3.
For live chat, support and discussions with other UOX3 users and/or developers, head on over to the UOX3 Discord!
Main community site for UOX3 can be found at UOX3.org. There you'll find downloads, support forums, useful tools and guides beyond what is covered by these docs.
Xuri's UOX3 Guide, while originally written for a different era of UOX3, still offers a myriad of tips, tricks and advice for shard admins and GMs, as well as lists of various data such as IDs, light-settings, etc. Recommended read for both novices and veterans.
Legacy, ready-only CVS repositories for older versions of UOX3 can be found at OpenUO @ SourceForge and UOX3 @ SourceForge.
Xuri's WorldBuilder is a GM Tool for UOX3 that allows GMs to easily create custom houses, add decorations and even plant entire forests. Mainly focusing on worldbuilding, it also functions as a traditional GM Tool, giving the user easy access to all the most used commands in UOX3.
Razor is both a necessary tool to remove encryption from the UO client, allowing you to actually connect to UOX3, as well as a tool that can provide many quality-of-life improvements over the regular old UO client.
ClassicUO is a cross-platform (Windows, Linux, macOS), open source implementation of the Ultima Online Classic Client that runs faster, smoother and with more features and customizability than the original UO client.
UOFiddler is the spiritual successor of InsideUO, though it has gone far beyond that by now. Tool that can be used to view and alter almost every file in the UO client.
CentrED+ is a Client/Server based map-editor, which gives the ability for several people to work on both terrain and statics together at the same time.
Ryandor.com is the homepage of Ryandor, a true artist when it comes to map-making for UO. His forums are crawling with map-makers from all corners of the world, and if you have a question about map-editing that you cannot get an answer for on these forums - there is no answer ;)
Another nice (German) website focusing on providing custom artwork for UO shards. Amongst other things, it has some very nice animated item artwork (including a moving water-mill).
Click the changelog below to view the detailed update notes for the latest UOX3 version (and many, many versions before that). To stay up-to-date with developments outside of stable releases, check out the sticky topic in the UOX3.org forums titled Changelog for next UOX3 version. It is continuously updated with details of the latest commits to GitHub.
UOX was originally created by Denny Zuko aka Jaegermeister in 1997 for the pre-alpha version of Ultima Online, and was subsequently abandoned, rewritten from scratch by Marcus Rating aka Cironian and released in closed-source form as UOX2 the same year.
UOX3 is, as the number in the name implies, the third iteration of UOX, and when released by Cironian in 1998 it become the first open-source UO server emulator. While he is no longer involved with the project, hundreds of other people have since contributed to updating and maintaining UOX3, and those efforts are still ongoing, with UOX3.org now acting as a central hub for ongoing development and support.
Due to the open-source nature of UOX3, there have been numerous spin-off projects over the years, all with their own rich history. Most of these have gone dormant, but the "main UOX3 branch" has been around for nearly 22 years (as of 2020), and is here for the long run.
Release date: 24th of September 1997
Released by: Cironian
Fun Facts: Single player only!
Release date: 25th of September 1997
Released by: Cironian
Bonus Fact: Work on UOX3 started on 24th of September 1997... the same day UO launched! 5 days later, on 29th of September, the first 2 player session was successfully tested.
Release date: 22nd of October 1997
Released by: Cironian
Fun Fact: First multiplayer capable version of UOX released! It requires Windows 98 to run.
Release date: 24th of October, 1997
Released by: Cironian
Release date: 25th of October, 1997
Released by: Cironian
Fun Facts: /KILL and /RESURRECT commands implemented!
Release date: 31st of October, 1997
Released by: Cironian
Fun Facts: Special Halloween Edition! New characters automatically get one of 7 halloween masks. Support for UO Beta client dropped due to protocol changes.
Release date: 1st of November, 1997
Released by: Cironian
Release date: 4th of November, 1997
Released by: Cironian
Fun Facts: Maximum number of players raised to 32!
Release date: 17th of November, 1997
Released by: Cironian
Fun Facts: First introduction of corpses!
Release date: 22nd of November, 1997
Released by: Cironian
Release date: 24th of November, 1997
Released by: Cironian
Fun Facts: Basic scripting support added!
Release date: 26th of November, 1997
Released by: Cironian
Contributors: Drax
Release date: 27th of November, 1997
Released by: Cironian
Fun Facts: Max players increased to 128! Max items raised to 4096! First NPC (Orc) added!
Release date: 29th of November, 1997
Released by: Cironian
Fun Facts: First NPC reactions to player speech added!
Release date: 1st of December, 1997
Released by: Cironian
On 3rd of December, 1997, work on UOX3 was temporarily put on hold to explore the possibility of UOX3 becoming an officially authorized add-on product for Ultima Online. Cironian would later resume work on it as no progress was made on such a deal.
Release date: 24th of December, 1997
Released by: Cironian
Fun Facts: Garbage collection implemented! UOX3 icon added! First readable book added! First bunch of third party tools arrive on the scene in the shape of UOXSetup and MapMaker (later to evolve into WorldForge?)!
Release date: 2nd of January, 1998
Released by: Cironian
Release date: 6th of January, 1998
Released by: Cironian
Release date: 10th of January, 1998
Released by: Cironian
Release date: 17th of January, 1998
Released by: Cironian
Fun Facts: Mounts added! Cironian hints about this being the last release of UOX3 as he wants to rewrite everything from scratch - again!
Release date: 6th of February, 1999
Released by: Cironian
Fun Facts: Cironian loses source to his UOX4 rewrite in a harddrive crash, decides to scrap the idea and implement the same concepts in UOX3 instead.
Release date: 10th of February, 1998
Released by: Cironian
Fun Facts: First parts of combat code goes in, but remains disabled.
Release date: 11th of February, 1998
Released by: Cironian
Release date: 16th of February, 1998
Released by: Cironian
Fun Facts: Corpses can wear clothes. No more naked corpses!
Release date: 18th of February, 1998
Released by: Cironian
Release date: 26th of February, 1998
Released by: Cironian
On 3rd of March, 1998, Cironian announces that he's halting further development of UOX3 to work on UOX4 - again, and will now longer be providing any support for UOX3. However, by the start of the next month, another version of UOX3 is released!
Release date: 1st of April, 1998
Released by: Cironian
Release date: 8th of April, 1998
Released by: Cironian
Fun Facts: Offline/LAN mode now supports up to 4 players! First Linux port available!
Release date: 21st of April, 1998
Released by: Cironian
Release date: 22nd of April, 1998
Released by: Cironian
Release date: 3rd of May, 1998
Released by: Cironian
Fun Facts: First working doors! Can be locked.
Release date: Unknown, 1998
Released by: Cironian
Release date: Unknown, 1998
Released by: Cironian
Fun Facts: First iteration of combat system enabled! License update.
Release date: Unknown, 1998
Released by: Cironian
Fun Facts: First edible food appears! Item type 14. First code contributions by third parties included!
Release date: Unknown, 1998
Released by: Cironian
Release date: Unknown, 1998
Released by: Cironian
Release date: Unknown, 1998
Released by: Morac
Contributors: Jerrith the Healer, Anthtracks, TMB, Cray XMP1
Fun Facts: First version release coordinated by someone other than Cironian! Teleporters, create food and NPC movement appears!
Release date: Unknown, 1998
Released by: Jerrith
Fun Facts: NPCWander system introduced, as well as stamina cost for shoving characters!
Release date: Unknown, 1998
Released by: Anthracks
Release date: Unknown, 1998
Released by: Jerrith
Contributors: Morac
Fun Facts: Visibility modes added!
Release date: Unknown, 1998
Released by: Jerrith
Fun Facts: Functional spellbooks!
Release date: 10th of July, 1998
Released by: Cironian
Release date: 10th/11th of July, 1998
Released by: Jerrith
Contributors: Gitchigoomi, Monte Cristo, Okaria Dragon
Release date: 11th of July, 1998
Released by: Cironian
Fun Facts: TWEAK command added!
Release date: July, 1998
Released by: Morac
Fun Facts: Due to bugs and inefficient code, 0.67k went unreleased. Parts of it was fixed and merged into 0.67l.
Release date: July, 1998
Released by: Jerrith
Contributors: Zarn, Crimson Guard
Release date: July, 1998
Released by: Morac
Release date: July, 1998
Released by: Jerrith
Contributors: Drylock, Ash, Okaria Dragon
Release date: July, 1998
Released by: Jerrith
Contributors: Ash, Drylock, Gitchigoomi, El_Barto
Release date: July, 1998
Released by: Morac
Contributors: Ash, Rhuarc, Gitchigoomi
Fun Facts: First town regions!
Release date: July, 1998
Released by: RofGilead
Contributors: Ash
Fun Facts: Day & Night cycle added, and Lumberjacking!
Release date: July, 1998
Released by: Morac
Contributors: Rhuarc, zarn
Fun Facts: NPCs can flee in combat!
Release date: July, 1998
Released by: Morac
Contributors: El_Barto, TMB, Ash
Fun Facts: Characters will now become hungry!
Release date: July, 1998
Released by: Jerrith
Contributors: El_Barto, Okaria Dragon
Release date: July, 1998
Released by: Jerrith
Fun Facts: Light sources can have different light settings!
Release date: July, 1998
Released by: Morac
Release date: July, 1998
Released by: Jerrith
Contributors: Ash
Release date: July, 1998
Released by: Jerrith
Contributors: Ash, Morac, Maytrix
Fun Facts: Time system now keeps track of the two moons, Felucca and Trammel! Object limit raised to 8192.
Release date: July, 1998
Released by: Morac
Release date: July, 1998
Released by: Jerrith
Contributors: Morac, Pug, Fearicon
Fun Facts: 41/64 spells working! Basic NPC AIs added - healer, monster and guard!
Release date: 26th of July, 1998
Released by: Jerrith
Contributors: Pug
Release date: July, 1998
Released by: Tal Strake
Fun Facts: Heartbeat added! Let's third party tools detect server if server is up or not.
Release date: 30. July 1998
Released by: Morac
Fun Facts: Fixed bugs introduced in 0.67x++ (yes, ++)!
Release date: August, 1998
Released by: Jerrith
Contributors: Ashran, Beosil
Fun Facts: Banker NPCs added! And death animations.
Release date: August, 1998
Released by: Tal Strake
Release date: August, 1998
Released by: Jerrith
Fun Facts: Introduction of magic potions and alchemy skill! Basic combat highlighting of innocents (blue) and monsters (red).
Release date: August, 1998
Released by: Krozy
Fun Facts: NPCLISTs, RANDOMNAMEs and LOOTLISTs make their appearance!
Release date: August, 1998
Released by: Jerrith
Fun Facts: BACKPACK and PACKITEM tags added for NPCs!
Release date: August, 1998
Released by: Anthracks
Release date: August, 1998
Released by: Jerrith
Contributors: Zarn, Krozy
Fun Facts: First NPC shopkeepers!
Release date: August, 1998
Released by: Ashran
Release date: August, 1998
Released by: Jerrith
Contributors: Drylock, Krozy, Morac, Maytrix
Release date: August, 1998
Released by: Jerrith
Release date: August, 1998
Released by: Jerrith
Contributors: Krozy, Morac
Release date: August, 1998
Released by: Jerrith
Contributors: Morac, Krozy, El_Barto
Fun Facts: Monster sounds!
Release date: August, 1998
Released by: Jerrith
Release date: August, 1998
Released by: Jerrith
Contributors: Morac
Fun Facts: Command to play music added!
Release date: August, 1998
Released by: Anthracks
Contributors: Jerrith
Fun Facts: Players can be jailed! Secure trading added!
Release date: August, 1998
Released by: Maytrix
Fun Facts: Wipe command added!
Release date: August, 1998
Released by: Jerrith
Fun Facts: In-game region system added!
Release date: August, 1998
Released by: Jerrith
Contributors: Krozy, Anthracks
Fun Facts: Scriptable skill and stat advancement added!
Release date: August, 1998
Released by: Morac
Fun Facts: NPCs can open doors! And collide with stuff.
Release date: August, 1998
Released by: Anthracks
Contributors: SirGonad, Jerrith
Fun Facts: Healing/Veterinary implemented!
Release date: August, 1998
Released by: Morac
Contributors: Milan Rabaa
Release date: August, 1998
Released by: Sir Joseph
Contributors: Anthracks
Release date: ~17 August, 1998
Released by: Cironian
Contributors: Beosil
Fun Facts: Item limit increased from 4096 to 16384!
Release date: ???, 1998
Released by: Morac
Release date: ???, 1998
Released by: Sir Joseph
Contributors: Krozy
Release date: ???, 1998
Released by: Sir Joseph
Contributors: Morac
Fun Facts: Combat with viking swords now has sound!
Release date: ???, 1998
Released by: Anthracks
Contributors: Morac, Jerrith, Halin Talismoon
Release date: ???, 1998
Released by: Maytrix
Release date: ???, 1998
Released by: Tal Strake
Release date: ???, 1998
Released by: Maytrix
Release date: ???, 1998
Released by: Maytrix
Contributors: Morac
Release date: ???, 1998
Released by: Maytrix
Fun Facts: Container spawners and ITEMLISTS implemented!
Release date: 24 August, 1998
Released by: Cironian
Fun Facts: No range checks for GMs!
Release date: ???, 1998
Released by: Polaris
Contributors: Tal Strake
Release date: ???, 1998
Released by: Kathrrak & Tal Strake
Release date: ???, 1998
Released by: SirGonads
Fun Facts: Reloading of server settings while server is running! Tracking, Begging and Animal Lore skills added!
Release date: ???, 1998
Released by: Tal Strake & Kathrrack
Release date: ???, 1998
Released by: TANiS
Release date: ???, 1998
Released by: TANiS
Release date: ???, 1998
Released by: Krazy, Jim, Polaris
Fun Facts: Townstones introduced!
Release date: ???, 1998
Released by: Morac
Contributors: Brad, Kathrrak, Jack, Friend
Release date: ???, 1998
Released by: Morac
Contributors: Drylock
Release date: ???, 1998
Released by: Sir Joseph
Contributors: Krozy, Morac
Release date: ???, 1998
Released by: Morac
Release date: ???, 1998
Released by: Morac
Contributors: Drylock, Beosil
Fun Facts: Divide by zero in combat fixed!
Release date: ???, 1998
Released by: Sir Joseph
Contributors: Tal Strake
Fun Facts: First combat with bows and arrows implemented!
Release date: ???, 1998
Released by: Polaris, Tal Strake
Contributors: Morac, Friend
Fun Facts: House deeds!
Release date: ???, 1998
Released by: Tal Strake
Release date: ???, 1998
Released by: The UOX Development Team
Fun Facts: More stable codebase!
Release date: ???, 1998
Released by: Cironian & Ridcully
Release date: ???, 1998
Released by: CVS system version
Contributors: Drylock, Anthracks, Ridcully, Maytrix
Fun Facts: First use of CVS!
Release date: ???, 1998
Released by: Maytrix
Release date: ???, 1998
Released by: Vagrant
Contributors: Maytrix
Fun Facts: Lockpicking added!
Release date: ???, 1998
Released by: McCleod
Fun Facts: Newbie Items!
Release date: ???, 1998
Released by: Hunter
Release date: ???, 1998
Released by: Friend (Brother Kane)
Fun Facts: Tailoring!
Release date: ???, 1998
Released by: Friend (Brother Kane)
Release date: ???, 1998
Released by: McCleod
Release date: ???, 1998
Released by: Tao
Contributors: DasRaetsel
Fun Facts: Sphere of influence introduced to help server performance!
Release date: ???, 1998
Released by: Bud
Release date: ???, 1998
Released by: Tao
Release date: ???, 1998
Released by: SpaceDog
Release date: ???, 1998
Released by: Bud
Contributors: Tao, SpaceDog
Fun Facts:
Release date: ???, 1998
Released by: TANiS
Fun Facts: Teleporting guards added!
Release date: ???, 1998
Released by: TANiS
Release date: ???, 1998
Released by: TANiS
Contributors: Bud
Fun Facts: Performance profiling added to console!
Release date: ~September, 1998
Released by: Friend (Brother Kane)
Fun Facts: Cannons!
Release date: ~September, 1998
Released by: TANiS
Release date: ~September, 1998
Released by: Vagrant
Release date: 26 September, 1998
Released by: Sir Joseph
Contributors: SpaceDog, Vagrant, Anthracks, Friend
Fun Facts: Advancement Objects! Poison attacks!
Release date: 3 October, 1998
Released by: Sir Joseph
Contributors: Bud, SpaceDog, Vagrant, Anthracks
Fun Facts: Mining regions within other regions!
Release date: 3 October, 1998
Released by: Tauriel
Release date: 4 October, 1998
Released by: Tauriel
Contributors: Dupois, TANiS, CyberCrusher
Release date: ~4-11 October, 1998
Released by: Cironian
Release date: ~4-11 October, 1998
Released by: TANiS
Fun Facts: Monsters can attack animals!
Release date: ~4-11 October, 1998
Released by: Moongraven
Release date: 11 October, 1998
Released by: Sir Joseph
Contributors: Gerry, Dupois, Vagrant, Anthracks, Jim Wright
Fun Facts: Scriptable global teleport locations
Release date: 11 October, 1998
Released by: Cironian
Fun Facts: INVUL and NOINVUL commands!
Release date: 11 October, 1998
Released by: Gerry & Sir Joseph
Contributors: Gerry, SpaceDog, Anthracks, Bud, Ash, Dupois, Sir Joseph and Lord Slayer
Fun Facts: Training Dummies added!
Release date: 26 October, 1998
Released by: Gerry
Contributors: Sir Joseph, Friend, SpaceDog, Bud, Vagrant, Moongraven, Max Wulf, Dupois, Lord Slayer, Tauriel, Anthracks, Zadius
Fun Facts: Weight system appears!
Release date: 5 November, 1998
Released by: Genesis
Fun Facts: Gravedigging!
Release date: 6 November, 1998
Released by: Genesis
Release date: 7 November, 1998
Released by: Gerry
Contributors: Gerry, Tauriel, SpaceDog, Myca, Bud, Armageddon, Cironian, Dupois
Fun Facts: Monster gates! Worldsave backups!
Release date: 8 November, 1998
Released by: Genesis
Release date: 8 November, 1998
Released by: Tauriel
Contributors: Anthracks
Release date: 9 November, 1998
Released by: Cironian
Release date: 10 November, 1998
Released by: Cironian
Contributors: Bud
Fun Facts: Tents! Accounts stored separately outside UOX3.INI!
Release date: 10 November, 1998
Released by: Bud
Contributors: McCleod, Tauriel, SpaceDog
Release date: 13 November, 1998
Released by: Genesis
Contributors: Bud
Release date: 13 November, 1998
Released by: Nattsorgh
Contributors: Bud, Okaria Dragon
Release date: 13 November, 1998
Released by: redbaron
Contributors: Bud
Release date: 13 November, 1998
Released by: Genesis
Contributors: Thunderstorm, Myth
Release date: 14 November, 1998
Released by: Genesis
Release date: 16 November, 1998
Released by: Nattsorgh
Contributors: Genesis, Thunderstorm
Release date: 17 November, 1998
Released by: Genesis
Contributors: SpaceDog, Thunderstorm, Genesis/Myth, Ripper, Zadius, McCleod, Thunderstorm
Release date: 30 November, 1998
Released by: Tauriel
Contributors: Myth, Moongraven, Thunderstorm, Anthracks, Zadius
Fun Facts: Trigger system added!
Release date: 30 November, 1998
Released by: Tauriel
Contributors: Zadius
Release date: 30 November, 1998
Released by: Tauriel
Release date: 30 November, 1998
Released by: Tauriel
Contributors: Beosil
Release date: ~November-December, 1998
Released by: ???
Contributors: Zadius, Zippy, Drax, Tauriel, Ray, Moongraven
Fun Facts: WF compatible item type! Ray's triggers!
Release date: ~November-December, 1998
Released by: Tauriel and the UOX Dev Team
Contributors: Ripper, EviLDeD,
Fun Facts: Color coded messages! Binary saves!
Release date: ~November-December, 1998
Released by: Tauriel and the UOX Dev Team
Contributors: Ripper, Pellinore Dragon
Fun Facts: Speed improvements! Tile command!
Release date: ~November-December, 1998
Released by: Tauriel and the UOX Dev Team
Contributors: Homey, Crwth, McCleod, Phantom, Wolfgang, Zippy
Fun Facts: Line of Sight added!
Release date: 16 April, 1999
Released by: Tauriel
Contributors: Dupois, Revana, EviLDeD
Release date: 29 October, 1999
Released by: ????
Contributors: fur, Abaddon, Krazyglue, JustMichael, Kashyyyk, Zippy, Tseramed, Ripper, Revana
Fun Facts: Weather System! Player Races! Running NPCs
Release date: 9 November, 1999
Released by: Freelancers?
Contributors: fur, Abaddon
Release date: 15 November, 1999
Released by: Freelancers?
Contributors: LB
Release date: 10 December, 1999
Released by: UOX Dev Team/Freelancers
Contributors: Abaddon, fur, Zippy, Eagle, Krazyglue, Homey, Quippl, Eagle, Mithos, LB, JustMichael, Tseramed, Kashyyyk, Daemar, Mike,
Fun Facts: Murder counts! Item lockdowns! Fireworks wands! Scriptable command privileges!
Release date: ~16 January, 2000
Released by: UOX Dev Team/Freelancers
Contributors: Abaddon, fur, Zippy, Eagle, Krazyglue, Homey, Quippl, Eagle, Mithos, LB, JustMichael, Tseramed, Kashyyyk, Daemar, Mike,
Fun Facts: Murder counts! Item lockdowns! Fireworks wands! Scriptable command privileges!
Release date: 19 January, 2000
Released by: UOX Dev Team/Freelancers
Contributors: Dupois, Zippy, Abaddon, AntiChrist, JustMichael, Magius
Fun Facts: Moongates! Escort quests!
Release date: 4 February, 2000
Released by: UOX Dev Team/Freelancers
Release date: 8 March, 2000
Released by: UOX Dev Team/Freelancers
Contributors: Abaddon, EviLDeD, Homey, Ripper, Zippy, Eagle, punt, Westy, AntiChrist, JustMichael, Xuri, Dupois, Magius
Fun Facts: Boat improvements! Context-sensitive footstep sounds! Many many fixes!
Release date: 29 May, 2000
Released by: UOX Dev Team
Contributors: Abaddon
Fun Facts: Scriptable Port!
Release date: 30 May, 2000
Released by: UOX Dev Team
Release date: 15 June, 2000
Released by: UOX Dev Team
Release date: 1 August, 2000
Released by: UOX Dev Team
Release date: 22 August, 2000
Released by: UOX Dev Team
Contributors: Gunther
Release date: 11 September, 2000
Released by: UOX Dev Team
Contributors: Gunther, Thyme
Release date: 25 September, 2000
Released by: UOX Dev Team
Contributors: Thyme, Chaos, Gunther, Knoxos, WIG
Release date: 9 October, 2000
Released by: UOX Dev Team
Contributors: Dodger, Knoxos, Zippy, Thyme
Fun Facts: Binary based spellbook spell storage!
Release date: 24 October, 2000
Released by: UOX Dev Team
Contributors: Thaliq, Gunther, Chaos, Abaddon
Release date: 25 October, 2000
Released by: UOX Dev Team
Contributors: Knoxos
Release date: 22 November, 2000
Released by: UOX Dev Team
Fun Facts: Customizable delay for Explosion spell! Characters can fall forward AND backward when dying!
Release date: 23 November, 2000
Released by: UOX Dev Team
Release date: 6 December, 2000
Released by: UOX Dev Team
Contributors: KKung, Xuri
Release date: 20 December, 2000
Released by: UOX Dev Team
Fun Facts: CLUOX support added!
Release date: 17 January, 2001
Released by: UOX Dev Team
Contributors: Xuri, Retalin, Jedda, Tom2, Correa, Knox
Release date: 31 January, 2001
Released by: UOX Dev Team
Contributors: Raftina, Jedda, Chaos, Thyme
Release date: 1 February, 2001
Released by: UOX Dev Team
Release date: 5 February, 2001
Released by: UOX Dev Team
Contributors: punt
Release date: 6 February, 2001
Released by: UOX Dev Team
Contributors: knox
Release date: 16 February, 2001
Released by: UOX Dev Team
Contributors: Thunderstorm.
Release date: 28 February, 2001
Released by: UOX Dev Team
Fun Facts: Players can no longer beg from offline players!
Release date: 21 March, 2001
Released by: UOX Dev Team
Release date: 9 April, 2001
Released by: UOX Dev Team
Fun Facts: Karma and Fame gain/loss for NPCs! Evil mongbats?
Release date: 10 April, 2001
Released by: UOX Dev Team
Fun Facts: Recursive races!
Release date: 15 April, 2001
Released by: UOX Dev Team
Fun Facts: NOHAIR race tag added, to ensure bald player monsters!
Release date: 3 June, 2001
Released by: UOX3 Dev Team
Release date: ~3-11 June, 2001
Released by: UOX3 Dev Team
Release date: ~3-11 June, 2001
Released by: UOX3 Dev Team
Release date: ~3-11 June, 2001
Released by: UOX3 Dev Team
Release date: 11 June, 2001
Released by: UOX3 Dev Team
Release date: 30 June, 2001
Released by: UOX3 Dev Team
Release date: 7 August, 2001
Released by: UOX3 Dev Team
Release date: 20 August, 2001
Released by: UOX3 Dev Team
Release date: 14 September, 2001
Released by: UOX3 Dev Team
Release date: 19 September, 2001
Released by: UOX3 Dev Team
Release date: 7 November, 2001
Released by: UOX3 Dev Team
Release date: 8 January, 2002
Released by: UOX3 Dev Team
Release date: 9 January, 2002
Released by: UOX3 Dev Team
Release date: 22 January, 2002
Released by: UOX3 Dev Team
Release date: 4 February, 2002
Released by: UOX3 Dev Team
Release date: 26 April, 2002
Released by: EviLDeD
Contributors: UOX3 Dev Team
Release date: ~6 October, 2002
Released by: EviLDeD
Contributors: UOX3 Dev Team
Release date: 18 December, 2002
Released by: EviLDeD
Contributors: UOX3 Dev Team
Release date: 7 March, 2003
Released by: EviLDeD
Contributors: UOX3 Dev Team
Release date: 11 March, 2003
Released by: EviLDeD
Contributors: UOX3 Dev Team
Release date: 15 March, 2003
Released by: EviLDeD
Contributors: UOX3 Dev Team
Release date: 23 March, 2003
Released by: EviLDeD
Contributors: UOX3 Dev Team
Release date: 4 May, 2003
Released by: EviLDeD
Contributors: UOX3 Dev Team
Release date: 10 May, 2003
Released by: EviLDeD
Contributors: UOX3 Dev Team
Release date: 14 May, 2003
Released by: EviLDeD
Contributors: UOX3 Dev Team
Release date: 18 June, 2003
Released by: EviLDeD
Contributors: UOX3 Dev Team
Release date: 29 June, 2003
Released by: EviLDeD
Contributors: UOX3 Dev Team
Release date: 30 June, 2003
Released by: EviLDeD
Contributors: UOX3 Dev Team
Release date: 27 July, 2003
Released by: EviLDeD
Contributors: UOX3 Dev Team
Release date: 1 August, 2003
Released by: EviLDeD
Contributors: UOX3 Dev Team
Release date: 2 August, 2003
Released by: EviLDeD
Contributors: UOX3 Dev Team
Release date: 8 August, 2003
Released by: EviLDeD
Contributors: UOX3 Dev Team
Release date: 14 August, 2003
Released by: EviLDeD
Contributors: UOX3 Dev Team
Release date: 7 September, 2003
Released by: EviLDeD
Contributors: UOX3 Dev Team
Release date: 14 September, 2003
Released by: EviLDeD
Contributors: UOX3 Dev Team
Release date: 19 September, 2003
Released by: EviLDeD
Contributors: UOX3 Dev Team
Release date: 28 September, 2003
Released by: EviLDeD
Contributors: UOX3 Dev Team
Release date: 23 March, 2004
Released by: EviLDeD
Contributors: UOX3 Dev Team
Release date: 30 December, 2004
Released by: EviLDeD
Contributors: giwo, Xuri, che, Maarc
Fun Facts: Support for new door types! Many GM commands move to JS!
Release date: 31 December, 2004
Released by: EviLDeD
Release date: 1 January, 2005
Released by: EviLDeD
Contributors: giwo
Release date: 30 January, 2005
Released by: EviLDeD
Contributors: giwo, Maarc, Rynet
Release date: 7 February, 2005
Released by: giwo
Contributors: Maarc
Release date: 8 February, 2005
Released by: UOX3 Dev Team
Release date: 10 February, 2005
Released by: UOX3 Dev Team
Release date: 18 February, 2005
Released by: UOX3 Dev Team
Release date: 18 February, 2005
Released by: UOX3 Dev Team
Release date: 26 February, 2005
Released by: UOX3 Dev Team
Release date: 27 February, 2005
Released by: UOX3 Dev Team
Release date: 28 February, 2005
Released by: UOX3 Dev Team
Release date: 5 March, 2005
Released by: UOX3 Dev Team
Release date: 11 March, 2005
Released by: UOX3 Dev Team
Release date: 2 April, 2005
Released by: UOX3 Dev Team
Release date: 14 April, 2005
Released by: UOX3 Dev Team
Contributors: giwo, Xuri
Release date: 16 April, 2005
Released by: UOX3 Dev Team
Contributors: giwo, Xuri
Release date: 22 April, 2005
Released by: UOX3 Dev Team
Contributors: giwo, Xuri
Release date: 12 June, 2005
Released by: UOX3 Dev Team
Contributors: giwo, Grimson, Xuri, ShadowBranch
Release date: 15 June, 2005
Released by: UOX3 Dev Team
Contributors: giwo, Xuri
Release date: 16 June, 2005
Released by: UOX3 Dev Team
Contributors: giwo, Xuri, ShadowBranch
Release date: 14 July, 2005
Released by: UOX3 Dev Team
Contributors: giwo, ShadowBranch
Release date: 16 July, 2005
Released by: UOX3 Dev Team
Contributors: giwo
Release date: 4 August, 2005
Released by: UOX3 Dev Team
Contributors: giwo, Maarc, Grimson, Xuri, Sydius
Release date: 7 August, 2005
Released by: UOX3 Dev Team
Contributors: giwo, punt
Release date: 13 August, 2005
Released by: UOX3 Dev Team
Contributors: giwo, Xuri
Release date: 13 September, 2005
Released by: UOX3 Dev Team
Release date: 13 September, 2005
Released by: UOX3 Dev Team
Release date: 20 September, 2005
Released by: UOX3 Dev Team
Release date: 23 September, 2005
Released by: UOX3 Dev Team
Release date: 27 September, 2005
Released by: UOX3 Dev Team
Release date: 27 September, 2005
Released by: UOX3 Dev Team
Release date: 29 September, 2005
Released by: UOX3 Dev Team
Release date: 5 October, 2005
Released by: UOX3 Dev Team
Release date: 15 October, 2005
Released by: UOX3 Dev Team
Release date: 17 October, 2005
Released by: UOX3 Dev Team
Release date: 22 October, 2005
Released by: UOX3 Dev Team
Contributors: giwo, Maarc, Xuri
Fun Facts: Improved map support! World save optimizations! 5.0.x clients supported!
Release date: 1 November, 2005
Released by: UOX3 Dev Team
Release date:31 November, 2005
Released by: UOX3 Dev Team
Release date: 5 November, 2005
Released by: UOX3 Dev Team
Release date: 20 November, 2005
Released by: UOX3 Dev Team
Release date: 23 November, 2005
Released by: UOX3 Dev Team
Release date: 13 December, 2005
Released by: UOX3 Dev Team
Release date: 16 December, 2005
Released by: UOX3 Dev Team
Release date: 28 January, 2006
Released by: UOX3 Dev Team
Release date: 28 January, 2006
Released by: UOX3 Dev Team
Release date: 29 January, 2006
Released by: UOX3 Dev Team
Contributors: giwo, Xuri, Maarc, Grimson, longshot
Fun Facts: Elven characters! LoS checks in JS engine!
Release date: 29 January, 2006
Released by: UOX3 Dev Team
Release date: 30 January, 2006
Released by: UOX3 Dev Team
Release date: 31 January, 2006
Released by: UOX3 Dev Team
Release date: 1 February, 2006
Released by: UOX3 Dev Team
Release date: 2 February, 2006
Released by: UOX3 Dev Team
Release date: 12 February, 2006
Released by: UOX3 Dev Team
Contributors: giwo, Maarc, Xuri, Grimson
Release date: 20 February, 2006
Released by: UOX3 Dev Team
Contributors: giwo, Grimson, Maarc, Xuri
Release date: 8 March, 2006
Released by: UOX3 Dev Team
Contributors: giwo, Grimson, Maarc, Xuri
Release date: 5 April, 2006
Released by: UOX3 Dev Team
Contributors: giwo, Grimson, Maarc, Xuri
Release date: 7 April, 2006
Released by: UOX3 Dev Team
Contributors: giwo, Grimson
Release date: 8 July, 2006
Released by: UOX3 Dev Team
Contributors: giwo, Grimson, Xuri
Release date: 9 July, 2006
Released by: giwo
Fun Facts: Included in v0.98-4.0 release!
Release date: 10 July, 2006
Released by: giwo
Fun Facts: Included in v0.98-4.0 release!
Release date: 15 July, 2006
Released by: giwo
Fun Facts: Included in v0.98-4.0 release!
Release date: 18 July, 2006
Released by: UOX3 Dev Team
Contributors: giwo, Xuri
Fun Facts: Included in v0.98-4.0 release!
Release date: 24 July, 2006
Released by: UOX3 Dev Team
Contributors: giwo, Xuri
Fun Facts: Included in v0.98-4.0 release!
Release date: 11 August, 2006
Released by: giwo
Fun Facts: Included in v0.98-4.0 release!
Release date: 12 August, 2006
Released by: UOX3 Dev Team
Contributors: giwo, Xuri
Fun Facts: Included in v0.98-4.0 release!
Release date: 25 January, 2007
Released by: UOX3 Dev Team
Contributors: Grimson, Maarc, Xuri
Fun Facts: Included in v0.98-4.0 release!
Release date: 25 January, 2007
Released by: giwo
Fun Facts: Included in v0.98-4.0 release!
Release date: 28 January, 2007
Released by: giwo
Fun Facts: Included in v0.98-4.0 release!
Release date: 3 March, 2007
Released by: UOX3 Dev Team
Contributors: giwo, Grimson
Fun Facts: Included in v0.98-4.0 release!
Release date: 9 April, 2007
Released by: Grimson
Fun Facts: Included in v0.98-4.0 release!
Release date: 25 May, 2007
Released by: UOX3 Dev Team
Contributors: giwo, Xuri, Grimson
Fun Facts: Included in v0.98-4.0 release!
Release date: 26 May, 2007
Released by: giwo
Fun Facts: Included in v0.98-4.0 release!
Release date: 12 June, 2007
Released by: UOX3 Dev Team
Contributors: giwo, Grimson, Xuri
Fun Facts: Included in v0.98-4.0 release!
Release date: 23 July, 2007
Released by: UOX3 Dev Team
Contributors: giwo, Xuri
Fun Facts: Included in v0.98-4.0 release!
Release date: 20 June, 2008
Released by: UOX3 Dev Team
Contributors: giwo, Xuri, Grimson
Fun Facts: Included in v0.98-4.0 release!
Release date: 21 June, 2008
Released by: giwo
Fun Facts: Included in v0.98-4.0 release!
Release date: 22 June, 2008
Released by: UOX3 Dev Team
Contributors: giwo, Xuri
Fun Facts: Included in v0.98-4.0 release!
Release date: 12 November, 2008
Released by: Maarc
Fun Facts: Experimental OBDC database support! Included in v0.98-4.0 release!
Release date: 16 January, 2009
Released by: UOX3 Dev Team
Contributors: giwo, Xuri, Maarc
Fun Facts: Included in v0.98-4.0 release!
Release date: 17 January, 2009
Released by: UOX3 Dev Team
Contributors: Grimson, Xuri, giwo, Maarc, Cavalier, supermoleet
Fun Facts: First iteration of Parties! Customizable Client/Server Features! Movement speed per NPC!
Release date: 18 January, 2009
Released by: giwo
Fun Facts: Included in v0.99 release!
Release date: 19 January, 2009
Released by: giwo
Fun Facts: Included in v0.99 release!
Release date: 22 March, 2009
Released by: UOX3 Dev Team
Contributors: Xuri, Ghostwolf
Fun Facts: Included in v0.99 release!
Release date: 28 January, 2010
Released by: UOX3 Dev Team
Contributors: Xuri, Shudderz, Ghostwolf, dragon slayer, Jediman
Fun Facts: Included in v0.99 release!
Release date: 31 January, 2010
Released by: Xuri
Fun Facts: Included in v0.99 release!
Release date: 1 February, 2010
Released by: UOX3 Dev Team
Contributors: Xuri, Shudderz
Fun Facts: Included in v0.99 release!
Release date: 1 February, 2010
Released by: Xuri
Fun Facts: Included in v0.99 release!
Release date: 7 February, 2010
Released by: UOX3 Dev Team
Contributors: Xuri, Puck
Fun Facts: Included in v0.99 release!
Release date: 14 December, 2011
Released by: UOX3 Dev Team
Contributors: Xuri, giwo, spdddmn
Fun Facts: Included in v0.99 release!
Release date: 19 March, 2012
Released by: UOX3 Dev Team
Contributors: Xuri, giwo, Ghostwholf, dragon slayer, xantier, Eolirin, puck, spdddmn, Shudderz, Jediman
Fun Facts: New vendor related JS Events! Support for item names up to 128 characters! Revamped spell-damage and resist system! CombatExplodeDelay setting! Gargoyles!
Release date: 21 March, 2012
Released by: UOX3 Dev Team
Contributors: Xuri, dragon slayer
Release date: 3 November, 2012
Released by: UOX3 Dev Team
Contributors: Xuri, dragon slayer
Fun Facts: NPCs can spawn facing in random directions! Max region count increased from 255 to 65535! Amount support for LOOT and PACKITEM tags!
Release date: 4 November, 2012
Released by: Xuri
Release date: 10 November, 2012
Released by: Xuri
Fun Facts: Global modifiers for combat speed/NPC spellcast speed!
Release date: 13 September, 2018
Released by: Xuri
Release date: 24 November, 2019
Released by: UOX3 Dev Team
Contributors: Xuri, Kitiara
Fun Facts: Custom tags can have negative values! Safezone region tag!
Release date: 12 April, 2020
Released by: Xuri
Fun Facts: Included in v0.99.3 release!
Release date: 8 August, 2020
Released by: UOX3 Dev Team
Fun Facts: Included in v0.99.3 release!
Release date: 10 September, 2020
Released by: UOX3 Dev Team
Contributors: Xuri, punt, tuanhtrng
Fun Facts: 64-bit cross-platform support across Windows, Linux and macOS! Full UOP map support! Instances! Revamped documentation!
Emulation of the Ultima Online servers started all the way back in the days of the Alpha version of UO, when Denny Zuko (Jaegermeister) created the initial version of UOX (now lost to time). Since then, a great number of different emulators have come into existence, and although some of them were like fireflies that faded away after only a brief existence, others stuck around longer, spawned derivatives, forks and alternate versions along the way.
For a more extensive and detailed overview, check out the General UO Emulator Timeline over at UOX3.org!
The UOX3 Hall of Fame is simply a list of people (or their nicknames) known to have contributed to UOX3, in what capacity they (primarily) contributed, sorted in chronological order based on the estimated time of their first contribution.
This list was written and is updated with the help of various UOX3 documents such as changelogs, news updates, code comments and some educated guesses, and errors might occur. If you spot a mistake, or a missing name, let us know and we'll do our best to correct the issue.
Jaegermeister
Denny Zuko, Programmer, Creator of original UOX
Cironian
Marcus Rating, Programmer, Creator of original UOX2/UOX3
Drax
Original Scripter, 26/11/1997, v0.46
Jason Koon
Designed original UOX3 logo, 06/11/1997
Morac
Programmer, 0.67c)
Jerrith the Healer
AR Schelicher, Programmer, UO Packet Guide - 0.67c)
Tracker/Traker
Programmer, ~June 1998)
Fafnir/Aagorn/Delorim
Programmer, ~June 1998)
Anthracks
Jonathan Henry, Scripter/Programmer, Keeper of Code Snippets - 0.67c)
TBM
Programmer, 0.67c
Cray XMP1
Programmer, 0.67c
Gitchigoomi
Scripter - 0.67i
Monte Cristo
Programmer, 0.67i
Okaria Dragon
Programmer, 0.67i
Zarn
Programmer, 0.67l
Crimson Guard
Programmer, 0.67l
Drylock
Erwin S. Andreasen, Programmer, 0.67n
Ash
Programmer, 0.67n
El Barto
Programmer, 0.67r+
RofGilead
Programmer, 0.67q
Maytrix
Programmer, 0.67w
Tal Strake
Programmer
Fearicon
Scripter, 0.67x
Ashran
Programmer, creator of EQ Emu, and UOisc, a tool that allowed copying items to UOX3 worldfiles by walking around on OSI servers
Beosil
Bruno Heidelberger, Programmer, Encryption Guru
Krozy
Lucas Moten, Programmer
SirGonads
Programmer
Milan Rabaa
Programmer
Sir Joseph
Programmer
Halin Talismoon
Programmer
Polaris
Programmer
Kathrrack/Kathrakk
Programmer
TANis/Quintoxis
Valerio Santinelli, Programmer
Jim/Jim Wright
Programmer
Brad
Programmer
Friend/Brother Kane
Programmer
Ridcully
Jan Lübbe, Programmer, Tool Programmer
Armageddon
Programmer
Pug
Scripter, The Script Team, < 07/31/98
Concerned Watcher
Lee Brown, Scripter, The Script Team, < 07/31/98
Cruoris
Scripter, The Script Team, < 07/31/98
NoFx
Scripter, < 07/31/98
Rootdown
Scripter, < 07/31/98
Nevets
Scripter, < 07/31/98
Dante
Scripter, The Script Team, 8/31/98
Vagrant
Programmer, ~September 1998
Mad Hatter
Michael De Piazzi, Programmer, ~September 1998
Fizz
Programmer, ~1998
McCleod
Programmer
Hunter
Programmer
Tao
Programmer
DasRaetsel
Programmer
Bud
Programmer,
SpaceDog
Kasper K. Andersen, Programmer
Tauriel
Karl Kirk, Programmer
Dupois
Programmer, MsgBoard/Escort System
CyberCrusher
Programmer
Moongraven
Programmer
Gerry
Gerry Thibodeau, Programmer
Lord Slayer
Programmer
Zadius
Programmer, Trigger System
Max Wulf
Programmer
Genesis
Scripter/Programmer
Myca
Programmer
Algaran
Scripter/Programmer, 12/09/1998
Rin'thral
Scripter, ~November 1998
HellRaider
Scripter, The Script Team, 10/05/1998
Dupre the Fighter
Scripter, 10/05/1998
Danath
Scripter, The Script Team, 10/05/1998
Nattsorgh
Programmer, 13/11/1998, Ran UOX3 Snippet Repository at http://home3.swipnet.se/~w-36372/
redbaron
Programmer, 13/11/1998
Thunderstorm
Programmer, 13/11/1998
Myth
Programmer, 13/11/1998
Ripper
Scripter/Programmer, 17/11/1998 - eventually founded Wolfpack Emu (https://web.archive.org/web/20000818115820/http://members.home.net/farmrr/)
Zippy
Bryan Pass, Programmer, v0.68.026.07
Ray
Programmer, ??/??/98, v0.68.026.07
EvilDeD
Matthew Randall, Programmer, v69.00
Pellinore Dragon
Programmer, v69.01
Homey
Programmer, v69.02
Crwth
Programmer, v69.02
Phantom
Programmer, v69.02
Wolfgang
Programmer, v69.02
Revana
Adrian Balij, Programmer, v0.69.03
Retalin
Ryan McAdams, Scripter/Programmer, Web Admin, 04/01/1999
Sephiroth
Sean Hogberg, Scripter - 16/01/1999
GM Santa's Helper
Scripter, 28/01/1999
Ashen Gray
Scripter, 01/02/1999
Cork
Scripter, 07/02/1999
Klick
Scripter, 15/02/1999
Solomon
Scripter, 25/02/1999
Sayter/Zophar
Scripter, 25/02/1999
Westy
Peter Westberg, Programmer, Encryption Guru, 18/03/1999
Darkness
Scripter, 04/04/1999
Magius
Scripter/Programmer, 25/05/1999, Advanced Trade System
Sir Pedro
Scripter/Programmer, 25/05/1999
Bug
Scripter/Programmer, 25/05/1999
Mark
Scripter/Programmer, 25/05/1999
Morrolan
Programmer, 20/07/1999
Crackerjack
Programmer, 09/08/1999
AntiChrist
Programmer, ??/10/1999
Abaddon/Maarc
Daniel Stratton, Programmer, v0.69.03 -> v0.70.01.07t
fur
Programmer, 27.10.1999, v0.69.03 -> v0.70.01.07t
Eagle
Brandon Holtsclaw, Scripter/Programmer/Web Admin, v0.69.03 -> v0.70.01.07t
Krazyglue
Programmer, 03/10/1999, v0.69.03 -> v0.70.01.07t
Quippl
Programmer, v0.69.03 -> v0.70.01.07t
Mithos
Programmer, v0.69.03 -> v0.70.01.07t
Lord Binary
Programmer, v0.69.03 -> v0.70.01.07t
JustMichael
Michael Horton, Programmer, Tool Programmer, v0.69.03 -> v0.70.01.07t
Tseramed
Programmer, 04/10/1999, v0.69.03 -> v0.70.01.07t
Terrin
Programmer, 08/10/1999, v0.69.03 -> v0.70.01.07t
Kashyyyk
Programmer, v0.69.03 -> v0.70.01.07t
Daemar
Programmer, v0.69.03 -> v0.70.01.07t
Mike
Programmer, v0.69.03 -> v0.70.01.07t
Cestle
Scripter, 29/11/1999
RevalutionShadow
Scripter, 29/11/1999
Infinity
Scripter, 29/11/1999
Folci
Scripter, 29/11/1999
Xuri
Geir Ove Alnes, Scripter/Programmer, Tool Programmer, Web Admin, 21/01/2000
punt
Charles Kerr, Programmer, Tool Programmer, 28/01/2000
Skyfire
Scripter/Programmer, ~March 2000, 0.70.x era
Shrike
Scripter, 12/04/2000
Jerelith
Scripter, 12/04/2000
Hanse
Thomas Edison, Programmer, 04/05/2000
Frazurbluu
Scripter, 01/08/2000
Unseen
Scripter/Programmer, ~06/08/2000
Gunther
Programmer, 22/08/2000, 0.70.03.19
Thyme
Programmer, 11/09/2000, 0.70.03.19a
Chaos
Michael Weis, Programmer, 25/09/2000, 0.70.03.19b
Knoxos
Programmer, 25/09/2000, 0.70.03.19b
WIG
Programmer, 25/09/2000, 0.70.03.19b
Dodger
Programmer, 09/10/2000, 0.70.03.19c
Thaliq
Programmer, 24/10/2000, 0.70.03.20
GM Azrael
Scripter, 24/10/2000
Oakwood
Programmer, 06/11/2000, 0.70.03.20d
KKung
Programmer, 06/12/2000, 0.70.03.20f
Rain-
Programmer, ~January 2000
Lord Vader
Programmer, ~2000
Grady
Programmer, ~2000
Rainman/Cobol Junky
Web Admin, ~Jan-Sept 2001
Jedda
Programmer, 17/01/2001, 0.70.03.21
Tom2
Programmer, 17/01/2001, 0.70.03.21
Correa
Thiago A. Corrêa, Programmer, 17/01/2001, 0.70.03.21
Raftina
Scripter, 31/01/2001, 0.70.03.21a
RostamTheGrey
Daniel K. Olds, Programmer, ~early 2001
Calvin
Scripter, < February 2001, < v0.0.70.03.21d
Yeshe
Carsten Germer, Scripter, 08/05/2001
Zane/Giwo
Scott Thompson, Scripter/Programmer, Web Admin, 03/07/2001
seank
Programmer, 04/07/2001
Gimli
Programmer, 12/07/2001
Dreoth
Scripter/Programmer, ~2001-2003
harkon
Programmer, 0.95.01 Build 1
Mr_Fixit
Daniel Storjordet, Programmer, Tool Programmer, 0.95.01 Build 1, UOGateway
JoeMC
Programmer, 0.95.01 Build 1
Spud
Programmer, 05/08/2001
Shadowlord
Programmer, 01/11/2001
Krrios
Programmer, 05/11/2001, creator of KUOC - Krrios UO Client, ModifyUO and RunUO
Bel-CMC
Programmer, 12/11/2001
silver2000
Programmer, 19/12/2001
DarkStorm
Programmer, 20/12/2001
Rukus
Programmer, 0.97.00 Build 20
kot_Leopold
Programmer, 0.97.00 Build 20
Norfic
Scripter, 0.97.00 Build 20
Weazel
Scripter, 0.97.00 Build 20
duckhead
Programmer, 0.97.00 Build 20
SwamiHajjiJoe
Scripter, 02/01/2002
Cavalier
Chris Bailey, Scripter, 12/01/2002
sereg
Scripter/Programmer, 15/02/2002
§ymb!ot!c
Ben Bellert, Scripter, 17/03/2002
Lynxx
Scripter, 11/03/2002
MACTEP
Programmer, 18/04/2002
avtotar
Programmer, 16/09/2002
Brakhtus
Programmer, 25/09/2002, 0.97-1.7
Malketh
Programmer, 19/03/2003
Philantrop
Programmer, 19/03/2003
almiller1963
Programmer, 07/05/2003, v0.97.5.2g
xir
Programmer, 31/07/2004
Grimson
Programmer, 07/06/2005, 0.98.3-0
ShadowBranch
Daniel Moree, Programmer, 11/06/2005, 0.98-3.0
lingo
Lingo Chen, Programmer, 05/08/2005, 0.98-3.0e
Fish
Scripter, 29/01/2006, 0.98-3.2
jr
Programmer, 05/05/2006, 0.98-3.6
supermoleet
Programmer, 17/01/2009, 0.98-4.0
Jediman
Programmer, 05/11/2009
Ghostwolf
Scripter, 19/03/2012, 0.99
dragon slayer
Scripter, 19/03/2012, 0.99
xantier
Programmer, 19/03/2012, 0.99
Eolirin
Programmer, 19/03/2012, 0.99
Puck
Scripter, 19/03/2012, 0.99
spddmn
Programmer, 19/03/2012, 0.99
Shudderz
Programmer, 19/03/2012, 0.99
tuanhtrng
Tuan H. Truong, Programmer, 17/04/2020
Chaos
Tool Programmer, the original CGMT chaos - https://web.archive.org/web/20010119120600//http://www.prodes.org/cgmt/
Decius
Daniel Paull, Tool Programmer, UOXSE
Fallo
Encryption Guru)
Terry Denham
Fileformat Analytic
Krazow
Provided early web server for UOX3 at Warlords.com
Danny Thomas
Helped fix No-IP client crash
Alkiser
Web Designer/Admin of uoxdev.com, ~early 2000
Infymus
Michael Hoenie, Tool Programmer, ~2001
Duke
Lonewolf developer
Mark A. Pelletier
UOR/OU emulator
Sheppard
Creator of UOOS emulator
Allmight
Documentation, ~November 1998
TeHb
Scripter, ~November 2002
Tim
???
Documentation revamp by Geir Ove Alnes @ Copyright 2020
Built upon FAQ Template framwork provided by CodyHouse.