From your code, it looks like the texture (TXD) is being loaded after the model (DFF), which might be why it's not applying correctly. The correct order is to load the texture first, then the model.
Here's a working example:
local MODEL = 17517
addEventHandler("onClientResourceStart", resourceRoot,
function()
local texture = engineLoadTXD("example.txd")
if not texture then
return
end
engineImportTXD(texture, MODEL)
local model = engineLoadDFF("example.dff")
if not model then
return
end
engineReplaceModel(model, MODEL)
end
)
meta.xml:
<meta>
<script src="client.lua" type="client" />
<file src="example.txd" />
<file src="example.dff" />
</meta>