local spawnedPeds = {} Citizen.CreateThread(function() while true do Citizen.Wait(500) for k,v in pairs(Config.PedList) do local playerCoords = GetEntityCoords(PlayerPedId()) local distance = #(playerCoords - v.coords.xyz) if distance < Config.DistanceSpawn and not spawnedPeds[k] then local spawnedPed = NearPed(v.model, v.coords, v.gender, v.animDict, v.animName, v.scenario) spawnedPeds[k] = { spawnedPed = spawnedPed } end if distance >= Config.DistanceSpawn and spawnedPeds[k] then if Config.FadeIn then for i = 255, 0, -51 do Citizen.Wait(50) SetEntityAlpha(spawnedPeds[k].spawnedPed, i, false) end end DeletePed(spawnedPeds[k].spawnedPed) spawnedPeds[k] = nil end end end end) function NearPed(model, coords, gender, animDict, animName, scenario) RequestModel(model) while not HasModelLoaded(model) do Citizen.Wait(50) end if Config.MinusOne then spawnedPed = CreatePed(Config.GenderNumbers[gender], model, coords.x, coords.y, coords.z - 1.0, coords.w, false, true) else spawnedPed = CreatePed(Config.GenderNumbers[gender], model, coords.x, coords.y, coords.z, coords.w, false, true) end SetEntityAlpha(spawnedPed, 0, false) if Config.Frozen then FreezeEntityPosition(spawnedPed, true) end if Config.Invincible then SetEntityInvincible(spawnedPed, true) end if Config.Stoic then SetBlockingOfNonTemporaryEvents(spawnedPed, true) end if animDict and animName then RequestAnimDict(animDict) while not HasAnimDictLoaded(animDict) do Citizen.Wait(50) end TaskPlayAnim(spawnedPed, animDict, animName, 8.0, 0, -1, 1, 0, 0, 0) end if scenario then TaskStartScenarioInPlace(spawnedPed, scenario, 0, true) end if Config.FadeIn then for i = 0, 255, 51 do Citizen.Wait(50) SetEntityAlpha(spawnedPed, i, false) end end return spawnedPed end