WinryChat | Open-Source Chat UI for TextChatService

29-01-25 Hotfix - WinryChat 1.3.1

We noticed during testing of Teensy Tiny Tankery and Outpost Gambit that the floodchecked message was absent by mistake. This has been added in while we’re looking into Controller Support. The controller support feature set is a necessary feature we need for our titles as well, so it is a top-priority task.

:raised_back_of_hand: :neutral_face: :raised_hand:

:fire: ABSOLUTE :fire: CINEMA. :fire:

Winry Chat - Update Log for Version 1.4

After the hotfix dropped, we got to work straight away on the newest version. There are a list of features we’re looking to include over time, as and when possible. This release focuses on Gamepad Support and an Integrated On-Screen-Keyboard for testing and devices that don’t have an on-screen keyboard.

We’re also deprecating the GetKeyCodeIdAsEnumValue(number) function, as we noticed there is a workaround with the Studio Command Bar to set Enum attributes to scripts. While we do intend to remove this function later, it will still be made available to developers who wish to use this function for the time-being.

This update matters on a personal level too. During my studies at university, I developed a plethora of custom tools for Unity Engine and Unreal Engine that allowed for better Controller/Gamepad support. Some of which are open-source to this day. By adding this support for gamepads, we hope to expand the accessibility of ROBLOX’s Chat System for platforms that otherwise may not be able to use it. Unfortunately, we can’t do this for PlatformChat or ROBLOX’s integrated features.


New Features


  • Gamepad Support for XBOX, PlayStation and Nintendo Switch accessories. We see you, console gamers!

  • WINRY VIRTUAL KEYBOARD - An Integrated On-Screen Keyboard for all platforms. This has primarily been designed for ROBLOX Studio, ROBLOX for Desktop (UWP) and ROBLOX for 64-bit Windows, however, it should work for all paltforms regardless. Instead of this just being an integrated UI, you will be able to copy this new On-Screen Keyboard independently of WinryChat and adapt it to your own works.

Official XBOX, PlayStation and Nintendo Switch Pro Controllers have been tested with this, and work as intended. If unexpected behaviour is encountered, please report the full accessory title and encountered behaviour.


New Settings (Attributes)


FocusChatKeyCode : Enum.KeyCode
Changes the keyboard button used for focusing chat. Default: Enum.KeyCode.Slash

GamepadFocusChatKeyCode : Enum.KeyCode
Changes the keyboard button used for focusing chat. Requires GamepadSupportEnabled to be true to have an effect. Default: Enum.KeyCode.DPadUp

ToggleChatVisibilityKeyCode : Enum.KeyCode
Changes the keyboard button used for showing and hiding chat. Default: Enum.KeyCode.DpadDown

GamepadToggleChatVisibilityKeyCode : Enum.KeyCode
Changes the keyboard button used for showing and hiding chat. Default: Enum.KeyCode.DpadUp

GamepadSupportEnabled : boolean
Whether Gamepad Support is enabled for the WinryChat UI. Includes built-in UI Focus Navigation support. Default: true


Changes


  • FocusChatKeyCodeId has been removed and replaced with FocusChatKeyCode, an attribute with the type Enum.KeyCode.
  • GetKeyCodeIdAsEnumValue(number) now marked as DEPRECATED.
  • The placeholder text for the Text Input Field now uses UserInputService:GetStringForKeyCode(Enum.KeyCode) instead of the “Name” property of an Enum.KeyCode value.
  • Placeholder text for the Text Input Field now automatically changes it’s wording depending on if the player is using a Gamepad or Keyboard and Mouse.

Closing Notes


This was a triumph. I’m making a note here, huge success. It’s hard to overstate my satisfaction…
Seriously. I stumbled upon GuiService looking for something else 7 hours ago now… wrote this update devlog as I was going along and now we’re at release at 4:10 AM GMT on 31/01/25. I spent the best part of 7 hours designing, debugging and polishing an on-screen keyboard for everyone to enjoy. And big note!

We’ll be Open-Sourcing Winry Virtual Keyboard soon after on it’s own for developers to use in their experiences, but it’s shipping with WinryChat 1.4 first. This virtual keyboard has Mouse support as well, but works independently of your keyboard. It also resizes based on your screen size!

All completely for free, and it will follow the same NO-ATTRIBUTION License as WinryChat does!

Winry Virtual Keyboard can be found alongside Winry Chat as “OnScreenKeyboard”.

Example Images - WinryVirtualKeyboard

image


Lastly. You will be able to have this designed entirely to your preferences too… Though neon pink is not recommended and is for demonstration purposes only.

image

Finally, console chat!! One feature I would suggest is “Chat templates” for console users (as typing out messages manually is very tedious…)

How it would work is that console players would type out their chat template message, then store it somewhere as a clickable button (maybe on the right side of the screen? It’s pretty empty), and when they click that button they’ll chat out the full premade message!

Maybe the premade messages should also be saved inside of a datastore, because manually retyping them everytime you join can be tedious too xd

1 Like

I ran into this too during testing, while trying to do the Still Alive song in portal as a test. The scope of WinryChat and WinryVirtualKeyboard are client-sided only, so I can’t exactly add data-store related features to the system.

However, if you and other console users have examples of frequent messages and phrases you’d like to be able to type out with a drop-down menu, I’d be more than happy to build them into WinryChat alongside any feature requests for WinryVirtualKeyboard.

Accessibility matters, and so does socialising with your friends!

Ahh, that’s right… client sided only…

Instead, I was thinking maybe you can instead add some kinda dropdown menu for commonly used words (word shortcuts), where if you type a letter into the chat box it’ll show commonly used words starting with that letter (or those letters), and if you click one it’ll add it to your chat box (This way it’s still quite fast without having to type out entire sentences you want to use)

Here are some common words I can think of that can be used in basically every game:

“Yes”
“No”
“What”
“Why”
“Don’t”
“Do”
“Where”
“For”
“Some”
“Reason”
“How”
“When”
“Ah”
“So”
“That”
“This”
“In”
“Out”
“Side”
“Game”
“Leave”
“Join”
“Friend”
etc…

Honestly this is very similar to how the PS4 virtual keyboard works and I use it alot and it’s very fast

1 Like

This will definitely be in for WinryChat 1.5.

WinryChat 1.4 was created in a very spur-of-the-moment atmosphere where I found a part of ROBLOX I never knew existed (GuiService) and ran for the hills with it, as far as I could go. I didn’t even know there wasn’t a console chat. I wanted to make it so that players with accessibility controllers (like the XBOX Adaptive Controller) on PC could socialise with everyone else.

This would be a great feature to enhance communication skills for everyone with a controller, so expect it to come out soon too.

1 Like