Get Ready for Updated Experience Controls

You could technically make your own emotes button if you wanted to.

Check if Emotes is open: GuiService:GetEmotesMenuOpen()
Open/close Emotes: GuiService:SetEmotesMenuOpen(bool)

You can already do this:

Check if Chat is open: StarterGui:GetCore("ChatActive")
Open/close Chat: StarterGui:SetCore("ChatActive", bool)

(EDIT: Didn’t realize you wanted to hide the default chat button but still be able to show the chat window. Unfortunately this isn’t possible unless you make your own chat system)

1 Like

Including a report menu button in the experience controls does not provide the user with an easier way of reporting, rather, it does the same thing, twice.
As I mentioned in my post above, it takes the same number of interactions for a user to access the report menu on both occasions.

Now reconciling sounds interesting, but it would certainly be better if the button were removed from the hamburger menu outright. The Leaderboard and Roblox Menus already provide enough reporting functionality to the user.

If I were to make a list of changes that should be done, it would be like this:

  • When all the CoreGui elements are disabled one by one or when done: StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.All, false), the hamburger menu should automatically be hidden. And only the Roblox button should remain. This provides the developer more UI space, and the TopbarSafeInsets API would not have to be used, even if the developer has disabled all of the CoreGui elements.
    (Creates backwards-compatibility with the UI of older experiences on the platform, makes new developers’ lives easier, and has many other benefits.)

  • In the future, we should have more control over how the hamburger menu should work, for example, the ability to add or remove buttons from the hamburger menu should be allowed, this would create higher consistency across the developer and the Roblox created systems. (TextChatService is a great example of how to do it.)

Even if the above requests cannot be done, we would still appreciate proper answers to why, rather than simply giving a response like this:

4 Likes

Thanks so much for at least addressing the feedback here rather than being completely silent, as has been the case in previous update threads on this feature. We appreciate it.

3 Likes

We obviously can’t respond to everything, but we’re still reading every post and discussing things internally. Whether positive or negative, all feedback is absolutely appreciated!

7 Likes

Wrong!

If you delete PlayerScripts within a script located in ReplicatedFirst it removes the entire menu!

I already know this. What I’m talking about is a custom chat system that I wrote from the ground up. I would like to be able to insert the chat icon for my chat system into the flyout.

You unfortunately can’t add custom buttons to the menu, but you could technically hijack Roblox’s built-in chat button to toggle your custom chat system instead of the default one, which is what I was explaining

Ok, how do you do that? I asked this question earlier but no response on it.

is that the new ui, not fully rounding corners is nice! or if its not nice design

Definitely agree with this. Especially with the new audio features, I think the ability for voice chat bubbles to exist in the UI and be disabled in the game world would be great for certain experiences. It wouldn’t really make sense for a player to be speaking and have a speaker over that player’s head if the sound isn’t coming from that player.

By disabling the default chat window and checking ChatActive

Sadly there’s no event to listen to here, so you’d probably have to run a constant loop on StarterGui:GetCore("ChatActive") to check if the chat is toggled or not.

ChatActive determines if the chat button is in the active state. It does not determine if the entire chat has been disabled with SetCoreGuiEnabled.

1 Like

while playing with the revised new experience controls, i noticed the health bar has now been relocated back to the right and has been made taller

1 Like

Could Self View’s camera button be made more prominent? It’s almost impossible to see with some avatars.

It wasn’t like this before. I don’t know why Roblox made it harder to see, unless this is a bug.

7 Likes

proof:

Screenshot 2024-09-19 at 6.21.37 PM

4 Likes

I don’t see what the point of doing this is. If the default chat is active, it’s going to be visible. I want the default chat to be invisible or disabled so mine can take over.

The chat button can still be “active” without the default chat window itself being visible, like I just demonstrated. Isn’t that what you wanted?

To hide the chat window without completely removing the chat button…

Make sure you aren’t calling StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.Chat, false) otherwise that would remove the chat button as well.

2 Likes

What they really need to add is a way to figure out if that chatbox is visible or not, I’m having to make this ghetto code to figure out something that should have already been added.

	Player:SetAttribute("chatBoxHidden2", true)
	Player:SetAttribute("chatBoxHiddenConfirmed", true)
	Player:SetAttribute("lastFocus", tick())

	game:GetService("TextChatService"):FindFirstChild("ChatInputBarConfiguration"):GetPropertyChangedSignal("IsFocused"):Connect(function()
		local ChatInputBarConfiguration = game:GetService("TextChatService"):FindFirstChild("ChatInputBarConfiguration")

		if ChatInputBarConfiguration.IsFocused == false then
			local start = tick()
			Player:SetAttribute("lastFocus", start)
			Player:SetAttribute("chatBoxHidden2", false)
			Player:SetAttribute("chatBoxHiddenConfirmed", false)

			repeat
				task.wait()
			until tick() - start > 4 or Player:GetAttribute("lastFocus") ~= start or ChatInputBarConfiguration.IsFocused

			if Player:GetAttribute("lastFocus") ~= start then
				Player:SetAttribute("chatBoxHiddenConfirmed", false)
				return
			elseif ChatInputBarConfiguration.IsFocused then
				Player:SetAttribute("chatBoxHiddenConfirmed", false)
				return
			elseif tick() - start > 4 then
				Player:SetAttribute("chatBoxHidden2", true)
				Player:SetAttribute("chatBoxHiddenConfirmed", true)
			end
		else
			Player:SetAttribute("chatBoxHidden2", false)
			Player:SetAttribute("chatBoxHiddenConfirmed", false)
		end
	end)


	local lastChatActive = StarterGui:GetCore("ChatActive")
	local chatActivatedAt = nil
	local check = nil

	RunService.RenderStepped:Connect(function()
		local chatActiveNow = StarterGui:GetCore("ChatActive")

		if chatActiveNow == true and lastChatActive == false then
			Player:SetAttribute("chatBoxHiddenConfirmed", false)
			chatActivatedAt = tick()
		elseif chatActiveNow == false and lastChatActive == true then
			Player:SetAttribute("chatBoxHiddenConfirmed", true)
		end

		if chatActivatedAt and tick() - chatActivatedAt > 4 then
			local lastFocus = Player:GetAttribute("lastFocus")
			local timeSinceLastFocus = tick() - lastFocus
			local ChatInputBarConfiguration = game:GetService("TextChatService"):FindFirstChild("ChatInputBarConfiguration")

			if timeSinceLastFocus > 4 and not ChatInputBarConfiguration.IsFocused then
				StarterGui:SetCore("ChatActive", false)
				Player:SetAttribute("chatBoxHiddenConfirmed", true)
				chatActivatedAt = nil
				check = nil
			else
				check = tick()
			end
		end

		lastChatActive = chatActiveNow
	end)

yeah, but why did you have to change the inset size? why not keep it 36 pixels? worked for the entire existence of roblox, why change it now? phone screen DPIs arent so high, so its a useless change. and i am still not a fan of circular buttons. just keep the original corner radius

A full redesign of that window is on the way shortly :wink:

3 Likes

I do not care if the height helps mobile players if my game is desktop only…

2 Likes