VRBottomBarDisabler - Disable/Enable VR Bottom Bar easily

Hello, devs. Sorry if I made any mistakes in my sentences. English is not my primary language

I recently started developing a VR game, and I found the Bottom Bar to be quite annoying for certain types of game. Since there’s no official way to disable it, I came up with a simple workaround.

What I do is teleport the bar 20 studs upward every frame, effectively moving it out of the player’s view. It’s a very easy trick to implement, yet I haven’t seen anyone mention it before.

So I decided to share it here — just to let other VR developers know that yes, it is possible to hide or show the Bottom Bar.

Some topics that inspired me to make this :
https://devforum.roblox.com/t/how-do-i-remove-the-vr-bottom-bar/
https://devforum.roblox.com/t/how-to-remove-the-ui-vr-bottom-bar-from-roblox-gameclient

Here is a video showing the result:

Files :

File of the button shown in the video :
ToggleVrBarButton.rbxm (5.8 KB)

And here’s a module version of this :

local VrBarToggler = {}

local Toggled
local Offset = 20
local VRBar
local RenderConnection

repeat wait() until game.Loaded

local function IsVr()
	return workspace.Camera:FindFirstChild("VRCorePanelParts") ~= nil
end

local function StartUpdating()
	if not RenderConnection and VRBar then
		RenderConnection = game:GetService("RunService").RenderStepped:Connect(function()
			VRBar.Position += Vector3.new(0, Offset, 0)
		end)
	end
end

function VrBarToggler:ShowVrBar()
	Offset = 0
	Toggled = true
end

function VrBarToggler:HideVrBar()
	Offset = 20
	Toggled = false
end

--[[
Visible : If true, the VR Bar will be visible by default
          If false, the VR Bar will be hidden by default
]]
function VrBarToggler:Init(Visible: boolean)
	if not IsVr() then
		return
	end

	local vrParts = workspace.Camera:WaitForChild("VRCorePanelParts", 5)
	if not vrParts then
		warn("VRCorePanelParts not found.")
		return
	end

	VRBar = vrParts:WaitForChild("BottomBar_Part", 5)
	if not VRBar then
		warn("BottomBar_Part not found.")
		return
	end
	
	if Visible then
		VrBarToggler:ShowVrBar()
	else
		VrBarToggler:HideVrBar()
	end

	StartUpdating()
end

return VrBarToggler

Exemple script using the module :

local VRBarToggler = require(game.ReplicatedStorage:WaitForChild("VRBarToggler"))

VRBarToggler:Init(true)

task.wait(5)

VRBarToggler:HideVrBar()

task.wait(2)

VRBarToggler:ShowVrBar()

3 Likes