local HttpService = game:GetService("HttpService") local TextChatService = game:GetService("TextChatService") local CoreGui = game:GetService("CoreGui") --[[ this method contains my hooking chat box method, basically contains chat blocking! hard to explain in simple terms. if you want the box hook method yourself then it will be on my github https://github.com/jodta/my-scripts/blob/main/Coding%20help/Textchatservice/Hooking%20ChatBox%20Tutorial.lua hooks chat and blocks any message you send the message that gets sent gets translated and sent through chat SendAsync I think I did okay making this, needs optimization if its going to be a whole script. Just made it for someone since they requested it --]] local skip = { -- without this then the translation will look shitty like it outputs sorta like this "what a glorious serviceman partake evening" -- inconsistant so we must ignore these keywords "a","an","the","is","it","in","on","at","to","of","or","and","but", "for","i","me","my","we","us","you","he","she","him","her","his", "they","them","was","are","be","do","did","has","had","not","no", "as","by","if","that","this","with","from","what","when","your", "their","than","then","who","how","where" } for i, v in ipairs(skip) do skip[v] = true skip[i] = nil end local fancy = { -- fancy english interpitation - did bad job sorry {"good","splendid"},{"bad","dreadful"},{"big","grandiose"},{"small","diminutive"}, {"happy","elated"},{"sad","melancholic"},{"said","proclaimed"},{"say","proclaim"}, {"think","contemplate"},{"want","desire"},{"need","require"},{"get","acquire"}, {"got","obtained"},{"use","utilise"},{"very","tremendously"},{"really","exceedingly"}, {"nice","exquisite"},{"cool","remarkable"},{"awesome","magnificent"},{"weird","peculiar"}, {"old","antiquated"},{"new","contemporary"},{"fast","expeditious"},{"slow","lethargic"}, {"smart","astute"},{"dumb","obtuse"},{"angry","indignant"},{"scared","apprehensive"}, {"sure","certainly"},{"maybe","perhaps"},{"also","furthermore"},{"know","discern"}, {"look","observe"},{"see","perceive"},{"try","endeavour"},{"start","commence"}, {"end","conclude"},{"make","fabricate"},{"tell","inform"},{"show","demonstrate"}, {"help","assist"},{"thing","matter"},{"things","matters"},{"people","individuals"}, {"money","capital"},{"house","residence"},{"talk","converse"},{"walk","promenade"}, {"buy","procure"},{"give","bestow"},{"take","acquire"},{"keep","retain"}, {"go","proceed"},{"went","proceeded"},{"eat","consume"},{"drink","imbibe"} } for i, v in ipairs(fancy) do fancy[v[1]] = v[2] fancy[i] = nil end local function transform(word) local punct = word:match("[%p]+$") or "" local clean = word:gsub("[%p]+$", "") local lower = clean:lower() if clean == "" or skip[lower] then return word end local result = fancy[lower] if not result then local res = request({ Url = "https://api.datamuse.com/words?rel_syn=" .. HttpService:UrlEncode(lower) .. "&max=20", Method = "GET" }) local data = HttpService:JSONDecode(res.Body) local longest = clean for _, e in ipairs(data) do if not e.word:find(" ") and #e.word > #longest then longest = e.word end end result = longest end if clean:sub(1,1):match("%u") then result = result:sub(1,1):upper() .. result:sub(2) end return result .. punct end local textBox = CoreGui:WaitForChild("ExperienceChat").appLayout.chatInputBar.Background.Container.TextContainer.TextBoxContainer.TextBox for _, conn in pairs(getconnections(textBox.FocusLost)) do conn:Disable() end textBox.FocusLost:Connect(function(enterPressed) if not enterPressed or textBox.Text == "" then return end local original = textBox.Text textBox.Text = "" textBox:ReleaseFocus() task.spawn(function() local out = {} for word in original:gmatch("%S+") do table.insert(out, transform(word)) end TextChatService.TextChannels.RBXGeneral:SendAsync(table.concat(out, " ")) end) end)