Section I

1.0 - CREDITS

Thanks goes out to:

  • Marcus Rating - The Creator of UOX
  • Everyone i've stolen hints and tips from
  • The Dev Team(Includes all programmers)
  • The Script Team(Includes all Script writers)
  • Various homepages for info about UOX :) None mentioned, none forgotten.
  • And Sephiroth of course.
  • And last but not least, NoFear for converting the first version of this Guide to HTML :)
  • 1.1 - INTRODUCTION

    Welcome to Xuri's Guide to the UOX3 Galaxy! Hopefully you will be able to find solutions to all your UOX3 problems somewhere in this Guide *grin*. If you find any errors, send me a note at xuri_sensewave_com, and I will fix it for the next version of the Guide. Also, don't hesitate sending me an email if there's something you would like to see added/changed!

    This is version 3.0 of this guide, and is intended for use with UOX3 0.98-3.6 or newer.

    1.2 - WHAT IS UOX3?

    UOX3 stands for Ultima Offline eXperiment 3.
    It is a server emulator for OSI's Ultima Online Server, and the very first version was created by the mysterious figure known as Jaegermeister way back in 1996 or 97. Marcus Rating(Cironian) took over development of UOX, and then created UOX2, followed by UOX3 (current version). This server emulator enables you to create your own UO server and play on it either locally, over modem, LAN or the internet with at least(but not by any means limited to..) 32 people at a time, depending on your server hardware/connection speed.

    There is no fee to set up an UOX3 server, and there should be no fees associated with playing on one(paying for your own general access to the Internet excluded). UOX3 is more or less always in an "Alpha"-stage, since there's no clear set goals for what a "finished" UOX3 should consist of. Nor is it likely that UOX3 will ever reach such a "finished state", since new people arrive with new ideas and thoughts, thus the emulator keeps evolving/changing.

    Even though Marcus Rating created UOX2 & 3, he released the sourcecode for the server emulator and slowly backed down from active development. Over the years many other programmers have worked together to further enchance and improve the emulator. To see a small list of some of the people who have contributed to UOX3, check out the UOX3 Hall of Fame located in the History-section of UOX3.org.

    Another thing that came with the release of the UOX3 source-code, was that no one can run a public UO server with modifed UOX3 code, without releasing that modified code to whoever requests to see it, which will hopefully help make UOX3 a public/common effort instead of having a few "elitist"-shards, each with their own carefully treasured secrets.

    1.3 - FEATURES

    Note that this list is by no means a complete nor official list of what features UOX3 has. To keep such a list updated and complete at all times would be an impossibilty in itself, not to mention writing down the full list in the first place.

    Main Features:
    - Open Source :) If you've got the skills, you don't have to depend on a centralized group of developers to fix stuff/add new features...you can do it all by yourself.
    - Versatile JavaScripting Engine, with which you can override existing hard-coded behaviour, customize already scripted behaviour, or script completely new behaviour yourself. Your control extends to such features as the Magery system, Commands, Skill-usage, and much more.
    - Support for All UO Client types/versions above version 2.0.0 that has had encryption removed.
    - Support for multiple "facets" alã Felucca & Trammel on OSI shards.
    - Multi-language support - Each user can see UOX3's system messages in his/her language!
    - Works by default with any Windows version, and usually also with any version of Linux, but has also been known for compiling successfully on Solaris and FreeBSD in the past.

    Other Features:
    - Adding Items/NPCs
    - Agressive NPCs
    - Animated Emotes (Incl. Third Dawn ones)
    - Automatic/Manual world saves
    - Automatic Worldfile Backup-system
    - Automatic Weathersystem
    - Banks (Standard + Regional)
    - Backpack
    - Broadcasting
    - Combat (Fully working)
    - Corpse Carving
    - Customizable oretypes, define which ore can be found in any specific region.
    - Item-Decay
    - Doubleclicking on characters (Paperdoll)
    - Doubleclicking on items
    - GM Paging
    - Guards
    - Guildstones
    - Townstones
    - Healers
    - House deeds
    - Lighting Control (day & night & dungeon light)
    - Magic Wands & Weapons & Armor
    - Moving Items
    - Multiplayer capability for at least(but not limited to..)32 players(no known maximum)
    - Murder count & death count tracking
    - Newbie Items
    - NPC Movement
    - NPC Speech
    - Players get hungry and do worse when not eating
    - Player Races
    - Polymorphing
    - Ridable horses/ostards
    - Reputation system with Karma/Fame
    - Running
    - Singleclicking
    - Skills Window with all skills
    - Spawning of items/monsters on ground or in chests
    - Sound Effects
    - Spellbooks with all spells except Telekinesis working
    - Status Window
    - Talking
    - Towncriers
    - Walking
    - Wearing Items
    - Working clocks
    - Z positioning
    - Lots more. Too much to list here really :P

    1.4 - SYSTEM REQUIREMENTS

    I do not have the exact system requirements for running an UOX3 server, but I know that it at least RUNS on a p100 with 24 mb ram for local use(Not reccomended though :). Windows 95/98/ME/2k/XP/NT or Linux is also required.

    A well know fact is that the server and your UO client will run slower if you run them both on the same machine. If possible run the UOX3 server on one machine, and your client on another.

    Another speed-up tips:
    Copy all the UO-files needed by UOX3(see in UOX.INI) to a directory of it's own, and reset the paths in UOX.INI to these files. By letting the UOX3 server and your UO Client use different files, you may speed up the system a bit.... More exact system requirements will come later...

    1.5 - LINUX USERS

    If the latest UOX3 version isn't compatible with Linux, you must download a version complied for Linux, OR compile it yourself. Go to http://www.uox3.org and ask around in the forums there.

    1.6 - UOX3 LINKS

    http://www.uox3.org - UOX3 News and Resource site.
    http://wb.uox3.org - Xuri's WorldBuilder; GM Tool for UOX3
    http://www.wpdev.org - Home of Wolfpack, an UO emu which got it's roots from UOX3.
    http://lonewolf.uox3.org - Home of Lonewolf, an UO emu which derived from Wolfpack (look above).

    1.7 - UOX3 SERVER SETUP

    First of all, you should update to the very latest version of Ultima Online. To do this, simply run UO.EXE and the client will automaticly update itself from OSI's patching servers, as long as you have the original login.cfg file present in the client directory. If you've overwritten it, or managed to lose it somehow, this is what it should contain:
    LoginServer=login.owo.com,7775
    LoginServer=login.owo.com,7775
    LoginServer=login.owo.com,7776
    LoginServer=login.owo.com,7776

    (You do NOT need an account with OSI to do this.)

    Then what you need to do, is download the latest version of UOX3. If there is an "All-In-One"-package available, download it. If not, download both the EXE and the entire DFN/Script package.

    Now, when you unzip your UOX3.zip file(name of .zip may vary, another example is all-in-one.zip)you will get a directory called UOX3. Inside that directory there will be several more directories.
    Here is a summary of what is in each Directory in the zip.

    UOX3:
    | The UOX directory contains all the files needed to run your UOX3 server
    | successfully.
    |
    |--------------ACCOUNTS:
    | The ACCOUNTS directory contains all user accounts for your shard.
    |
    |--------------ARCHIVES:
    | All automatic backups of worldfile-saves are archived in here.
    |
    |--------------BOOKS:
    | All books on your shard which players write in will be saved here.
    |
    |--------------DFNDATA:
    | This is where all the "definition"-files are kept. They contain information on various
    | aspects of your shard, which is easily customizable, like item/NPC-stats, HTML-templates,
    | region-setup, and other assorted stuff.
    |
    |--------------DICTIONARIES:
    | Contains files with language-specific system messages.
    |
    |--------------DOCS:
    | The UOX3 Docs! Various documents =P
    |
    |--------------HELP:
    | Folder which contains help-files that area accessible from in-game.
    |
    |--------------HTML:
    | This is where the Server Status page is saved, along with other HTML output files.
    |
    |--------------JS:
    | This is where all the JavaScript files for UOX3 are located, and also where you put any
    | custom JavaScript files you have acquired/written.
    |
    |--------------LOGS:
    | All log-files for your server are saved here.
    |
    |--------------MSGBOARDS:
    | This is where any posts from ingame bulletin boards are saved.
    |
    |--------------SHARED:
    | The SHARED directory is where all the world-data is saved. All items & NPCs and characters that are added to your world will be saved in a file in this directory.

    Alright, you're still with me? Good. Now, let's configure your shard and get it up and running.

    1) Open the UOX.INI file, located in the root UOX3 folder, with either dos-prompt's EDIT command(EDIT UOX.INI), or with windows notepad or wordpad. There is a lot of settings available in this file, but for now we'll focus on the essentials. Locate the section called [play server list], which should look something like this:

    [play server list]
    {
    SERVERLIST=Default UOX3 Server,127.0.0.1,2593
    }

    Instead of "Default UOX3 Server", enter the name you want to give your UOX3 shard. Try to keep the shard-name short, anything above 30 characters probably won't show up in the server list anyway.

    Next up is the IP-address. If you're running the UOX3 shard on the same computer as your UO Client, leave the IP-address (127.0.0.1) alone. It's the local ip of your computer, and will suffice. If, however, you plan to use the UOX3 shard on a LAN, or on the Internet, you must replace 127.0.0.1 with your LAN IP or your Internet IP.

    Alternatively, add additional SERVERLIST= lines, and have one local login, one LAN login, and one Internet login.

    2593 is the Port address your UOX3 server will be using. Using the default port address is recommended.

    2) Scroll down to the [directories] section. This is where you configure the various file-paths that UOX3 should use. By default, the only filepath you should have to change is the one that looks like this:

    DATADIRECTORY=c:/program files/ultima online/

    If you're running the UOX3 shard on a stand-alone computer, without the UO Client installed, point the DATADIRECTORY filepath to a directory on your computer's harddrive which contains the following UO Client data-files: Map0.mul, Statics0.mul, Staidx0.mul, Multi.mul, Multi.idx, Tiledata.mul (and alternatively, Verdata.mul).

    If you're running the server on the same computer as your UO Client, point the DATADIRECTORY filepath to the directory where you installed Ultima Online. That may or may not be c:/program files/ultima online/, depending on what you specified when installing the client.

    For a small speed-up when running both the Shard and Client on same computer, copy the above mentioned UO Client-data files into a folder of it's own, like...UOX3\DATA\, so they both read from seperate sets of data-files.

    3) Close UOX.INI and browse your way to UOX3\ACCOUNTS\ and open ACCOUNTS.ADM. You'll see something similar to this on the first couple of lines (after the commented lines which are preceeded by two forward slashes):

    SECTION ACCOUNT 0
    {
    NAME admin
    PASS admin
    FLAGS 0x8000
    PATH /uox3/accounts/admin/
    TIMEBAN 0x0
    CONTACT unknown
    CHARACTER-1 0xffffffff [UNKNOWN]
    CHARACTER-2 0xffffffff [UNKNOWN]
    CHARACTER-3 0xffffffff [UNKNOWN]
    CHARACTER-4 0xffffffff [UNKNOWN]
    CHARACTER-5 0xffffffff [UNKNOWN]
    }


    This is ACCOUNT 0, which is the Admin account on your shard. By default the Username is "admin", and the password is "admin"; Change both the username and the password for this account immediately, to something else of your choice. Avoid passwords like "secret" or "god" or "sex". A password consisting of both numbers and letters is adviceable.

    "SECTION ACCOUNT 1" is the first normal user account in your ACCOUNTS.ADM file. By default it is setup with "guest1" as both the username and password. You can either keep this if you want to have a guest account on your shard which anyone can access, or you can change the username and password to reflect the login-details of the first normal player on your shard. Yourself.

    It's wise to keep both an Admin account, as well as a normal player account for yourself - so you have one to test stuff as a player with. The Admin account is not really suitable for that, since Admins and GMs are privileged in many aspects of the game. (No Line of Sight checks, no delays when casting spells, no reagents required, etcetera)

    There are two ways to add more accounts to your shard. One is to edit the ACCOUNTS.ADM file manually like we've just done. Copy the entire SECTION ACCOUNT 1 and paste it at the bottom of the file. Remember to change the account number from 1 to the next available account number. The changes you do will either go into effect when you start up your server, or - if the server is already running - when you reload the account-files from the server console menu.

    The second way of adding new accounts is to open the file called NEWACCOUNTS.ADM (If it doesn't already exist, simply create a blank text file with this name). Now simply write the following to add a new account:
    USER=bobby,whee123

    Optionally, you can also specify any "flags" you want the account to have, as well as the e-mail address of the user who owns the account, like this:
    USER=bobby,whee123,0x0,bob@bobland.com

    For each new account you wish to add, enter another USER= line. Remember to press ENTER after the last USER= line, or that line will not be read by UOX3! The new accounts you specify in NEWACCOUNTS.ADM  will be automaticly added to ACCOUNTS.ADM the next time you start up your UOX3 shard.

    4) Okay, that's it for your UOX3 Shard itself. Now to start it up:

    Either double-click the UOX3.EXE file in the root UOX3 folder, or run UOX3.EXE from a command prompt. The latter method is recommended, since when doing that the window will stay open if UOX3 should crash/fail to startup for any reason. If you double-click the UOX3.EXE the window will simply close itself as soon as it encounters an error, making it impossible to see what's wrong.

    If everything goes well, you should have encountered no errors during startup, and the UOX3 window should stay open, with these two lines showing at the bottom:
    | Thread: CheckConsoleThread has started

    Note that the UOX3-window needs to stay open, do not close it!

    5) Only two things remain of the basic setup processs - removing the encryption from the UO Client, and logging onto your shard for the first time!

    Removing the encryption from the UO Client is necessary to allow the Client to communicate with UOX3, which doesn't support the encryption in the Client. There are several ways one can remove the encryption from the UO Client, we'll concentrate on one particular method; By using ConnectUO.

    ConnectUO removes the encryption from your computer's memory in runtime only, meaning it doesn't do any permanent modifications to your UO Client. So if you use the Client on the official UO servers as well, you can simply start up UO normally the next time you want to login to those servers.

    Download the latest version of ConnectUO from it's webpage at http://www.connectuo.com. Then unzip, and install.

    After installing ConnectUO, start it up. It should download the latest updates (if any), and give you a dialogue box asking you to select a profile. Either create a unique profile for yourself if multiple people are using the computer (and ConnectuO), or just click OK to use the default profile. A fancy page will be displayed, with "My Favorites" on the right hand side, and various available options on the left hand side.

    Click "Add Local Server". Type in the name and description of the server (will only show up in your copy of ConnectUO), ignore the "patch url" and "update url" for now, and then input your IP-address and port number in the two last textboxes. The IP-address should be the same as you specified earlier in UOX.INI, for instance 127.0.0.1 for local servers. Use port 2593, unless you have changed that as well. Lastly, make sure "Patch client encryption" is enabled. Then finalize by clicking "Add".

    You should now see your shard listed under "My Favorites" in the ConnectUO window. Doubleclick on the icon/name of the shard, and the UO client should be starting up. When you're given the login-screen, enter the username and password you specified for the Admin account in ACCOUNTS.ADM, and proceed with the login :)

    The first thing you'll notice after you've logged in, is that your world is completely empty of any Non-Player Characters (NPCs) as well as any decorative items. You can fix this by either populating and decorating your world manually, or by downloading premade world/spawn-files from the UOX3 Downloads-page at http://www.uox3.org.

    1.8 - THE BASICS OF GM'ing

    Assuming you've managed to setup, run, and login to your UOX3 shard, this will be your first chance to use your newfound Game Master powers.

    The first thing you should know is that there is something called "Command prefix" which is the key you type in front of commands in UO so the server recognizes them as commands instead of normal speech. By default this Command Prefix is set to the key ' , which means you will have to use the key ' before every command you use ingame. This Command Prefix is scriptable, you can choose which key to use as prefix yourself, just open UOX.INI in wordpad/another text editor then locate COMMANDPREFIX=' and change ' to whatever key you want to use, for instance "!". Note: You CANNOT use "/" as command prefix, as the UO client uses this key for letting you send messages to party members.

    The absolute first thing you should do is type in 'ADD; it is your main tool. It lets you do things such as make NPC's, items, or anything else you will need. First lets make you a GM robe. Your "add menu" is open right? Navigate your way first to the "GM Menu", then to "GM Skins". A number of items should appear in the list, including one called "GM Robe". Click the blue button next to it to add one GM Robe to your character's backpack(inventory).

    Open your paperdoll by double-clicking on your character, then open your backpack by double-clicking on the backpack-image in the paperdoll. You'll see some newbie equipment, along with an item which simply says "GM Robe". Click, hold and drag this GM Robe onto your paperdoll. You should now be wearing it, although there's possibly something sticking out on top - your hair! Type 'KILL HAIR and press enter, then target yourself to remove every strand of hair from your head. Better? The robe is still a bit dull though, so type 'DYE, press enter and target your GM Robe. Select a color and press Okay.

    There's another, simpler way of assigning yourself a GM Robe, of course. But that method turns you INTO a GM Robe, instead of simply wearing one. This method can also be used to turn other people into Game Masters, though if you simply want to give them access to the GM Commands, use the 'SET COMMANDLEVEL 2 command and target them. COMMANDLEVEL 1 is counselors, 0 is normal players. 3 and above is for Admins only. Now, to turn yourself into a true GM body(which allows you to walk through doors, for instance)- try the 'MAKE GM command. To return a character to normal player state, use the 'MAKE PLAYER command, or use 'SET ID 0x0190 (or 0x0191 if female) along with 'SET COMMANDLEVEL 0.

    Some other basic commands are 'TELE which is the same as casting the spell teleport, 'OPENLAYER will open any targeted character's backpack (this means you can add\look at loot in a monster's backpack) Something else you might want to check out is the 'SET command. You can for instance do 'SET Skill # where skill is the name of the skill you are changing and # is the amount of skillspoints to assign the specified skill.

    To set someone's SWORDSMANSHIP skill to 90 skillpoints, you would use the 'SET SWORDSMANSHIP 900 command. 900 = 90.0 = 90. If you'd done 'SET SWORDSMANSHIP 908 the character would've gotten 90.8 skillpoints instead.

    You can also use this command to change the STR, DEX or INT values of a character. Example:
    'SET STR 100 gives the targeted character 100 strength-points.

    Next, scroll through the ADD-MENU (type 'ADD and press enter) until you locate the NPC section. (Hint: It's the last entry in the menu;). Select an NPC from the menu and place it somewhere on your screen. If you added a monster, it's name will appear over it's head with red letters, indicating that it is an NPC with agressive/monster AI. It will not attack you, however, because as a character on the Admin account you are by default INVULNERABLE! This also means you'll be unable to fight the monster though, since combat can only take place between two VULNERABLE characters in UOX3.

    To fight the monster you added, first get yourself some weapons and armor from the ADD-MENU, equip whatever items you've added, then use the 'INVUL FALSE command on yourself to make yourself vulnerable. If you die, use the 'RESURRECT command to bring yourself back to life. :)

    And if the NPC proves too worthy an opponent, simply execute it using the 'KILL CHAR command ;)

    That's it for this basic tutorial in GMing! Good luck :)

    1.9 - WORLD SAVING

    It's not always wise to just rely on remembering to do the 'SAVE command regulary to save all your hard work to file after a long day. It's then preferable to set up the server to auto-save at certain intervals.

    To do that, open the file UOX.INI in a text editor and locate the section called [system]. In that section, find the following line: SAVESTIMER=1200

    That line tells UOX3 how often - in seconds - it should perform an automatic worldsave. Remember that the larger your world is the longer it takes to save... So if you have a really huge world the players won't appreciate it if you save every 5 minutes :) Choose a save-time that both you and your players can live with.

    After changing the SAVESTIMER value, you must either restart UOX3 or reload the .INI file from the UOX3 console before the change goes into effect. To reload the .INI file from the UOX3 console, press * to unlock the console, followed by '1'.

    1.10 - SERVER BACKUPS

    UOX3 comes with the option of automatically archiving/backing up your worldfiles into a specified folder on any of your harddrives. By default this folder is the UOX3\ARCHIVES folder, but that can be changed by editing the file-path listed in UOX.INI, more specifically under the [directories] section.

    To enable this archiving of worldfiles, open UOX.INI and change BACKUPSENABLED=0 to BACKUPSENABLED=1. The line directly below it, saying BACKUPSAVERATIO, specifies how often UOX3 should back up worldfiles. If you enter "5" as the value for this setting, every fifth world-save will be backed up. It's not a good idea to create a backup of every worldsave though, especially if the time between worldsaves is low, as this will quickly eat up a lot of harddrive space.

    1.11 - FAQ - FREQUENTLY ASKED QUESTIONS

    --Why does my client halt at "Verifying account" or "Connecting to server"?
    There might be several reasons for this. Here are some of the things that may cause these problems:

    • You have forgotten to use an encryption removing tool to start up the UO Client. Only un-encrypted Clients are allowed to log into UOX3 shards. Try UOGateway for this purpose.
    • You have put the wrong IP or PORT in UOX.INI. Make sure you have the correct IP address setup in this file, or else you will be unable to login to your shard. If both server and client are on the same computer, use your computers "loopback ip", which is 127.0.01. Else use your LAN-ip or Internet-ip depending on how you want to access the shard.
    • You are using the wrong UO Client, or an old UOX3 server version. Download the latest of both of these.

    --What is "UOGateway"?
    From the UOGateway homepage: "UOGateway a ultimate shard launcher for ultima online emulator shards. Playing on these shards often mean that the players have to change the client manualy, replacing files, editing cfg files etc. With UOGateway none of the origional files in the uo client is altered, and you do no longer need to add/change files to login different shards."

    UOGateway has the ability to remove the encryption from the UO Client, allowing you to log into UOX3 shards. Unless you use a tool like this to remove the encryption, you'll simply be unable to login to any UOX3 shard.

    --Why doesn't Lumberjacking work on my shard?
    Lumberjacking works on every shard, when people can't seem to do it, it's because of either of these reasons:

    • They target the leaves of the tree instead of the trunk of the tree.
    • They have transparency enabled so they actually target behind the tree instead of the tree itself

    --Why is my world empty of NPCs and items when I log on for the first time? UOX3 comes without any pre-made worldfiles or spawnfiles, and you'll need to populate your world yourself, though you can download existing spawn/world-files already created by someone else. You'll find examples of those on the UOX3 Downloads page at http://www.uox3.org.

    1.12 - CUSTOM SCRIPTS

    Creating custom script-files with your own Items and/or NPCs and/or other scriptable objects is easy in UOX3, and a nice way of ensuring that your new objects aren't overwritten by any official script-updates.

    All "definitions" for Items/NPCs/Everything else is kept in the UOX3/DFNDATA/ folder, which contains several subfolders which again has different contents depending on the folder name. Now lets say you want to create a new, unique Item for your shard; You can either copy the definition of an item that already exists from any of the files in UOX3/DFNDATA/ITEMS/  and then paste it as a new item(which you then customize, and give a unique header ID) in the same file - OR you can create your own custom item-dfn file to contain your new item. As long as you name the file-extension .DFN and place the file in DFNDATA/ITEMS/, UOX3 will find it and read the definition of your item just as if you placed it in one of the existing files.

    Doing it this way makes it easier to maintain your unique/custom changes when you get around to downloading official script updates, since you can just copy & paste the changed files into the respective directories instead of having to transfer your custom items from the old files to the updateds ones every time the official scripts are updated.