uo-rust-libs 0.1.0

Data readers for various Ultima Online client mul files
Documentation

UO Rust Libs Crates.io License Documentation

This library contains various modules for reading and writing pre-UOP Ultima Online data files, written in Rust.

This library is still pre-1.0 (although is stabilising), so the API may shift underfoot while you're working with it.

By default, the library contains helper methods for converting to Image types. Import it with default-features = false if you don't need this for your use-case.

This has been tested on a fresh install of Ultima Online: Age of Shadows, but should support clients up to Mondain's Legacy.

Supported files

There are currently readers for the following filetypes:

  • anim.mul/anim.idx (and successive files) - Animated characters
  • art.mul/art.idx - Tiles and static art
  • fonts.mul - Fonts
  • gumpart.mul/gumpidx.mul - GUI elements
  • hues.mul - Palette swap colours
  • map[n].mul - World maps
  • mapdif[n].mul/mapdifl[n].mul - Patches for world maps
  • radarcol.mul - Color lookup table for map and static tiles
  • skills.mul/skills.idx - Skill names
  • stadif[n].mul/stadifl[n].mul/stadifi[n].mul - Patches for static locations
  • statics[n].mul - Static locations
  • texmaps.mul/texidx.mul - 3D texture maps
  • tiledata.mul - Information about tiles and statics

Features yet to be added

  • sound.mul/soundidx.mul support
  • animdata.mul/animinfo.mul
  • palette.mul
  • skillgrp.mul
  • unifont.mul
  • speech.mul
  • multi.mul/multi.idx
  • Converting from images to UO assets/Writing muls back to files
  • A built-in viewer application

References

https://uo.stratics.com/heptazane/fileformats.shtml