I would like to enable streaming, but an aspect of my game requires there to be markers which indicate potentially far away locations.
I am looking for a simple way to have markers represent far away locations when the existence of instances is unreliable. As far as I know, there is no way to set a BillboardGui to a 3D point in space without an adornee.
My current plan is to use ScreenGuis to basically emulate a BillboardGui, but I want to know if there is an easier way first.
If a BillBoardGui doesn’t have an adornee, it’s default position will just be (0,0,0) I believe.
Try just setting its ExtentsOffsetWorldSpace to wherever you predict its supposed adornee will be, and see if that works.
Otherwise, you can try just setting the billboard’s adornee to Terrain, since that is a BasePart that always has a position of (0,0,0).
You can set the Adornee property of a BillboardGui to an Attachment. This will allow you to specify their location, and you can store them in such a way that streaming won’t interfere e.g. parent a part with them inside to ReplicatedStorage and clone this into workspace from the client.
Im not sure how you would make a part forcibly load before you get close to it with streaming enabled but I have made some code you can use to make a ScreenGui hover over the same position as the part
local cam = workspace.CurrentCamera
local plr = game.Players.LocalPlayer
game["Run Service"].RenderStepped:connect(function()
local pos = cam:WorldToScreenPoint(workspace.Part.Position)
plr.PlayerGui.ScreenGui.Frame.Position = UDim2.new(0, pos.X, 0, pos.Y, 0)
end)
I believe I was told the opposite by someone on the networking team - that if the client runs out of memory it will stream out everything including what was created locally. Unfortunately not that easy to test.