How to add custom animations to UO

Not open for further replies.


My only request that you only share the link to this tutorial on other forums. ***I'd like to get a little credit for this, and would also like ServUO to get credit for being such a friendly/helpful forum *** :D

Step 1-Organization
**I have already covered how to edit & extract bmp files from a flc or gif**

You should have each animation type extracted into a folder named for it's type.
(Ex: the animation for walk,run,death,etc should be in a folder named “walk” , “run”, “death”, etc)
You will now need to add sub-folders inside each animation type folder for each direction
Ex: Inside folder “walk” you should add folders named:
“Down Left”
“Up Left”
***optional but advisable***
“Not Needed”

Now you should have a main folder “walk”, with 5 sub-folders, and all the walk.bmps
Ex: “C:\Royal Griffin\Walk\Down”
You will now select all the bmps for each direction and place them into it's respective sub-folder.
Ex:all walking animations facing down should be placed into the “Down” folder.
"C:\Royal Griffin\Walk\Down\down_53.bmp”

This should be done for all other directions, place all the right facing bmps into the “Not Needed” folder if you have made this folder. You can now select the first bmp in each sub-folder, press ctrl+a to select all, press f2 to rename all bmps to it's animation type, direction and sequence number
walk32.bmp-> walkdown_1.bmp. (windows will auto number the files for you)

Step 2- Low or High Creatures
You will now need to decide if you want your animation to be a low level creature or a high level creature
The two big differences in low and high are:
1. Run is only available to low creatures
***This is needed for mounts***
2. High has more frames per slot and more slot types
3. Animation types Eat / Stomp

*****Please refer to the rar for the breakdown*****

Step 3- Selecting your frames

**I will be using a high level creature for this tutorial; it can be used with the low level creatures too**

You may have more walk.bmps than we will be able to use, and will now have the tricky part of selecting what frames you will want to keep.
Since I am using a high level creature, I can only have 10 frames for any walk bmp (walkdown, walkDL,etc)
This part is completely up to you on what you want your animation to look like, but you can only select 10 frames per direction:
walkdown=10, walkDL=10, walkleft=10, etc

***Right side has more frames than the left!?!?***
If you run into this problem, and you made the optional folder “Not Needed”, then you can simply use a program like photoshop, corel photopaint, etc. to flip the bmp image horizontally. Use these flipped images in place of the original left facing bmps. Now you should have the same amount in each sub-folder.

***I don't have an animation named “x”***
I didn't have an animation for “BlockRight”, I simply looked at the red dragon's animation for this and used a similar animation set up.

Ex: I used animation “ForifyWalk”, but it was just walking. So I looked for the number of frames I could use and made mine with selected bmps, and renamed them to reverse the order of the numbers.

**You can mis-match frames from any animation type or direction to get the final results you are looking for!**

****Helpful Tips****

Make a backup copy of your starting animations (flc, gifs, or bmps)...and DO NOT TOUCH THEM!!

Do NOT empty your recycle bin until you are 100% positive that, that animation is complete!

You can “test” your animation sequence with the bmps (no need to re-make a flc/gif)
To do this:
Make sure you can see a preview of the image inside the folder (Should be on the right side of the window)
You should have renamed your frames so they will all have the same names and numbers for sequence;
click the first frame and scroll through the rest with the right arrow button ~slowly~ .

Short cut keys are helpful when dealing with many files
here is a quick list:
ctrl+a (select all)
ctrl+c (copy)
ctrl+x (cut)
ctrl+v (paste)
ctrl+z (undo)
ctrl+s (save)
f2 (rename)
**photoshop only**
f1 or whichever short cut you choose for quickly flipping image


Step 4- Calculations

***Tools Needed for next steps***
-UO Animation Calculator


Open mulpatcher.exe and load your anim.mul and anim.idx files

***A docker window will pop up and tell you that anything you do in the anim files will be done “on the fly”***

Scroll all the way to the left and select the “Anim” tab
Select “Empty Slots”
Select an empty slot for your animation:

H=high level
L= low level
P=People & Wearables

Make a note on the number you have selected and close mulpatcher.exe.

***I am going to use slot H:0x4F (79) for this tutorial ***

UO Animation Calculator:

Open UO Animation Calculator and type in the number (decimal value) for the slot you selected and hit enter. Make a note of the number for “First Animation Frame”
***slot # 79 has first animation frame number: 8690***
Close UO Animation Calculator

UOFiddler or breakdown.rar:
I suggest pre-making folders for each animation type with the # and name of animation type. You can look in UOFiddler or the breakdown.odt for examples of animations that are used.
Ex: 0-Walk, 1-Idle,etc

Step 5- .bmp to .uop


Open UOAnim and click the “Add Animation” button, and type in the number from UO Animation Calculator's “First Animation Frame” in the “Block Number” and click OK.

** This will start the first set of animations in the sequence “walk” **

***The sequence for UO is always Down, Down Left, Left, Up Left, Up***

****UO uses a flip technique for the right side of animations,
so right is not needed****

Next, click the “Add Image” button and load the first bmp for “WalkDown”
Continue adding all the bmps for Down via the “Add Image” button

** WARNING: If you mess up you will have to start over, so be meticulous! **
**This is the reason for all the “Organization” earlier**

Once you have added all the frames for WalkDown.bmp, we can move on to WalkDL (down left)
We will repeat what we did above with “Add Animation”, but this time we will change the “Block Number” to +1
Ex: 8691 (8690 +1)

Repeat these steps until you have all (5) animation directions done, then click “Create Patch”
and save as “0-walk”. This will make a 0-walk.uop.

**Take note of the last number of the 0-walk animation block number**

Close and re-open UOAnim

Repeat above steps for the next animation set, but increase the block number by +1

Ex: 8694 was my last block number for 0-walk, so my first block number for 1-Idle will be 8695

***Repeat all of the above steps in UOAnim for all the animation types & directions***

You should now have 1 .uop file for each animation type (walk, idle, etc, etc) saved


Step 6- .uop to .vd

Open michelangelo and click “Import”
Import the first animation uop (0-walk.uop)
continue importing all the uop files until all are within michelangelo

**Note that you will need to import each animation uop in order from 0 to last #**

*************************Suggestion, but not nessesary*****************************
I like to save my completed uop file, so at this point I would suggest clicking “save” and saving your total animation.. “AnimationName.uop”
Now, export this into a verdata.mul

** You can make a new verdata.mul by making a new text document and re-naming it “verdata.mul” make sure to delete the .txt extension. **

Close michelangelo


Open mulpatcher and load your anim.mul, anim.idx, and your new verdata.mul.
Scroll all the way to the left and select the “Anim” tab, then select full slots.

**You can search for the slot # you used for your animation, it will be fairly easy to find as it's color is green.**

Once you find your animation, click to select it, then right click and “Save to File”.
**You can name this anything you want, or leave the slot number for the name**

Close mulpatcher

Step 7- .vd to .mul


Open mulpatcher and load:


**one of the other anim#.muls**

Go to “Anim” tab and go to your animation slot number
Single click it to select, then right click and “Load from File”
Located YourAnimationName.vd or slot#.vd and load it.

Step 8- **Only for mounts**

**This step only works with clients up to at this time**

Go to the TileDataS tab and click “Fill Slots to 0x7FFF”
Find an empty slot, and set:

Name: Your Animation's Name Mount
AnimID: Your Animation's animation #
Weight: 1
Height: 1
Quality: 25
Wearable, and Animation

***Note: in mulpatcher the animID is hex #, UOFIddler uses decimal #)***

Got to “Settings” tab, click “Save” next to tiledata to save it .

You can now close mulpatcher if you want...OR...
*************************Optional for shrunk pets****************************************

**You will need to have one bmp file that is the size for a shrunk pet, roughly 30x45px**

Go to “ArtS” tab, select empty slots

Find an empty slot, right click and select “Load from Bitmap
Add the reduced bmp image of your new animation.
Go to “Settings” and save art.mul and art.idx
Close mulpatcher

Step 9- Other edits that will be needed


You will need to add your new animation here, this tells the client where to get the animation from.

Ex: 353 -1 -1 -1 -1 #Tiger

This is telling the client that slot 353 is being used and to find it in anim.mul/anim.idx slot 353 and no other slots in other anim#.muls are being used.

[animation slot # (anim2) (anim3) (anim4) (anim5) #name of your animation]

**you can add animations to other anim#.muls**


This is telling the client that animation 353 should use the death animation # 353 for a corpse, the 0 is the corpse hue.
***This is not always needed, but I add just in case***
353 {353} 0


This sets the animation "type" (animal, moster, equipment, etc)

***Note: you must enter the #name ~exactly~ like you did for the bodyconv.def***

353 ANIMAL 0 #Tiger

***Changing the type ANIMAL to MONSTER changes the animation blocks available to use***


This is also not always needed, but if you find you are having issues with an animation not showing up you can add them here. (I did add this for a nightmare due to this issue)
#New Nightmare
354 {354} 0

If you added a mount, and art for shrinking.

**This example is a Cusidhe**
277 0x2D96

277 is the animation #, and 0x2d96 is the itemID found in the tiledata.mul.


  • BreakDown.rar
    13.2 KB · Views: 162
  • Tools Needed.rar
    909.7 KB · Views: 217
Last edited:


Thank You for taking the time creating this tutorial to share with the Servuo community :)


Thank you all! I'm edit/adding next steps. This will be a huge tutorial, more like a walk-through. :D


This concludes this tutorial/ walkthrough. I tried my best to keep the terms standard, and not get too technical. Please remember that if you save the .gifs, you can watch them with quicktime and pause. ;)

I'm currently working on block numbers and their relations to the animations. The best way I can describe this is if you look in UOFiddler at H/L/P animations, you will see that not all the animation slots (0-walk, etc) are being used for all the animation types (H/L/P).


ServUO Developer
@Redmoon I just wanted to say that in the short time you've been a member of the ServUO community, you've offered a quite a bit back already. Keep up the fantastic work and thanks greatly for the amazing contributions.


Absolutely no problem, no problem at all! These are my first contributions on any forum...and this actually helped me while I was doing an animation (forgot what block number I was on :oops:) So in essence ya'll "watched me" while I worked . I love ServUO!!!


Just a small addition to the above (not worthy of another tutorial IMO)

If you are working with sea creatures and have downloaded a file that has changed the background colors to a non-UO friendly color, or if you need water colors for your custom animations.

Here are the colors that I used for my whale so it looks like it really is swimming.

Water colors (RGB): Dark to Light
87,170, 217
(the thing that looks like a mouth is really an xmlspawner) :eek:


I'm already doing something wrong and I'm right at the beginning.

Open mulpatcher.exe and load your anim.mul and anim.idx files
***A docker window will pop up and tell you that anything you do in the anim files will be done “on the fly”***
Scroll all the way to the left and select the “Anim” tab
Select “Empty Slots”
Select an empty slot for your animation:

I open mulpatcher and load the anim files and click "load", after which I get the popup mentioned.
BUT I scroll to Gumps (Anim) because the one to the far left is Animdata (not Anim). I assume I'm in the right place?

However I don't see anything that says "Empty Slots". What am I missing?

I'm attaching a screenshot...mulpatcher.jpg


I'm already doing something wrong and I'm right at the beginning.

I open mulpatcher and load the anim files and click "load", after which I get the popup mentioned.
BUT I scroll to Gumps (Anim) because the one to the far left is Animdata (not Anim). I assume I'm in the right place?

However I don't see anything that says "Empty Slots". What am I missing?

I'm attaching a screenshot...View attachment 371

Use the arrow on the lower right side to scroll to the left.


Ok. Me again. So I was trying to figure out which numbers to edit for the animation and I'm not sure I've got this right.

I am trying to only change the slashing animation (actually, that's the only one I will end up using when it's done). So I open the calculator and am told that for this animation (H 0xB9 185), my beginning animation # is 20350 / and my ending # is 20459. So I first thought I would start adding my frames at the slash (20350+26?). But if I do that, I can't add each direction by AddAnimation, it would be AddImage for all 40 of my frames?

Because Walk has 80 frames on its own and my Horse_Attach1H_SlashRigh_01 animations have 8 directions, but 5 frames for each. There are only 109 frames available for all of H_SavageRider_Male total.

So am I doing this right or is there a different way to do this if I only need my new humanoid monster to have 1 type of movement?savage_riding_slash.jpg


I am a little confused as to what you are trying to achieve, so bare with me a bit, Ok. If you are wanting to just replace that certain animation then all of the above are not needed. Do you already have a .vd for a new animation? If yes, then you just over-write the old animation with the new .vd file. If you are doing a completely new animation; keeping that one and you are wanting it to be a rider that is "slashing" or "fighting" then you would need to use a completely new slot number for P (People), you can see these with mulpatcher.
Or...if you are wanting to add a new animation via frames "individual bmps" to over write that animation (I'm thinking this is what you're wanting to do) then:
start the first set of bmps the animation 0-walk 01 with the down direction (all down direction bmps will be under the 1st number 20350, then proceed with the next direction of 0-walk 01 with the down left direction #20351, left with #20352, up left # 20353, up #20354. Once you have done all these directions then save the walk as a .uop file. Rinse and repeat for all other animation types (walk stall, run, etc). Beginning each new "set" with +1 from the last one you did for the previous animation type set. So, walk stall would begin with walk stall down direction being #20355. UO uses the flip conversion method for animation. This took me a while to figure this out as each game can be different, ie some use full compass, some use right side to left side flipping and in the case of UO left side flipped to right side. So, you would only need the left side frames for UO, as the client flips these frames for the right. (saves space, a major plus goes out to Ralph and his crew for thinking of this) So, all directions for up right, right and down right can be deleted as they are not needed. Now, if you have more frames than can be used in..let's say walk down..then you will need to remove some bmps to achieve the correct set of frames for that direction. I know this looks confusing as UOFiddler shows the right side, but in reality it's just doing what the UO client is telling it to do and flipping the left side.

" if I only need my new humanoid monster to have 1 type of movement?"
I'm sure you can just use one slot, but all animations will just loop that one animation. I'd have to test that to be certain, as I've only done complete animations.

I hope all this helps


I'm going to have to read over this better tonight when I get home....won't be able to drink much at the party tho. lol.

I'm trying to make a new monster, which is a Headless Horseman. But I want him to be dressable and I've made a pumpkin head that would then be a "weapon".

So I used the Male Savage Rider and exported all of its mounted 1H slash attack animation frames. It appears to be 8 directions, each with 5 frames. So I erased the head on all 40 frames for the Savage Rider. I put each direction in its own folder and numbered them (as you suggested above). Now I want to re-import those frames.

I thought it would be easier to simply overwrite the Savage Rider's slash, but after looking over what you just said, it looks like it may be a better idea to make it into a completely new monster since I don't need all of those other animations? (But I wasn't quite sure how to go about adding a new monster with only the frames and not an actual .vd file.)


Great tutorial, but after adding custom animations to 2d client howcan I add them to EC client so I would have them on both versions ?

I figured out that we can patch/unpack EC animation files using Mythic Package Editor and even convert from .bin to .bmp by using mw bin convertor but I would like to convert .vd or .bmp collection into .bin file/files to add to EC. Anyone know how to do that ?


ServUO Developer
To my knowledge there isn't an editor to add EC animations, only extract them (as you mentioned). If anyone knows otherwise, or you find something - please post it.


Hello ServUO community, I just stumbled upon this community through some google wandering.

I'm trying to simply replace the frenzied ostard properties with polar bear properties, and I'm not sure if I'm missing something.

I've been able to successfully adjust the unmounted animations and the sounds, but I've not yet been able to change the unmounted hue and the mounted animations. In other words, when I dismount, my frenzied appears & sounds like a default hue polar bear, but when I mount it, it returns to its deep hue frenzied ostard graphic.

I'm working on this for purely client-side usage. I realize others on my shard will still see the frenzied ostard graphic :).

What I've done so far was very simple, and I was able to do it within a few minutes using MulPatcher. However, after several hours trying MulPatcher & UOFiddler, as well as trying my best to follow Redmoon's guide here, I can't seem to get it to work.

I'm hoping I'm missing something very simple, but maybe what I want to achieve isn't even possible without a ton of work.

Thanks for reading!


hello servuo people,

i made several successful mul editing about new rides or etc. but i have really interesting problem about clickable single animation when we ride the new mounts.

interestingly everything is working perfectly except one thing.. normally as we know that when we ride the mount; our allbody merging with ride body and become a single animation with c_man/woman animation. which means it is able to set to target or click where ever our body its working "imnotsureexplaincorrectly". but in this problem my body and ride body is not working like a single body. if i click on my animation its working but if i click the somewhere else of mount its not. i don't how to explain proper this situation it looks "invisible" for mouse target/click.

its really interesting check out the picture.

Untitled - 1.png

probably everybody thinks first because of tiledata but unfortunately its not. i can do almost everything with mul files or uop files but for this problem no clue or idea.

what do you think?
Last edited:
Not open for further replies.