Long-Distance Markers with StreamingEnabled

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.

Thanks.

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).

2 Likes

I’ve not got much experience with StreamingEnabled but I was told that if you create the part on the client, it won’t be streamed out.

I don’t have a suitably large game that I can easily test it on right now, but maybe give it a go and see.

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)

hope this helps

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.

Good idea, thanks. Though any reason why would you use ExtentsOffsetWorldSpace over StudsOffsetWorldSpace?

1 Like

Not really, it’s just what I usually use.
I wouldn’t be worrying about which to use, honestly, as long as it works!