Nearly EVERYTHING Invisible With Low Graphics Quality

Hi everyone!
I’ve been having an issue with my latest game, where whenever I have a low graphics quality, everything starts going invisible. I don’t want this to happen, I would like for people to be able to play and enjoy the game with low graphics quality, but I truly don’t know how to fix this. Any ideas?

Anything is appreciated, thanks!

Here’s a video of what’s happening

1 Like

Thats literally how it should be working. Low graphics level is supposed to make gameplay smoother by removing parts, shadows and other graphical effects. What you are trying to do is to force players with bad devices to play at highter graphics level, which, of course, won’t help them at all.

1 Like

…why is the video just the streamable website? you didnt post the link my dude

anyways yeah as @NeoBuilds said that is how it should be working, you can’t prevent it

oops, my bad, here’s the link:

Right, but it’s worse than any other game i’ve made, check the video.

woaahhh thats weird okay, looks more like a bug then a issue on your game

that’s what I thought, and i’ve already checked for hacky scripts and backdoor plugins, none of that
edit: nvm read your post wrong

also you are sure that nothing is being set to transparent right? i have no idea what could cause it other then that

100% sure. it’s also terrain which is super weird

The video is not working for me. But this could mean that your game is not optimised enough, but I’m now really sure that this is how it works.

It does not. I’ll check on another browser. Edit: still now working.

Does this link work for you (for the video)

I honestly don’t know how I can optimize it to fix this issue.

The only thing I could possibly think of as causing this is a script I used from a YouTube tutorial. It is an over the shoulder camera script, so it is manipulating the player’s camera. I don’t think this is the issue, but in case it is, here’s the script:

-- LOCALS --
local UIS = game:GetService("UserInputService")
local GuiService = game:GetService("GuiService")

-- Services
local uis = game:GetService("UserInputService")
local rs = game:GetService("RunService")
local context = game:GetService("ContextActionService")

-- Player & Character
local plr = game:GetService("Players").LocalPlayer

-- Other
local Camera = game:GetService("Workspace").CurrentCamera
local mouse = plr:GetMouse()
local cameraDB = false
local zoomDB = false

-- Values

local xAngle = 0
local yAngle = 0
local cameraPos = Vector3.new(2,0,8.5)


-- CAMERA SETTING --


-- FUNCTIONS --
if UIS.TouchEnabled and not UIS.KeyboardEnabled and not UIS.MouseEnabled
	and not UIS.GamepadEnabled and not GuiService:IsTenFootInterface() then
	

	-- mobile device
	rs.RenderStepped:Connect(function()
		local character = plr.Character or plr.CharacterAdded:Wait()
		Camera.CameraSubject = plr.Character:WaitForChild("Humanoid")
		Camera.CameraType = Enum.CameraType.Custom
		Camera.CFrame = plr.Character:WaitForChild("Head").CFrame
	end)
else
	wait(0.01)
	Camera.CameraType = Enum.CameraType.Scriptable
	
	context:BindAction("CameraMovement", function(_,_,input)
		xAngle = xAngle - input.Delta.x*0.4
		yAngle = math.clamp(yAngle - input.Delta.y*0.4,-80,80)
	end, false, Enum.UserInputType.MouseMovement)

	rs.RenderStepped:Connect(function()
		local c = plr.Character or plr.CharacterAdded:Wait()
		local rootPart = c:FindFirstChild("HumanoidRootPart")

		if c and rootPart then
			local startCFrame = CFrame.new((rootPart.CFrame.p + Vector3.new(0,2,0)))*CFrame.Angles(0, math.rad(xAngle), 0)*CFrame.Angles(math.rad(yAngle), 0, 0)

			local cameraCFrame = startCFrame + startCFrame:VectorToWorldSpace(Vector3.new(cameraPos.X,cameraPos.Y,cameraPos.Z))
			local cameraFocus = startCFrame + startCFrame:VectorToWorldSpace(Vector3.new(cameraPos.X,cameraPos.Y,-50000))

			Camera.CFrame = CFrame.new(cameraCFrame.p,cameraFocus.p)
		end
	end)
end


That’s most likely not the issue. You can always disable the script and see if everything works right, though. (I’m assuming that there is really something wrong as I can’t see the video)

are you on mac? that could be an issue with your graphics card or rendering on there

Oh thats a good point, i am. I’ll try on my desktop and let you know if that works

Well, unfortunately that wasn’t the solution. Guess I’ll keep digging

Well, it appears to have been the terrain in my game. Once I got rid of it, it was fine. Super weird, still not quite sure why, but that seems to have been the issue.

Roblox do that for more performance even if streaming enabled is not there. Terrain has many voxels which can not be rendered at certain distance but for big parts they can be rendered.

It just like rendering terrain after removal which in low graphics can be little slow

I incorrectly marked solution, the problem is still there even after the terrain is gone. I disabled all the scripts, removed the terrain, still didn’t fix it. Any ideas?

Its just normal at low graphics try to change it a little higher like 5. Also disable streamingenabled