Modding Tools / Notes
- 00_mod_selector.py = art mod selector , generates a custom MassImport list from selected mod folders

- 02_image_composite_multi.py = composites adjacent or overlaping images to assemble sliced tree images , saves arrangment as json for disassembly later

Modding Notes
a collection of info for modding ultima online art .
MUL
art assets are compressed into .mul files . modding the art is handled by 'patching' the new art into the corresponding categorical mul file .
- ART = Art_S ( items , placed objects ) , Art_M ( flat isometric landtiles )
- GUMPS = user interface , menus , character sheet equipment
- TEXTURES = land textures used on the terrain
TOOLS
UO Fiddler
- https://github.com/polserver/UOFiddler
- tool to explore and export the art in the mul files .
- Searchable by name or ID ( ids can be found in game saying ">info" or "-info" )
- can Batch export all by category
Mulpatcher by Varan
- http://varan.uodev.de/
- primary tool for patching , using the autopatching feature by txt file
- autopatch txt example ( "HEX imagename.bmp" example= "0xF88 item_reagent_NightShade_0xF88.bmp" )
Export
- 00_psd_to_GumpOverrides.py = Automatically export from psd source files into a GumpOverrides folder
Image Magick
ENVIRONMENT TEXTURES
Landtiles ( Art_M ) - isometric tiles , placed in world mixed with 3d textures on flat areas .
- for each envrionment texture there is a corresponding art_m landtile , and additional art after that .
TEX_to_ART_M
- this python script will batch convert Textures to ART_M , however isnt perfect and recommend additional adjustments
-

- located in Z_Tools/01_image_rotate_to_isometric.py
TEX_debug
Substance Painter of ENV textures :
- located in Z_Tools/*.spp
- env_dirt_grass , env_sand_grass , env_mountain , env_cave_mountain
-

AUTOPATCH
- ( "HEX imagename.bmp" example= "0xF88 item_reagent_NightShade_0xF88.bmp" )
- generated from spreadsheet

- located in Z_Tools/ultima_mods_ART.xlsx , ultima_mods_ENV.xlsx , ultima_mods_UI.xlsx
NAMING
- exports from UOFiddler are HEX or Numbered
- 00_num_to_hex.py = batch rename files in target folder from number to HEX
- file list entered into spreadsheet and renamed based on this convention :
- CATEGORY_Group_Name_NUM_HEX
- batch renaming .bat may be generated from spreadsheet column
HUES
- generaly the color gradients are mapped 0 to 1 greyscale values of the art .
- however some are split into 2 , mapping the color gradient to the greyscale values of 0 to 0.5 and 0.5 to 1 .
- ( this might be done to increase total hues available and/or create complex multi color gradient art compressing the arts value ranges remapping to the multi color gradient )
- example = skill scroll , a necromantic scroll fit to the lower hue gradient by its values fit 0 to 0.5
- when creating these arts recommend using the curves adjustment layer to remap the range .
LINKS