FFXIAH.com

Language: JP EN DE FR
New Items
2026-01-06
users online
Xim Tools


Open the tool by running ximtools.jar (can run it like a .exe file, requires a recent version of the JDK to be installed). Alternatively, checkout the source code and run GuiMain.kt.

Use the "Export to glTF" tool to convert an item-model resource to glTF.

Currently, this works by selecting Race/ItemModelSlot/ModelId. Here's a list of ModelIds by item-name (from LandSandBoat).

Selecting "include animations" will export the race's default animations (idle, jump, etc), which can be useful for checking the model in different poses.

Clicking "export" will create a .glTF file in the tool's local directory (as shown on the right).


The glTF file can be opened in Blender (and probably other 3D modelling software).

The default import settings are good - nothing needs to be changed.

You're now free to modify the mesh (the skeleton's joints are displayed as spheres). Keep the following in mind:

  • FFXI supports at most two joint-weights per vertex.

  • FFXI supports at most one texture (diffuse) per mesh (but can have multiple meshes per model, each with their own texture)




FFXI skeleton meshes have some important metadata. This is filled in automatically, but if you are creating entirely new meshes, you may need to populate this data.


  • "ambientMultiplier" is essentially a basic brightness property (multiplies the effect of the environmental ambient lights). When importing models from other games, lowering/increasing this may help if the model is too bright/dark.

  • "datId" is the mesh's resource identifier in the .DAT file. These do not need to be unique - XimTool will attempt to "compact" models with the same ID, so it's actually more efficient if they're the same. For armor, the ID doesn't matter (as far as I know), but for weapons: main-hand needs to be "wep0", off-hand "wep1", and ranged "wep2".

  • "displayType" indicates what type of mesh this is. This is used in combination with the "occludeType". In Xim, there are 8 known display types:

    • 0: Never occluded
    • 1: Hair 1
    • 2: Hair 2
    • 3: Hair 3
    • 4: Face
    • 5: Wrist
    • 6: Pants
    • 7: Shins

  • "occludeType" controls what displayTypes are hidden when this armor is equipped. For example, occludeType 18 hides gear marked as "wrist".

  • "specularPower" is how "shiny" the mesh is. 0 means the mesh is not shiny. ~100 is a typical value for shiny meshes.

  • "textureName" is the 16-character texture identifier. Blender can sometimes mess with the material/texture names, so it's stored here for safety. When XimTools imports a mesh, it will try to find a texture corresponding to the name within the .DAT file. If it does not exist, it will try to find it in the working directory. This can be used to import new textures into the .DAT file.



When exporting the data, there are a few important settings:

  • Export to XimTool's working directory for this Race/ItemModelSlot/ModelId

  • Ensure the format is set to "glTF Separate"

  • Ensure that "Custom Properties" is included

  • Don't export animations (it doesn't cause problems, but it'll probably freeze Blender for a bit)

  • If the model has vertices with too many joints weights, set "Data > Skinning > Bone Influence" to 2





Back in XimTools, navigate to "Import from glTF" and fill out the Race/ItemModelSlot/ModelId.

Set the "glTF File Name" to the one you used when exporting from Blender (model2.gltf in the above screen shot.)

Then, press the "Import from glTF" button. This will create a .DAT file. By default, the .DAT file will be created in the tool's working directory, but this can be changed in the "Settings" tab.

The import-log will display information about the "Custom Properties" to help ensure they were set/imported correctly, and display the full path to the .DAT file.

The .DAT file can be copied to the FFXI directory, or loaded with an addon like XiPivot.




Blender Animation Export Settings



Ensure that:
  • Format is set to glTF Separate

  • "Include > Data > Custom Properties" is checked

  • "Animation" is checked

  • "Animation > Animation Mode" is set to NLA Tracks

  • "Animation > Rest & Ranges > Set All gltf Animation Starting at 0" is checked

  • "Animation > Sampling Animations" is checked

  • "Animation > Sampling Animations > Sampling Rate" is set to 24

  • "Animation > Optimize Animations > Optimize Animation Size" is NOT checked






Author: Aamace
Date Created: 2026-05-01 10:45:04
Date Last Modified: 2026-05-05 01:13:16
Updates: 6
Bytes: 5745