@Overkillz
Objects will only be loaded when they are streamed in. This also means that they can be unloaded and reloaded.
for i=550,20000 do
removeWorldModel(i,10000,0,0,0)
end
setOcclusionsEnabled(false)
setWaterLevel(-5000)
local container = createElement("container")
local count = 0
local function elementCounter ()
count = count + 1
iprint("Streamed in: ", source, ", ", count, "/", #garageObjects)
end
addEventHandler("onClientElementStreamIn", container, elementCounter)
for k,objects in ipairs(garageObjects) do -- garageObjects table is already defined and with values
local a,b,c,d,e,f,g,h,i = unpack(objects)
local object = createObject ( a,b,c,d,e,f,g )
setObjectScale(object,h or 1)
setElementDoubleSided(object, i or false )
setElementDimension(object,arenaCDimension)
setElementParent(object, container) -- !important
end
fadeCamera(true)
Keep in mind that this doesn't mean that the texture has been loaded. It doesn't have to be painted to exist.
I recommend to use lowLOD objects instead, those will show up faster.
https://wiki.multitheftauto.com/wiki/SetLowLODElement
See this useful function:
https://wiki.multitheftauto.com/wiki/AssignLod
function assignLOD(element)
local lod = createObject(getElementModel(element),0, 0 ,0, 0, 0, 0, true)
setElementDimension(lod,getElementDimension(element))
setElementPosition(lod, getElementPosition(element))
setElementRotation(lod, getElementRotation(element))
setElementCollisionsEnabled(lod,false)
setLowLODElement(element,lod)
return lod
end