local RunService = game:GetService("RunService")
local TextChatService = game:GetService("TextChatService")
--[[
GXL || MADE BY BALLSMAN3761!!
Converted 70 instances in 0.02 seconds
]]
local GXL = {
["ExperienceChat"] = Instance.new("ScreenGui"),
["CaretPadding"] = Instance.new("UIPadding"),
["Layout"] = Instance.new("UIListLayout"),
["CaretPadding_2"] = Instance.new("UIPadding"),
["Layout_2"] = Instance.new("UIListLayout"),
["CaretPadding_3"] = Instance.new("UIPadding"),
["Layout_3"] = Instance.new("UIListLayout"),
["appLayout"] = Instance.new("Frame"),
["chatInputBar"] = Instance.new("Frame"),
["Background"] = Instance.new("Frame"),
["Corner"] = Instance.new("UICorner"),
["Border"] = Instance.new("UIStroke"),
["Container"] = Instance.new("Frame"),
["TextContainer"] = Instance.new("Frame"),
["UIPadding"] = Instance.new("UIPadding"),
["TextBoxContainer"] = Instance.new("Frame"),
["TextBox"] = Instance.new("TextBox"),
["TargetChannelChip"] = Instance.new("TextButton"),
["SendButton"] = Instance.new("TextButton"),
["SendIcon"] = Instance.new("ImageLabel"),
["Layout_4"] = Instance.new("UIListLayout"),
["AutocompleteDropdown"] = Instance.new("Frame"),
["UISizeConstraint"] = Instance.new("UISizeConstraint"),
["ScrollBarFrame"] = Instance.new("Frame"),
["Corner_2"] = Instance.new("UICorner"),
["Border_2"] = Instance.new("UIStroke"),
["ScrollViewFrame"] = Instance.new("Frame"),
["ScrollView"] = Instance.new("ScrollingFrame"),
["OffsetFrame"] = Instance.new("Frame"),
["_layout"] = Instance.new("UIListLayout"),
["UISizeConstraint_2"] = Instance.new("UISizeConstraint"),
["UIPadding_2"] = Instance.new("UIPadding"),
["topBorder"] = Instance.new("ImageLabel"),
["uiSizeConstraint"] = Instance.new("UISizeConstraint"),
["chatWindow"] = Instance.new("Frame"),
["uiSizeConstraint_2"] = Instance.new("UISizeConstraint"),
["scrollingView"] = Instance.new("ImageButton"),
["bottomLockedScrollView"] = Instance.new("Frame"),
["RCTScrollView"] = Instance.new("ScrollingFrame"),
["RCTScrollContentView"] = Instance.new("Frame"),
["VerticalLayout"] = Instance.new("UIListLayout"),
["ContentDisplayLayout"] = Instance.new("UIListLayout"),
["TextLabel"] = Instance.new("Frame"),
["TextMessage"] = Instance.new("TextLabel"),
["_layout_2"] = Instance.new("UIListLayout"),
["ContentDisplayer"] = Instance.new("Frame"),
["TextLabel_2"] = Instance.new("Frame"),
["TextMessage_2"] = Instance.new("TextLabel"),
["padding"] = Instance.new("UIPadding"),
["bottomBorder"] = Instance.new("ImageLabel"),
["uiSizeConstraint_3"] = Instance.new("UISizeConstraint"),
["channelBar"] = Instance.new("Frame"),
["HorizontalBar"] = Instance.new("Frame"),
["Background_2"] = Instance.new("Frame"),
["BottomBorder"] = Instance.new("Frame"),
["ContentContainer"] = Instance.new("Frame"),
["_layout_3"] = Instance.new("UIListLayout"),
["TopCorner"] = Instance.new("ImageLabel"),
["layout"] = Instance.new("UIListLayout"),
["uiSizeConstraint_4"] = Instance.new("UISizeConstraint"),
["topPadding"] = Instance.new("Frame")
}
GXL["ExperienceChat"]["Parent"] = game:GetService("CoreGui")
GXL["ExperienceChat"]["Name"] = 'ExperienceChat'
GXL["ExperienceChat"]["DisplayOrder"] = -1
GXL["appLayout"]["Parent"] = GXL["ExperienceChat"]
GXL["appLayout"]["Name"] = 'appLayout'
GXL["appLayout"]["BackgroundColor3"] = Color3.fromRGB(0, 0, 0)
GXL["appLayout"]["BackgroundTransparency"] = 1
GXL["appLayout"]["Position"] = UDim2.new(0.000000, 8.000000, 0.000000, 4.000000)
GXL["appLayout"]["Size"] = UDim2.new(0.400000, 0.000000, 0.168750, 0.000000)
GXL["chatInputBar"]["Parent"] = GXL["appLayout"]
GXL["chatInputBar"]["Name"] = 'chatInputBar'
GXL["chatInputBar"]["AutomaticSize"] = Enum.AutomaticSize.Y
GXL["chatInputBar"]["BackgroundColor3"] = Color3.fromRGB(25, 27, 29)
GXL["chatInputBar"]["BackgroundTransparency"] = 0.30000001192092896
GXL["chatInputBar"]["BorderSizePixel"] = 0
GXL["chatInputBar"]["LayoutOrder"] = 3
GXL["chatInputBar"]["Size"] = UDim2.new(1.000000, 0.000000, 0.000000, 0.000000)
GXL["Background"]["Parent"] = GXL["chatInputBar"]
GXL["Background"]["Name"] = 'Background'
GXL["Background"]["AutomaticSize"] = Enum.AutomaticSize.XY
GXL["Background"]["BackgroundColor3"] = Color3.fromRGB(25, 27, 29)
GXL["Background"]["BackgroundTransparency"] = 1
GXL["Background"]["Size"] = UDim2.new(1.000000, 0.000000, 0.000000, 0.000000)
GXL["Corner"]["Parent"] = GXL["Background"]
GXL["Corner"]["Name"] = 'Corner'
GXL["Corner"]["CornerRadius"] = UDim.new(0.000000, 3.000000)
GXL["Border"]["Parent"] = GXL["Background"]
GXL["Border"]["Name"] = 'Border'
GXL["Border"]["ApplyStrokeMode"] = Enum.ApplyStrokeMode.Border
GXL["Border"]["Color"] = Color3.fromRGB(255, 255, 255)
GXL["Container"]["Parent"] = GXL["Background"]
GXL["Container"]["Name"] = 'Container'
GXL["Container"]["AutomaticSize"] = Enum.AutomaticSize.Y
GXL["Container"]["BackgroundTransparency"] = 1
GXL["Container"]["Size"] = UDim2.new(1.000000, 0.000000, 0.000000, 0.000000)
GXL["TextContainer"]["Parent"] = GXL["Container"]
GXL["TextContainer"]["Name"] = 'TextContainer'
GXL["TextContainer"]["AutomaticSize"] = Enum.AutomaticSize.Y
GXL["TextContainer"]["BackgroundTransparency"] = 1
GXL["TextContainer"]["Size"] = UDim2.new(1.000000, -30.000000, 0.000000, 0.000000)
GXL["UIPadding"]["Parent"] = GXL["TextContainer"]
GXL["UIPadding"]["Name"] = 'UIPadding'
GXL["UIPadding"]["PaddingBottom"] = UDim.new(0.000000, 10.000000)
GXL["UIPadding"]["PaddingLeft"] = UDim.new(0.000000, 10.000000)
GXL["UIPadding"]["PaddingRight"] = UDim.new(0.000000, 10.000000)
GXL["UIPadding"]["PaddingTop"] = UDim.new(0.000000, 10.000000)
GXL["TextBoxContainer"]["Parent"] = GXL["TextContainer"]
GXL["TextBoxContainer"]["Name"] = 'TextBoxContainer'
GXL["TextBoxContainer"]["AnchorPoint"] = Vector2.new(1.000000, 0.000000)
GXL["TextBoxContainer"]["AutomaticSize"] = Enum.AutomaticSize.Y
GXL["TextBoxContainer"]["BackgroundTransparency"] = 1
GXL["TextBoxContainer"]["Position"] = UDim2.new(1.000000, 0.000000, 0.000000, 0.000000)
GXL["TextBoxContainer"]["Size"] = UDim2.new(1.000000, -8.000000, 0.000000, 0.000000)
GXL["TextBox"]["Parent"] = GXL["TextBoxContainer"]
GXL["TextBox"]["Name"] = 'TextBox'
GXL["TextBox"]["ClearTextOnFocus"] = false
GXL["TextBox"]["FontFace"] = Font.new("rbxassetid://16658221428", Enum.FontWeight.Medium, Enum.FontStyle.Normal)
GXL["TextBox"]["FontSize"] = Enum.FontSize.Size18
GXL["TextBox"]["OverlayNativeInput"] = true
GXL["TextBox"]["PlaceholderColor3"] = Color3.fromRGB(204, 204, 204)
GXL["TextBox"]["PlaceholderText"] = 'To chat click here or press / key'
GXL["TextBox"]["Text"] = ''
GXL["TextBox"]["TextColor3"] = Color3.fromRGB(255, 255, 255)
GXL["TextBox"]["TextSize"] = 16
GXL["TextBox"]["TextStrokeTransparency"] = 0.5
GXL["TextBox"]["TextTransparency"] = 0.5
GXL["TextBox"]["TextWrap"] = true
GXL["TextBox"]["TextWrapped"] = true
GXL["TextBox"]["TextXAlignment"] = Enum.TextXAlignment.Left
GXL["TextBox"]["TextYAlignment"] = Enum.TextYAlignment.Top
GXL["TextBox"]["AutomaticSize"] = Enum.AutomaticSize.XY
GXL["TextBox"]["BackgroundTransparency"] = 1
GXL["TextBox"]["Size"] = UDim2.new(1.000000, 0.000000, 0.000000, 0.000000)
function focuslost(e)
if e == false then
return
end
local function dance()
if GXL["TextBox"].Text:sub(1, 8) == "/e dance" then
local dance = {
[""] = "http://www.roblox.com/asset/?id=507772104",
["1"] = "http://www.roblox.com/asset/?id=507772104",
["2"] = "http://www.roblox.com/asset/?id=507776879",
["3"] = "http://www.roblox.com/asset/?id=507777623"
}
if dance[GXL["TextBox"].Text:sub(9, 9)] then
local char = game:GetService("Players").LocalPlayer.Character
if char and char:FindFirstChildOfClass("Humanoid") then
local anim = Instance.new("Animation")
anim.AnimationId = dance[GXL["TextBox"].Text:sub(9, 9)]
local loaded = char:FindFirstChildOfClass("Humanoid"):LoadAnimation(anim)
loaded:Play()
char:FindFirstChild("Humanoid").Changed:Connect(function(a) if a == 'MoveDirection' or a == 'Sit' or a == 'Jump' then loaded:Stop() end end)
GXL["TextBox"].Text = ''
end
end
end
end
dance()
if GXL["TextBox"].Text == '' then return end
if TextChatService.ChatVersion == Enum.ChatVersion.LegacyChatService then
local Stuff = game:GetService("ReplicatedStorage"):FindFirstChild("DefaultChatSystemChatEvents")
if not Stuff then
error("Failed to obtain the DefaultChatSystemChatEvents folder.", 1)
end
local Stuff2 = Stuff:FindFirstChild("SayMessageRequest")
if not Stuff2 then
error("Failed to obtain the SayMessageRequest event.", 1)
end
Stuff2:FireServer(GXL["TextBox"].Text, "All")
else
for _, v in next, TextChatService.TextChannels:GetChildren() do
if v:FindFirstChild(game:GetService("Players").LocalPlayer.Name) and v.Name ~= 'RBXSystem' then
v:SendAsync(GXL["TextBox"].Text)
break
end
end
end
GXL["TextBox"].Text = ''
end
GXL["TextBox"].FocusLost:Connect(focuslost)
GXL["TargetChannelChip"]["Parent"] = GXL["TextContainer"]
GXL["TargetChannelChip"]["Name"] = 'TargetChannelChip'
GXL["TargetChannelChip"]["FontFace"] = Font.new("rbxasset://fonts/families/BuilderSans.json", Enum.FontWeight.Medium, Enum.FontStyle.Normal)
GXL["TargetChannelChip"]["FontSize"] = Enum.FontSize.Size14
GXL["TargetChannelChip"]["Text"] = ''
GXL["TargetChannelChip"]["TextColor3"] = Color3.fromRGB(255, 255, 255)
GXL["TargetChannelChip"]["TextSize"] = 14
GXL["TargetChannelChip"]["TextWrap"] = true
GXL["TargetChannelChip"]["TextWrapped"] = true
GXL["TargetChannelChip"]["AutomaticSize"] = Enum.AutomaticSize.XY
GXL["TargetChannelChip"]["BackgroundTransparency"] = 1
GXL["TargetChannelChip"]["Size"] = UDim2.new(0.000000, 0.000000, 1.000000, 0.000000)
GXL["TargetChannelChip"]["Visible"] = false
GXL["SendButton"]["Parent"] = GXL["Container"]
GXL["SendButton"]["Name"] = 'SendButton'
GXL["SendButton"]["FontFace"] = Font.new("rbxasset://fonts/families/LegacyArial.json", Enum.FontWeight.Regular, Enum.FontStyle.Normal)
GXL["SendButton"]["Text"] = ''
GXL["SendButton"]["AnchorPoint"] = Vector2.new(1.000000, 0.000000)
GXL["SendButton"]["BackgroundTransparency"] = 1
GXL["SendButton"]["LayoutOrder"] = 2
GXL["SendButton"]["Position"] = UDim2.new(1.000000, 0.000000, 0.000000, 0.000000)
GXL["SendButton"]["Size"] = UDim2.new(0.000000, 30.000000, 1.000000, 0.000000)
GXL["SendButton"].MouseButton1Click:Connect(focuslost)
GXL["SendIcon"]["Parent"] = GXL["SendButton"]
GXL["SendIcon"]["Name"] = 'SendIcon'
GXL["SendIcon"]["Image"] = 'rbxasset://LuaPackages/Packages/_Index/UIBlox/UIBlox/AppImageAtlas/img_set_1x_5.png'
GXL["SendIcon"]["ImageColor3"] = Color3.fromRGB(204, 204, 204)
GXL["SendIcon"]["ImageRectOffset"] = Vector2.new(378.000000, 426.000000)
GXL["SendIcon"]["ImageRectSize"] = Vector2.new(36.000000, 36.000000)
GXL["SendIcon"]["ImageTransparency"] = 0.5
GXL["SendIcon"]["BackgroundTransparency"] = 1
GXL["SendIcon"]["Size"] = UDim2.new(0.000000, 30.000000, 0.000000, 30.000000)
GXL["Layout_4"]["Parent"] = GXL["SendButton"]
GXL["Layout_4"]["Name"] = 'Layout'
GXL["Layout_4"]["HorizontalAlignment"] = Enum.HorizontalAlignment.Center
GXL["Layout_4"]["VerticalAlignment"] = Enum.VerticalAlignment.Center
GXL["AutocompleteDropdown"]["Parent"] = GXL["chatInputBar"]
GXL["AutocompleteDropdown"]["Name"] = 'AutocompleteDropdown'
GXL["AutocompleteDropdown"]["AnchorPoint"] = Vector2.new(0.000000, 1.000000)
GXL["AutocompleteDropdown"]["BackgroundTransparency"] = 1
GXL["AutocompleteDropdown"]["Size"] = UDim2.new(0.950000, 0.000000, 0.000000, 0.000000)
GXL["AutocompleteDropdown"]["Visible"] = false
GXL["AutocompleteDropdown"]["ZIndex"] = 2
GXL["UISizeConstraint"]["Parent"] = GXL["AutocompleteDropdown"]
GXL["UISizeConstraint"]["Name"] = 'UISizeConstraint'
GXL["UISizeConstraint"]["MaxSize"] = Vector2.new(475.000000, 164.193756)
GXL["ScrollBarFrame"]["Parent"] = GXL["AutocompleteDropdown"]
GXL["ScrollBarFrame"]["Name"] = 'ScrollBarFrame'
GXL["ScrollBarFrame"]["BackgroundColor3"] = Color3.fromRGB(25, 27, 29)
GXL["ScrollBarFrame"]["Size"] = UDim2.new(1.000000, 0.000000, 1.000000, 0.000000)
GXL["ScrollBarFrame"]["ZIndex"] = 2
GXL["Corner_2"]["Parent"] = GXL["ScrollBarFrame"]
GXL["Corner_2"]["Name"] = 'Corner'
GXL["Corner_2"]["CornerRadius"] = UDim.new(0.000000, 3.000000)
GXL["Border_2"]["Parent"] = GXL["ScrollBarFrame"]
GXL["Border_2"]["Name"] = 'Border'
GXL["Border_2"]["ApplyStrokeMode"] = Enum.ApplyStrokeMode.Border
GXL["Border_2"]["Color"] = Color3.fromRGB(255, 255, 255)
GXL["ScrollViewFrame"]["Parent"] = GXL["ScrollBarFrame"]
GXL["ScrollViewFrame"]["Name"] = 'ScrollViewFrame'
GXL["ScrollViewFrame"]["BackgroundTransparency"] = 1
GXL["ScrollViewFrame"]["ClipsDescendants"] = true
GXL["ScrollViewFrame"]["Size"] = UDim2.new(1.000000, 0.000000, 1.000000, 0.000000)
GXL["ScrollViewFrame"]["ZIndex"] = 2
GXL["ScrollView"]["Parent"] = GXL["ScrollViewFrame"]
GXL["ScrollView"]["Name"] = 'ScrollView'
GXL["ScrollView"]["AutomaticCanvasSize"] = Enum.AutomaticSize.Y
GXL["ScrollView"]["CanvasSize"] = UDim2.new(0.000000, 0.000000, 0.000000, 0.000000)
GXL["ScrollView"]["ScrollBarThickness"] = 4
GXL["ScrollView"]["VerticalScrollBarInset"] = Enum.ScrollBarInset.Always
GXL["ScrollView"]["BackgroundTransparency"] = 1
GXL["ScrollView"]["BorderSizePixel"] = 0
GXL["ScrollView"]["ClipsDescendants"] = false
GXL["ScrollView"]["Size"] = UDim2.new(1.000000, -4.000000, 1.000000, 0.000000)
GXL["ScrollView"]["ZIndex"] = 2
GXL["OffsetFrame"]["Parent"] = GXL["ScrollView"]
GXL["OffsetFrame"]["Name"] = 'OffsetFrame'
GXL["OffsetFrame"]["BackgroundTransparency"] = 1
GXL["OffsetFrame"]["Size"] = UDim2.new(1.000000, 8.000000, 1.000000, 0.000000)
GXL["_layout"]["Parent"] = GXL["OffsetFrame"]
GXL["_layout"]["Name"] = 'layout'
GXL["_layout"]["SortOrder"] = Enum.SortOrder.LayoutOrder
GXL["UISizeConstraint_2"]["Parent"] = GXL["chatInputBar"]
GXL["UISizeConstraint_2"]["Name"] = 'UISizeConstraint'
GXL["UISizeConstraint_2"]["MaxSize"] = Vector2.new(475.000000, math.huge)
GXL["UIPadding_2"]["Parent"] = GXL["chatInputBar"]
GXL["UIPadding_2"]["Name"] = 'UIPadding'
GXL["UIPadding_2"]["PaddingBottom"] = UDim.new(0.000000, 1.000000)
GXL["UIPadding_2"]["PaddingLeft"] = UDim.new(0.000000, 8.000000)
GXL["UIPadding_2"]["PaddingRight"] = UDim.new(0.000000, 8.000000)
GXL["UIPadding_2"]["PaddingTop"] = UDim.new(0.000000, 8.000000)
GXL["topBorder"]["Parent"] = GXL["appLayout"]
GXL["topBorder"]["Name"] = 'topBorder'
GXL["topBorder"]["Image"] = 'rbxasset://textures/ui/TopRoundedRect8px.png'
GXL["topBorder"]["ImageColor3"] = Color3.fromRGB(25, 27, 29)
GXL["topBorder"]["ImageTransparency"] = 0.30000001192092896
GXL["topBorder"]["ScaleType"] = Enum.ScaleType.Slice
GXL["topBorder"]["SliceCenter"] = Rect.new(8, 8, 24, 32)
GXL["topBorder"]["BackgroundTransparency"] = 1
GXL["topBorder"]["LayoutOrder"] = 1
GXL["topBorder"]["Size"] = UDim2.new(1.000000, 0.000000, 0.000000, 8.000000)
GXL["uiSizeConstraint"]["Parent"] = GXL["topBorder"]
GXL["uiSizeConstraint"]["Name"] = 'uiSizeConstraint'
GXL["uiSizeConstraint"]["MaxSize"] = Vector2.new(475.000000, math.huge)
GXL["chatWindow"]["Parent"] = GXL["appLayout"]
GXL["chatWindow"]["Name"] = 'chatWindow'
GXL["chatWindow"]["BackgroundColor3"] = Color3.fromRGB(25, 27, 29)
GXL["chatWindow"]["BackgroundTransparency"] = 0.30000001192092896
GXL["chatWindow"]["BorderSizePixel"] = 0
GXL["chatWindow"]["LayoutOrder"] = 2
GXL["chatWindow"]["Size"] = UDim2.new(1.000000, 0.000000, 1.000000, 0.000000)
GXL["uiSizeConstraint_2"]["Parent"] = GXL["chatWindow"]
GXL["uiSizeConstraint_2"]["Name"] = 'uiSizeConstraint'
GXL["uiSizeConstraint_2"]["MaxSize"] = Vector2.new(475.000000, 275.000000)
GXL["scrollingView"]["Parent"] = GXL["chatWindow"]
GXL["scrollingView"]["Name"] = 'scrollingView'
GXL["scrollingView"]["BackgroundTransparency"] = 1
GXL["scrollingView"]["Size"] = UDim2.new(1.000000, 0.000000, 1.000000, 0.000000)
GXL["bottomLockedScrollView"]["Parent"] = GXL["scrollingView"]
GXL["bottomLockedScrollView"]["Name"] = 'bottomLockedScrollView'
GXL["bottomLockedScrollView"]["BackgroundTransparency"] = 1
GXL["bottomLockedScrollView"]["Size"] = UDim2.new(1.000000, 0.000000, 1.000000, 0.000000)
GXL["RCTScrollView"]["Parent"] = GXL["bottomLockedScrollView"]
GXL["RCTScrollView"]["Name"] = 'RCTScrollView'
GXL["RCTScrollView"]["AutomaticCanvasSize"] = Enum.AutomaticSize.XY
GXL["RCTScrollView"]["CanvasSize"] = UDim2.new(0.000000, 0.000000, 0.000000, 0.000000)
GXL["RCTScrollView"]["ScrollBarThickness"] = 8
GXL["RCTScrollView"]["ScrollingDirection"] = Enum.ScrollingDirection.Y
GXL["RCTScrollView"]["BackgroundTransparency"] = 1
GXL["RCTScrollView"]["BorderSizePixel"] = 0
GXL["RCTScrollView"]["Size"] = UDim2.new(1.000000, 0.000000, 1.000000, 0.000000)
GXL["RCTScrollContentView"]["Parent"] = GXL["RCTScrollView"]
GXL["RCTScrollContentView"]["Name"] = 'RCTScrollContentView'
GXL["RCTScrollContentView"]["AutomaticSize"] = Enum.AutomaticSize.Y
GXL["RCTScrollContentView"]["BackgroundTransparency"] = 1
GXL["RCTScrollContentView"]["Size"] = UDim2.new(1.000000, 0.000000, 1.000000, 0.000000)
GXL["VerticalLayout"]["Parent"] = GXL["RCTScrollContentView"]
GXL["VerticalLayout"]["Name"] = 'VerticalLayout'
GXL["VerticalLayout"]["HorizontalAlignment"] = Enum.HorizontalAlignment.Center
GXL["VerticalLayout"]["SortOrder"] = Enum.SortOrder.LayoutOrder
GXL["_layout_2"]["Parent"] = GXL["RCTScrollContentView"]
GXL["_layout_2"]["Name"] = 'layout'
GXL["_layout_2"]["SortOrder"] = Enum.SortOrder.LayoutOrder
GXL["_layout_2"]["Padding"] = UDim.new(0.000000, 4.000000)
GXL["ContentDisplayer"]["Parent"] = GXL["RCTScrollContentView"]
GXL["ContentDisplayer"]["Name"] = 'ContentDisplayer'
GXL["ContentDisplayer"]["AutomaticSize"] = Enum.AutomaticSize.Y
GXL["ContentDisplayer"]["BackgroundTransparency"] = 1
GXL["ContentDisplayer"]["LayoutOrder"] = 2
GXL["ContentDisplayer"]["Size"] = UDim2.new(1.000000, 0.000000, 0.000000, 0.000000)
GXL["ContentDisplayLayout"]['Parent'] = GXL["ContentDisplayer"]
--GXL["ContentDisplayLayout"][''] = GXL["ContentDisplayer"]
GXL["padding"]["Parent"] = GXL["bottomLockedScrollView"]
GXL["padding"]["Name"] = 'padding'
GXL["padding"]["PaddingLeft"] = UDim.new(0.000000, 8.000000)
GXL["padding"]["PaddingRight"] = UDim.new(0.000000, 8.000000)
GXL["bottomBorder"]["Parent"] = GXL["appLayout"]
GXL["bottomBorder"]["Name"] = 'bottomBorder'
GXL["bottomBorder"]["Image"] = 'rbxasset://textures/ui/BottomRoundedRect8px.png'
GXL["bottomBorder"]["ImageColor3"] = Color3.fromRGB(25, 27, 29)
GXL["bottomBorder"]["ImageTransparency"] = 0.30000001192092896
GXL["bottomBorder"]["ScaleType"] = Enum.ScaleType.Slice
GXL["bottomBorder"]["SliceCenter"] = Rect.new(8, 0, 24, 16)
GXL["bottomBorder"]["BackgroundTransparency"] = 1
GXL["bottomBorder"]["LayoutOrder"] = 5
GXL["bottomBorder"]["Size"] = UDim2.new(1.000000, 0.000000, 0.000000, 8.000000)
GXL["uiSizeConstraint_3"]["Parent"] = GXL["bottomBorder"]
GXL["uiSizeConstraint_3"]["Name"] = 'uiSizeConstraint'
GXL["uiSizeConstraint_3"]["MaxSize"] = Vector2.new(475.000000, math.huge)
GXL["channelBar"]["Parent"] = GXL["appLayout"]
GXL["channelBar"]["Name"] = 'channelBar'
GXL["channelBar"]["BackgroundTransparency"] = 1
GXL["channelBar"]["BorderSizePixel"] = 0
GXL["channelBar"]["Size"] = UDim2.new(1.000000, 0.000000, 0.000000, 40.000000)
GXL["channelBar"]["Visible"] = false
GXL["HorizontalBar"]["Parent"] = GXL["channelBar"]
GXL["HorizontalBar"]["Name"] = 'HorizontalBar'
GXL["HorizontalBar"]["BackgroundTransparency"] = 1
GXL["HorizontalBar"]["BorderSizePixel"] = 0
GXL["HorizontalBar"]["Size"] = UDim2.new(1.000000, 0.000000, 1.000000, 0.000000)
GXL["Background_2"]["Parent"] = GXL["HorizontalBar"]
GXL["Background_2"]["Name"] = 'Background'
GXL["Background_2"]["BackgroundColor3"] = Color3.fromRGB(25, 27, 29)
GXL["Background_2"]["BorderSizePixel"] = 0
GXL["Background_2"]["Position"] = UDim2.new(0.000000, 0.000000, 0.000000, 8.000000)
GXL["Background_2"]["Size"] = UDim2.new(1.000000, 0.000000, 0.000000, 31.000000)
GXL["BottomBorder"]["Parent"] = GXL["HorizontalBar"]
GXL["BottomBorder"]["Name"] = 'BottomBorder'
GXL["BottomBorder"]["BackgroundColor3"] = Color3.fromRGB(100, 100, 100)
GXL["BottomBorder"]["BorderSizePixel"] = 0
GXL["BottomBorder"]["Position"] = UDim2.new(0.000000, 0.000000, 1.000000, -1.000000)
GXL["BottomBorder"]["Size"] = UDim2.new(1.000000, 0.000000, 0.000000, 1.000000)
GXL["ContentContainer"]["Parent"] = GXL["HorizontalBar"]
GXL["ContentContainer"]["Name"] = 'ContentContainer'
GXL["ContentContainer"]["BackgroundTransparency"] = 1
GXL["ContentContainer"]["BorderSizePixel"] = 0
GXL["ContentContainer"]["Size"] = UDim2.new(1.000000, 0.000000, 1.000000, 0.000000)
GXL["_layout_3"]["Parent"] = GXL["ContentContainer"]
GXL["_layout_3"]["Name"] = 'layout'
GXL["_layout_3"]["FillDirection"] = Enum.FillDirection.Horizontal
GXL["_layout_3"]["SortOrder"] = Enum.SortOrder.LayoutOrder
GXL["TopCorner"]["Parent"] = GXL["HorizontalBar"]
GXL["TopCorner"]["Name"] = 'TopCorner'
GXL["TopCorner"]["Image"] = 'rbxasset://textures/ui/TopRoundedRect8px.png'
GXL["TopCorner"]["ImageColor3"] = Color3.fromRGB(25, 27, 29)
GXL["TopCorner"]["ScaleType"] = Enum.ScaleType.Slice
GXL["TopCorner"]["SliceCenter"] = Rect.new(8, 8, 24, 32)
GXL["TopCorner"]["BackgroundTransparency"] = 1
GXL["TopCorner"]["BorderSizePixel"] = 0
GXL["TopCorner"]["Size"] = UDim2.new(1.000000, 0.000000, 0.000000, 8.000000)
GXL["layout"]["Parent"] = GXL["appLayout"]
GXL["layout"]["Name"] = 'layout'
GXL["layout"]["SortOrder"] = Enum.SortOrder.LayoutOrder
GXL["uiSizeConstraint_4"]["Parent"] = GXL["appLayout"]
GXL["uiSizeConstraint_4"]["Name"] = 'uiSizeConstraint'
GXL["uiSizeConstraint_4"]["MaxSize"] = Vector2.new(475.000000, math.huge)
GXL["topPadding"]["Parent"] = GXL["appLayout"]
GXL["topPadding"]["Name"] = 'topPadding'
GXL["topPadding"]["BackgroundColor3"] = Color3.fromRGB(25, 27, 29)
GXL["topPadding"]["BackgroundTransparency"] = 0.30000001192092896
GXL["topPadding"]["BorderSizePixel"] = 0
GXL["topPadding"]["Size"] = UDim2.new(1.000000, 0.000000, 0.000000, 8.000000)
GXL["topPadding"]["Visible"] = false
GXL["topPadding"]["ZIndex"] = 0
GXL["TextLabel_2"]["Name"] = 'TextLabel'
GXL["TextLabel_2"]["AutomaticSize"] = Enum.AutomaticSize.XY
GXL["TextLabel_2"]["BackgroundTransparency"] = 1
GXL["TextMessage_2"]["Parent"] = GXL["TextLabel_2"]
GXL["TextMessage_2"]["Name"] = 'TextMessage'
GXL["TextMessage_2"]["FontFace"] = Font.new("rbxasset://fonts/families/SourceSansPro.json", Enum.FontWeight.Bold, Enum.FontStyle.Normal)
GXL["TextMessage_2"]["FontSize"] = Enum.FontSize.Size18
GXL["TextMessage_2"]["RichText"] = true
GXL["TextMessage_2"]["Text"] = ''
GXL["TextMessage_2"]["TextColor3"] = Color3.fromRGB(255, 255, 255)
GXL["TextMessage_2"]["TextSize"] = 18
GXL["TextMessage_2"]["TextStrokeTransparency"] = 0.5
GXL["TextMessage_2"]["TextWrap"] = true
GXL["TextMessage_2"]["TextWrapped"] = true
GXL["TextMessage_2"]["TextXAlignment"] = Enum.TextXAlignment.Left
GXL["TextMessage_2"]["TextYAlignment"] = Enum.TextYAlignment.Top
GXL["TextMessage_2"]["AutomaticSize"] = Enum.AutomaticSize.XY
GXL["TextMessage_2"]["BackgroundTransparency"] = 1
GXL["TextMessage_2"]["Size"] = UDim2.new(1.000000, 0.000000, 0.000000, 0.000000)
function CreateMessage(Message: TextChatMessage | table)
local Color = "#d4d4d4"
local MessageTime = Message.Timestamp:ToLocalTime()
local Clone = GXL["TextLabel_2"]:Clone()
Clone.Parent = GXL["ContentDisplayer"]
local function GetFormattedTime()
local NewTime = DateTime.now():ToLocalTime()
local FixedS, FixedM, FixedH = NewTime.Second - MessageTime.Second, NewTime.Minute - MessageTime.Minute, NewTime.Hour - MessageTime.Hour
if FixedS < 0 then
FixedS = FixedS + 60
FixedM = FixedM - 1
end
if FixedM < 0 then
FixedM = FixedM + 60
FixedH = FixedH - 1
end
if FixedH < 0 then
FixedH = FixedH + 24
end
local timeString = ""
if FixedH > 0 then
timeString = timeString .. FixedH .. (FixedH == 1 and " hour" or " hours")
if FixedM > 0 or FixedS > 0 then
timeString = timeString .. " and "
end
end
if FixedM > 0 then
timeString = timeString .. FixedM .. (FixedM == 1 and " minute" or " minutes")
if FixedS > 0 then
timeString = timeString .. ", "
end
end
if FixedS > 0 then
timeString = timeString .. FixedS .. (FixedS == 1 and " second" or " seconds")
elseif FixedS == 0 and FixedM == 0 and FixedH == 0 then
timeString = 'now'
end
return (timeString == 'now' and timeString or timeString .. ' ago')
end
Clone.TextMessage["Text"] = string.format('%s %s\nnow', Message.PrefixText, Color, Message.Text)
local function Update()
Clone.TextMessage["Text"] = string.format('%s %s\n%s', Message.PrefixText, Color, Message.Text, GetFormattedTime())
end
task.wait(1)
RunService.Heartbeat:Connect(Update)
end
if TextChatService.ChatVersion == Enum.ChatVersion.TextChatService then
TextChatService.MessageReceived:Connect(function(m)
task.spawn(CreateMessage, m)
end)
else
local Stuff = game:GetService("ReplicatedStorage"):FindFirstChild("DefaultChatSystemChatEvents")
if not Stuff then error('Failed to obtain the DefaultChatSystemChatEvents folder.', 1) end
local Stuff2 = Stuff:FindFirstChild("OnMessageDoneFiltering")
if not Stuff2 then error('Failed to obtain the OnMessageDoneFiltering event.', 1) end
Stuff2.OnClientEvent:Connect(function(msg)
local n = msg.ExtraData.NameColor
task.spawn(CreateMessage, {
Timestamp = DateTime.now(),
Text = msg.Message,
PrefixText = string.format('%s:', n.R*255,n.G*255,n.B*255,msg.FromSpeaker)
})
end)
end