-- VERSION CODENAME DOCUMENTATION -- pre-alpha -- - Mid-2008 or lower. -- - Support for "fake" 2006/2007 clients, or the real things. -- - Uses Legacy joinscript. -- - Does not support hats or any other form of customization besides body colors. -- pre-alpha-ext -- - Mid-2008 or lower. -- - Support for "fake" 2006/2007 clients, or the real things. -- - Uses Legacy joinscript. -- - Supports most kinds of customization. -- alpha -- - Mid-2008 or lower. -- - Uses Legacy joinscript. -- - Supports most kinds of customization. -- beta -- - Late-2008-Early 2009. -- - Uses Legacy joinscript. -- - Supports most kinds of customization. -- pre-gamma -- - Late-2009-Early 2010. -- - Uses Legacy joinscript. -- - Supports most kinds of customization. -- delta-pre-gamma -- - Late-2009-Early 2010. -- - Uses RBXPri joinscript. -- - Supports most kinds of customization. -- gamma -- - Mid-2010-November 2010. -- - Uses Legacy joinscript. -- - Supports most kinds of customization. -- delta-gamma -- - Mid-2010-November 2010. -- - Uses RBXPri joinscript. -- - Supports most kinds of customization. -- delta -- - December-2010-Early 2011. -- - Uses RBXPri joinscript. -- - Supports the more modern 2011 user interface. -- - Supports most kinds of customization. -- omega -- - Mid-2011-???. -- - Uses RBXPri joinscript. -- - Meant for more modern clients which don't use early 2011's UI. -- - Supports most kinds of customization. rbxlegacyversion = "" if (rbxlegacyversion == "pre-alpha") then settings().Rendering.frameRateManager = 2; settings().Rendering.graphicsMode = 2; settings().Network.MaxSendBuffer = 1000000; settings().Network.PhysicsReplicationUpdateRate = 1000000; settings().Network.SendRate = 1000000; elseif (rbxlegacyversion == "pre-alpha-ext") then settings().Rendering.frameRateManager = 2; settings().Rendering.graphicsMode = 2; settings().Network.MaxSendBuffer = 1000000; settings().Network.PhysicsReplicationUpdateRate = 1000000; settings().Network.SendRate = 1000000; elseif (rbxlegacyversion == "alpha") then settings().Rendering.frameRateManager = 2; settings().Rendering.graphicsMode = 2; settings().Network.MaxSendBuffer = 1000000; settings().Network.PhysicsReplicationUpdateRate = 1000000; settings().Network.SendRate = 1000000; elseif (rbxlegacyversion == "beta") then settings().Rendering.FrameRateManager = 2; settings().Network.SendRate = 30; settings().Network.ReceiveRate = 60; elseif (rbxlegacyversion == "pre-gamma") then settings().Rendering.FrameRateManager = 2; settings().Network.DataSendRate = 30; settings().Network.PhysicsSendRate = 20; settings().Network.ReceiveRate = 60; elseif (rbxlegacyversion == "delta-pre-gamma") then settings().Rendering.FrameRateManager = 2; settings().Network.DataSendRate = 30; settings().Network.PhysicsSendRate = 20; settings().Network.ReceiveRate = 60; elseif (rbxlegacyversion == "gamma") then settings().Rendering.FrameRateManager = 2; settings().Network.DataSendRate = 30; settings().Network.PhysicsSendRate = 20; settings().Network.ReceiveRate = 60; elseif (rbxlegacyversion == "delta-gamma") then -- october 2010 settings().Rendering.FrameRateManager = 2; settings().Network.DataSendRate = 30; settings().Network.PhysicsSendRate = 20; settings().Network.ReceiveRate = 60; elseif (rbxlegacyversion == "delta") then -- late 2010-early 2011. settings().Rendering.FrameRateManager = 2; game:GetService("CoreGui").DescendantAdded:connect(function(Child) if (Child:IsA("BaseScript")) and (Child.Name~="SubMenuBuilder") and (Child.Name~="ToolTipper") and (Child.Name~="MainBotChatScript") then Child:Remove(); end end) coroutine.resume(coroutine.create(function() while not game:GetService("CoreGui"):FindFirstChild("RobloxGui") do game:GetService("CoreGui").ChildAdded:wait(); end game:GetService("CoreGui").RobloxGui.TopLeftControl:Remove(); end)) coroutine.resume(coroutine.create(function() loadstring('\108\111\99\97\108\32\67\111\114\101\71\117\105\32\61\32\103\97\109\101\58\71\101\116\83\101\114\118\105\99\101\40\34\67\111\114\101\71\117\105\34\41\59\10\119\104\105\108\101\32\110\111\116\32\67\111\114\101\71\117\105\58\70\105\110\100\70\105\114\115\116\67\104\105\108\100\40\34\82\111\98\108\111\120\71\117\105\34\41\32\100\111\10\9\67\111\114\101\71\117\105\46\67\104\105\108\100\65\100\100\101\100\58\119\97\105\116\40\41\59\10\101\110\100\10\108\111\99\97\108\32\82\111\98\108\111\120\71\117\105\32\61\32\67\111\114\101\71\117\105\46\82\111\98\108\111\120\71\117\105\59\10\108\111\99\97\108\32\66\111\116\116\111\109\76\101\102\116\67\111\110\116\114\111\108\32\61\32\82\111\98\108\111\120\71\117\105\58\70\105\110\100\70\105\114\115\116\67\104\105\108\100\40\34\66\111\116\116\111\109\76\101\102\116\67\111\110\116\114\111\108\34\41\10\108\111\99\97\108\32\66\111\116\116\111\109\82\105\103\104\116\67\111\110\116\114\111\108\32\61\32\82\111\98\108\111\120\71\117\105\58\70\105\110\100\70\105\114\115\116\67\104\105\108\100\40\34\66\111\116\116\111\109\82\105\103\104\116\67\111\110\116\114\111\108\34\41\10\108\111\99\97\108\32\84\111\112\76\101\102\116\67\111\110\116\114\111\108\32\61\32\82\111\98\108\111\120\71\117\105\58\70\105\110\100\70\105\114\115\116\67\104\105\108\100\40\34\84\111\112\76\101\102\116\67\111\110\116\114\111\108\34\41\10\108\111\99\97\108\32\66\117\105\108\100\84\111\111\108\115\32\61\32\82\111\98\108\111\120\71\117\105\58\70\105\110\100\70\105\114\115\116\67\104\105\108\100\40\34\66\117\105\108\100\84\111\111\108\115\34\41\10\102\117\110\99\116\105\111\110\32\109\97\107\101\89\82\101\108\97\116\105\118\101\40\41\10\66\111\116\116\111\109\76\101\102\116\67\111\110\116\114\111\108\46\83\105\122\101\67\111\110\115\116\114\97\105\110\116\32\61\32\50\10\66\111\116\116\111\109\82\105\103\104\116\67\111\110\116\114\111\108\46\83\105\122\101\67\111\110\115\116\114\97\105\110\116\32\61\32\50\10\105\102\32\84\111\112\76\101\102\116\67\111\110\116\114\111\108\32\116\104\101\110\32\84\111\112\76\101\102\116\67\111\110\116\114\111\108\46\83\105\122\101\67\111\110\115\116\114\97\105\110\116\32\61\32\50\32\101\110\100\10\105\102\32\66\117\105\108\100\84\111\111\108\115\32\116\104\101\110\32\66\117\105\108\100\84\111\111\108\115\46\70\114\97\109\101\46\83\105\122\101\67\111\110\115\116\114\97\105\110\116\32\61\32\50\32\101\110\100\10\66\111\116\116\111\109\76\101\102\116\67\111\110\116\114\111\108\46\80\111\115\105\116\105\111\110\32\61\32\85\68\105\109\50\46\110\101\119\40\48\44\48\44\49\44\45\66\111\116\116\111\109\76\101\102\116\67\111\110\116\114\111\108\46\65\98\115\111\108\117\116\101\83\105\122\101\46\89\41\10\66\111\116\116\111\109\82\105\103\104\116\67\111\110\116\114\111\108\46\80\111\115\105\116\105\111\110\32\61\32\85\68\105\109\50\46\110\101\119\40\49\44\45\66\111\116\116\111\109\82\105\103\104\116\67\111\110\116\114\111\108\46\65\98\115\111\108\117\116\101\83\105\122\101\46\88\44\49\44\45\66\111\116\116\111\109\82\105\103\104\116\67\111\110\116\114\111\108\46\65\98\115\111\108\117\116\101\83\105\122\101\46\89\41\10\101\110\100\10\102\117\110\99\116\105\111\110\32\109\97\107\101\88\82\101\108\97\116\105\118\101\40\41\10\66\111\116\116\111\109\76\101\102\116\67\111\110\116\114\111\108\46\83\105\122\101\67\111\110\115\116\114\97\105\110\116\32\61\32\49\10\66\111\116\116\111\109\82\105\103\104\116\67\111\110\116\114\111\108\46\83\105\122\101\67\111\110\115\116\114\97\105\110\116\32\61\32\49\10\105\102\32\84\111\112\76\101\102\116\67\111\110\116\114\111\108\32\116\104\101\110\32\84\111\112\76\101\102\116\67\111\110\116\114\111\108\46\83\105\122\101\67\111\110\115\116\114\97\105\110\116\32\61\32\49\32\101\110\100\10\105\102\32\66\117\105\108\100\84\111\111\108\115\32\116\104\101\110\32\66\117\105\108\100\84\111\111\108\115\46\70\114\97\109\101\46\83\105\122\101\67\111\110\115\116\114\97\105\110\116\32\61\32\49\32\101\110\100\10\66\111\116\116\111\109\76\101\102\116\67\111\110\116\114\111\108\46\80\111\115\105\116\105\111\110\32\61\32\85\68\105\109\50\46\110\101\119\40\48\44\48\44\49\44\45\66\111\116\116\111\109\76\101\102\116\67\111\110\116\114\111\108\46\65\98\115\111\108\117\116\101\83\105\122\101\46\89\41\10\66\111\116\116\111\109\82\105\103\104\116\67\111\110\116\114\111\108\46\80\111\115\105\116\105\111\110\32\61\32\85\68\105\109\50\46\110\101\119\40\49\44\45\66\111\116\116\111\109\82\105\103\104\116\67\111\110\116\114\111\108\46\65\98\115\111\108\117\116\101\83\105\122\101\46\88\44\49\44\45\66\111\116\116\111\109\82\105\103\104\116\67\111\110\116\114\111\108\46\65\98\115\111\108\117\116\101\83\105\122\101\46\89\41\10\101\110\100\10\108\111\99\97\108\32\102\117\110\99\116\105\111\110\32\114\101\115\105\122\101\40\41\10\105\102\32\82\111\98\108\111\120\71\117\105\46\65\98\115\111\108\117\116\101\83\105\122\101\46\120\32\62\32\82\111\98\108\111\120\71\117\105\46\65\98\115\111\108\117\116\101\83\105\122\101\46\121\32\116\104\101\110\10\109\97\107\101\89\82\101\108\97\116\105\118\101\40\41\10\101\108\115\101\10\109\97\107\101\88\82\101\108\97\116\105\118\101\40\41\10\101\110\100\10\101\110\100\10\82\111\98\108\111\120\71\117\105\46\67\104\97\110\103\101\100\58\99\111\110\110\101\99\116\40\102\117\110\99\116\105\111\110\40\112\114\111\112\101\114\116\121\41\10\105\102\32\112\114\111\112\101\114\116\121\32\61\61\32\34\65\98\115\111\108\117\116\101\83\105\122\101\34\32\116\104\101\110\10\119\97\105\116\40\41\10\114\101\115\105\122\101\40\41\10\101\110\100\10\101\110\100\41\10\119\97\105\116\40\41\10\114\101\115\105\122\101\40\41\10')() end)) elseif (rbxlegacyversion == "omega") then -- mid 2011 and above, or if you are trying to use RBXPri code. settings().Rendering.FrameRateManager = 2; end rbxversion = version(); print("ROBLOX Client version '" .. rbxversion .. "' loaded."); --function made by rbxbanland function newWaitForChild(newParent,name) local returnable = nil if newParent:FindFirstChild(name) then returnable = newParent:FindFirstChild(name) else repeat wait() returnable = newParent:FindFirstChild(name) until returnable ~= nil end return returnable end --we aren't doing anything with shirts or t-shirts or pants yet, we're only doing hats. function LoadCharacterNew(playerApp,newChar) local charparts = {[1] = newWaitForChild(newChar,"Head"),[2] = newWaitForChild(newChar,"Torso"),[3] = newWaitForChild(newChar,"Left Arm"),[4] = newWaitForChild(newChar,"Right Arm"),[5] = newWaitForChild(newChar,"Left Leg"),[6] = newWaitForChild(newChar,"Right Leg")} for _,newVal in pairs(playerApp:GetChildren()) do if (newVal.CustomizationType.Value == 1) then pcall(function() charparts[newVal.ColorIndex.Value].BrickColor = newVal.Value end) elseif (newVal.CustomizationType.Value == 2) then if (rbxlegacyversion ~= "pre-alpha") then pcall(function() local newHat = game.Workspace:InsertContent("rbxasset://../../../charcustom/hats/"..newVal.Value) if newHat[1] then if newHat[1].className == "Hat" then newHat[1].Parent = newChar else newHat[1]:remove() end end end) end end end end function InitalizeClientAppearance(Player,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID) local newCharApp = Instance.new("IntValue",Player); newCharApp.Name = "Appearance"; --BODY COLORS for i=1,6,1 do local BodyColor = Instance.new("BrickColorValue",newCharApp); if (i == 1) then if (HeadColorID ~= nil) then BodyColor.Value = BrickColor.new(HeadColorID); else BodyColor.Value = BrickColor.new(1); end BodyColor.Name = "HeadColor"; elseif (i == 2) then if (TorsoColorID ~= nil) then BodyColor.Value = BrickColor.new(TorsoColorID); else BodyColor.Value = BrickColor.new(1); end BodyColor.Name = "TorsoColor"; elseif (i == 3) then if (LeftArmColorID ~= nil) then BodyColor.Value = BrickColor.new(LeftArmColorID); else BodyColor.Value = BrickColor.new(1); end BodyColor.Name = "LeftArmColor"; elseif (i == 4) then if (RightArmColorID ~= nil) then BodyColor.Value = BrickColor.new(RightArmColorID); else BodyColor.Value = BrickColor.new(1); end BodyColor.Name = "RightArmColor"; elseif (i == 5) then if (LeftLegColorID ~= nil) then BodyColor.Value = BrickColor.new(LeftLegColorID); else BodyColor.Value = BrickColor.new(1); end BodyColor.Name = "LeftLegColor"; elseif (i == 6) then if (RightLegColorID ~= nil) then BodyColor.Value = BrickColor.new(RightLegColorID); else BodyColor.Value = BrickColor.new(1); end BodyColor.Name = "RightLegColor"; end local indexValue = Instance.new("NumberValue"); indexValue.Name = "ColorIndex"; indexValue.Parent = BodyColor; indexValue.Value = i; local typeValue = Instance.new("NumberValue"); typeValue.Name = "CustomizationType"; typeValue.Parent = BodyColor; typeValue.Value = 1; end --HATS for i=1,3,1 do local newHat = Instance.new("StringValue",newCharApp); if (i == 1) then if (RightLegColorID ~= nil) then newHat.Value = Hat1ID; newHat.Name = Hat1ID; else newHat.Value = "NoHat.rbxm"; newHat.Name = "NoHat.rbxm"; end elseif (i == 2) then if (RightLegColorID ~= nil) then newHat.Value = Hat2ID; newHat.Name = Hat2ID; else newHat.Value = "NoHat.rbxm"; newHat.Name = "NoHat.rbxm"; end elseif (i == 3) then if (RightLegColorID ~= nil) then newHat.Value = Hat3ID; newHat.Name = Hat3ID; else newHat.Value = "NoHat.rbxm"; newHat.Name = "NoHat.rbxm"; end end local typeValue = Instance.new("NumberValue"); typeValue.Name = "CustomizationType"; typeValue.Parent = newHat; typeValue.Value = 2; end end function CSServer(Port,PlayerLimit) if (rbxlegacyversion == "delta" or rbxlegacyversion == "delta-gamma" or rbxlegacyversion == "omega" or rbxlegacyversion == "delta-pre-gamma") then assert((type(Port)~="number" or tonumber(Port)~=nil or Port==nil),"CSRun Error: Port must be nil or a number."); local NetworkServer=game:GetService("NetworkServer"); pcall(NetworkServer.Stop,NetworkServer); NetworkServer:Start(Port); game:GetService("Players").MaxPlayers = PlayerLimit game:GetService("Players").PlayerAdded:connect(function(Player) if (game:GetService("Players").NumPlayers > game:GetService("Players").MaxPlayers) then local message = Instance.new("Message") message.Text = "You were kicked. Reason: Too many players on server." message.Parent = Player wait(2) Player:remove() print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: Too many players on server."); else print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' added"); Player:LoadCharacter(); end Player.CharacterAdded:connect(function(char) LoadCharacterNew(newWaitForChild(Player,"Appearance"),Player.Character); end) Player.Changed:connect(function(Property) if (Property=="Character") and (Player.Character~=nil) then local Character=Player.Character; local Humanoid=Character:FindFirstChild("Humanoid"); if (Humanoid~=nil) then Humanoid.Died:connect(function() delay(5,function() Player:LoadCharacter() LoadCharacterNew(newWaitForChild(Player,"Appearance"),Player.Character) end) end) end end end) end) game:GetService("Players").PlayerRemoving:connect(function(Player) print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' leaving") end) game:GetService("RunService"):Run(); if (rbxlegacyversion == "delta-gamma") then game.Workspace:InsertContent("rbxasset://Fonts//Health2010.rbxm"); elseif (rbxlegacyversion == "delta") then game.Workspace:InsertContent("rbxasset://Fonts//Health2011.rbxm"); end pcall(function() game.Close:connect(function() NetworkServer:Stop(); end) end); NetworkServer.IncommingConnection:connect(IncommingConnection); else Server = game:GetService("NetworkServer") RunService = game:GetService("RunService") Server:start(Port, 20) RunService:run(); if (rbxlegacyversion == "gamma") then game.Workspace:InsertContent("rbxasset://Fonts//Health2010.rbxm"); end game:GetService("Players").MaxPlayers = PlayerLimit; game:GetService("Players").PlayerAdded:connect(function(Player) if (game:GetService("Players").NumPlayers > game:GetService("Players").MaxPlayers) then local message = Instance.new("Message") message.Text = "You were kicked. Reason: Too many players on server." message.Parent = Player wait(2) Player:remove() print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: Too many players on server."); else print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' added"); Player:LoadCharacter(); LoadCharacterNew(newWaitForChild(Player,"Appearance"),Player.Character); end while true do wait(0.001) if (Player.Character ~= nil) then if (Player.Character.Humanoid.Health == 0) then wait(5) Player:LoadCharacter() LoadCharacterNew(newWaitForChild(Player,"Appearance"),Player.Character); elseif (Player.Character.Parent == nil) then wait(5) Player:LoadCharacter() -- to make sure nobody is deleted. LoadCharacterNew(newWaitForChild(Player,"Appearance"),Player.Character); end end end end) game:GetService("Players").PlayerRemoving:connect(function(Player) print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' leaving") end) game:GetService("RunService"):Run(); pcall(function() game.Close:connect(function() Server:Stop(); end) end); Server.IncommingConnection:connect(IncommingConnection); end end function CSConnect(UserID,ServerIP,ServerPort,PlayerName,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,Ticket) if (rbxlegacyversion == "delta" or rbxlegacyversion == "delta-gamma" or rbxlegacyversion == "omega" or rbxlegacyversion == "delta-pre-gamma") then pcall(function() game:SetPlaceID(-1, false) end); pcall(function() game:GetService("Players"):SetChatStyle(Enum.ChatStyle.ClassicAndBubble) end); pcall(function() game:GetService("GuiService").Changed:connect(function() pcall(function() game:GetService("GuiService").ShowLegacyPlayerList=true; end); pcall(function() game.CoreGui.RobloxGui.PlayerListScript:Remove(); end); pcall(function() game.CoreGui.RobloxGui.PlayerListTopRightFrame:Remove(); end); pcall(function() game.CoreGui.RobloxGui.BigPlayerListWindowImposter:Remove(); end); pcall(function() game.CoreGui.RobloxGui.BigPlayerlist:Remove(); end); end); end) game:GetService("RunService"):Run(); assert((ServerIP~=nil and ServerPort~=nil),"CSConnect Error: ServerIP and ServerPort must be defined."); local function SetMessage(Message) game:SetMessage(Message); end local Visit,NetworkClient,PlayerSuccess,Player,ConnectionFailedHook=game:GetService("Visit"),game:GetService("NetworkClient"); local function GetClassCount(Class,Parent) local Objects=Parent:GetChildren(); local Number=0; for Index,Object in pairs(Objects) do if (Object.className==Class) then Number=Number+1; end Number=Number+GetClassCount(Class,Object); end return Number; end local function RequestCharacter(Replicator) local Connection; Connection=Player.Changed:connect(function(Property) if (Property=="Character") then game:ClearMessage(); end end) SetMessage("Requesting character..."); Replicator:RequestCharacter(); SetMessage("Waiting for character..."); end local function Disconnection(Peer,LostConnection) SetMessage("You have lost connection to the game"); end local function ConnectionAccepted(Peer,Replicator) Replicator.Disconnection:connect(Disconnection); local RequestingMarker=true; game:SetMessageBrickCount(); local Marker=Replicator:SendMarker(); Marker.Received:connect(function() RequestingMarker=false; RequestCharacter(Replicator); end) while RequestingMarker do Workspace:ZoomToExtents(); wait(0.5); end end local function ConnectionFailed(Peer, Code, why) SetMessage("Failed to connect to the Game. (ID="..Code.." ["..why.."])"); end pcall(function() settings().Diagnostics:LegacyScriptMode(); end); pcall(function() game:SetRemoteBuildMode(true); end); SetMessage("Connecting to server..."); NetworkClient.ConnectionAccepted:connect(ConnectionAccepted); ConnectionFailedHook=NetworkClient.ConnectionFailed:connect(ConnectionFailed); NetworkClient.ConnectionRejected:connect(function() pcall(function() ConnectionFailedHook:disconnect(); end); SetMessage("Failed to connect to the Game. (Connection rejected)"); end) pcall(function() NetworkClient.Ticket=Ticket or ""; end) -- 2008 client has no ticket :O PlayerSuccess,Player=pcall(function() return NetworkClient:PlayerConnect(UserID,ServerIP,ServerPort) end); if (not PlayerSuccess) then SetMessage("Failed to connect to the Game. (Invalid IP Address)"); NetworkClient:Disconnect(); end if (not PlayerSuccess) then local Error,Message=pcall(function() Player=game:GetService("Players"):CreateLocalPlayer(UserID); NetworkClient:Connect(ServerIP,ServerPort); end); if (not Error) then SetMessage("Failed to connect to the Game."); end end pcall(function() Player:SetUnder13(false) end); pcall(function() Player:SetMembershipType(Enum.MembershipType.BuildersClub) end); pcall(function() Player:SetAccountAge(365) end); Player:SetSuperSafeChat(false); Player.CharacterAppearance=0; pcall(function() Player.Name=PlayerName or ""; end); pcall(function() Visit:SetUploadUrl(""); end); game:GetService("Visit"); InitalizeClientAppearance(Player,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID); else pcall(function() game:SetPlaceID(-1, false) end); pcall(function() game:GetService("Players"):SetChatStyle(Enum.ChatStyle.ClassicAndBubble) end); pcall(function() game:GetService("GuiService").Changed:connect(function() pcall(function() game:GetService("GuiService").ShowLegacyPlayerList=true; end); pcall(function() game.CoreGui.RobloxGui.PlayerListScript:Remove(); end); pcall(function() game.CoreGui.RobloxGui.PlayerListTopRightFrame:Remove(); end); pcall(function() game.CoreGui.RobloxGui.BigPlayerListWindowImposter:Remove(); end); pcall(function() game.CoreGui.RobloxGui.BigPlayerlist:Remove(); end); end); end) local suc, err = pcall(function() client = game:GetService("NetworkClient") player = game:GetService("Players"):CreateLocalPlayer(UserID) player:SetSuperSafeChat(false) pcall(function() player:SetUnder13(false) end); pcall(function() player:SetMembershipType(Enum.MembershipType.BuildersClub) end); pcall(function() player:SetAccountAge(365) end); player.CharacterAppearance=0; pcall(function() player.Name=PlayerName or ""; end); game:GetService("Visit"); InitalizeClientAppearance(player,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID); end) local function dieerror(errmsg) game:SetMessage(errmsg) wait(math.huge) end if not suc then dieerror(err) end local function disconnect(peer,lostconnection) game:SetMessage("You have lost connection to the game") end local function connected(url, replicator) replicator.Disconnection:connect(disconnect) local marker = nil local suc, err = pcall(function() game:SetMessageBrickCount() marker = replicator:SendMarker() end) if not suc then dieerror(err) end marker.Received:connect(function() local suc, err = pcall(function() game:ClearMessage() end) if not suc then dieerror(err) end end) end local function rejected() dieerror("Failed to connect to the Game. (Connection rejected)") end local function failed(peer, errcode, why) dieerror("Failed to connect to the Game. (ID="..errcode.." ["..why.."])") end local suc, err = pcall(function() game:SetMessage("Connecting to server..."); client.ConnectionAccepted:connect(connected) client.ConnectionRejected:connect(rejected) client.ConnectionFailed:connect(failed) client:Connect(ServerIP,ServerPort, 0, 20) if (rbxlegacyversion == "pre-alpha" or rbxlegacyversion == "pre-alpha-ext") then game.GuiRoot.MainMenu["Toolbox"]:Remove() game.GuiRoot.MainMenu["Edit Mode"]:Remove() game.GuiRoot.RightPalette.ReportAbuse:Remove() game.GuiRoot.ChatMenuPanel:Remove() else game.GuiRoot.MainMenu["Tools"]:Remove() game.GuiRoot.MainMenu["Insert"]:Remove() end end) if not suc then local x = Instance.new("Message") x.Text = err x.Parent = workspace wait(math.huge) end end end function CSSolo(UserID,PlayerName,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,Ticket) local plr = game.Players:CreateLocalPlayer(UserID); game:GetService("RunService"):run(); if (rbxlegacyversion == "gamma" or rbxlegacyversion == "delta-gamma") then game.Workspace:InsertContent("rbxasset://Fonts//Health2010.rbxm"); elseif (rbxlegacyversion == "delta") then game.Workspace:InsertContent("rbxasset://Fonts//Health2011.rbxm"); end plr.Name = PlayerName; plr:LoadCharacter(); plr.CharacterAppearance=0; InitalizeClientAppearance(plr,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID); LoadCharacterNew(newWaitForChild(plr,"Appearance"),plr.Character); game:GetService("Visit"); while true do wait() if (plr.Character.Humanoid.Health == 0) then wait(5) plr:LoadCharacter() LoadCharacterNew(newWaitForChild(plr,"Appearance"),plr.Character); end end end _G.CSServer=CSServer; _G.CSConnect=CSConnect; _G.CSSolo=CSSolo;