Custom boot models


In this post I will show how to use custom boot models.
In default game, there's only one boot model which is a part of body model:
m200__.o - body model detail level 1
m232__.o - body model detail level 2
m242__.o - body model detail level 3
m243__.o - body model detail level 4
m335__.o - body model for Player Edit Mode
You need to extract each file from zdataX.big archives. Put them in some folder and convert to .gltf with otools (use -dummyTexture option so you won't lose textures information).

Import m200__.gltf to Blender.

Disable everything except sortgroup1 object. Select it and switch to Edit mode.
Toggle X-Ray and select boots part.

Separate the selected part: RMB > Separate > Selection.
Disable X-Ray. Switch to Object mode.
Now you have boots model in a separate object.

We need to save this object to a new file. And we also need to re-save m200__ without this object.
Unhide all objects in the scene.
Apply all transforms: A > Ctrl+A > All Transforms.
Now select boots object and Skeleton object.

Export to m20__0.gltf (Separate, only Selected Objects)

Then delete boots object and re-export body model.

Then for each other body model (m232__.gltf, m242__.gltf, m243__.gltf, m335__.gltf), import it to Blender (start new scene before each import: File > New > General), separate and delete boots part, Apply Transforms, and re-export.
Boots model is exported only once (from m200__ model).
Import .gltf to .o with otools (we need -instances 25 option for body models)

For the new m20__0 model we don't need this parameter, so import it again separately

Now copy m20__0 for each boot ID which is used in the game.
A simple batch script:
copy m20__0.o m20__-1.o
copy m20__0.o m20__-2.o
copy m20__0.o m20__-3.o
copy m20__0.o m20__-4.o
copy m20__0.o m20__-5.o
copy m20__0.o m20__-6.o
copy m20__0.o m20__-7.o
copy m20__0.o m20__-8.o
copy m20__0.o m20__-9.o
copy m20__0.o m20__-10.o
copy m20__0.o m20__-11.o
copy m20__0.o m20__-12.o
copy m20__0.o m20__-13.o
copy m20__0.o m20__-14.o
copy m20__0.o m20__-15.o
copy m20__0.o m20__-16.o
copy m20__0.o m20__-17.o
copy m20__0.o m20__175.o
copy m20__0.o m20__176.o
copy m20__0.o m20__177.o
copy m20__0.o m20__178.o
copy m20__0.o m20__179.o
copy m20__0.o m20__184.o
copy m20__0.o m20__185.o
copy m20__0.o m20__186.o
copy m20__0.o m20__187.o
copy m20__0.o m20__188.o
copy m20__0.o m20__189.o
copy m20__0.o m20__190.o
copy m20__0.o m20__191.o
copy m20__0.o m20__192.o
copy m20__0.o m20__193.o
copy m20__0.o m20__194.o
copy m20__0.o m20__195.o
copy m20__0.o m20__196.o
copy m20__0.o m20__197.o
copy m20__0.o m20__198.o
copy m20__0.o m20__199.o
copy m20__0.o m20__200.o
copy m20__0.o m20__201.o
copy m20__0.o m20__202.o
copy m20__0.o m20__203.o
copy m20__0.o m20__204.o
copy m20__0.o m20__205.o
copy m20__0.o m20__207.o
copy m20__0.o m20__208.o
copy m20__0.o m20__209.o
copy m20__0.o m20__210.o
copy m20__0.o m20__211.o
copy m20__0.o m20__212.o
copy m20__0.o m20__213.o
copy m20__0.o m20__214.o
copy m20__0.o m20__215.o
copy m20__0.o m20__216.o
copy m20__0.o m20__217.o
Now import these files to the game (with Asset Loader - copy to data/assets folder).
Last edited:


Put SceneDecompiler.exe to data folder and launch it. The tool converts .cs files to .xml
Open FEscene.xml in Notepad++.
Add new ModelBlock here:

                <ModelBlock NameFormat="m20__%d.o" RenderSlot="1" Order="3" LevelOfDetail="0">
We also need to do the similar with bescene.xml file.
But it has more entries which must be edited (22 players + 3 referees).
We need ToolBucket plugin for Notepad++ (create NppToolBucket folder in plugins folder and put .dll there). Then it will appear in Plugins > ToolBucket > Multiline Find and Replace.
We need to replace this block:
by this:
                <ModelBlock NameFormat="m20__%d.o" RenderSlot="15" Order="3" LevelOfDetail="0">

Perform replacement with "Replace All". Note that instead of real IDs, we used placeholders (BOOTSID and TRANSFORMID). Now need to replace all BOOTSID and TRANSFORMID for each SceneEntry node, with real IDs. For easier view: View > Fold All
BOOTSID can be taken from SceneEntry>TexBlocks>TexBlock(PlayerTexObj)>Texture(t20__%d.fsh)>FormatArgumentAccessor

TRANSFORMID can be taken from SceneEntry>TransformAccessor


After all values replaced, compile .xml to .cs with SceneCompiler.exe

So now boots model will be loaded separately for each player.
Now we can prepare new model and texture:
m20__X.o - boots model
t20__X.fsh - boots texture


If you want I can share my files which I got after the tutorial. And also with this model converted from FIFA 22, but it's not perfectly aligned with body model (legs) and must be reworked/improved.


Senior Squad
If you want I can share my files which I got after the tutorial. And also with this model converted from FIFA 22, but it's not perfectly aligned with body model (legs) and must be reworked/improved.
Does this mean you can open converted newer boot models in oedit?? And not blender?


You can try to make the model compatible with OEdit with
option. This will remove extra blocks which are written by otools by default.
If it still doesn't work or the model is displayed incorrectly, also change triangles storage method with


Senior Squad
I’ve used blender. I think I’m just used to using oedit to make boot textures.

if that’s the case. I’ll probably move on from fifa10 and oedit and go to a later game like 11 or 14


Hey mate @Dmitri, would you be able to replace our rugby08 boot models with fifa10-16 boot models please? I’ve attached a link for all 3 body models. Looks like they used for different detail/LOD modes by the game, Body 1 is highest detail with most vertices, body 3 the least detailed. I've included the skeleton as well so you can see what rigging is needed.
I don't know if it's possible. I think there's no bescene file in Rugby games.