Recreating the Old Roblox Safe Chat System (Quick Chat) – Feedback Needed!

MY OLD ROBLOX SAFE CHAT SYSTEM IT’S FINALLY OPEN SOURCED!

I have finally decided to open source this. If you would like to check it, click here.


Hello Developers!

Recently, I’ve been working on a recreation of the old Roblox Safe Chat system, also known as Quick Chat. I’ve started making this beacuse i couldn’t find any other model, and i really liked the old chat feature. I also might use this in future projects.

Features Implemented So Far:

  • Classic Safe Chat UI with category-based message selection
  • Predefined chat messages for quick communication
  • A clean and simple interface for easy navigation (like the original one)

Planned Features:

  • More categories for different chat topics (Questions, Emotes, Team Chat, etc.)
  • UI improvements for better accessibility and responsiveness (maybe, right now i’ve made it old looking)

Feedback & Suggestions Needed!

I’d love to hear what you think about this project! Here are some questions to consider:

  • What features would you like to see added?
  • How can I make the UI and overall user experience?
  • Do you remember any specific messages or categories from the original Safe Chat that I should include?
  • Would you find this useful for specific game types (roleplaying, educational, etc.)?

Any feedback, suggestions, or even resources related to the original Safe Chat system would be greatly appreciated. Thanks for checking this out, and I look forward to hearing your thoughts!

MEDIA SHOWCASING IT:


Do you like this recreation?
  • Yes
  • No
0 voters
10 Likes

that’s nice, are the chat messages real and actually being sent by the player? well obviously notby the actual player but like is it actually sent through chat as an aactual chat message

4 Likes

It is being sent by the player in chat. Theres a TextChatService feature to make a player say something and display for everyone.

In case you’re curious, you can do

-- On a LocalScript

local channel = game:GetService("TextChatService"):WaitForChild("TextChannels"):WaitForChild("RBXGeneral")

channel:SendAsync("Hello World!")

3 Likes

so it’s that easy to terminate someone on Roblox, well that is interesting.

2 Likes

I don’t think it puts the player on danger. I think its just a display.

4 Likes

Does this use the old roblox safechat messages? I have a list if you need them! (of all the old safechat messages)

1 Like

This is cool, you should add answers

1 Like

Teh Epik Duck is WHATing?

Straight from MY

house?

2 Likes

It dosn’t use them all, only included a few since i didn’t have the list, but u can share them in the post where it’s open sourced if u want since it might help others!

This is directly copied from a old 2011 roblox corescript that I managed to Archive

SafeChat_List = {
								['Use the Chat menu to talk to me.'] = {'/sc 0', true},
								['I can only see menu chats.'] = {'/sc 1', true},
								['Hello'] = {	
												['Hi'] = {'/sc 2_0', true, ['Hi there!'] = true, ['Hi everyone'] = true}, 
												['Howdy'] = {'/sc 2_1', true, ['Howdy partner!'] = true},
												['Greetings'] = {'/sc 2_2', true, ['Greetings everyone'] = true, ['Greetings Robloxians!'] = true, ['Seasons greetings!'] = true},
												['Welcome'] = {'/sc 2_3', true, ['Welcome to my place'] = true, ['Welcome to my barbeque'] = true, ['Welcome to our base'] = true},
												['Hey there!'] = {'/sc 2_4', true},
												['What\'s up?'] = {'/sc 2_5', true, ['How are you doing?'] = true, ['How\'s it going?'] = true, ['What\'s new?'] = true},
												['Good day'] = {'/sc 2_6', true, ['Good morning'] = true, ['Good evening'] = true, ['Good afternoon'] = true, ['Good night'] = true},
												['Silly'] = {'/sc 2_7', true, ['Waaaaaaaz up?!'] = true, ['Hullo!'] = true, ['Behold greatness, mortals!'] = true, ['Pardon me, is this Sparta?'] = true, ['THIS IS SPARTAAAA!'] = true},
												['Happy Holidays!'] = {'/sc 2_8', true, ['Happy New Year!'] = true, 
																	      ['Happy Valentine\'s Day!'] = true, 
																	      ['Beware the Ides of March!'] = true, 
																	      ['Happy St. Patrick\'s Day!'] = true, 
																	      ['Happy Easter!'] = true, 
																	      ['Happy Earth Day!'] = true, 
																	      ['Happy 4th of July!'] = true, 
																	      ['Happy Thanksgiving!'] = true, 
																	      ['Happy Halloween!'] = true, 
																	      ['Happy Hanukkah!'] = true, 
																	      ['Merry Christmas!'] = true, 
																	      ['Happy Halloween!'] = true, 
																	      ['Happy Earth Day!'] = true, 
																	      ['Happy May Day!'] = true, 
																	      ['Happy Towel Day!'] = true, 
																	      ['Happy ROBLOX Day!'] = true, 
																	      ['Happy LOL Day!'] = true },

												[1] = '/sc 2'
											},
								['Goodbye'] = {
												['Good Night']= {'/sc 3_0', true, 
																  ['Sweet dreams'] = true, 
															      ['Go to sleep!'] = true, 
															      ['Lights out!'] = true, 
															      ['Bedtime'] = true, 
															      ['Going to bed now'] = true},

												['Later']= {'/sc 3_1', true,
												 			  ['See ya later'] = true, 
														      ['Later gator!'] = true, 
														      ['See you tomorrow'] = true},

												['Bye'] = {'/sc 3_2', true, ['Hasta la bye bye!'] = true},
												['I\'ll be right back'] = {'/sc 3_3', true},
												['I have to go'] = {'/sc 3_4', true},
												['Farewell'] = {'/sc 3_5', true, ['Take care'] = true, ['Have a nice day'] = true, ['Goodluck!'] = true, ['Ta-ta for now!'] = true},
												['Peace'] = {'/sc 3_6', true, ['Peace out!'] = true, ['Peace dudes!'] = true, ['Rest in pieces!'] = true},
												['Silly'] = {'/sc 3_7', true, 
												  ['To the batcave!'] = true, 
											      ['Over and out!'] = true, 
											      ['Happy trails!'] = true, 
											      ['I\'ve got to book it!'] = true, 
											      ['Tootles!'] = true, 
											      ['Smell you later!'] = true, 
											      ['GG!'] = true, 
											      ['My house is on fire! gtg.'] = true},
												[1] = '/sc 3'
											},
								['Friend'] ={
												['Wanna be friends?'] = {'/sc 4_0', true},
												['Follow me'] = {'/sc 4_1', true,  ['Come to my place!'] = true, ['Come to my base!'] = true, ['Follow me, team!'] = true, ['Follow me'] = true},
												['Your place is cool'] = {'/sc 4_2', true,  ['Your place is fun'] = true, ['Your place is awesome'] = true, ['Your place looks good'] = true, ['This place is awesome!'] = true},
												['Thank you'] = {'/sc 4_3', true,  ['Thanks for playing'] = true, ['Thanks for visiting'] = true, ['Thanks for everything'] = true, ['No, thank you'] = true, ['Thanx'] = true},
												['No problem'] = {'/sc 4_4', true,  ['Don\'t worry'] = true, ['That\'s ok'] = true, ['np'] = true},
												['You are ...'] = {'/sc 4_5', true,  
																	['You are great!'] = true, 
																      ['You are good!'] = true, 
																      ['You are cool!'] = true, 
																      ['You are funny!'] = true, 
																      ['You are silly!'] = true, 
																      ['You are awesome!'] = true, 
																      ['You are doing something I don\'t like, please stop'] = true
																   },
												['I like ...'] = {'/sc 4_6', true, ['I like your name'] = true, ['I like your shirt'] = true, ['I like your place'] = true, ['I like your style'] = true, 
      																['I like you'] = true, ['I like items'] = true, ['I like money'] = true},
												['Sorry'] = {'/sc 4_7', true, ['My bad!'] = true, ['I\'m sorry'] = true, ['Whoops!'] = true, ['Please forgive me.'] = true, ['I forgive you.'] = true, 
      														['I didn\'t mean to do that.'] = true, ['Sorry, I\'ll stop now.'] = true},
												[1] = '/sc 4'
											},
								['Questions'] = {
													['Who?'] = {'/sc 5_0', true,  ['Who wants to be my friend?'] = true, ['Who wants to be on my team?'] = true, ['Who made this brilliant game?'] = true},
													['What?'] = {'/sc 5_1', true,  ['What is your favorite animal?'] = true, ['What is your favorite game?'] = true, ['What is your favorite movie?'] = true, 
															      ['What is your favorite TV show?'] = true, ['What is your favorite music?'] = true, ['What are your hobbies?'] = true, ['LOLWUT?'] = true},
													['When?'] = {'/sc 5_2', true, ['When are you online?'] = true, ['When is the new version coming out?'] = true, ['When can we play again?'] = true, ['When will your place be done?'] = true},
													['Where?'] = {'/sc 5_3', true, ['Where do you want to go?'] = true, ['Where are you going?'] = true, ['Where am I?!'] = true, ['Where did you go?'] = true},
													['How?'] = {'/sc 5_4', true, ['How are you today?'] = true, ['How did you make this cool place?'] = true, ['LOLHOW?'] = true},
													['Can I...'] = {'/sc 5_5', true, ['Can I have a tour?'] = true, ['Can I be on your team?'] = true, ['Can I be your friend?'] = true, ['Can I try something?'] = true, 
																	['Can I have that please?'] = true, ['Can I have that back please?'] = true, ['Can I have borrow your hat?'] = true, ['Can I have borrow your gear?'] = true},
													[1] = '/sc 5'
												},
								['Answers'] = {
												['You need help?'] = {'/sc 6_0', true, ['Check out the news section'] = true, ['Check out the help section'] = true, ['Read the wiki!'] = true, 
																		['All the answers are in the wiki!'] = true, ['I will help you with this.'] = true},
												['Some people ...'] = {'/sc 6_1', true, ['Me'] = true, ['Not me'] = true, ['You'] = true, ['All of us'] = true, ['Everyone but you'] = true, ['Builderman!'] = true, 
      																	['Telamon!'] = true, ['My team'] = true, ['My group'] = true, ['Mom'] = true, ['Dad'] = true, ['Sister'] = true, ['Brother'] = true, ['Cousin'] = true, 
      																	['Grandparent'] = true, ['Friend'] = true},
												['Time ...'] = {'/sc 6_2', true,  ['In the morning'] = true, ['In the afternoon'] = true, ['At night'] = true, ['Tomorrow'] = true, ['This week'] = true, ['This month'] = true, 
      															['Sometime'] = true, ['Sometimes'] = true, ['Whenever you want'] = true, ['Never'] = true, ['After this'] = true, ['In 10 minutes'] = true, ['In a couple hours'] = true, 
      															['In a couple days'] = true},
												['Animals'] = {'/sc 6_3', true, 
																['Cats'] = {['Lion'] = true, ['Tiger'] = true, ['Leopard'] = true, ['Cheetah'] = true},
																['Dogs'] = {['Wolves'] = true, ['Beagle'] = true, ['Collie'] = true, ['Dalmatian'] = true, ['Poodle'] = true, ['Spaniel'] = true, 
        																		['Shepherd'] = true, ['Terrier'] = true, ['Retriever'] = true},
        														['Horses'] = {['Ponies'] = true, ['Stallions'] = true, ['Pwnyz'] = true},
        														['Reptiles'] = {['Dinosaurs'] = true, ['Lizards'] = true, ['Snakes'] = true, ['Turtles!'] = true},
        														['Hamster'] = true, 
      															['Monkey'] = true, 
      															['Bears'] = true,
      															['Fish'] = {['Goldfish'] = true, ['Sharks'] = true, ['Sea Bass'] = true, ['Halibut'] = true, ['Tropical Fish'] = true},
      															['Birds'] = {['Eagles'] = true, ['Penguins'] = true, ['Parakeets'] = true, ['Owls'] = true, ['Hawks'] = true, ['Pidgeons'] = true},
      															['Elephants'] = true, 
      															['Mythical Beasts'] = {['Dragons'] = true, ['Unicorns'] = true, ['Sea Serpents'] = true, ['Sphinx'] = true, ['Cyclops'] = true, 
        																				['Minotaurs'] = true, ['Goblins'] = true, ['Honest Politicians'] = true, ['Ghosts'] = true, ['Scylla and Charybdis'] = true}
															},
												['Games'] = {'/sc 6_4', true,
																['Action'] = true, ['Puzzle'] = true, ['Strategy'] = true, ['Racing'] = true, ['RPG'] = true, ['Obstacle Course'] = true, ['Tycoon'] = true, 
																['Roblox'] = { ['BrickBattle'] = true, ['Community Building'] = true, ['Roblox Minigames'] = true, ['Contest Place'] = true},
																['Board games'] = { ['Chess'] = true, ['Checkers'] = true, ['Settlers of Catan'] = true, ['Tigris and Euphrates'] = true, ['El Grande'] = true, 
        																			['Stratego'] = true, ['Carcassonne'] = true}
															},
												['Sports'] = {'/sc 6_5', true, ['Hockey'] = true, ['Soccer'] = true, ['Football'] = true, ['Baseball'] = true, ['Basketball'] = true, 
																 ['Volleyball'] = true, ['Tennis'] = true, ['Sports team practice'] = true,
																 ['Watersports'] = { ['Surfing'] = true,['Swimming'] = true, ['Water Polo'] = true},
																 ['Winter sports'] = { ['Skiing'] = true, ['Snowboarding'] = true, ['Sledding'] = true, ['Skating'] = true},
																 ['Adventure'] = {['Rock climbing'] = true, ['Hiking'] = true, ['Fishing'] = true, ['Horseback riding'] = true},
																 ['Wacky'] = {['Foosball'] = true, ['Calvinball'] = true, ['Croquet'] = true, ['Cricket'] = true, ['Dodgeball'] = true, 
        																		['Squash'] = true, 	['Trampoline'] = true}
															 },
												['Movies/TV'] = {'/sc 6_6', true, ['Science Fiction'] = true, ['Animated'] = {['Anime'] = true}, ['Comedy'] = true, ['Romantic'] = true, 
      																['Action'] = true, ['Fantasy'] = true},
												['Music'] = {'/sc 6_7', true, ['Country'] = true, ['Jazz'] = true, ['Rap'] = true, ['Hip-hop'] = true, ['Techno'] = true, ['Classical'] = true, 
      														['Pop'] = true, ['Rock'] = true},
												['Hobbies'] = {'/sc 6_8', true,
																['Computers'] = { ['Building computers'] = true, ['Videogames'] = true, ['Coding'] = true, ['Hacking'] = true},
																['The Internet'] = { ['lol. teh internets!'] = true, ['Watching vids'] = true},
																 ['Dance'] = true, ['Gymnastics'] = true, ['Listening to music'] = true, ['Arts and crafts'] = true,
																 ['Martial Arts'] = {['Karate'] = true, ['Judo'] = true, ['Taikwon Do'] = true, ['Wushu'] = true, ['Street fighting'] = true},
																 ['Music lessons'] = {['Playing in my band'] = true, ['Playing piano'] = true, ['Playing guitar'] = true, 
        																				['Playing violin'] = true, ['Playing drums'] = true, ['Playing a weird instrument'] = true}
																},
												['Location'] = {'/sc 6_9', true,
																	['USA'] = {
																					['West'] = { ['Alaska'] = true, ['Arizona'] = true, ['California'] = true, ['Colorado'] = true, ['Hawaii'] = true, 
          																						['Idaho'] = true, ['Montana'] = true, ['Nevada'] = true, ['New Mexico'] = true, ['Oregon'] = true, 
          																						['Utah'] = true, ['Washington'] = true, ['Wyoming'] = true
          																						},
          																			['South'] = { ['Alabama'] = true, ['Arkansas'] = true, ['Florida'] = true, ['Georgia'] = true, ['Kentucky'] = true, 
          																							['Louisiana'] = true, ['Mississippi'] = true, ['North Carolina'] = true, ['Oklahoma'] = true, 
          																							['South Carolina'] = true, ['Tennessee'] = true, ['Texas'] = true, ['Virginia'] = true, ['West Virginia'] = true
          																						},
          																			['Northeast'] = {['Connecticut'] = true, ['Delaware'] = true, ['Maine'] = true, ['Maryland'] = true, ['Massachusetts'] = true, 
          																							['New Hampshire'] = true, ['New Jersey'] = true, ['New York'] = true,  ['Pennsylvania'] = true, ['Rhode Island'] = true, 
          																							['Vermont'] = true
          																						},
          																			['Midwest'] = {['Illinois'] = true, ['Indiana'] = true, ['Iowa'] = true, ['Kansas'] = true, ['Michigan'] = true, ['Minnesota'] = true, 
          																							['Missouri'] = true, ['Nebraska'] = true, ['North Dakota'] = true, ['Ohio'] = true, ['South Dakota'] = true,  ['Wisconsin'] = true}
																				},
																	['Canada'] = {['Alberta'] = true, ['British Columbia'] = true, ['Manitoba'] = true, ['New Brunswick'] = true, ['Newfoundland'] = true, 
        																			['Northwest Territories'] = true, ['Nova Scotia'] = true, ['Nunavut'] = true, ['Ontario'] = true, ['Prince Edward Island'] = true, 
        																			['Quebec'] = true, ['Saskatchewan'] = true, ['Yukon'] = true},
        															['Mexico'] = true,
        															['Central America'] = true,
        															['Europe'] = {['France'] = true, ['Germany'] = true, ['Spain'] = true, ['Italy'] = true, ['Poland'] = true, ['Switzerland'] = true, 
        																			['Greece'] = true, ['Romania'] = true, ['Netherlands'] = true,
        																			['Great Britain'] = {['England'] = true, ['Scotland'] = true, ['Wales'] = true, ['Northern Ireland'] = true}
        																		},
        															['Asia'] = { ['China'] = true, ['India'] = true, ['Japan'] = true, ['Korea'] = true, ['Russia'] = true, ['Vietnam'] = true},
        															['South America'] = { ['Argentina'] = true, ['Brazil'] = true},
        															['Africa'] = { ['Eygpt'] = true, ['Swaziland'] = true},
        															['Australia'] = true, ['Middle East'] = true, ['Antarctica'] = true, ['New Zealand'] = true
																},
												['Age'] = {'/sc 6_10', true, ['Rugrat'] = true, ['Kid'] = true, ['Tween'] = true, ['Teen'] = true, ['Twenties'] = true, 
      														['Old'] = true, ['Ancient'] = true, ['Mesozoic'] = true, ['I don\'t want to say my age. Don\'t ask.'] = true},
												['Mood'] = {'/sc 6_11', true,  ['Good'] = true, ['Great!'] = true, ['Not bad'] = true, ['Sad'] = true, ['Hyper'] = true, 
      														['Chill'] = true, ['Happy'] = true, ['Kind of mad'] = true},
												['Boy'] = {'/sc 6_12', true},
												['Girl'] = {'/sc 6_13', true},
												['I don\'t want to say boy or girl. Don\'t ask.'] = {'/sc 6_14', true},
												[1] = '/sc 6'
											}, 
								['Game'] = {
												['Let\'s build'] = {'/sc 7_0', true},
												['Let\'s battle'] = {'/sc 7_1', true},
												['Nice one!'] = {'/sc 7_2', true},
												['So far so good'] = {'/sc 7_3', true},
												['Lucky shot!'] = {'/sc 7_4', true},
												['Oh man!'] = {'/sc 7_5', true},
												['I challenge you to a fight!'] = {'/sc 7_6', true},
												['Help me with this'] = {'/sc 7_7', true},
												['Let\'s go to your game'] = {'/sc 7_8', true},
												['Can you show me how do to that?'] = {'/sc 7_9', true},
												['Backflip!'] = {'/sc 7_10', true},
												['Frontflip!'] = {'/sc 7_11', true},							
												['Dance!'] = {'/sc 7_12', true},
												['I\'m on your side!'] = {'/sc 7_13', true},
												['Game Commands'] = {'/sc 7_14', true, ['regen'] = true, ['reset'] = true, ['go'] = true, ['fix'] = true, ['respawn'] = true},
												[1] = '/sc 7'
											};
								['Silly'] = {
												['Muahahahaha!'] = true,
												['all your base are belong to me!'] = true,
												['GET OFF MAH LAWN'] = true,
												['TEH EPIK DUCK IS COMING!!!'] = true,
												['ROFL'] = true,
												['1337'] = {true, ['i r teh pwnz0r!'] = true, ['w00t!'] = true, ['z0mg h4x!'] = true, ['ub3rR0xXorzage!'] = true}
											},
								['Yes'] = {
											['Absolutely!'] = true,
											['Rock on!'] = true,
											['Totally!'] = true,
											['Juice!'] = true,
											['Yay!'] = true,
											['Yesh'] = true
										},
								['No'] = {
											['Ummm. No.'] = true,
											['...'] = true,
											['Stop!'] = true,
											['Go away!'] = true,
											['Don\'t do that'] = true,
											['Stop breaking the rules'] = true,
											['I don\'t want to'] = true
										},
								['Ok'] = {
											['Well... ok'] = true,
											['Sure'] = true
										},
								['Uncertain'] = {
													['Maybe'] = true,
													['I don\'t know'] = true,
													['idk'] = true,
													['I can\'t decide'] = true,
													['Hmm...'] = true
												},
								[':-)'] = {
											[':-('] = true, 
										    [':D'] = true, 
										    [':-O'] = true, 
										    ['lol'] = true, 
										    ['=D'] = true, 
										    ['D='] = true, 
										    ['XD'] = true, 
										    [';D'] = true, 
										    [';)'] = true, 
										    ['O_O'] = true, 
										    ['=)'] = true, 
										    ['@_@'] = true, 
										    ['>_<'] = true, 
										    ['T_T'] = true, 
										    ['^_^'] = true,
											['<(0_0<) <(0_0)> (>0_0)> KIRBY DANCE'] = true,
											[')\';'] = true, 
											[':3'] = true
										},
								['Ratings'] = {
												['Rate it!'] = true,
												['I give it a 1 out of 10'] = true,
												['I give it a 2 out of 10'] = true,
												['I give it a 3 out of 10'] = true,
												['I give it a 4 out of 10'] = true,
												['I give it a 5 out of 10'] = true,
												['I give it a 6 out of 10'] = true,
												['I give it a 7 out of 10'] = true,
												['I give it a 8 out of 10'] = true,
												['I give it a 9 out of 10'] = true,
												['I give it a 10 out of 10!'] = true,
											}
							},			
			CreateEnum('SafeChat'){'Level1', 'Level2', 'Level3'},
			SafeChatTree = {}
		}

Also I have messaged you directly for some questions

This is gonna be very useful next year when Roblox makes it so you need to be age verified so you can chat.

2 Likes

But wait, because It’s being sent to regular chat and when Roblox disables chat, we won’t be able to see the messages because the chat will be invisible.

do you know what the /sc num_num means and the true boolean

It would indeed be, but they probably won’t add safe-chat back, sadly.

I think they meant that the same APIs that you used could be abused by a malicious dev

I do believe that doing /sc num_num would bring you to that specific message / send that specific message; I may be mistaken though

We can add it in our own games

It’s a TextChatService method (roblox method), so i dont think Roblox would make it malicious. It does display to everyone, but pretty sure it can’t risk someone’s account

how do you get the player’s messages to also show up in the chat window? just curious in case i need to do that sometime

rofl/10

it was purely client and something from textchatservice, which i dont remember. u can get the model here as i made it open-sourced.

1 Like