RBXLegacy-src/CSMPFunctions.lua

1218 lines
47 KiB
Lua

--coded by Bitl and Carrot
--stuff was borrowed from RBXBanland, EnergyCell, John, and the RBXPri team
function waitForChild(instance, name) -- for everything else
while not instance:FindFirstChild(name) do
instance.ChildAdded:wait()
end
end
rbxlegacyversion = 0
function SetRBXLegacyVersion(Version)
rbxlegacyversion = Version
if (rbxlegacyversion == 1) then -- Pre Alpha
settings().Rendering.frameRateManager = 2
settings().Rendering.graphicsMode = 2
settings().Network.MaxSendBuffer = 1000000
settings().Network.PhysicsReplicationUpdateRate = 1000000
settings().Network.SendRate = 1000000
settings().Network.PhysicsSend = 1 -- 1==RoundRobin
elseif (rbxlegacyversion == 2) then -- Ext. Pre Alpha
settings().Rendering.frameRateManager = 2
settings().Rendering.graphicsMode = 2
settings().Network.MaxSendBuffer = 1000000
settings().Network.PhysicsReplicationUpdateRate = 1000000
settings().Network.SendRate = 1000000
settings().Network.PhysicsSend = 1 -- 1==RoundRobin
elseif (rbxlegacyversion == 3) then -- Alpha
settings().Rendering.frameRateManager = 2
settings().Network.MaxSendBuffer = 1000000
settings().Network.PhysicsReplicationUpdateRate = 1000000
settings().Network.SendRate = 1000000
settings().Network.PhysicsSend = 1 -- 1==RoundRobin
elseif (rbxlegacyversion == 4) then -- Beta
settings().Rendering.FrameRateManager = 2
settings().Network.SendRate = 30
settings().Network.ReceiveRate = 60
settings().Network.PhysicsSend = 1 -- 1==RoundRobin
elseif (rbxlegacyversion == 5) then -- Beta Pre-Gamma
settings().Rendering.FrameRateManager = 2
settings().Network.DataSendRate = 30
settings().Network.PhysicsSendRate = 20
settings().Network.ReceiveRate = 60
elseif (rbxlegacyversion == 6) then -- Pre-Gamma
settings().Rendering.FrameRateManager = 2
settings().Network.DataSendRate = 30
settings().Network.PhysicsSendRate = 20
settings().Network.ReceiveRate = 60
elseif (rbxlegacyversion == 7) then -- Gamma
settings().Rendering.FrameRateManager = 2
settings().Network.DataSendRate = 30
settings().Network.PhysicsSendRate = 20
settings().Network.ReceiveRate = 60
settings().Diagnostics.LuaRamLimit = 0
pcall(function() game:GetService("ScriptContext").ScriptsDisabled = false end)
pcall(function() settings().Diagnostics:LegacyScriptMode() end)
elseif (rbxlegacyversion == 8) then -- Delta
settings().Rendering.FrameRateManager = 2
settings().Diagnostics.LuaRamLimit = 0
pcall(function() game:GetService("ScriptContext").ScriptsDisabled = false end)
pcall(function() settings().Diagnostics:LegacyScriptMode() end)
coroutine.resume(coroutine.create(function()
local CoreGui = game:GetService("CoreGui")
while not CoreGui:FindFirstChild("RobloxGui") do
CoreGui.ChildAdded:wait()
end
local RobloxGui = CoreGui.RobloxGui
local BottomLeftControl = RobloxGui:FindFirstChild("BottomLeftControl")
local BottomRightControl = RobloxGui:FindFirstChild("BottomRightControl")
local TopLeftControl = RobloxGui:FindFirstChild("TopLeftControl")
local BuildTools = RobloxGui:FindFirstChild("BuildTools")
function makeYRelative() -- 123
BottomLeftControl.SizeConstraint = 2
BottomRightControl.SizeConstraint = 2
if TopLeftControl then TopLeftControl.SizeConstraint = 2
end
if BuildTools then BuildTools.Frame.SizeConstraint = 2
end
BottomLeftControl.Position = UDim2.new(0,0,1,-BottomLeftControl.AbsoluteSize.Y)
BottomRightControl.Position = UDim2.new(1,-BottomRightControl.AbsoluteSize.X,1,-BottomRightControl.AbsoluteSize.Y)
end
function makeXRelative()
loadstring("\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\9\9\9\9\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")()
--[[BottomLeftControl.SizeConstraint = 1
BottomRightControl.SizeConstraint = 1
]]--
if TopLeftControl then TopLeftControl.SizeConstraint = 1
end
if BuildTools then BuildTools.Frame.SizeConstraint = 1
end
BottomLeftControl.Position = UDim2.new(0,0,1,-BottomLeftControl.AbsoluteSize.Y)
BottomRightControl.Position = UDim2.new(1,-BottomRightControl.AbsoluteSize.X,1,-BottomRightControl.AbsoluteSize.Y)
end
local function resize()
if RobloxGui.AbsoluteSize.x > RobloxGui.AbsoluteSize.y then
makeYRelative()
else
makeXRelative()
end
end
RobloxGui.Changed:connect(function(property)
if property == "AbsoluteSize" then
wait()
resize()
end
end)
wait()
resize()
end))
waitForChild(game.GuiRoot,"ScoreHud")
game.GuiRoot.ScoreHud:Remove()
elseif (rbxlegacyversion == 9) then -- Delta Omega
settings().Rendering.FrameRateManager = 2
settings().Diagnostics.LuaRamLimit = 0
pcall(function() game:GetService("ScriptContext").ScriptsDisabled = false end)
pcall(function() settings().Diagnostics:LegacyScriptMode() end)
waitForChild(game.GuiRoot,"ScoreHud")
game.GuiRoot.ScoreHud:Remove()
elseif (rbxlegacyversion == 10) then -- Omega
settings().Rendering.FrameRateManager = 2
settings().Diagnostics.LuaRamLimit = 0
pcall(function() game:GetService("ScriptContext").ScriptsDisabled = false end)
pcall(function() settings().Diagnostics:LegacyScriptMode() end)
--stamper
pcall(function() game:GetService("ScriptContext").ScriptsDisabled = false end)
pcall(function() settings().Diagnostics:LegacyScriptMode() end)
pcall(function() game:GetService("InsertService"):SetBaseSetsUrl("http://www.roblox.com/Game/Tools/InsertAsset.ashx?nsets=10&type=base") end)
pcall(function() game:GetService("InsertService"):SetUserSetsUrl("http://www.roblox.com/Game/Tools/InsertAsset.ashx?nsets=20&type=user&userid=%d") end)
pcall(function() game:GetService("InsertService"):SetCollectionUrl("http://www.roblox.com/Game/Tools/InsertAsset.ashx?sid=%d") end)
pcall(function() game:GetService("InsertService"):SetAssetUrl("http://www.roblox.com/Asset/?id=%d") end)
pcall(function() game:GetService("InsertService"):SetAssetVersionUrl("http://www.roblox.com/Asset/?assetversionid=%d") end)
pcall(function() game:GetService("SocialService"):SetGroupUrl("http://assetgame.roblox.com/Game/LuaWebService/HandleSocialRequest.ashx?method=IsInGroup&playerid=%d&groupid=%d") end)
pcall(function() game:GetService("BadgeService"):SetPlaceId(-1) end)
pcall(function() game:GetService("BadgeService"):SetIsBadgeLegalUrl("") end)
pcall(function() game:GetService("ScriptInformationProvider"):SetAssetUrl("http://www.roblox.com/Asset/") end)
pcall(function() game:GetService("ContentProvider"):SetBaseUrl("http://www.roblox.com/") end)
elseif (rbxlegacyversion == 11) then -- Ultra
settings().Rendering.FrameRateManager = 2
settings().Diagnostics.LuaRamLimit = 0
pcall(function() game:GetService("ScriptContext").ScriptsDisabled = false end)
pcall(function() settings().Diagnostics:LegacyScriptMode() end)
pcall(function() game:GetService("InsertService"):SetBaseSetsUrl("http://www.roblox.com/Game/Tools/InsertAsset.ashx?nsets=10&type=base") end)
pcall(function() game:GetService("InsertService"):SetUserSetsUrl("http://www.roblox.com/Game/Tools/InsertAsset.ashx?nsets=20&type=user&userid=%d") end)
pcall(function() game:GetService("InsertService"):SetCollectionUrl("http://www.roblox.com/Game/Tools/InsertAsset.ashx?sid=%d") end)
pcall(function() game:GetService("InsertService"):SetAssetUrl("http://www.roblox.com/Asset/?id=%d") end)
pcall(function() game:GetService("InsertService"):SetAssetVersionUrl("http://www.roblox.com/Asset/?assetversionid=%d") end)
pcall(function() game:GetService("SocialService"):SetGroupUrl("http://assetgame.roblox.com/Game/LuaWebService/HandleSocialRequest.ashx?method=IsInGroup&playerid=%d&groupid=%d") end)
pcall(function() game:GetService("BadgeService"):SetPlaceId(-1) end)
pcall(function() game:GetService("BadgeService"):SetIsBadgeLegalUrl("") end)
pcall(function() game:GetService("ScriptInformationProvider"):SetAssetUrl("http://www.roblox.com/Asset/") end)
pcall(function() game:GetService("ContentProvider"):SetBaseUrl("http://www.roblox.com/") end)
end
print("RBXLegacy client version '" .. rbxlegacyversion .. "' loaded.")
end
rbxversion = version()
print("ROBLOX Client version '" .. rbxversion .. "' loaded.")
function newWaitForChild(newParent,name) -- for char
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
function LoadCharacterNew(playerApp,newChar,newBackpack)
--authentic roblox style loading
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
newWaitForChild(newVal,"CustomizationType")
local customtype = newVal:FindFirstChild("CustomizationType")
if (customtype.Value == 1) then
pcall(function()
newWaitForChild(newVal,"ColorIndex")
local colorindex = newVal:FindFirstChild("ColorIndex")
charparts[colorindex.Value].BrickColor = newVal.Value
end)
elseif (customtype.Value == 2) then
if (rbxlegacyversion > 1) then
pcall(function()
local newHat = game.Workspace:InsertContent("rbxasset://../../../avatar/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
elseif (customtype.Value == 3) then
if (rbxlegacyversion > 1) then
pcall(function()
local newTShirt = game.Workspace:InsertContent("http://www.roblox.com/asset/?id="..newVal.Value)
if newTShirt[1] then
if newTShirt[1].className == "ShirtGraphic" then
newTShirt[1].Parent = newChar
else
newTShirt[1]:remove()
end
end
end)
end
elseif (customtype.Value == 4) then
if (rbxlegacyversion > 2) then
pcall(function()
local newShirt = game.Workspace:InsertContent("http://www.roblox.com/asset/?id="..newVal.Value)
if newShirt[1] then
if newShirt[1].className == "Shirt" then
newShirt[1].Parent = newChar
else
newShirt[1]:remove()
end
end
end)
end
elseif (customtype.Value == 5) then
if (rbxlegacyversion > 2) then
pcall(function()
local newPants = game.Workspace:InsertContent("http://www.roblox.com/asset/?id="..newVal.Value)
if newPants[1] then
if newPants[1].className == "Pants" then
newPants[1].Parent = newChar
else
newPants[1]:remove()
end
end
end)
end
elseif (customtype.Value == 6) then
if (rbxlegacyversion > 5) then
pcall(function()
local newFace = game.Workspace:InsertContent("rbxasset://../../../avatar/faces/"..newVal.Value)
if newFace[1] then
if newFace[1].className == "Decal" then
newWaitForChild(charparts[1],"face"):remove()
newFace[1].Parent = charparts[1]
newFace[1].Face = "Front"
else
newFace[1]:remove()
end
end
end)
end
elseif (customtype.Value == 7) then
if (rbxlegacyversion > 5) then
pcall(function()
local newPart = game.Workspace:InsertContent("rbxasset://../../../avatar/heads/"..newVal.Value)
if newPart[1] then
if newPart[1].className == "SpecialMesh" or newPart[1].className == "CylinderMesh" or newPart[1].className == "BlockMesh" then
newWaitForChild(charparts[1],"Mesh"):remove()
newPart[1].Parent = charparts[1]
else
newPart[1]:remove()
end
end
end)
end
elseif (customtype.Value == 8) then
if (rbxlegacyversion > 7) then
pcall(function()
local meshindex = newVal:FindFirstChild("MeshIndex")
local newPart = game.Workspace:InsertContent("rbxasset://../../../avatar/bodies/"..meshindex.Value.."/"..newVal.Value)
if newPart[1] then
if newPart[1].className == "SpecialMesh" then
newWaitForChild(newVal,"MeshIndex")
newPart[1].Parent = charparts[meshindex.Value]
else
newPart[1]:remove()
end
end
end)
end
elseif (customtype.Value == 9) then
if (rbxlegacyversion > 7) then
pcall(function()
local newGear = game.Workspace:InsertContent("rbxasset://../../../avatar/gears/"..newVal.Value)
if newGear[1] then
if newGear[1].className == "Tool" then
if (ReadGearInfo(newGear[1], playerApp) == true) then
if (playerApp.StarterGear) then
for _,gearCheck in pairs(playerApp.StarterGear:GetChildren()) do
if (gearCheck ~= nil) then
if (gearCheck:isA("Tool")) then
if (gearCheck.Name ~= newGear[1].Name) then
newGear[1].Parent = playerApp.StarterGear
else
newGear[1]:remove()
end
end
end
end
else
for _,gearCheck in pairs(playerApp.Backpack:GetChildren()) do
if (gearCheck ~= nil) then
if (gearCheck:isA("Tool")) then
if (gearCheck.Name ~= newGear[1].Name) then
newGear[1].Parent = playerApp.Backpack
else
newGear[1]:remove()
end
end
end
end
end
else
newGear[1]:remove()
end
else
newGear[1]:remove()
end
end
end)
end
end
end
end
function ReadGearInfo(newTool,player)
if newTool.className == "Tool" then
for _,GearVal in pairs(newTool:GetChildren()) do
newWaitForChild(GearVal,"GearType")
local GearType = newTool:FindFirstChild("GearType")
--GearType must be an IntBool. This must also be placed in the root of the tool.
newWaitForChild(game.Lighting,"AllowedGearTypes")
if (GearType == 1) then
if (game.Lighting.AllowedGearTypes.Melee == true) then
return true
end
elseif (GearType == 2) then
if (game.Lighting.AllowedGearTypes.PowerUp == true) then
return true
end
elseif (GearType == 3) then
if (game.Lighting.AllowedGearTypes.Ranged == true) then
return true
end
elseif (GearType == 4) then
if (game.Lighting.AllowedGearTypes.Navigation == true) then
return true
end
elseif (GearType == 5) then
if (game.Lighting.AllowedGearTypes.Explosives == true) then
return true
end
elseif (GearType == 6) then
if (game.Lighting.AllowedGearTypes.Musical == true) then
return true
end
elseif (GearType == 7) then
if (game.Lighting.AllowedGearTypes.Social == true) then
return true
end
elseif (GearType == 8) then
if (game.Lighting.AllowedGearTypes.Transport == true) then
return true
end
elseif (GearType == 9) then
if (game.Lighting.AllowedGearTypes.Building == true) then
return true
end
end
end
else
return false
end
end
function InitalizeClientAppearance(Player,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID,HeadID,TorsoID,RArmID,LArmID,RLegID,LLegID,Gear1,Gear2,Gear3)
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)
BodyColor.Name = "HeadColor (ID: "..HeadColorID..")"
else
BodyColor.Value = BrickColor.new(1)
BodyColor.Name = "HeadColor (ID: 1)"
end
elseif (i == 2) then
if (TorsoColorID ~= nil) then
BodyColor.Value = BrickColor.new(TorsoColorID)
BodyColor.Name = "TorsoColor (ID: "..TorsoColorID..")"
else
BodyColor.Value = BrickColor.new(1)
BodyColor.Name = "TorsoColor (ID: 1)"
end
elseif (i == 3) then
if (LeftArmColorID ~= nil) then
BodyColor.Value = BrickColor.new(LeftArmColorID)
BodyColor.Name = "LeftArmColor (ID: "..LeftArmColorID..")"
else
BodyColor.Value = BrickColor.new(1)
BodyColor.Name = "LeftArmColor (ID: 1)"
end
elseif (i == 4) then
if (RightArmColorID ~= nil) then
BodyColor.Value = BrickColor.new(RightArmColorID)
BodyColor.Name = "RightArmColor (ID: "..RightArmColorID..")"
else
BodyColor.Value = BrickColor.new(1)
BodyColor.Name = "RightArmColor (ID: 1)"
end
elseif (i == 5) then
if (LeftLegColorID ~= nil) then
BodyColor.Value = BrickColor.new(LeftLegColorID)
BodyColor.Name = "LeftLegColor (ID: "..LeftLegColorID..")"
else
BodyColor.Value = BrickColor.new(1)
BodyColor.Name = "LeftLegColor (ID: 1)"
end
elseif (i == 6) then
if (RightLegColorID ~= nil) then
BodyColor.Value = BrickColor.new(RightLegColorID)
BodyColor.Name = "RightLegColor (ID: "..RightLegColorID..")"
else
BodyColor.Value = BrickColor.new(1)
BodyColor.Name = "RightLegColor (ID: 1)"
end
end
local typeValue = Instance.new("NumberValue")
typeValue.Name = "CustomizationType"
typeValue.Parent = BodyColor
typeValue.Value = 1
local indexValue = Instance.new("NumberValue")
indexValue.Name = "ColorIndex"
indexValue.Parent = BodyColor
indexValue.Value = i
end
--HATS
for i=1,3,1 do
local newHat = Instance.new("StringValue",newCharApp)
if (i == 1) then
if (Hat1ID ~= nil) then
newHat.Value = Hat1ID
newHat.Name = Hat1ID
else
newHat.Value = "NoHat.rbxm"
newHat.Name = "NoHat.rbxm"
end
elseif (i == 2) then
if (Hat2ID ~= nil) then
newHat.Value = Hat2ID
newHat.Name = Hat2ID
else
newHat.Value = "NoHat.rbxm"
newHat.Name = "NoHat.rbxm"
end
elseif (i == 3) then
if (Hat3ID ~= 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
--T-SHIRT
local newTShirt = Instance.new("StringValue",newCharApp)
if (TShirtID ~= nil or TShirtID ~= "0") then
newTShirt.Value = TShirtID
else
newTShirt.Value = "0"
end
newTShirt.Name = "T-Shirt"
local typeValue = Instance.new("NumberValue")
typeValue.Name = "CustomizationType"
typeValue.Parent = newTShirt
typeValue.Value = 3
--SHIRT
local newShirt = Instance.new("StringValue",newCharApp)
if (ShirtID ~= nil or ShirtID ~= "0") then
newShirt.Value = ShirtID
else
newShirt.Value = "0"
end
newShirt.Name = "Shirt"
local typeValue = Instance.new("NumberValue")
typeValue.Name = "CustomizationType"
typeValue.Parent = newShirt
typeValue.Value = 4
--PANTS
local newPants = Instance.new("StringValue",newCharApp)
if (PantsID ~= nil or PantsID ~= "0") then
newPants.Value = PantsID
else
newPants.Value = "0"
end
newPants.Name = "Pants"
local typeValue = Instance.new("NumberValue")
typeValue.Name = "CustomizationType"
typeValue.Parent = newPants
typeValue.Value = 5
--FACE
local newFace = Instance.new("StringValue",newCharApp)
if (FaceID ~= nil) then
newFace.Value = FaceID
newFace.Name = FaceID
else
newFace.Value = "DefaultFace.rbxm"
newFace.Name = "DefaultFace.rbxm"
end
local typeValue = Instance.new("NumberValue")
typeValue.Name = "CustomizationType"
typeValue.Parent = newFace
typeValue.Value = 6
--HEADS
local newHead = Instance.new("StringValue",newCharApp)
if (HeadID ~= nil) then
newHead.Value = HeadID
newHead.Name = HeadID
else
newHead.Value = "DefaultHead.rbxm"
newHead.Name = "DefaultHead.rbxm"
end
local typeValue = Instance.new("NumberValue")
typeValue.Name = "CustomizationType"
typeValue.Parent = newHead
typeValue.Value = 7
--PACKAGES
for i=2,5,1 do
local BodyMesh = Instance.new("StringValue",newCharApp)
local BodyMesh2 = Instance.new("StringValue",newCharApp)
local BodyMesh3 = Instance.new("StringValue",newCharApp)
local BodyMesh4 = Instance.new("StringValue",newCharApp)
local BodyMesh5 = Instance.new("StringValue",newCharApp)
if (i == 2) then
if (TorsoID ~= nil) then
BodyMesh.Value = TorsoID
BodyMesh.Name = TorsoID
else
BodyMesh.Value = "DefaultTorso.rbxm"
BodyMesh.Name = "DefaultTorso.rbxm"
end
elseif (i == 3) then
if (LArmID ~= nil) then
BodyMesh2.Value = LArmID
BodyMesh2.Name = LArmID
else
BodyMesh2.Value = "DefaultLArm.rbxm"
BodyMesh2.Name = "DefaultLArm.rbxm"
end
elseif (i == 4) then
if (RArmID ~= nil) then
BodyMesh3.Value = RArmID
BodyMesh3.Name = RArmID
else
BodyMesh3.Value = "DefaultRArm.rbxm"
BodyMesh3.Name = "DefaultRArm.rbxm"
end
elseif (i == 5) then
if (LLegID ~= nil) then
BodyMesh4.Value = LLegID
BodyMesh4.Name = LLegID
else
BodyMesh4.Value = "DefaultLLeg.rbxm"
BodyMesh4.Name = "DefaultLLeg.rbxm"
end
elseif (i == 6) then
if (RLegID ~= nil) then
BodyMesh5.Value = RLegID
BodyMesh5.Name = RLegID
else
BodyMesh5.Value = "DefaultRLeg.rbxm"
BodyMesh5.Name = "DefaultRLeg.rbxm"
end
end
local typeValue = Instance.new("NumberValue")
typeValue.Name = "CustomizationType"
typeValue.Parent = BodyMesh
typeValue.Value = 8
local typeValue2 = Instance.new("NumberValue")
typeValue2.Name = "CustomizationType"
typeValue2.Parent = BodyMesh2
typeValue2.Value = 8
local typeValue3 = Instance.new("NumberValue")
typeValue3.Name = "CustomizationType"
typeValue3.Parent = BodyMesh3
typeValue3.Value = 8
local typeValue4 = Instance.new("NumberValue")
typeValue4.Name = "CustomizationType"
typeValue4.Parent = BodyMesh4
typeValue4.Value = 8
local typeValue5 = Instance.new("NumberValue")
typeValue5.Name = "CustomizationType"
typeValue5.Parent = BodyMesh5
typeValue5.Value = 8
local indexValue = Instance.new("NumberValue")
indexValue.Name = "MeshIndex"
indexValue.Parent = BodyMesh
indexValue.Value = i
local indexValue2 = Instance.new("NumberValue")
indexValue2.Name = "MeshIndex"
indexValue2.Parent = BodyMesh2
indexValue2.Value = i
local indexValue3 = Instance.new("NumberValue")
indexValue3.Name = "MeshIndex"
indexValue3.Parent = BodyMesh3
indexValue3.Value = i
local indexValue4 = Instance.new("NumberValue")
indexValue4.Name = "MeshIndex"
indexValue4.Parent = BodyMesh4
indexValue4.Value = i
local indexValue5 = Instance.new("NumberValue")
indexValue5.Name = "MeshIndex"
indexValue5.Parent = BodyMesh5
indexValue5.Value = i
end
--GEARS
for i=1,3,1 do
local newGear = Instance.new("StringValue",newCharApp)
if (i == 1) then
if (Gear1 ~= nil) then
newGear.Value = Gear1
newGear.Name = Gear1
else
newGear.Value = "NoGear.rbxm"
newGear.Name = "NoGear.rbxm"
end
elseif (i == 2) then
if (Gear2 ~= nil) then
newGear.Value = Gear2
newGear.Name = Gear2
else
newGear.Value = "NoGear.rbxm"
newGear.Name = "NoGear.rbxm"
end
elseif (i == 3) then
if (Gear3 ~= nil) then
newGear.Value = Gear3
newGear.Name = Gear3
else
newGear.Value = "NoGear.rbxm"
newGear.Name = "NoGear.rbxm"
end
end
local typeValue = Instance.new("NumberValue")
typeValue.Name = "CustomizationType"
typeValue.Parent = newGear
typeValue.Value = 9
end
end
function CSServer(Port,PlayerLimit,RespawnTime,IsPersonalServer,ChatType,HostID,Blacklist1,Blacklist2,Blacklist3,Blacklist4,Blacklist5,Blacklist6,Blacklist7,Blacklist8,MeleeGT,PowerUpGT,RangedGT,NavigationGT,ExplosivesGT,MusicalGT,SocialGT,TransportGT,BuildingGT) -- GT is Gear Type, not Graphictoria
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")
local RunService=game:GetService("RunService")
pcall(NetworkServer.Stop,NetworkServer)
if (rbxlegacyversion >= 8) then
NetworkServer:Start(Port)
RunService:Run()
else
NetworkServer:start(Port, 20)
RunService:run()
end
game.Workspace:InsertContent("rbxasset://fonts/libraries.rbxm")
game:GetService("Players").PlayerAdded:connect(function(Player)
if (rbxlegacyversion < 9) then
game:GetService("Players").MaxPlayers = PlayerLimit
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.")
end
end
if (Player.userId == Blacklist1 or Player.userId == Blacklist2 or Player.userId == Blacklist3 or Player.userId == Blacklist4 or Player.userId == Blacklist5 or Player.userId == Blacklist6 or Player.userId == Blacklist7 or Player.userId == Blacklist8) then
local message = Instance.new("Message")
message.Text = "You have been blacklisted from this server."
message.Parent = Player
wait(2)
Player:remove()
print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: Player is banned from playing this server.")
--[[elseif (Player.Name == "QuackIAttack" or Player.Name == "connor" or Player.Name == "CPunch" or Player.Name == "Carrot" or Player.Name == "Bitl" or Player.Name == "khanglegos" or Player.Name == "Nukley" or Player.Name == "OliverA" or Player.Name == "coke" or Player.Name == "Peridorky" or Player.Name == "Raymonf" or Player.Name == "romulo27" or Player.Name == "TheLivingBee" or Player.Name == "robloxtester" or Player.Name == "winsupermario1234" and Player.isAdmin == false) then
wait(2)
Player:Remove()
print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: Being an impostor")]]
else
print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' added")
Player:LoadCharacter()
if (rbxlegacyversion < 8) then
LoadCharacterNew(newWaitForChild(Player,"Appearance"),Player.Character,Player.Backpack)
end
end
if (rbxlegacyversion >= 8) then
Player.CharacterAdded:connect(function(char)
LoadCharacterNew(newWaitForChild(Player,"Appearance"),Player.Character,Player.Backpack)
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(RespawnTime,function() Player:LoadCharacter() LoadCharacterNew(newWaitForChild(Player,"Appearance"),Player.Character,Player.Backpack) end) end)
end
end
end)
else
while true do
wait(0.001)
if (Player.Character ~= nil) then
if (Player.Character.Humanoid.Health == 0) then
wait(RespawnTime)
Player:LoadCharacter()
LoadCharacterNew(newWaitForChild(Player,"Appearance"),Player.Character,Player.Backpack)
elseif (Player.Character.Parent == nil) then
wait(RespawnTime)
Player:LoadCharacter() -- to make sure nobody is deleted.
LoadCharacterNew(newWaitForChild(Player,"Appearance"),Player.Character,Player.Backpack)
end
end
end
end
end)
game:GetService("Players").PlayerRemoving:connect(function(Player)
print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' leaving")
end)
pcall(function() game.Close:connect(function() NetworkServer:Stop() end) end)
NetworkServer.IncommingConnection:connect(IncommingConnection)
-- perbsosnal sebrs!
if IsPersonalServer == true then
pcall(function() game:GetService("PersonalServerService") end)
pcall(function() game.IsPersonalServer(true) end)
end
local HostIDValue = Instance.new("StringValue")
HostIDValue.Parent = game.Lighting
HostIDValue.Name = "HostID"
HostIDValue.Value = "" .. HostID .. ""
-- gear types!!!!!!!
local AllowedGearTypes = Instance.new("StringValue")
AllowedGearTypes.Name = "AllowedGearTypes"
AllowedGearTypes.Parent = game.Lighting
-- ok, lets register our s e p e r a t e g e a r s
local MeleeGTR = Instance.new("BoolValue")
MeleeGTR.Parent = AllowedGearTypes
MeleeGTR.Name = "Melee"
MeleeGTR.Value = MeleeGT
local PowerUpGTR = Instance.new("BoolValue")
PowerUpGTR.Parent = AllowedGearTypes
PowerUpGTR.Name = "PowerUp"
PowerUpGTR.Value = PowerUpGT
local RangedGTR = Instance.new("BoolValue")
RangedGTR.Parent = AllowedGearTypes
RangedGTR.Name = "Ranged"
RangedGTR.Value = RangedGT
local NavigationGTR = Instance.new("BoolValue")
NavigationGTR.Parent = AllowedGearTypes
NavigationGTR.Name = "Navigation"
NavigationGTR.Value = NavigationGT
local ExplosivesGTR = Instance.new("BoolValue")
ExplosivesGTR.Parent = AllowedGearTypes
ExplosivesGTR.Name = "Explosives"
ExplosivesGTR.Value = ExplosivesGT
local MusicalGTR = Instance.new("BoolValue")
MusicalGTR.Parent = AllowedGearTypes
MusicalGTR.Name = "Musical"
MusicalGTR.Value = MusicalGT
local SocialGTR = Instance.new("BoolValue")
SocialGTR.Parent = AllowedGearTypes
SocialGTR.Name = "Social"
SocialGTR.Value = SocialGT
local TransportGTR = Instance.new("BoolValue")
TransportGTR.Parent = AllowedGearTypes
TransportGTR.Name = "Transport"
TransportGTR.Value = TransportGT
local BuildingGTR = Instance.new("BoolValue")
BuildingGTR.Parent = AllowedGearTypes
BuildingGTR.Name = "Building"
BuildingGTR.Value = BuildingGT
-- chat types
if rbxlegacyversion >= 7 then
if ChatType == "Both" then
pcall(function() game:GetService("Players"):SetChatStyle(Enum.ChatStyle.ClassicAndBubble) end)
elseif ChatType == "Classic" then
pcall(function() game:GetService("Players"):SetChatStyle(Enum.ChatStyle.Classic) end)
elseif ChatType == "Bubble" then
pcall(function() game:GetService("Players"):SetChatStyle(Enum.ChatStyle.Bubble) end)
end
end
end
function CSConnect(UserID,ServerIP,ServerPort,PlayerName,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID,HeadID,TorsoID,RArmID,LArmID,RLegID,LLegID,Gear1,Gear2,Gear3,IconType,IsAdminUser,Ticket)
if (rbxlegacyversion >= 8) then
pcall(function() game:SetPlaceID(-1, false) 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)
if (rbxlegacyversion >= 8) then
if (IconType == "BC") then
Player:SetMembershipType(Enum.MembershipType.BuildersClub)
elseif (IconType == "TBC") then
Player:SetMembershipType(Enum.MembershipType.TurboBuildersClub)
elseif (IconType == "OBC") then
Player:SetMembershipType(Enum.MembershipType.OutrageousBuildersClub)
elseif (IconType == "NBC") then
Player:SetMembershipType(Enum.MembershipType.None)
end
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")
if (rbxlegacyversion == 8) then
game.CoreGui.RobloxGui.TopLeftControl.Help:Remove()
elseif (rbxlegacyversion > 8) then
game.CoreGui.RobloxGui.ControlFrame.BottomRightControl.Help:Remove()
game.CoreGui.RobloxGui.ControlFrame.BottomRightControl.ReportAbuse:Remove()
game.CoreGui.RobloxGui.ControlFrame.BottomRightControl.RecordToggle:Remove()
game.CoreGui.RobloxGui.ControlFrame.BottomRightControl.Screenshot:Remove()
game.CoreGui.RobloxGui.ControlFrame.BottomRightControl.ToggleFullScreen:Remove()
game.CoreGui.RobloxGui.ControlFrame.BottomLeftControl.TogglePlayMode:Remove()
game.CoreGui.RobloxGui.ControlFrame.BottomLeftControl.Exit:Remove()
-- set up listeners for type of mouse mode
waitForChild(Player,"PlayerGui")
waitForChild(Player.PlayerGui,"UserSettingsShield")
waitForChild(Player.PlayerGui.UserSettingsShield,"Settings")
waitForChild(Player.PlayerGui.UserSettingsShield.Settings,"SettingsStyle")
waitForChild(Player.PlayerGui.UserSettingsShield.Settings.SettingsStyle,"GameSettingsMenu")
waitForChild(Player.PlayerGui.UserSettingsShield.Settings.SettingsStyle.GameSettingsMenu, "CameraField")
waitForChild(Player.PlayerGui.UserSettingsShield.Settings.SettingsStyle.GameSettingsMenu.CameraField, "DropDownMenuButton")
UserSettings().GameSettings.ControlMode.Changed:connect(function()
if UserSettings().GameSettings.ControlMode == Enum.ControlMode["MouseShiftLock"] then
if game.CoreGui.RobloxGui.ControlFrame.BottomLeftControl.MouseLockLabel.Visible == false then
game.CoreGui.RobloxGui.ControlFrame.BottomLeftControl.MouseLockLabel.Visible = true
end
end
if UserSettings().GameSettings.ControlMode == Enum.ControlMode["Classic"] then
if game.CoreGui.RobloxGui.ControlFrame.BottomLeftControl.MouseLockLabel.Visible == true then
game.CoreGui.RobloxGui.ControlFrame.BottomLeftControl.MouseLockLabel.Visible = false
end
end
end)
end
if (rbxlegacyversion > 8) then
Player.CanLoadCharacterAppearance = false
end
InitalizeClientAppearance(Player,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID,HeadID,TorsoID,RArmID,LArmID,RLegID,LLegID,Gear1,Gear2,Gear3)
--[[if (Player.Name == "QuackIAttack" or Player.Name == "CPunch" or Player.Name == "connor" or Player.Name == "Carrot" or Player.Name == "Bitl" or Player.Name == "khanglegos" or Player.Name == "Nukley" or Player.Name == "OliverA" or Player.Name == "coke" or Player.Name == "Peridorky" or Player.Name == "Raymonf" or Player.Name == "romulo27" or Player.Name == "TheLivingBee" or Player.Name == "robloxtester" or Player.Name == "winsupermario1234" and IsAdminUser == false) then
game:SetMessage("Kicked for impersonating an administrator.")
Player:Remove()
end]]
local isAdmin = Instance.new("BoolValue")
isAdmin.Parent = Player
isAdmin.Name = "isAdmin"
isAdmin.Value = IsAdminUser
else
pcall(function() game:SetPlaceID(-1, false) 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: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,TShirtID,ShirtID,PantsID,FaceID,HeadID,TorsoID,RArmID,LArmID,RLegID,LLegID,Gear1,Gear2,Gear3)
--[[if (player.Name == "QuackIAttack" or player.Name == "CPunch" or player.Name == "connor" or player.Name == "Carrot" or player.Name == "Bitl" or player.Name == "khanglegos" or player.Name == "Nukley" or player.Name == "OliverA" or player.Name == "coke" or player.Name == "Peridorky" or player.Name == "Raymonf" or player.Name == "romulo27" or player.Name == "TheLivingBee" or player.Name == "robloxtester" or player.Name == "winsupermario1234" and IsAdminUser == false) then
game:SetMessage("Kicked for impersonating an administrator.")
player:Remove()
end]]
local isAdmin = Instance.new("BoolValue")
isAdmin.Parent = player
isAdmin.Name = "isAdmin"
isAdmin.Value = IsAdminUser
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 == 1) then
game.GuiRoot.MainMenu["Toolbox"]:Remove()
game.GuiRoot.MainMenu["Edit Mode"]:Remove()
game.GuiRoot.ChatMenuPanel:Remove()
game.GuiRoot.RightPalette.ReportAbuse:Remove()
elseif (rbxlegacyversion == 2) then
game.GuiRoot.ChatMenuPanel:Remove()
game.GuiRoot.RightPalette.ReportAbuse: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,TShirtID,ShirtID,PantsID,FaceID,HeadID,TorsoID,RArmID,LArmID,RLegID,LLegID,Gear1,Gear2,Gear3,IconType,MeleeGT,PowerUpGT,RangedGT,NavigationGT,ExplosivesGT,MusicalGT,SocialGT,TransportGT,BuildingGT)
if (rbxlegacyversion > 8) then
game:GetService("RunService"):Run()
else
game:GetService("RunService"):run()
end
game.Workspace:InsertContent("rbxasset://fonts//libraries.rbxm")
if (rbxlegacyversion == 10) then
waitForChild(game.StarterGui,"Playerlist")
waitForChild(game.StarterGui,"Menu")
waitForChild(game.StarterGui,"Backpack")
waitForChild(game.StarterGui,"Dialogs")
waitForChild(game.StarterGui,"Health")
waitForChild(game.StarterGui,"Notifications")
game.StarterGui.Menu.Workaround:remove()
elseif (rbxlegacyversion == 11) then
waitForChild(game.StarterGui,"Playerlist")
waitForChild(game.StarterGui,"Menu")
waitForChild(game.StarterGui,"Backpack")
waitForChild(game.StarterGui,"Dialogs")
waitForChild(game.StarterGui,"Health")
waitForChild(game.StarterGui,"Notifications")
waitForChild(game.StarterGui,"Chat")
game.StarterGui.Menu.Workaround:remove()
elseif (rbxlegacyversion == 7) then
waitForChild(game.StarterGui,"Health")
game.StarterGui.Health.Workaround:remove()
end
-- gear types!!!!!!!
local AllowedGearTypes = Instance.new("StringValue")
AllowedGearTypes.Name = "AllowedGearTypes"
AllowedGearTypes.Parent = game.Lighting
-- ok, lets register our s e p e r a t e g e a r s
local MeleeGTR = Instance.new("BoolValue")
MeleeGTR.Parent = AllowedGearTypes
MeleeGTR.Name = "Melee"
MeleeGTR.Value = MeleeGT
local PowerUpGTR = Instance.new("BoolValue")
PowerUpGTR.Parent = AllowedGearTypes
PowerUpGTR.Name = "PowerUp"
PowerUpGTR.Value = PowerUpGT
local RangedGTR = Instance.new("BoolValue")
RangedGTR.Parent = AllowedGearTypes
RangedGTR.Name = "Ranged"
RangedGTR.Value = RangedGT
local NavigationGTR = Instance.new("BoolValue")
NavigationGTR.Parent = AllowedGearTypes
NavigationGTR.Name = "Navigation"
NavigationGTR.Value = NavigationGT
local ExplosivesGTR = Instance.new("BoolValue")
ExplosivesGTR.Parent = AllowedGearTypes
ExplosivesGTR.Name = "Explosives"
ExplosivesGTR.Value = ExplosivesGT
local MusicalGTR = Instance.new("BoolValue")
MusicalGTR.Parent = AllowedGearTypes
MusicalGTR.Name = "Musical"
MusicalGTR.Value = MusicalGT
local SocialGTR = Instance.new("BoolValue")
SocialGTR.Parent = AllowedGearTypes
SocialGTR.Name = "Social"
SocialGTR.Value = SocialGT
local TransportGTR = Instance.new("BoolValue")
TransportGTR.Parent = AllowedGearTypes
TransportGTR.Name = "Transport"
TransportGTR.Value = TransportGT
local BuildingGTR = Instance.new("BoolValue")
BuildingGTR.Parent = AllowedGearTypes
BuildingGTR.Name = "Building"
BuildingGTR.Value = BuildingGT
local plr = game.Players:CreateLocalPlayer(UserID)
plr.Name = PlayerName
plr:LoadCharacter()
if (rbxlegacyversion == 8) then
game.CoreGui.RobloxGui.TopLeftControl.Help:Remove()
elseif (rbxlegacyversion > 8) then
game.CoreGui.RobloxGui.ControlFrame.BottomRightControl.Help:Remove()
game.CoreGui.RobloxGui.ControlFrame.BottomRightControl.ReportAbuse:Remove()
game.CoreGui.RobloxGui.ControlFrame.BottomRightControl.RecordToggle:Remove()
game.CoreGui.RobloxGui.ControlFrame.BottomRightControl.Screenshot:Remove()
game.CoreGui.RobloxGui.ControlFrame.BottomRightControl.ToggleFullScreen:Remove()
game.CoreGui.RobloxGui.ControlFrame.BottomLeftControl.TogglePlayMode:Remove()
game.CoreGui.RobloxGui.ControlFrame.BottomLeftControl.Exit:Remove()
-- set up listeners for type of mouse mode
waitForChild(plr,"PlayerGui")
waitForChild(plr.PlayerGui,"UserSettingsShield")
waitForChild(plr.PlayerGui.UserSettingsShield,"Settings")
waitForChild(plr.PlayerGui.UserSettingsShield.Settings,"SettingsStyle")
waitForChild(plr.PlayerGui.UserSettingsShield.Settings.SettingsStyle,"GameSettingsMenu")
waitForChild(plr.PlayerGui.UserSettingsShield.Settings.SettingsStyle.GameSettingsMenu, "CameraField")
waitForChild(plr.PlayerGui.UserSettingsShield.Settings.SettingsStyle.GameSettingsMenu.CameraField, "DropDownMenuButton")
UserSettings().GameSettings.ControlMode.Changed:connect(function()
if UserSettings().GameSettings.ControlMode == Enum.ControlMode["MouseShiftLock"] then
if game.CoreGui.RobloxGui.ControlFrame.BottomLeftControl.MouseLockLabel.Visible == false then
game.CoreGui.RobloxGui.ControlFrame.BottomLeftControl.MouseLockLabel.Visible = true
end
end
if UserSettings().GameSettings.ControlMode == Enum.ControlMode["Classic"] then
if game.CoreGui.RobloxGui.ControlFrame.BottomLeftControl.MouseLockLabel.Visible == true then
game.CoreGui.RobloxGui.ControlFrame.BottomLeftControl.MouseLockLabel.Visible = false
end
end
end)
end
pcall(function() plr:SetUnder13(false) end)
if (rbxlegacyversion >= 8) then
if (IconType == "BC") then
plr:SetMembershipType(Enum.MembershipType.BuildersClub)
elseif (IconType == "TBC") then
plr:SetMembershipType(Enum.MembershipType.TurboBuildersClub)
elseif (IconType == "OBC") then
plr:SetMembershipType(Enum.MembershipType.OutrageousBuildersClub)
elseif (IconType == "NBC") then
plr:SetMembershipType(Enum.MembershipType.None)
end
end
pcall(function() plr:SetAccountAge(365) end)
plr.CharacterAppearance=0
if (rbxlegacyversion > 8) then
plr.CanLoadCharacterAppearance = false
end
InitalizeClientAppearance(plr,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID,HeadID,TorsoID,RArmID,LArmID,RLegID,LLegID,Gear1,Gear2,Gear3)
LoadCharacterNew(newWaitForChild(plr,"Appearance"),plr.Character,plr.Backpack)
game:GetService("Visit")
if (rbxlegacyversion >= 8) then
if (plr.Character ~= nil) then
local Character=plr.Character
local Humanoid=Character:FindFirstChild("Humanoid")
if (Humanoid~=nil) then
Humanoid.Died:connect(function() delay(5,function() plr:LoadCharacter() LoadCharacterNew(newWaitForChild(plr,"Appearance"),plr.Character,plr.Backpack) end) end)
end
end
else
while true do
wait(0.001)
if (Player.Character ~= nil) then
if (Player.Character.Humanoid.Health == 0) then
wait(RespawnTime)
Player:LoadCharacter()
LoadCharacterNew(newWaitForChild(Player,"Appearance"),Player.Character,Player.Backpack)
elseif (Player.Character.Parent == nil) then
wait(RespawnTime)
Player:LoadCharacter() -- to make sure nobody is deleted.
LoadCharacterNew(newWaitForChild(Player,"Appearance"),Player.Character,Player.Backpack)
end
end
end
end
end
function CS3DView(UserID,PlayerName,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID,HeadID,TorsoID,RArmID,LArmID,RLegID,LLegID,Gear1,Gear2,Gear3,IconType)
rbxlegacyversion = 8
settings().Rendering.FrameRateManager = 2
game:GetService("RunService"):run()
local plr = game.Players:CreateLocalPlayer(UserID)
plr.Name = PlayerName
plr:LoadCharacter()
pcall(function() plr:SetUnder13(false) end)
pcall(function() plr:SetSuperSafeChat(true) end)
pcall(function() plr:SetAccountAge(365) end)
plr.CharacterAppearance=0
game.CoreGui.RobloxGui:Remove()
game.GuiRoot.ScoreHud:Remove()
game.GuiRoot.ChatHud:Remove()
game.GuiRoot.ChatMenuPanel:Remove()
if (plr.PlayerGui:FindFirstChild("HealthGUI")) then
plr.PlayerGui.HealthGUI:Remove()
end
pcall(function() game:GetService("ScriptContext").ScriptsDisabled = true end)
if plr.Character:FindFirstChild("Animate") then
plr.Character.Animate:Remove()
end
InitalizeClientAppearance(plr,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID,HeadID,TorsoID,RArmID,LArmID,RLegID,LLegID,Gear1,Gear2,Gear3)
LoadCharacterNew(newWaitForChild(plr,"Appearance"),plr.Character,plr.Backpack)
wait(1)
game:GetService("NetworkClient")
end
_G.SetRBXLegacyVersion=SetRBXLegacyVersion
_G.CSServer=CSServer
_G.CSConnect=CSConnect
_G.CSSolo=CSSolo
_G.CS3DView=CS3DView