RunUO Community

This is a sample guest message. Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

Custom Artwork How-To

Tannis

Knight
Custom Artwork How-To (Wearables and Non-wearables)

Updated: 11/09/06

Update to let everyone know that Layer 9 is now used for a Talisman. (Thanks HellRazor!)

If you're looking to add just artwork as in items that are not worn, scroll to the bottom. If you're looking to add worn items keep reading.

Not sure if this is the place, but I couldn't think of one better. Since there are a lot of questions about adding your own custom clothing/weapon artwork etc., I'll try to make a decent walk-through. HellRazor can explain it better I'm sure, but maybe he will add what I miss :) . First things first, download TDV Mulpatcher, you can find that here. You will also need InsideUO which you can get here. You'll also need your new artwork. You can get some from the same site you downloaded MulPatcher from if you don't already have some. Second, MAKE SURE that you make back-ups of the original OSI files before modifying them. This is a list of the files you should back up if you plan on only adding new artwork and nothing else.

-Anim.mul
-Anim.idx
-Anim2.mul
-Anim2.idx
-Anim3.mul
-Anim3.idx
-Anim4.mul
-Anim4.idx
-Animdata.mul
-Animinfo.mul
-Art.mul
-Artidx.mul
-Gumpart.mul
-Gumpidx.mul
-Tiledata.mul

You won't need to modify all these files, but InsideUO needs to read them, and I think it's easier if they're all in one place. Just create a new folder on your desktop, name it something you will remember, and place your clean copies in there. With some of the files, changes will be automatic, so always have a clean default copy. When you open up MuPatcher, and look at the bottom of it, you will see different tabs. Under the "Settings" tab on the far right, you will see all the different files MulPatcher can modify. We will be dealing only with Artidx.mul, Art.mul, Gumpidx.mul, Gumpart.mul, Tiledata.mul, and body.def. Body.def isn't something that MulPatcher will modify, but it will need to be modified for our new items to work, so make sure you make a back-up copy of that also. Any other modifications you wish to make, do at your own risk, since I probably won't be able to help. Ok, so far you've downloaded MulPatcher, InsideUO, and made back-up copies of your OSI files. Now, here starts the fun...for me anyway. This is the way I do mine. If someone knows of a better way, great. Mine might be a little extra work, but it's the way that works best for me.

1) UnRAR Mulpatcher into your Ultima Online folder.

2) UnRAR InsideUO to your OSI backups folder.

The reason for running these programs on 2 different sets of files is because once you've got MulPatcher loaded with files from your UO directory, if you try to use InsideUO to load those same files, it won't do it. The purpose for InsideUO in this is to get the in-game animations for your new items.

3) UnRAR your new artwork to a folder somewhere that you will remember, with a name you will remember. All of it should be a bitmap file. For example, BlahBlah.bmp

4) Run MulPatcher from inside your UO directory. Look at the tabs across the bottom. The second to last from the right is a Settings tab. Click there. Make sure the files MulPatcher is reading are the files from your UO directory. Click the ... button to change the directory.

5) The first set of files you'll want to load are Artidx.mul and Art.mul. If you need help finding where to load those files look here. The next set of files to load are Gumpidx.mul and Gumpart.mul. Those are right underneath where you loaded the art files. The last file to load is Tiledata.mul. Look here if you can't find where to load it.

6) Back to the tabs that run across the bottom. Find the one labeled Gumps(Anim). This is anything you see on your paperdoll. Clothing, armor, weapons, jewelry, and hair. You'll see a long column of numbers on the left. Those are hex numbers. At the bottom of the Gumps(Anim) page, you'll see a drop down menu. It will let you choose to either look at all of the Full Slots, which are slots with a paperdoll item already in them, Empty Slots, which are what we will be using, since we're adding new art, not overwriting OSI art, and All Slots, which of course is all of them.

7) I suggest you grab a notebook and a pen for this part. From the drop down list select Empty Slots, and pick one. I suggest going to the very bottom, and working your way up. Why? Because there's a large number of open slots at the end of the file, and it will make things easier to have all your customs in one group, rather than in different places all over the file. Now, right click the slot you've chosen, and you will see a list of options. Choose "Load From Bitmap. It will let you choose the directory to choose your artwork from. Choose the .bmp file you wish to add, and click Open. Now you will see a piece of artwork that belongs on the paperdoll in that slot. Write down the slot you saved your art to. Notice with your new art slot highlighted, towards the bottom of the page it says something like Animation ID:0xAAAA does not exist. Make sure you write down that hex number also. You need to make that animation exist, and this is where InsideUO comes in.

8) Start up InsideUO. At the top, it says View. Click there, and select the only option, File Paths. You'll see a list of files to the left, and where InsideUO is reading them from on the right. Make sure InsideUO is reading the files from your back up folder. For the other files, such as Map and Static files, you can leave that blank, or put your UO directory path in there, since you aren't modifying them, or looking at them with MulPatcher.

9) Down the left of InsideUO you will see Animation, Artwork, Fonts...etc. Choose Animation. For what you're adding, you'll will only be dealing with the People and Accessories section. For your pretend new artwork, let's say you added a new robe. Obviously, if someone was wearing your new robe, you would want it to look like they're walking around on the game wearing a robe. So, expand the People and Accessories section by clicking the +. Now you'll see a big long list of headings on the left. Just by reading them you know what they are. Scroll down until you find the heading Robe, and highlight it. Now on the right you'll see a picture of the robe. On the bottom of InsideUO, it says Model No., giving a hex and a decimal for it. Write those down also. Head back to MulPatcher.

10) In MulPatcher, you should still have your slot for your new robe highlighted. If you right click on that slot, on the bottom of the menu, you'll see Copy Existing Animation. Select that. Remember the hex number you wrote down from InsideUO? Enter it in that box and click Ok. Next, go to the Tiledata(S) tab, towards the right.

11) Any hex number in Tiledata(S) that doesn't have a title next to it is an empty slot. Again, I suggest finding a large space of empty slots to start your new artwork. Choose your new slot and (big surprise), write it down. In the Name slot, enter a name for your new item. Let's call it Test Robe. Remember the Anim ID from Gumps(Anim) that you wrote down? That goes in the (you guessed it) AnimID slot. Most of the other boxes, to me, have no use. You can use a script to set the weight and hue for your item, so I just leave those at 0. What you do need to worry about is Quality. The quality for an item will be where it sits on your body. Here's a list of the quality numbers, and what they do. Thank you HellRazor for posting these!
1
One handed weapon

2
Two handed weapon, shield, or misc.

3
Shoes

4
Pants

5
Shirt

6
Helm/Hat

7
Gloves

8
Ring

9
Talisman

10
Neck

11
Hair

12
Waist (half apron)

13
Torso (inner) (chest armor)

14
Bracelet

15
Unused (backpack, but backpacks go to 21)

16
Facial Hair

17
Torso (middle) (sircoat, tunic, full apron, sash)

18
Earrings

19
Arms

20
Back (cloak)

21
Backpack

22
Torso (outer) (robe)

23
Legs (outer) (skirt/kilt)

24
Legs (inner) (leg armor)

25
Mount (horse, ostard, etc)

26
NPC Buy Restock container

27
NPC Buy no restock container

28
NPC Sell container

29
Bank Box

So, since your new Test Robe is an Outer Torso, find the quality number for it, which is 22, and enter that into the quality slot. Now there are checkboxes. For clothing, I usually only check A and Wearable. I don't really think you need to check A, but I do it out of habit. You definitely need to check wearable though, or you won't be able to wear it. You're almost done. You've got the new pretty robe to show on the paperdoll, you've got the in-game animation for it, and now you need to add the tile to represent it when it's lying on the ground or in your pack. There's a couple ways to do this, neither is really complicated, there's just a lot of steps to follow. I do it this way:

-In Tiledata, find the Search bar at the bottom, type in robe, hit Search.
-Remember the hex number that's highlighted.
-Go to the Art(S) tab, and enter in that hex number in the Search bar.
-That same hex number will be highlighted, and you'll see a picture of a robe.
-Right click that hex number, choose Save to Bitmap.
-Save it to a location and with a name that you'll remember.

Another way to do it is:

-Use InsideUO, choose Artwork -> Static Tiles.
-Scroll around and find the groundtile for a robe.
-Right click, choose Save As, and save it to a location and with a name you'll remember.

Inside UO takes a bit longer, since you have to scroll through a lot of artwork tiles to find what you want. To the Art(S) tab!

12) If you look around in here, you'll see the artwork tile to represent anything on the ground. Weapons, clothing, etc. You'll even see frame-by-frame animations. Remember the hex number you put your Test Robe info into in Tiledata that you wrote down? Put it in the Search bar, and click Search. This is where you put your new robe's ground tile. Right click that slot, choose Load from Bitmap, and load the groundtile you just saved.

13) Go to the Settings tab, and save Animdata, Artidx.mul, Art.mul, Gumpidx.mul, Gumpart.mul, and Tiledata.mul. Now you can close out of MulPatcher since it sucks up a ton of memory (at least for me).

14) Now you need to edit body.def. It's a text file, so you can edit it with any text editor. When you open it, right at the top it explains what the numbers in each column are for. At this point, you might want to pull out your computer calculator, unless you can convert hex to decimal without one. At the top of it, click View, then choose Scientific. Click the circle mark next to Hex, and enter the hex number in that you wrote down from Gumps(Anim).
Now click the circle mark next to Dec. This is where HellRazor's expertise would come in handy. Numbers are usually in the 50,000 and 60,000 range, and I think the 50,000 range numbers are male, the 60,000 range is female. I always just subtract 50,000 from the decimal I get, and it works fine, I haven't run into any problems with it yet. So, take the decimal you just got, subtract 50,000 from it, and write that number down. You wrote down 2 numbers from InsideUO when you found your animation. One was hex, the other was decimal. You'll need the decimal. The format in body.def is like this

900 {400} 0

The first number represents the slot in Gumps(Anim) minus 50,000, that your new art is saved to. The number in curly brackets represents your new in-game animation, and the last number represents hue. This is what I did in my body.def
Code:
#Begin Customs
11183 {477} 0
11180 {448} 0
11179 {636} 0
If you add a # before a sentence, whatever comes after it on that line won't be read, allowing you to make a new heading for your customs.

15) Now you need a script for your new item. What I usually do is find a like script, in this case the robe script works, copy it, paste it into Notepad, and modify it to suit my needs. Here's a piece of code from my custom robe
Code:
		[Constructable]
		public BlueRedSkullRobe( int hue ) : base( [color="red"]0x3F15[/color], hue )
		{
			Weight = 3.0;
			Name = "Skull Robe";
		}

The ID in red is the same hex number I have my robe's information saved to in Tiledata. Yours should be too. If not, it won't work. Now you have it all. The paperdoll art, the in-game animations, the ground tile, and the script. Make sure your shard is reading the files from you OSI directory before you load up. If it's not, you won't see your new item. Load shard, enter game, [add testrobe, and there it is. New artwork. If you have your own in-game custom animations, they shouldn't be too hard to add. I'm a terrible artist, so I use already existing animations. I'm sure they don't looks as good, but it works for the time being.

So basically, your art from Gumps(Anim) links to your item's animation, which links to the AnimID, which links to Tiledata, which links to your artwork's groundtile. Don't ask about custom mounts, I'm still working on it. Hope this is clear enough...I sure did take up a lot of space. Most of the thanks goes to HellRazor, he's great with this kind of stuff. Everything that I put in here I picked up from him in a few different threads. Also big thanks to FaerieLantern. The way I put this together is the way I do it. I'm sure there's more than one way, but this one makes the most sense to me.

Update! How to add artwork items (not clothing!)

So, I figured I'd update this with a how-to on adding artwork.

1) Follow steps 1-5 above skipping the bit about loading Gumpart.mul and Gumpidx.mul.

2) Looking at MulPatcher, find the tab on the bottom that says Tiledata. Click on it.

3) Find an empty slot. Empty meaning no checkmarks and no information entered anywhere. Just because it's not labeled with a name doesn't mean it's empty.

4) When you've found your empty slot, write down or in some way keep track of the slot you've chosen. Enter the information for your item. This part is easy. Name it, choose A or An, and put a height on it if you want. Height is for items that you don't want walked over. Let's say you have a statue and you put the height at 20. Think of it this way. From the top of the statue to 20 z axis, there'sa sort of invisible wall that won't let you pass over it. A height of 20 doesn't mean your item is going to float in the air at 20 z.

5) Looking on the bottom of MulPatcher, find the Art(S) tab. Click on it.

6) Find the same exact slot under the Art(S) tab that you used in Tiledata. If you chose 0x0000 for Tiledata, you're going to use 0x0000 for Art.

7) Once you've found the right slot, right click it, choose Load from Bitmap, and choose the piece of art for that slot.

8) Looking at the bottom again, find the Settings tab, click it, and save both your Tiledata and your Art files.

Now, you can either add that item in game by typing [add 0x0000 (or whatever slot you used, but you know what I mean) or you can script the item. You might find this tutorial a little lacking but adding art is much easier than adding wearable items. Happy gumping!
 

godfood

Sorceror
Ok, I have my new artwork added in game (It's a cauldron). I can see it, it looks great :D. But, when I put my cursor over it, it glows gold. anyway to get rid of that?
 

Vulovic

Wanderer
Hi I followed your guide for adding a non wearable (its a statue) just to see if I could do it, everything went great as far as I can tell however when I try to add the item I can't find it I tried using the [add 0x0000 (although I used the slot number I used in mulpatcher) and it keeps telling me no items can be found. What exactly did I miss or did I do wrong?
 
need to use the number from the tiledata part

[add static 0x000

or base (0x000) in a script

also remember you have to patch both the server and your client with the files, else you will not see it
 

amichaels

Wanderer
Well, I'm really pleased with the tutorial, but I have a couple of questions.

I made an arched gate sort of wall piece. When I add it, it doesn't sit on the ground quite right and I have to nudge it up to get it to sit correctly. Also, even when set to wall and impassable, I can walk through Is there any way to fix these problems?

Also, is there any documentation that talks about some of the settings in the tiledata section for adding details to the items. (ie all the check boxes.)
 
to get the graphic to sit higher you need to put some "empty" space at the bottom - like 12-15 pixels of space, if you look at the other bitmaps that work the same way you will see what i mean

as for the other parts - i had a post in these threads asking about them also, and i had pointed out what some of them mean, but i do not have a link to it - try searching for the word "surface" i know it was used in there

as for the walk through, also make sure you give it a height of 6+ - anything lower and they can walk onto it or just over it (if it was 0) - i suggest a height of 18 if it is a wall peice - that is besides setting the other 2 you used
 

HellRazor

Knight
amichaels;681447 said:
I made an arched gate sort of wall piece. When I add it, it doesn't sit on the ground quite right and I have to nudge it up to get it to sit correctly.

Two ways to fix this. The correct way has to do with the way the art tile is cut. See other arches in art.mul for examples. They are cut into 2 seperate tiles. It's a little difficult to figure out exactly how the art should be cut, but that is the right way to fix it. (I wish I knew the math to the way larger art tiles are cut, if I did I would write a utility to do it automatically - there is a logic to it but I haven't quite figured it out).

You can also fix it the way Lord Greywolf mentioned, by putting blank pixels underneath the art to raise it. This is sort of a kludge and has some side effects that may or may not be transparent to your users (essentially the item will be floating on air but it may or may not readily be apparent to anyone).

Also, even when set to wall and impassable, I can walk through Is there any way to fix these problems?

Make sure you fill in the Height portion of tiledata.mul, I suspect this might be the problem. The client uses the item height to figure out how to properly block for the item.

Also, is there any documentation that talks about some of the settings in the tiledata section for adding details to the items. (ie all the check boxes.)

Not really, but what type of details are you looking at? For things like walls, its mostly common sense stuff (impassable, etc.)
 

amichaels

Wanderer
Thanks for your replies. I'll fiddle with it and see if I can work the first problem out.

The settings I was curious about were Background, No Diagonal, Generic and Mongen mostly. The others seem pretty straight forward.

I also can't seem to find a lot of the animations for the Samurai Empire stuff in Inside UO or MulPatcher. Has anyone else had that problem?
 

HellRazor

Knight
I'm not sure what those flags do, but they probably aren't important. I think there are a lot of tiledata flags that just aren't used for anything anymore (or which aren't really needed for anything). For instance, the flags listed as Unknown have never been figured out but they don't seem to impact anything.

For the Samurai Empire stuff, make sure you have the newest version of InsideUO from UO Stratics - News - Main. InsideUO has a configuration xml that has to be set up correctly for it to read those animations, you may have an older version. The actual animations themselves are located in anim5.mul and then the files bodyconv.def and body.def assign them to valid anim.mul ID numbers. (If you open anim5.mul in TDVMulpatcher you will see them there).
 

amichaels

Wanderer
I've got my animation tie in to my new art for a type of kimono and everything in, but I'm having trouble with the scripting part.

So to start with, I'm not sure where these numbers come from.

#Begin Customs
1183 {?} 0

So my new thing is saved to 0xEEFF, which is 61183. So it should be 1183?

If that's right then cool, but I have no clue where to get the second number that goes in the curly brackets.

This is what I have for my item script.


[Constructable]
public CherryBlossomKimono( int hue ) : base( 0x3E1C, hue )
{
Weight = 3.0;
Name = "Cherry Blossom Kimono";
}

But when I try to add it in game by name or hex it says it can't find the item.
 

kirax2

Wanderer
The body.def file is supposed to be in your Ultima Online folder. I just patched to the newest version and mine still has it, so it should be there. ^_^ Try going into your UO folder and typing "b" repeatedly to see if it appears in the list. Make sure to patch the files your client uses with the updated body.def, too, otherwise your character might look naked!

Good luck!
-kirax2
 

amichaels

Wanderer
Thanks. :) I ended up finding it then got interrupted before I could edit that part of my post. I'm still having problems though.
 

Rosetta

Wanderer
This a great tutorial, I would of been lost without it. Thanks for making it so clear for us that are still learning.

I have run into one question that I hope I may find the answer to here.

I would like to add the scrolls found on this page. But without a verdata, how do I get the files out?
 

kirax2

Wanderer
Try using mulpatcher. You can load the verdata and then merge the files you want directly into your art and gumpart files.

Good luck!
-kirax2
 

Mayla

Sorceror
EEEEEEEEEEEEEEE! Thank you SO much! I've been at this for WEEKS but couldn't figure out how to get around that Verdata.mul file. All of the patchers, mul editors etc seemed to need it, you're a LIFE savor! :D Thanks again!
 
Top