Hello,
I want to create a script where models named “Stand” are locally loaded and unloaded for the player based on their current location.
I understand that I should likely put them in lighting and need to load them based on how close the player gets to them but I don’t understand how to do this.
I am a relatively inexperienced scripter so I would appreciate any pointers on how I would do this or if there are any already made scripts of this sort that I can modify.
Thank you
2 Likes
Streaming
You can also use streaming to stream out the stands. If you don’t want other things to stream out, you can set everything else to persistent streaming. Instance Streaming | Documentation - Roblox Creator Hub
Manual way
To get started, try finding the Position of the player’s character then find the Position of the “Stand”. Since they are both Vector3’s you can simply subtract:
local unloadDistance = 50
local updateTime = 1
local Players = game:GetService("Players")
local player = Players.LocalPlayer
-- It's usually better to find the HumanoidRootPart's position instead of just the character's position
local humanoidRootPart = player.Character:FindFirstChild("HumanoidRootPart")
local stand = --[[insert here]]
local regularStandParent = stand.Parent
while true do
local positionDifference = math.abs(humanoidRootPart.Position - stand.Position)
if positionDifference > 50 then
stand.Parent = nil
else
stand.Parent = regularStandParent
end
task.wait(updateTime)
end
If you have multiple stands you can loop through them inside the while true do
loop with a for _, stand in ipairs(stands) do
loop
1 Like