engineRequestModel | Multi Theft Auto: Wiki Skip to content

engineRequestModel

Client-side
Server-side
Shared

This page is incomplete! Help wanted!

Please finish this page using the corresponding Old Wiki article.
Go to Contribution guidelines for more information.


This function is used to assign the next available model ID to a certain element type.

Note

Vehicle unique features may be unsupported, see issue 1861 for examples and details

Tip

For most cases, you will probably want to add models to your server that are synced with all clients automatically. This is possible with this resource : newmodels

Important

Unlike some other functions, the side-effects of this function aren't reverted on resource stop, so you must manually call engineFreeModel in onClientResourceStop (Just like the example below does)

Important

parentID should be the same model type to prevent crashes.

Syntax

engineRequestModel ( )

Code Examples

client

This example creates a ped and then gives you the opportunity to change its model. If the resource stops, then the IDs allocated will be deallocated. Use/capfor creating the ped and/sapto skin the ped. You will need some skins added to a folder and to the meta.xml for/sapto work:

local peds = {}
function createAllocatedPed()
local x, y, z = getElementPosition(localPlayer)
local id = engineRequestModel("ped")
peds[id] = createPed(id, x+0.5, y, z+0.5)
outputChatBox("New ped with ID "..id.." created.")
end
addCommandHandler("cap", createAllocatedPed, false, false)
function skinAllocatedPeds()
local txd, dff;
for id,ped in pairs(peds) do
if fileExists("skins/" .. id .. ".txd") and fileExists("skins/" .. id .. ".dff") then
txd = engineLoadTXD("skins/" .. id .. ".txd")
engineImportTXD(txd, id)
dff = engineLoadDFF("skins/" .. id .. ".dff")
engineReplaceModel(dff, id)
outputChatBox("Model ID "..id.." changed correctly.")
else
outputChatBox("Model ID "..id.." couldn't change. REASON: skins/" .. id .. ".txd or skins/" .. id .. ".dff does not exist.")
end
end
end
addCommandHandler("sap", skinAllocatedPeds, false, false)
function onStop()
for id,ped in pairs(peds) do
engineFreeModel(id)
end
end
addEventHandler("onClientResourceStop", resourceRoot, onStop)

See Also

Engine Functions
Engine Elements