So I want to make a thing where when people type something like this pops up:
And when they are done typing it goes away or if they stop typing for 5 seconds it goes away.
I read a bunch of post, but none helped me with this.
So I want to make a thing where when people type something like this pops up:
Well firstly make a local script
This does not help very much to just say make a local script.
And
local userInputService =game:GetService("UserInputService")
userInputService.InputBegan:Connect(function(input,gameProcessedEvent)
if not gameProcessedEvent then
-player is typing
end
en
Sorry it took me a little bit to do it
Please only make 1 reply instead of multiple and make sure it is complete before posting. If it isn’t complete, you can always go back and edit.
If the player is typing, simply make a tag on their head
K thanks, I’m new here so i will watch out for that
You wont need to do this yourself shortly, Roblox is updating the chat and this is a new feature:
I dont think this includes it to making a typing gui when they type.
A typing UI exists in that as shown in the second GIF, if you want one exactly as shown above you should be able to achieve it through tweening the size of the elements and making the visual images yourself for it.
In the second image they were zoomed out, not typing.
Apologies, you are correct.
In that case, you can either do it through the method above (this applies for any textboxes) or you could capture focus of any of the chat bar element in the Player UI itself aka:
TextBox = PlayerGui:WaitForChild("Chat"):WaitForChild("Frame"):WaitForChild("ChatBarParentFrame"):WaitForChild("Frame"):WaitForChild("BoxFrame"):WaitForChild("Frame"):WaitForChild("ChatBar")
TextBox.Focused:Connect(SendTyping)
And last thing for the animated dots, it’s easy, put three dot pics and do this
I forgot to say, in the local script make a value when the player starts typing (true) and with player.Chatted
(false)
And this is in the gui for the chat
local chatting = false
local a = —first one
local b = —second one
local c = — third one
while chatting == true do
a:TweenSize(—code)
wait(1)
a:TweenSize(—back to normal)
b:TweenSize(—code)
wait(1)
b:TweenSize(—back to normal)
c:TweenSize(—code)
wait(1)
c:TweenSize(—back to normal)
end
Thank you, this will help me a lot.
That’s easy to adjust in the billboard gui
Final result
local chatting = false
local a = —first one
local b = —second one
local c = — third one
local userInputService =game:GetService("UserInputService")
userInputService.InputBegan:Connect(function(input,gameProcessedEvent)
if not gameProcessedEvent then
chatting = true
end
end)
local Gui = —gui
local p = game.Players.LocalPlayer
p.Chatted:Connect(function()
chatting = false
Gui.Visible = false
end)
while chatting == true do
—make the gui visible
Gui.Visible = true
a:TweenSize(—code)
wait(1)
a:TweenSize(—back to normal)
b:TweenSize(—code)
wait(1)
b:TweenSize(—back to normal)
c:TweenSize(—code)
wait(1)
c:TweenSize(—back to normal)
end
Where would I put this, and for it to work will there need to be a specific gui name
So put this in a billboard gui (inserted in the player’s head) that represents the chat, and has the frame that is the local Gui
And inside of it, the three dots, set the max distance of the gui to a 30, i think that’s good and yeah, make them get bigger with the
TweenSize
And yeah, you should be good
I sent you a message with a problem of something that did not work, just because this thread is getting really long.