Streaming enabled is making parts disappear on the clients side, which is disrupting my code, but game gets really laggy when i disable it

The game I’m working on is a big game, so I have a loading screen and streaming enabled on to optimize a players performance, but I don’t know if Streaming enabled has always behaved like this, or it just started to. So essentially why this is bad is because I’m trying to do camera manipulation, but I can’t do that because the part that I want to use for this camera manipulation is not showing up when i play the game, so when i try to define the part I get “(Part) is not a valid member of (Model)” or when i try to add a :WaitForChild() I get an infinite yield warning (which practically means it doesn’t exist). But when I try to disable streaming enabled, the game lags A LOT MORE, (but, the part is not disappearing) proven by my loading screen, which shows how much parts are loaded, and how much total things need to be loaded:

when streaming enabled is off:

so it is practically essential for my game to have streaming enabled on, but how do i define the part if it keeps disappearing?

to explain more what im trying to do, i’m trying to do a camera manipulation script, so in order to do that you need to have two variables that define the camera, and a part, the reason why we need a part is because we need to change the camera’s cframe to the parts cframe, which essentially makes our part kinda like a camera, but camera manipulation is client sided, so we have to script all our things in a local script, including defining the part i was talking about that is our “camera”, but like i said before i can’t define it because its disappearing on the client side due to streaming enabled, (like i said before) when i turn it off , its laggier but the part is defined and i get no errors.

--Objects
local Adornee = script.Parent.Adornee
local plr = game.Players.LocalPlayer
local char = plr.Character
local HumanoidRootPart = char:WaitForChild("HumanoidRootPart")
local CurrentCamera = workspace.CurrentCamera--first object we need for the camera manipulation
local part = game.Workspace.Ricky.Timmy.PartAngle-- the second, but like i said it is disappearing on the client's side due to streaming enabled.
--Services
local UIS = game:GetService("UserInputService")
local TweenService = game:GetService("TweenService")

I would try setting the Player | Roblox Creator Documentation of the Player to the part where the camera’s CFrame is being set. This should make it so parts around the camera’s cframe replicate. Then I would change it back to nil when you don’t need to manipulate the camera.

1 Like