Removed redundant "Shaders" clients. Optimized kick functionality.

This commit is contained in:
Bitl 2024-05-05 17:13:51 -07:00
parent 683d779b94
commit da060d83a6
24 changed files with 87 additions and 2212 deletions

View File

@ -17,10 +17,12 @@ Enhancements:
- The Dependency Installer will require admin permissions by default, allowing all installers to run with admin permissions, making it quicker to install each dependency.
- Added support for more client APIs in the Web Proxy.
- Losing connection from servers will now automatically close the client.
Items:
Hats:
- Cat Ears
- Improved player kick function.
- Removed the following redundant clients to save space:
2006S-Shaders
2007E-Shaders
2007M-Shaders
- 2009E-HD Clients can now join 2009E servers and vice versa.
Fixes:
- Fixed a bug where "Reset Colors" would reset the entire outfit.
@ -33,6 +35,11 @@ Fixes:
- Removed the ShadersCompatibility plugin due to security issues.
- Fixed issues when creating reskins of certain hats.
- Fixed a crash that would occur if 2 map files were in the same subfolder.
Items:
Hats:
- Cat Ears
- Old Default Head (Replica)
---------------------------------------------------------------------------
Continuation of 2.0 updates.
---------------------------------------------------------------------------

View File

@ -4,11 +4,8 @@ del /S *.log
del /S *.bak
del /s /q clients\2007E\content\scripts\CSMPBoot.lua
del /s /q clients\2007E-Shaders\content\scripts\CSMPBoot.lua
del /s /q clients\2007M\content\scripts\CSMPBoot.lua
del /s /q clients\2007M-Shaders\content\scripts\CSMPBoot.lua
del /s /q clients\2006S\content\scripts\CSMPBoot.lua
del /s /q clients\2006S-Shaders\content\scripts\CSMPBoot.lua
del /s /q clients\ClientScriptTester\content\scripts\CSMPBoot.lua
del /s /q clients\2006S\ReShade.ini
@ -17,36 +14,18 @@ del /s /q clients\2006S\opengl32.dll
del /s /q clients\2006S\DefaultPreset.ini
del /s /q clients\2006S\content\temp.rbxl
del /s /q clients\2006S-Shaders\ReShade.ini
del /s /q clients\2006S-Shaders\OPENGL32.log
del /s /q clients\2006S-Shaders\opengl32.dll
del /s /q clients\2006S-Shaders\DefaultPreset.ini
del /s /q clients\2006S-Shaders\content\temp.rbxl
del /s /q clients\2007E\ReShade.ini
del /s /q clients\2007E\OPENGL32.log
del /s /q clients\2007E\opengl32.dll
del /s /q clients\2007E\DefaultPreset.ini
del /s /q clients\2007E\content\temp.rbxl
del /s /q clients\2007E-Shaders\ReShade.ini
del /s /q clients\2007E-Shaders\OPENGL32.log
del /s /q clients\2007E-Shaders\opengl32.dll
del /s /q clients\2007E-Shaders\DefaultPreset.ini
del /s /q clients\2007E-Shaders\content\temp.rbxl
del /s /q clients\2007M\ReShade.ini
del /s /q clients\2007M\OPENGL32.log
del /s /q clients\2007M\opengl32.dll
del /s /q clients\2007M\DefaultPreset.ini
del /s /q clients\2007M\content\temp.rbxl
del /s /q clients\2007M-Shaders\ReShade.ini
del /s /q clients\2007M-Shaders\OPENGL32.log
del /s /q clients\2007M-Shaders\opengl32.dll
del /s /q clients\2007M-Shaders\DefaultPreset.ini
del /s /q clients\2007M-Shaders\content\temp.rbxl
del /s /q clients\2008M\ReShade.ini
del /s /q clients\2008M\OPENGL32.log
del /s /q clients\2008M\opengl32.dll
@ -113,16 +92,13 @@ del /s /q config\initialfilelist.txt
del /s /q config\BadgeDatabase.ini
del /s /q config\clients\GlobalSettings2_2007E.xml
del /s /q config\clients\GlobalSettings2_2007E-Shaders.xml
del /s /q config\clients\GlobalSettings_4_2009E.xml
del /s /q config\clients\GlobalSettings_4_2009E-HD.xml
del /s /q config\clients\GlobalSettings_4_2010L.xml
del /s /q config\clients\GlobalSettings_4_2011E.xml
del /s /q config\clients\GlobalSettings_4_2011M.xml
del /s /q config\clients\GlobalSettings2_2006S.xml
del /s /q config\clients\GlobalSettings2_2006S-Shaders.xml
del /s /q config\clients\GlobalSettings4_2007M.xml
del /s /q config\clients\GlobalSettings4_2007M-Shaders.xml
del /s /q config\clients\GlobalSettings7_2008M.xml
del /s /q config\clients\GlobalSettings_13_2012M.xml
del /s /q config\clients\GlobalSettings_4_2009L.xml

View File

@ -6,11 +6,8 @@ SET basedir=%CD%\scripts
SET gamescriptdir=%basedir%\game
if not exist "%gamescriptdir%" mkdir "%gamescriptdir%"
if not exist "%gamescriptdir%/2006S" mkdir "%gamescriptdir%/2006S"
if not exist "%gamescriptdir%/2006S-Shaders" mkdir "%gamescriptdir%/2006S-Shaders"
if not exist "%gamescriptdir%/2007E" mkdir "%gamescriptdir%/2007E"
if not exist "%gamescriptdir%/2007E-Shaders" mkdir "%gamescriptdir%/2007E-Shaders"
if not exist "%gamescriptdir%/2007M" mkdir "%gamescriptdir%/2007M"
if not exist "%gamescriptdir%/2007M-Shaders" mkdir "%gamescriptdir%/2007M-Shaders"
if not exist "%gamescriptdir%/2008M" mkdir "%gamescriptdir%/2008M"
if not exist "%gamescriptdir%/2009E" mkdir "%gamescriptdir%/2009E"
if not exist "%gamescriptdir%/2009E-HD" mkdir "%gamescriptdir%/2009E-HD"
@ -22,11 +19,8 @@ if not exist "%gamescriptdir%/2012M" mkdir "%gamescriptdir%/2012M"
echo Copying client scripts...
XCOPY "%cd%\Novetus\clients\2006S\content\scripts\CSMPFunctions.lua" "%gamescriptdir%/2006S" /y
XCOPY "%cd%\Novetus\clients\2006S-Shaders\content\scripts\CSMPFunctions.lua" "%gamescriptdir%/2006S-Shaders" /y
XCOPY "%cd%\Novetus\clients\2007E\content\scripts\CSMPFunctions.lua" "%gamescriptdir%/2007E" /y
XCOPY "%cd%\Novetus\clients\2007E-Shaders\content\scripts\CSMPFunctions.lua" "%gamescriptdir%/2007E-Shaders" /y
XCOPY "%cd%\Novetus\clients\2007M\content\scripts\CSMPFunctions.lua" "%gamescriptdir%/2007M" /y
XCOPY "%cd%\Novetus\clients\2007M-Shaders\content\scripts\CSMPFunctions.lua" "%gamescriptdir%/2007M-Shaders" /y
XCOPY "%cd%\Novetus\clients\2008M\content\scripts\CSMPFunctions.lua" "%gamescriptdir%/2008M" /y
XCOPY "%cd%\Novetus\clients\2009E\content\scripts\CSMPFunctions.lua" "%gamescriptdir%/2009E" /y
XCOPY "%cd%\Novetus\clients\2009E-HD\content\scripts\CSMPFunctions.lua" "%gamescriptdir%/2009E-HD" /y
@ -51,11 +45,8 @@ XCOPY "%cd%\Novetus\clients\2012M\content\scripts\cores\*.lua" "%twelvemcores%"
echo.
echo Copying client script libraries...
XCOPY "%cd%\Novetus\clients\2006S\content\fonts\libraries.rbxm" "%gamescriptdir%/2006S" /y
XCOPY "%cd%\Novetus\clients\2006S-Shaders\content\fonts\libraries.rbxm" "%gamescriptdir%/2006S-Shaders" /y
XCOPY "%cd%\Novetus\clients\2007E\content\fonts\libraries.rbxm" "%gamescriptdir%/2007E" /y
XCOPY "%cd%\Novetus\clients\2007E-Shaders\content\fonts\libraries.rbxm" "%gamescriptdir%/2007E-Shaders" /y
XCOPY "%cd%\Novetus\clients\2007M\content\fonts\libraries.rbxm" "%gamescriptdir%/2007M" /y
XCOPY "%cd%\Novetus\clients\2007M-Shaders\content\fonts\libraries.rbxm" "%gamescriptdir%/2007M-Shaders" /y
XCOPY "%cd%\Novetus\clients\2008M\content\fonts\libraries.rbxm" "%gamescriptdir%/2008M" /y
XCOPY "%cd%\Novetus\clients\2009E\content\fonts\libraries.rbxm" "%gamescriptdir%/2009E" /y
XCOPY "%cd%\Novetus\clients\2009E-HD\content\fonts\libraries.rbxm" "%gamescriptdir%/2009E-HD" /y
@ -71,7 +62,6 @@ SET tempdir=%CD%\cfg-temp
if not exist "%tempdir%" mkdir "%tempdir%"
XCOPY Novetus\config\clients\*.xml %tempdir% /sy
del /s /q "%tempdir%\GlobalSettings2_2007E.xml"
del /s /q "%tempdir%\GlobalSettings2_2007E-Shaders.xml"
del /s /q "%tempdir%\GlobalSettings_4_2009E.xml"
del /s /q "%tempdir%\GlobalSettings_4_2009E-HD.xml"
del /s /q "%tempdir%\GlobalSettings_4_2009L.xml"
@ -79,14 +69,11 @@ del /s /q "%tempdir%\GlobalSettings_4_2010L.xml"
del /s /q "%tempdir%\GlobalSettings_4_2011E.xml"
del /s /q "%tempdir%\GlobalSettings_4_2011M.xml"
del /s /q "%tempdir%\GlobalSettings4_2006S.xml"
del /s /q "%tempdir%\GlobalSettings4_2006S-Shaders.xml"
del /s /q "%tempdir%\GlobalSettings4_2007M.xml"
del /s /q "%tempdir%\GlobalSettings4_2007M-Shaders.xml"
del /s /q "%tempdir%\GlobalSettings7_2008M.xml"
del /s /q "%tempdir%\GlobalSettings_13_2012M.xml"
XCOPY "%tempdir%\GlobalSettings2_2007E_default.xml" "%gamescriptdir%/2007E" /y
XCOPY "%tempdir%\GlobalSettings2_2007E-Shaders_default.xml" "%gamescriptdir%/2007E-Shaders" /y
XCOPY "%tempdir%\GlobalSettings_4_2009E_default.xml" "%gamescriptdir%/2009E" /y
XCOPY "%tempdir%\GlobalSettings_4_2009E-HD_default.xml" "%gamescriptdir%/2009E-HD" /y
XCOPY "%tempdir%\GlobalSettings_4_2009L_default.xml" "%gamescriptdir%/2009L" /y
@ -94,9 +81,7 @@ XCOPY "%tempdir%\GlobalSettings_4_2010L_default.xml" "%gamescriptdir%/2010L" /y
XCOPY "%tempdir%\GlobalSettings_4_2011E_default.xml" "%gamescriptdir%/2011E" /y
XCOPY "%tempdir%\GlobalSettings_4_2011M_default.xml" "%gamescriptdir%/2011M" /y
XCOPY "%tempdir%\GlobalSettings4_2006S_default.xml" "%gamescriptdir%/2006S" /y
XCOPY "%tempdir%\GlobalSettings4_2006S-Shaders_default.xml" "%gamescriptdir%/2006S-Shaders" /y
XCOPY "%tempdir%\GlobalSettings4_2007M_default.xml" "%gamescriptdir%/2007M" /y
XCOPY "%tempdir%\GlobalSettings4_2007M-Shaders_default.xml" "%gamescriptdir%/2007M-Shaders" /y
XCOPY "%tempdir%\GlobalSettings7_2008M_default.xml" "%gamescriptdir%/2008M" /y
XCOPY "%tempdir%\GlobalSettings_13_2012M_default.xml" "%gamescriptdir%/2012M" /y
rmdir "%tempdir%" /s /q

View File

@ -1,531 +0,0 @@
showServerNotifications = true
--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
function KickPlayer(Player,reason)
pcall(function() _G.CSScript_OnPrePlayerKicked(Player,reason) end)
if (game.Lighting:findFirstChild("SkipSecurity") ~= nil) then
do return end
end
Server = game:service("NetworkServer")
if (Player ~= nil) then
pcall(function() _G.CSScript_OnPlayerKicked(Player,reason) end)
for _,Child in pairs(Server:children()) do
name = "ServerReplicator|"..Player.Name.."|"..Player.userId.."|"..Player.AnonymousIdentifier.Value
if (Server:findFirstChild(name) ~= nil and Child.Name == name) then
Child:CloseConnection()
Child:remove()
print("Player '" .. Player.Name .. "' Kicked. Reason: "..reason)
end
end
end
end
function newWaitForChildSecurity(newParent,name)
local returnable = nil
local loadAttempts = 0
local maxAttempts = 5
while loadAttempts < maxAttempts do
if newParent:findFirstChild(name) then
returnable = newParent:findFirstChild(name)
break
end
wait()
loadAttempts = loadAttempts + 1
print("Player '" .. newParent.Name .. "' trying to connect. Number of attempts: "..loadAttempts)
end
if (loadAttempts == maxAttempts) then
KickPlayer(newParent, "Modified Client")
end
return returnable
end
function LoadCharacterNew(playerApp,newChar)
if (game.Lighting:findFirstChild("DisableCustomization") ~= nil) then
do return end
end
wait(0.65)
PlayerService = game:service("Players")
Player = PlayerService:playerFromCharacter(newChar)
local function kick()
KickPlayer(Player, "Modified Client")
end
if (playerApp == nil) then
kick()
end
if (not Player:findFirstChild("Appearance")) then
kick()
end
if ((playerApp:children() == 0) or (playerApp:children() == nil)) then
kick()
end
local path = "rbxasset://../../../shareddata/charcustom/"
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:children()) do
if (string.match(newVal.Name, "Color") == "Color") then
pcall(function()
charparts[newVal.ColorIndex.Value].BrickColor = newVal.Value
end)
end
end
pcall(function() _G.CSScript_OnLoadCharacter(Player, playerApp) end)
end
function InitalizeClientAppearance(Player,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID,HeadID,ItemID)
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 = "Head Color"
elseif (i == 2) then
if (TorsoColorID ~= nil) then
BodyColor.Value = BrickColor.new(TorsoColorID)
else
BodyColor.Value = BrickColor.new(1)
end
BodyColor.Name = "Torso Color"
elseif (i == 3) then
if (LeftArmColorID ~= nil) then
BodyColor.Value = BrickColor.new(LeftArmColorID)
else
BodyColor.Value = BrickColor.new(1)
end
BodyColor.Name = "Left Arm Color"
elseif (i == 4) then
if (RightArmColorID ~= nil) then
BodyColor.Value = BrickColor.new(RightArmColorID)
else
BodyColor.Value = BrickColor.new(1)
end
BodyColor.Name = "Right Arm Color"
elseif (i == 5) then
if (LeftLegColorID ~= nil) then
BodyColor.Value = BrickColor.new(LeftLegColorID)
else
BodyColor.Value = BrickColor.new(1)
end
BodyColor.Name = "Left Leg Color"
elseif (i == 6) then
if (RightLegColorID ~= nil) then
BodyColor.Value = BrickColor.new(RightLegColorID)
else
BodyColor.Value = BrickColor.new(1)
end
BodyColor.Name = "Right Leg Color"
end
local indexValue = Instance.new("NumberValue")
indexValue.Name = "ColorIndex"
indexValue.Parent = BodyColor
indexValue.Value = i
end
end
function LoadSecurity(playerApp,Player,ServerSecurityLocation)
local function kick()
KickPlayer(Player, "Modified Client")
end
if (playerApp == nil) then
kick()
end
if (not Player:findFirstChild("Security")) then
kick()
end
if (not playerApp:findFirstChild("ClientEXEMD5") or not playerApp:findFirstChild("LauncherMD5") or not playerApp:findFirstChild("ClientScriptMD5")) then
kick()
end
for _,newVal in pairs(playerApp:children()) do
if (newVal.Name == "ClientEXEMD5") then
if (newVal.Value ~= ServerSecurityLocation.Security.ClientEXEMD5.Value or newVal.Value == "") then
kick()
break
end
end
if (newVal.Name == "LauncherMD5") then
if (newVal.Value ~= ServerSecurityLocation.Security.LauncherMD5.Value or newVal.Value == "") then
kick()
break
end
end
if (newVal.Name == "ClientScriptMD5") then
if (newVal.Value ~= ServerSecurityLocation.Security.ClientScriptMD5.Value or newVal.Value == "") then
kick()
break
end
end
end
end
function InitalizeSecurityValues(Location,ClientEXEMD5,LauncherMD5,ClientScriptMD5)
Location = Instance.new("IntValue", Location)
Location.Name = "Security"
local clientValue = Instance.new("StringValue", Location)
clientValue.Value = ClientEXEMD5 or ""
clientValue.Name = "ClientEXEMD5"
local launcherValue = Instance.new("StringValue", Location)
launcherValue.Value = LauncherMD5 or ""
launcherValue.Name = "LauncherMD5"
local scriptValue = Instance.new("StringValue", Location)
scriptValue.Value = ClientScriptMD5 or ""
scriptValue.Name = "ClientScriptMD5"
end
function InitalizeTripcode(Location,Tripcode)
local code = Instance.new("StringValue", Location)
code.Value = Tripcode or ""
code.Name = "Tripcode"
end
function LoadTripcode(Player)
local function kick()
KickPlayer(Player, "Modified Client")
end
if (not Player:findFirstChild("Tripcode")) then
kick()
end
for _,newVal in pairs(Player:children()) do
if (newVal.Name == "Tripcode") then
if (newVal.Value == "") then
kick()
break
end
end
end
end
print("ROBLOX Client version '0.3.368.0' loaded.")
function CSServer(Port,PlayerLimit,ClientEXEMD5,LauncherMD5,ClientScriptMD5,Notifications)
pcall(function() dofile("rbxasset://..//..//..//addons//core//AddonLoader.lua") end)
pcall(function() _G.CSScript_PreInit("Server", "2006S-Shaders") end)
Server = game:service("NetworkServer")
RunService = game:service("RunService")
PlayerService = game:service("Players")
game:service("Visit"):setUploadUrl("")
Server:start(Port, 20)
RunService:run()
showServerNotifications = Notifications
game.Workspace:insertContent("rbxasset://Fonts//libraries.rbxm")
if (showServerNotifications) then
PlayerService.maxPlayers = PlayerLimit + 1
--create a fake player to record connections and disconnections
notifyPlayer = game:service("Players"):createLocalPlayer(-1)
notifyPlayer.Name = "[SERVER]"
else
PlayerService.maxPlayers = PlayerLimit
end
local playerCount = 0
PlayerService.ChildAdded:connect(function(Player)
-- create anonymous player identifier. This is so we can track clients without tripcodes
playerCount = playerCount + 1
local code = Instance.new("StringValue", Player)
code.Value = playerCount
code.Name = "AnonymousIdentifier"
-- rename all Server replicators in NetworkServer to "ServerReplicator"
for _,Child in pairs(Server:children()) do
name = "ServerReplicator|"..Player.Name.."|"..Player.userId.."|"..Player.AnonymousIdentifier.Value
if (Server:findFirstChild(name) == nil) then
if (string.match(Child.Name, "ServerReplicator") == nil) then
Child.Name = name
end
end
end
Player.Chatted:connect(function(msg)
print(Player.Name.."; "..msg)
end)
if (PlayerService.numPlayers > PlayerService.maxPlayers) then
KickPlayer(Player, "Too many players on server.")
else
print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' added")
if (showServerNotifications) then
game.Players:Chat("Player '" .. Player.Name .. "' joined")
end
Player:LoadCharacter()
LoadSecurity(newWaitForChildSecurity(Player,"Security"),Player,game.Lighting)
newWaitForChildSecurity(Player,"Tripcode")
LoadTripcode(Player)
pcall(function() print("Player '" .. Player.Name .. "-" .. Player.userId .. "' security check success. Tripcode: '" .. Player.Tripcode.Value .. "'") end)
if (Player.Character ~= nil) then
LoadCharacterNew(newWaitForChildSecurity(Player,"Appearance"),Player.Character)
end
end
pcall(function() _G.CSScript_OnPlayerAdded(Player) end)
coroutine.resume(coroutine.create(function()
while Player ~= nil do
wait(0.1)
if (game.Lighting:findFirstChild("DisableRespawns") == nil) then
if (Player.Character ~= nil) then
if (Player.Character:findFirstChild("Humanoid") and (Player.Character.Humanoid.Health == 0)) then
wait(5)
Player:LoadCharacter()
LoadCharacterNew(newWaitForChildSecurity(Player,"Appearance"),Player.Character)
elseif (Player.Character.Parent == nil) then
wait(5)
Player:LoadCharacter()
LoadCharacterNew(newWaitForChildSecurity(Player,"Appearance"),Player.Character)
end
end
end
end
end))
end)
PlayerService.PlayerRemoving:connect(function(Player)
print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' leaving")
if (showServerNotifications) then
game.Players:Chat("Player '" .. Player.Name .. "' left")
end
pcall(function() _G.CSScript_OnPlayerRemoved(Player) end)
end)
InitalizeSecurityValues(game.Lighting,ClientEXEMD5,LauncherMD5,ClientScriptMD5)
Server.IncommingConnection:connect(IncommingConnection)
pcall(function() game.Close:connect(function() Server:stop() end) end)
pcall(function() _G.CSScript_PostInit() end)
coroutine.resume(coroutine.create(function()
while true do
wait(0.1)
pcall(function() _G.CSScript_Update() end)
end
end))
end
function CSConnect(UserID,ServerIP,ServerPort,PlayerName,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID,HeadID,IconType,ItemID,ClientEXEMD5,LauncherMD5,ClientScriptMD5,Tripcode,Ticket)
local suc, err = pcall(function()
client = game:service("NetworkClient")
player = game:service("Players"):createLocalPlayer(UserID)
InitalizeSecurityValues(player,ClientEXEMD5,LauncherMD5,ClientScriptMD5)
InitalizeTripcode(player,Tripcode)
player:SetSuperSafeChat(false)
pcall(function() player:SetUnder13(false) end)
pcall(function() player:SetAccountAge(365) end)
player:SetAdminMode(true)
pcall(function() player.Name=PlayerName or "" end)
game:service("Visit"):setUploadUrl("")
InitalizeClientAppearance(player,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID,HeadID,ItemID)
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")
game:Close()
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..")")
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)
game.GuiRoot.MainMenu["Toolbox"]:remove()
game.GuiRoot.MainMenu["Edit Mode"]:remove()
game.GuiRoot.RightPalette.ReportAbuse:remove()
game.GuiRoot.ChatMenuPanel:remove()
end)
if not suc then
local x = Instance.new("Message")
x.Text = err
x.Parent = workspace
wait(math.huge)
end
end
function CSStudio()
pcall(function() dofile("rbxasset://..//..//..//addons//core//AddonLoader.lua") end)
pcall(function() _G.CSScript_PreInit("Studio", "2006S-Shaders") end)
pcall(function() _G.CSScript_PostInit() end)
coroutine.resume(coroutine.create(function()
while true do
wait(0.1)
pcall(function() _G.CSScript_Update() end)
end
end))
end
function CS3DView(UserID,PlayerName,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID,HeadID,IconType,ItemID)
print("3DView loaded. Nerd.")
game:service("RunService"):run()
game:SetMessage("Loading Player...")
local target = game.Workspace.Base
for i,v in pairs(target:children()) do
if v.className == "Part" then
if v.Name == "Part" then
v:remove()
end
elseif v.className == "SpawnLocation" then
v:remove()
end
end
local plr = game.Players:createLocalPlayer(UserID)
plr.Name = PlayerName
plr:LoadCharacter()
InitalizeClientAppearance(plr,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID,HeadID,ItemID,IconType)
LoadCharacterNew(newWaitForChild(plr,"Appearance"),plr.Character,false)
local camera = game.Workspace.CurrentCamera
camera.CameraType = 2
local cf = CFrame.new(0, 10, 18)
camera.CoordinateFrame = cf;
camera.CameraSubject = target
i = true
local function fixJump(prop)
plr.Character.Torso.Velocity = plr.Character.Torso.Velocity * Vector3.new (1, 0, 1)
if i == true then
plr.Character.Torso.CFrame = plr.Character.Torso.CFrame - Vector3.new(0, 1.8, 0)
i = false
else
i = true
end
end
wait(0.5)
for i,v in pairs(plr.Character:children()) do
if v.className == "Part" then
v.Anchored = true
end
end
plr.Character.Script:remove()
game.GuiRoot:remove()
local human = plr.Character.Humanoid
human.Jumping:connect(fixJump)
game:ClearMessage()
game:service("NetworkClient")
end
_G.CSServer=CSServer
_G.CSConnect=CSConnect
_G.CSStudio=CSStudio
_G.CS3DView=CS3DView
-- credit to KeyboardCombination
local succ = pcall(function() --check if the metatables are already read only lol
local canChange = getmetatable(game.Close);
canChange.__metatable = canChange.__metatable
end)
if not succ then
return;
end
function readonlytable(table)
return setmetatable({}, {
__index = table,
__newindex = function(table, key, value)
error("Attempt to modify read-only table")
end,
__metatable = false
});
end
function readonlytablechildren(table)
for i,v in pairs(table) do
if type(v)=="table" and table[i]~=_G._G then
readonlytablechildren(table[i])
table[i] = readonlytable(table[i])
end
if type(v)=="userdata" then
local mt = getmetatable(table[i])
if mt~=nil and mt~=false then
mt.__metatable=false
end
end
end
end
_G.rawset=nil
readonlytablechildren(_G)
_G._G = readonlytable(_G)
mt = getmetatable(game.Changed)
mt.__metatable=false
mt = getmetatable("curse you roblox")
mt.__metatable=false

View File

@ -1,81 +0,0 @@
<roblox xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.roblox.com/roblox.xsd" version="4">
<External>null</External>
<External>nil</External>
<Item class="NetworkSettings" referent="RBX0">
<Properties>
<int name="ExtraPingVariance">0</int>
<int name="MinExtraPing">0</int>
<string name="Name">Network</string>
<bool name="archivable">true</bool>
<float name="dataPacketSize">0.75</float>
<bool name="logPackets">false</bool>
<int name="maxDataModelSendBuffer">1000000</int>
<int name="maxSendBPS">0</int>
<bool name="printInstances">false</bool>
<bool name="printPacketBuffer">false</bool>
<bool name="printProperties">false</bool>
<float name="sendRate">1000000</float>
</Properties>
</Item>
<Item class="DebugSettings" referent="RBX1">
<Properties>
<token name="AssertAction">1</token>
<bool name="DisableEnvironmentalThrottle">false</bool>
<bool name="DisableSleep">false</bool>
<bool name="HighlightAwakeParts">false</bool>
<bool name="HighlightSleepParts">false</bool>
<string name="Name">Diagnostics</string>
<bool name="ShowAggregation">false</bool>
<bool name="ShowAnchors">false</bool>
<bool name="ShowModelCoords">false</bool>
<bool name="ShowPartCoords">false</bool>
<bool name="ShowUnalignedParts">false</bool>
<bool name="ShowWorldCoords">false</bool>
<bool name="SoundWarnings">false</bool>
<bool name="UseNewGraphics">false</bool>
<bool name="ValidatingDebug">false</bool>
<bool name="archivable">true</bool>
<token name="errorReporting">1</token>
<bool name="stackTracingEnabled">true</bool>
</Properties>
</Item>
<Item class="RenderSettings" referent="RBX2">
<Properties>
<token name="AASamples">1</token>
<Vector2int16 name="FullscreenSize">
<X>1024</X>
<Y>768</Y>
</Vector2int16>
<string name="Name">Rendering</string>
<bool name="Shadows">false</bool>
<Vector2int16 name="WindowSize">
<X>800</X>
<Y>600</Y>
</Vector2int16>
<float name="_AggregateSize">1</float>
<bool name="archivable">true</bool>
<bool name="delaySwapBuffer">true</bool>
<float name="maxMeshDetail">100</float>
<float name="maxShadingQuality">100</float>
<float name="minMeshDetail">100</float>
<float name="minShadingQuality">100</float>
<string name="profileName">profiled5</string>
</Properties>
</Item>
<Item class="Selection" referent="RBX3">
<Properties>
<string name="Name">Selection</string>
<bool name="archivable">true</bool>
</Properties>
</Item>
<Item class="GameSettings" referent="RBX4">
<Properties>
<bool name="AnimatedCharacter">true</bool>
<int name="ChatHistory">50</int>
<string name="Name">Game Options</string>
<bool name="SoftwareSound">false</bool>
<bool name="SoundEnabled">true</bool>
<bool name="archivable">true</bool>
</Properties>
</Item>
</roblox>

View File

@ -1,28 +0,0 @@
<roblox xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.roblox.com/roblox.xsd" version="4">
<External>null</External>
<External>nil</External>
<Item class="Script" referent="RBX0">
<Properties>
<bool name="Disabled">false</bool>
<Content name="LinkedSource"><null></null></Content>
<string name="Name">ResetCommand</string>
<ProtectedString name="Source">function onChatted(msg, speaker)
source = string.lower(speaker.Name)
msg = string.lower(msg)
-- Note: This one is NOT caps sensitive
if msg == &quot;!!!reset&quot; then
speaker.Character.Humanoid.Health = 0
end
end
function onPlayerEntered(newPlayer)
newPlayer.Chatted:connect(function(msg) onChatted(msg, newPlayer) end)
end
game.Players.ChildAdded:connect(onPlayerEntered)</ProtectedString>
<bool name="archivable">true</bool>
</Properties>
</Item>
</roblox>

View File

@ -19,18 +19,14 @@ function KickPlayer(Player,reason)
end
Server = game:service("NetworkServer")
if (Player ~= nil) then
pcall(function() _G.CSScript_OnPlayerKicked(Player,reason) end)
for _,Child in pairs(Server:children()) do
name = "ServerReplicator|"..Player.Name.."|"..Player.userId.."|"..Player.AnonymousIdentifier.Value
if (Server:findFirstChild(name) ~= nil and Child.Name == name) then
Child:CloseConnection()
Child:remove()
print("Player '" .. Player.Name .. "' Kicked. Reason: "..reason)
end
end
name = "ServerReplicator|"..Player.Name.."|"..Player.userId.."|"..Player.AnonymousIdentifier.Value
Server[name]:CloseConnection()
Server[name]:remove()
print("Player '" .. Player.Name .. "' Kicked. Reason: "..reason)
end
end

View File

@ -1,591 +0,0 @@
showServerNotifications = true
--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
function KickPlayer(Player,reason)
pcall(function() _G.CSScript_OnPrePlayerKicked(Player,reason) end)
if (game.Lighting:findFirstChild("SkipSecurity") ~= nil) then
do return end
end
Server = game:service("NetworkServer")
if (Player ~= nil) then
pcall(function() _G.CSScript_OnPlayerKicked(Player,reason) end)
for _,Child in pairs(Server:children()) do
name = "ServerReplicator|"..Player.Name.."|"..Player.userId.."|"..Player.AnonymousIdentifier.Value
if (Server:findFirstChild(name) ~= nil and Child.Name == name) then
Child:CloseConnection()
Child:remove()
print("Player '" .. Player.Name .. "' Kicked. Reason: "..reason)
end
end
end
end
function newWaitForChildSecurity(newParent,name)
local returnable = nil
local loadAttempts = 0
local maxAttempts = 5
while loadAttempts < maxAttempts do
if newParent:findFirstChild(name) then
returnable = newParent:findFirstChild(name)
break
end
wait()
loadAttempts = loadAttempts + 1
print("Player '" .. newParent.Name .. "' trying to connect. Number of attempts: "..loadAttempts)
end
if (loadAttempts == maxAttempts) then
KickPlayer(newParent, "Modified Client")
end
return returnable
end
function LoadCharacterNew(playerApp,newChar)
if (game.Lighting:findFirstChild("DisableCustomization") ~= nil) then
do return end
end
wait(0.65)
PlayerService = game:service("Players")
Player = PlayerService:playerFromCharacter(newChar)
local function kick()
KickPlayer(Player, "Modified Client")
end
if (playerApp == nil) then
kick()
end
if (not Player:findFirstChild("Appearance")) then
kick()
end
if ((playerApp:children() == 0) or (playerApp:children() == nil)) then
kick()
end
local path = "rbxasset://../../../shareddata/charcustom/"
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:children()) do
if (string.match(newVal.Name, "Color") == "Color") then
pcall(function()
charparts[newVal.ColorIndex.Value].BrickColor = newVal.Value
end)
elseif (string.match(newVal.Name, "Shirt") == "Shirt") then
pcall(function()
local newTShirt = "";
if (string.match(newVal.Value, "http") == "http") then
if (string.match(newVal.Value, "?id=") ~= "?id=") then
newWaitForChild(charparts[2],"roblox"):remove()
newDecal = Instance.new("Decal")
newDecal.Name = "novetus"
newDecal.Texture = newVal.Value
newDecal.Face = 5
newDecal.Parent = charparts[2]
end
else
newTShirt = game.Workspace:insertContent(path.."tshirts/"..newVal.Value)
if newTShirt[1] then
if newTShirt[1].className == "ShirtGraphic" then
newWaitForChild(charparts[2],"roblox"):remove()
newDecal = Instance.new("Decal")
newDecal.Name = "novetus"
newDecal.Face = 5
newDecal.Parent = charparts[2]
newTShirt[1].Parent = newChar
else
newTShirt[1]:remove()
end
end
end
end)
elseif (string.match(newVal.Name, "Extra") == "Extra") then
pcall(function()
local newItem = game.Workspace:insertContent(path.."custom/"..newVal.Value)
if newItem[1] then
if newItem[1].className == "Decal" then
newWaitForChild(charparts[1],"face"):remove()
newItem[1].Parent = charparts[1]
newItem[1].Face = 5
elseif newItem[1].className == "SpecialMesh" or newItem[1].className == "CylinderMesh" or newItem[1].className == "BlockMesh" then
newWaitForChild(charparts[1],"Mesh"):remove()
newItem[1].Parent = charparts[1]
else
newItem[1].Parent = newChar
end
end
end)
end
end
pcall(function() _G.CSScript_OnLoadCharacter(Player, playerApp) end)
end
function InitalizeClientAppearance(Player,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID,HeadID,ItemID)
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 = "Head Color"
elseif (i == 2) then
if (TorsoColorID ~= nil) then
BodyColor.Value = BrickColor.new(TorsoColorID)
else
BodyColor.Value = BrickColor.new(1)
end
BodyColor.Name = "Torso Color"
elseif (i == 3) then
if (LeftArmColorID ~= nil) then
BodyColor.Value = BrickColor.new(LeftArmColorID)
else
BodyColor.Value = BrickColor.new(1)
end
BodyColor.Name = "Left Arm Color"
elseif (i == 4) then
if (RightArmColorID ~= nil) then
BodyColor.Value = BrickColor.new(RightArmColorID)
else
BodyColor.Value = BrickColor.new(1)
end
BodyColor.Name = "Right Arm Color"
elseif (i == 5) then
if (LeftLegColorID ~= nil) then
BodyColor.Value = BrickColor.new(LeftLegColorID)
else
BodyColor.Value = BrickColor.new(1)
end
BodyColor.Name = "Left Leg Color"
elseif (i == 6) then
if (RightLegColorID ~= nil) then
BodyColor.Value = BrickColor.new(RightLegColorID)
else
BodyColor.Value = BrickColor.new(1)
end
BodyColor.Name = "Right Leg Color"
end
local indexValue = Instance.new("NumberValue")
indexValue.Name = "ColorIndex"
indexValue.Parent = BodyColor
indexValue.Value = i
end
--T-SHIRT
local newTShirt = Instance.new("StringValue",newCharApp)
if (TShirtID ~= nil) then
newTShirt.Value = TShirtID
newTShirt.Name = "T-Shirt - "..TShirtID
else
newTShirt.Value = "NoTShirt.rbxm"
newTShirt.Name = "T-Shirt - NoTShirt.rbxm"
end
--EXTRA
local newItem = Instance.new("StringValue",newCharApp)
if (ItemID ~= nil) then
newItem.Value = ItemID
newItem.Name = "Extra - "..ItemID
else
newItem.Value = "NoExtra.rbxm"
newItem.Name = "Extra - NoExtra.rbxm"
end
end
function LoadSecurity(playerApp,Player,ServerSecurityLocation)
local function kick()
KickPlayer(Player, "Modified Client")
end
if (playerApp == nil) then
kick()
end
if (not Player:findFirstChild("Security")) then
kick()
end
if (not playerApp:findFirstChild("ClientEXEMD5") or not playerApp:findFirstChild("LauncherMD5") or not playerApp:findFirstChild("ClientScriptMD5")) then
kick()
end
for _,newVal in pairs(playerApp:children()) do
if (newVal.Name == "ClientEXEMD5") then
if (newVal.Value ~= ServerSecurityLocation.Security.ClientEXEMD5.Value or newVal.Value == "") then
kick()
break
end
end
if (newVal.Name == "LauncherMD5") then
if (newVal.Value ~= ServerSecurityLocation.Security.LauncherMD5.Value or newVal.Value == "") then
kick()
break
end
end
if (newVal.Name == "ClientScriptMD5") then
if (newVal.Value ~= ServerSecurityLocation.Security.ClientScriptMD5.Value or newVal.Value == "") then
kick()
break
end
end
end
end
function InitalizeSecurityValues(Location,ClientEXEMD5,LauncherMD5,ClientScriptMD5)
Location = Instance.new("IntValue", Location)
Location.Name = "Security"
local clientValue = Instance.new("StringValue", Location)
clientValue.Value = ClientEXEMD5 or ""
clientValue.Name = "ClientEXEMD5"
local launcherValue = Instance.new("StringValue", Location)
launcherValue.Value = LauncherMD5 or ""
launcherValue.Name = "LauncherMD5"
local scriptValue = Instance.new("StringValue", Location)
scriptValue.Value = ClientScriptMD5 or ""
scriptValue.Name = "ClientScriptMD5"
end
function InitalizeTripcode(Location,Tripcode)
local code = Instance.new("StringValue", Location)
code.Value = Tripcode or ""
code.Name = "Tripcode"
end
function LoadTripcode(Player)
local function kick()
KickPlayer(Player, "Modified Client")
end
if (not Player:findFirstChild("Tripcode")) then
kick()
end
for _,newVal in pairs(Player:children()) do
if (newVal.Name == "Tripcode") then
if (newVal.Value == "") then
kick()
break
end
end
end
end
print("ROBLOX Client version '0.3.368.0' loaded.")
function CSServer(Port,PlayerLimit,ClientEXEMD5,LauncherMD5,ClientScriptMD5,Notifications)
pcall(function() dofile("rbxasset://..//..//..//addons//core//AddonLoader.lua") end)
pcall(function() _G.CSScript_PreInit("Server", "2007E-Shaders") end)
Server = game:service("NetworkServer")
RunService = game:service("RunService")
PlayerService = game:service("Players")
game:service("Visit"):setUploadUrl("")
Server:start(Port, 20)
RunService:run()
showServerNotifications = Notifications
game.Workspace:insertContent("rbxasset://Fonts//libraries.rbxm")
if (showServerNotifications) then
PlayerService.maxPlayers = PlayerLimit + 1
--create a fake player to record connections and disconnections
notifyPlayer = game:service("Players"):createLocalPlayer(-1)
notifyPlayer.Name = "[SERVER]"
else
PlayerService.maxPlayers = PlayerLimit
end
local playerCount = 0
PlayerService.ChildAdded:connect(function(Player)
-- create anonymous player identifier. This is so we can track clients without tripcodes
playerCount = playerCount + 1
local code = Instance.new("StringValue", Player)
code.Value = playerCount
code.Name = "AnonymousIdentifier"
-- rename all Server replicators in NetworkServer to "ServerReplicator"
for _,Child in pairs(Server:children()) do
name = "ServerReplicator|"..Player.Name.."|"..Player.userId.."|"..Player.AnonymousIdentifier.Value
if (Server:findFirstChild(name) == nil) then
if (string.match(Child.Name, "ServerReplicator") == nil) then
Child.Name = name
end
end
end
Player.Chatted:connect(function(msg)
print(Player.Name.."; "..msg)
end)
if (PlayerService.numPlayers > PlayerService.maxPlayers) then
KickPlayer(Player, "Too many players on server.")
else
print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' added")
if (showServerNotifications) then
game.Players:Chat("Player '" .. Player.Name .. "' joined")
end
Player:LoadCharacter()
LoadSecurity(newWaitForChildSecurity(Player,"Security"),Player,game.Lighting)
newWaitForChildSecurity(Player,"Tripcode")
LoadTripcode(Player)
pcall(function() print("Player '" .. Player.Name .. "-" .. Player.userId .. "' security check success. Tripcode: '" .. Player.Tripcode.Value .. "'") end)
if (Player.Character ~= nil) then
LoadCharacterNew(newWaitForChildSecurity(Player,"Appearance"),Player.Character)
end
end
pcall(function() _G.CSScript_OnPlayerAdded(Player) end)
coroutine.resume(coroutine.create(function()
while Player ~= nil do
wait(0.1)
if (game.Lighting:findFirstChild("DisableRespawns") == nil) then
if (Player.Character ~= nil) then
if (Player.Character:findFirstChild("Humanoid") and (Player.Character.Humanoid.Health == 0)) then
wait(5)
Player:LoadCharacter()
LoadCharacterNew(newWaitForChildSecurity(Player,"Appearance"),Player.Character)
elseif (Player.Character.Parent == nil) then
wait(5)
Player:LoadCharacter()
LoadCharacterNew(newWaitForChildSecurity(Player,"Appearance"),Player.Character)
end
end
end
end
end))
end)
PlayerService.PlayerRemoving:connect(function(Player)
print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' leaving")
if (showServerNotifications) then
game.Players:Chat("Player '" .. Player.Name .. "' left")
end
pcall(function() _G.CSScript_OnPlayerRemoved(Player) end)
end)
InitalizeSecurityValues(game.Lighting,ClientEXEMD5,LauncherMD5,ClientScriptMD5)
Server.IncommingConnection:connect(IncommingConnection)
pcall(function() game.Close:connect(function() Server:stop() end) end)
pcall(function() _G.CSScript_PostInit() end)
coroutine.resume(coroutine.create(function()
while true do
wait(0.1)
pcall(function() _G.CSScript_Update() end)
end
end))
end
function CSConnect(UserID,ServerIP,ServerPort,PlayerName,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID,HeadID,IconType,ItemID,ClientEXEMD5,LauncherMD5,ClientScriptMD5,Tripcode,VerifiedScripts,Ticket)
local suc, err = pcall(function()
client = game:service("NetworkClient")
player = game:service("Players"):createLocalPlayer(UserID)
InitalizeSecurityValues(player,ClientEXEMD5,LauncherMD5,ClientScriptMD5)
InitalizeTripcode(player,Tripcode)
player:SetSuperSafeChat(false)
pcall(function() player:SetUnder13(false) end)
pcall(function() player:SetAccountAge(365) end)
player:SetAdminMode(true)
pcall(function() player.Name=PlayerName or "" end)
game:service("Visit"):setUploadUrl("")
InitalizeClientAppearance(player,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID,HeadID,ItemID)
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")
game:Close()
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..")")
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)
end)
if not suc then
local x = Instance.new("Message")
x.Text = err
x.Parent = workspace
wait(math.huge)
end
end
function CSStudio()
pcall(function() dofile("rbxasset://..//..//..//addons//core//AddonLoader.lua") end)
pcall(function() _G.CSScript_PreInit("Studio", "2007E-Shaders") end)
pcall(function() _G.CSScript_PostInit() end)
coroutine.resume(coroutine.create(function()
while true do
wait(0.1)
pcall(function() _G.CSScript_Update() end)
end
end))
end
function CS3DView(UserID,PlayerName,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID,HeadID,IconType,ItemID)
print("3DView loaded. Nerd.")
game:service("RunService"):run()
game:SetMessage("Loading Player...")
local target = game.Workspace.Base
for i,v in pairs(target:children()) do
if v.className == "Part" then
if v.Name == "Part" then
v:remove()
end
elseif v.className == "SpawnLocation" then
v:remove()
end
end
local plr = game.Players:createLocalPlayer(UserID)
plr.Name = PlayerName
plr:LoadCharacter()
InitalizeClientAppearance(plr,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID,HeadID,ItemID,IconType)
LoadCharacterNew(newWaitForChild(plr,"Appearance"),plr.Character,false)
local camera = game.Workspace.CurrentCamera
camera.CameraType = 2
local cf = CFrame.new(0, 10, 18)
camera.CoordinateFrame = cf;
camera.CameraSubject = target
i = true
local function fixJump(prop)
plr.Character.Torso.Velocity = plr.Character.Torso.Velocity * Vector3.new (1, 0, 1)
if i == true then
plr.Character.Torso.CFrame = plr.Character.Torso.CFrame - Vector3.new(0, 1.8, 0)
i = false
else
i = true
end
end
wait(0.5)
for i,v in pairs(plr.Character:children()) do
if v.className == "Part" then
v.Anchored = true
end
end
plr.Character.Animate:remove()
plr.Character.Health:remove()
plr.Character.Sound:remove()
game.GuiRoot:remove()
local human = plr.Character.Humanoid
human.Jumping:connect(fixJump)
game:ClearMessage()
game:service("NetworkClient")
end
_G.CSServer=CSServer
_G.CSConnect=CSConnect
_G.CSStudio=CSStudio
_G.CS3DView=CS3DView
-- credit to KeyboardCombination
local succ = pcall(function() --check if the metatables are already read only lol
local canChange = getmetatable(game.Close);
canChange.__metatable = canChange.__metatable
end)
if not succ then
return;
end
function readonlytable(table)
return setmetatable({}, {
__index = table,
__newindex = function(table, key, value)
error("Attempt to modify read-only table")
end,
__metatable = false
});
end
function readonlytablechildren(table)
for i,v in pairs(table) do
if type(v)=="table" and table[i]~=_G._G then
readonlytablechildren(table[i])
table[i] = readonlytable(table[i])
end
if type(v)=="userdata" then
local mt = getmetatable(table[i])
if mt~=nil and mt~=false then
mt.__metatable=false
end
end
end
end
_G.rawset=nil
readonlytablechildren(_G)
_G._G = readonlytable(_G)
mt = getmetatable(game.Changed)
mt.__metatable=false
mt = getmetatable("curse you roblox")
mt.__metatable=false

View File

@ -1,74 +0,0 @@
<roblox xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.roblox.com/roblox.xsd" version="4">
<External>null</External>
<External>nil</External>
<Item class="NetworkSettings">
<Properties>
<int name="ExtraPingVariance">0</int>
<int name="MinExtraPing">0</int>
<string name="Name">Network</string>
<bool name="archivable">true</bool>
<float name="dataPacketSize">0.75</float>
<bool name="logPackets">false</bool>
<int name="maxDataModelSendBuffer">1000000</int>
<int name="maxSendBPS">0</int>
<bool name="printInstances">false</bool>
<bool name="printPacketBuffer">false</bool>
<bool name="printProperties">false</bool>
<float name="sendRate">1000000</float>
</Properties>
</Item>
<Item class="RenderSettings">
<Properties>
<token name="AASamples">1</token>
<Vector2int16 name="FullscreenSize">
<X>1024</X>
<Y>768</Y>
</Vector2int16>
<string name="Name">Rendering</string>
<Vector2int16 name="WindowSize">
<X>800</X>
<Y>600</Y>
</Vector2int16>
<float name="_AggregateSize">1</float>
<bool name="_office2007Theme">false</bool>
<string name="_skinFile"></string>
<bool name="archivable">true</bool>
<bool name="delaySwapBuffer">true</bool>
<float name="maxMeshDetail">100</float>
<float name="maxShadingQuality">100</float>
<float name="minMeshDetail">100</float>
<float name="minShadingQuality">100</float>
<string name="profileName">profiled5</string>
<bool name="shadows">false</bool>
</Properties>
</Item>
<Item class="GameSettings">
<Properties>
<string name="Name">Game Options</string>
<bool name="animatedCharacter">true</bool>
<bool name="archivable">true</bool>
<float name="cameraLerp">0.899999976</float>
<int name="chatHistory">30</int>
<bool name="filterChat">false</bool>
<bool name="softwareSound">false</bool>
<bool name="soundEnabled">true</bool>
</Properties>
</Item>
<Item class="DebugSettings">
<Properties>
<bool name="HighlightAwakeParts">false</bool>
<bool name="HighlightSleepParts">false</bool>
<string name="Name">Diagnostics</string>
<bool name="ShowAggregation">false</bool>
<bool name="ShowAnchors">false</bool>
<bool name="ShowModelCoords">false</bool>
<bool name="ShowPartCoords">false</bool>
<bool name="ShowUnalignedParts">false</bool>
<bool name="ShowWorldCoords">false</bool>
<bool name="ValidatingDebug">false</bool>
<bool name="archivable">true</bool>
<token name="errorReporting">1</token>
<bool name="stackTracingEnabled">true</bool>
</Properties>
</Item>
</roblox>

View File

@ -1,13 +0,0 @@
<roblox xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.roblox.com/roblox.xsd" version="4">
<External>null</External>
<External>nil</External>
<Item class="Script" referent="RBX0">
<Properties>
<bool name="Disabled">false</bool>
<Content name="LinkedSource"><null></null></Content>
<string name="Name">ResetCommand</string>
<string name="Source">function onChatted(msg, speaker)&#13;&#10; &#13;&#10; source = string.lower(speaker.Name)&#13;&#10; msg = string.lower(msg)&#13;&#10; -- Note: This one is NOT caps sensitive&#13;&#10;&#13;&#10; if msg == &quot;!!!reset&quot; then&#13;&#10; speaker.Character.Humanoid.Health = 0&#13;&#10; end&#13;&#10;end&#13;&#10;&#13;&#10;function onPlayerEntered(newPlayer)&#13;&#10; newPlayer.Chatted:connect(function(msg) onChatted(msg, newPlayer) end) &#13;&#10;end&#13;&#10; &#13;&#10;game.Players.ChildAdded:connect(onPlayerEntered)</string>
<bool name="archivable">true</bool>
</Properties>
</Item>
</roblox>

View File

@ -22,15 +22,11 @@ function KickPlayer(Player,reason)
if (Player ~= nil) then
pcall(function() _G.CSScript_OnPlayerKicked(Player,reason) end)
for _,Child in pairs(Server:children()) do
name = "ServerReplicator|"..Player.Name.."|"..Player.userId.."|"..Player.AnonymousIdentifier.Value
if (Server:findFirstChild(name) ~= nil and Child.Name == name) then
Child:CloseConnection()
Child:remove()
print("Player '" .. Player.Name .. "' Kicked. Reason: "..reason)
end
end
name = "ServerReplicator|"..Player.Name.."|"..Player.userId.."|"..Player.AnonymousIdentifier.Value
Server[name]:CloseConnection()
Server[name]:remove()
print("Player '" .. Player.Name .. "' Kicked. Reason: "..reason)
end
end

View File

@ -1,637 +0,0 @@
showServerNotifications = true
--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
function KickPlayer(Player,reason)
pcall(function() _G.CSScript_OnPrePlayerKicked(Player,reason) end)
if (game.Lighting:FindFirstChild("SkipSecurity") ~= nil) then
do return end
end
Server = game:GetService("NetworkServer")
if (Player ~= nil) then
pcall(function() _G.CSScript_OnPlayerKicked(Player,reason) end)
for _,Child in pairs(Server:children()) do
name = "ServerReplicator|"..Player.Name.."|"..Player.userId.."|"..Player.AnonymousIdentifier.Value
if (Server:findFirstChild(name) ~= nil and Child.Name == name) then
Child:CloseConnection()
Child:remove()
print("Player '" .. Player.Name .. "' Kicked. Reason: "..reason)
end
end
end
end
function newWaitForChildSecurity(newParent,name)
local returnable = nil
local loadAttempts = 0
local maxAttempts = 5
while loadAttempts < maxAttempts do
if newParent:FindFirstChild(name) then
returnable = newParent:FindFirstChild(name)
break
end
wait()
loadAttempts = loadAttempts + 1
print("Player '" .. newParent.Name .. "' trying to connect. Number of attempts: "..loadAttempts)
end
if (loadAttempts == maxAttempts) then
KickPlayer(newParent, "Modified Client")
end
return returnable
end
function LoadCharacterNew(playerApp,newChar)
if (game.Lighting:findFirstChild("DisableCustomization") ~= nil) then
do return end
end
PlayerService = game:GetService("Players")
Player = PlayerService:GetPlayerFromCharacter(newChar)
local function kick()
KickPlayer(Player, "Modified Client")
end
if (playerApp == nil) then
kick()
end
if (not Player:FindFirstChild("Appearance")) then
kick()
end
if ((playerApp:GetChildren() == 0) or (playerApp:GetChildren() == nil)) then
kick()
end
local path = "rbxasset://../../../shareddata/charcustom/"
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 (string.match(newVal.Name, "Color") == "Color") then
pcall(function()
charparts[newVal.ColorIndex.Value].BrickColor = newVal.Value
end)
elseif (string.match(newVal.Name, "Hat") == "Hat") then
pcall(function()
local newHat = game.Workspace:InsertContent(path.."hats/"..newVal.Value)
if newHat[1] then
if newHat[1].className == "Hat" then
newHat[1].Parent = newChar
else
newHat[1]:remove()
end
end
end)
elseif (string.match(newVal.Name, "Shirt") == "Shirt") then
pcall(function()
local newTShirt = "";
if (string.match(newVal.Value, "http") == "http") then
if (pcall(function()
newTShirt = game.Workspace:InsertContent(newVal.Value)
if newTShirt[1] then
if newTShirt[1].className == "ShirtGraphic" then
newTShirt[1].Parent = newChar
local oldTexture = newTShirt[1].Graphic;
OldURL,OldID = oldTexture:match("(.+)=(.+)")
NewURL,NewID = newVal.Value:match("(.+)=(.+)")
newTShirt[1].Graphic = NewURL .. '=' .. OldID
else
newTShirt[1]:remove()
end
end
end)) then
--nothing
print("success");
else
print("fail");
newTShirt = Instance.new("ShirtGraphic")
newTShirt.Graphic = newVal.Value
newTShirt.Parent = newChar
end
else
newTShirt = game.Workspace:InsertContent(path.."tshirts/"..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 (string.match(newVal.Name, "Extra") == "Extra") then
pcall(function()
local newHat = game.Workspace:InsertContent(path.."hats/"..newVal.Value)
if newHat[1] then
if newHat[1].className == "Hat" then
newHat[1].Parent = newChar
else
newHat[1]:remove()
end
end
end)
pcall(function()
local newItem = game.Workspace:InsertContent(path.."custom/"..newVal.Value)
if newItem[1] then
if newItem[1].className == "Decal" then
newWaitForChild(charparts[1],"face"):remove()
newItem[1].Parent = charparts[1]
newItem[1].Face = 5
elseif newItem[1].className == "SpecialMesh" or newItem[1].className == "CylinderMesh" or newItem[1].className == "BlockMesh" then
newWaitForChild(charparts[1],"Mesh"):remove()
newItem[1].Parent = charparts[1]
else
newItem[1].Parent = newChar
end
end
end)
end
end
pcall(function() _G.CSScript_OnLoadCharacter(Player, playerApp) end)
end
function InitalizeClientAppearance(Player,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID,HeadID,ItemID)
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 = "Head Color"
elseif (i == 2) then
if (TorsoColorID ~= nil) then
BodyColor.Value = BrickColor.new(TorsoColorID)
else
BodyColor.Value = BrickColor.new(1)
end
BodyColor.Name = "Torso Color"
elseif (i == 3) then
if (LeftArmColorID ~= nil) then
BodyColor.Value = BrickColor.new(LeftArmColorID)
else
BodyColor.Value = BrickColor.new(1)
end
BodyColor.Name = "Left Arm Color"
elseif (i == 4) then
if (RightArmColorID ~= nil) then
BodyColor.Value = BrickColor.new(RightArmColorID)
else
BodyColor.Value = BrickColor.new(1)
end
BodyColor.Name = "Right Arm Color"
elseif (i == 5) then
if (LeftLegColorID ~= nil) then
BodyColor.Value = BrickColor.new(LeftLegColorID)
else
BodyColor.Value = BrickColor.new(1)
end
BodyColor.Name = "Left Leg Color"
elseif (i == 6) then
if (RightLegColorID ~= nil) then
BodyColor.Value = BrickColor.new(RightLegColorID)
else
BodyColor.Value = BrickColor.new(1)
end
BodyColor.Name = "Right Leg Color"
end
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 = "Hat 1 - "..Hat1ID
else
newHat.Value = "NoHat.rbxm"
newHat.Name = "Hat 1 - NoHat.rbxm"
end
elseif (i == 2) then
if (Hat2ID ~= nil) then
newHat.Value = Hat2ID
newHat.Name = "Hat 2 - "..Hat2ID
else
newHat.Value = "NoHat.rbxm"
newHat.Name = "Hat 2 - NoHat.rbxm"
end
elseif (i == 3) then
if (Hat3ID ~= nil) then
newHat.Value = Hat3ID
newHat.Name = "Hat 3 - "..Hat3ID
else
newHat.Value = "NoHat.rbxm"
newHat.Name = "Hat 3 - NoHat.rbxm"
end
end
end
--T-SHIRT
local newTShirt = Instance.new("StringValue",newCharApp)
if (TShirtID ~= nil) then
newTShirt.Value = TShirtID
newTShirt.Name = "T-Shirt - "..TShirtID
else
newTShirt.Value = "NoTShirt.rbxm"
newTShirt.Name = "T-Shirt - NoTShirt.rbxm"
end
--EXTRA
local newItem = Instance.new("StringValue",newCharApp)
if (ItemID ~= nil) then
newItem.Value = ItemID
newItem.Name = "Extra - "..ItemID
else
newItem.Value = "NoExtra.rbxm"
newItem.Name = "Extra - NoExtra.rbxm"
end
end
function LoadSecurity(playerApp,Player,ServerSecurityLocation)
local function kick()
KickPlayer(Player, "Modified Client")
end
if (playerApp == nil) then
kick()
end
if (not Player:FindFirstChild("Security")) then
kick()
end
if (not playerApp:FindFirstChild("ClientEXEMD5") or not playerApp:FindFirstChild("LauncherMD5") or not playerApp:FindFirstChild("ClientScriptMD5")) then
kick()
end
for _,newVal in pairs(playerApp:GetChildren()) do
if (newVal.Name == "ClientEXEMD5") then
if (newVal.Value ~= ServerSecurityLocation.Security.ClientEXEMD5.Value or newVal.Value == "") then
kick()
break
end
end
if (newVal.Name == "LauncherMD5") then
if (newVal.Value ~= ServerSecurityLocation.Security.LauncherMD5.Value or newVal.Value == "") then
kick()
break
end
end
if (newVal.Name == "ClientScriptMD5") then
if (newVal.Value ~= ServerSecurityLocation.Security.ClientScriptMD5.Value or newVal.Value == "") then
kick()
break
end
end
end
end
function InitalizeSecurityValues(Location,ClientEXEMD5,LauncherMD5,ClientScriptMD5)
Location = Instance.new("IntValue", Location)
Location.Name = "Security"
local clientValue = Instance.new("StringValue", Location)
clientValue.Value = ClientEXEMD5 or ""
clientValue.Name = "ClientEXEMD5"
local launcherValue = Instance.new("StringValue", Location)
launcherValue.Value = LauncherMD5 or ""
launcherValue.Name = "LauncherMD5"
local scriptValue = Instance.new("StringValue", Location)
scriptValue.Value = ClientScriptMD5 or ""
scriptValue.Name = "ClientScriptMD5"
end
function InitalizeTripcode(Location,Tripcode)
local code = Instance.new("StringValue", Location)
code.Value = Tripcode or ""
code.Name = "Tripcode"
end
function LoadTripcode(Player)
local function kick()
KickPlayer(Player, "Modified Client")
end
if (not Player:FindFirstChild("Tripcode")) then
kick()
end
for _,newVal in pairs(Player:GetChildren()) do
if (newVal.Name == "Tripcode") then
if (newVal.Value == "") then
kick()
break
end
end
end
end
print("ROBLOX Client version '0.3.512.0' loaded.")
function CSServer(Port,PlayerLimit,ClientEXEMD5,LauncherMD5,ClientScriptMD5,Notifications)
pcall(function() dofile("rbxasset://..//..//..//addons//core//AddonLoader.lua") end)
pcall(function() _G.CSScript_PreInit("Server", "2007M-Shaders") end)
Server = game:GetService("NetworkServer")
RunService = game:GetService("RunService")
PlayerService = game:GetService("Players")
game:GetService("Visit"):SetUploadUrl("")
Server:start(Port, 20)
RunService:run()
showServerNotifications = Notifications
game.Workspace:InsertContent("rbxasset://Fonts//libraries.rbxm")
if (showServerNotifications) then
PlayerService.MaxPlayers = PlayerLimit + 1
--create a fake player to record connections and disconnections
notifyPlayer = game:GetService("Players"):CreateLocalPlayer(-1)
notifyPlayer.Name = "[SERVER]"
else
PlayerService.MaxPlayers = PlayerLimit
end
local playerCount = 0
PlayerService.PlayerAdded:connect(function(Player)
-- create anonymous player identifier. This is so we can track clients without tripcodes
playerCount = playerCount + 1
local code = Instance.new("StringValue", Player)
code.Value = playerCount
code.Name = "AnonymousIdentifier"
-- rename all Server replicators in NetworkServer to "ServerReplicator"
for _,Child in pairs(Server:children()) do
name = "ServerReplicator|"..Player.Name.."|"..Player.userId.."|"..Player.AnonymousIdentifier.Value
if (Server:findFirstChild(name) == nil) then
if (string.match(Child.Name, "ServerReplicator") == nil) then
Child.Name = name
end
end
end
Player.Chatted:connect(function(msg)
print(Player.Name.."; "..msg)
end)
if (PlayerService.NumPlayers > PlayerService.MaxPlayers) then
KickPlayer(Player, "Too many players on server.")
else
print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' added")
if (showServerNotifications) then
game.Players:Chat("Player '" .. Player.Name .. "' joined")
end
Player:LoadCharacter()
LoadSecurity(newWaitForChildSecurity(Player,"Security"),Player,game.Lighting)
newWaitForChildSecurity(Player,"Tripcode")
LoadTripcode(Player)
pcall(function() print("Player '" .. Player.Name .. "-" .. Player.userId .. "' security check success. Tripcode: '" .. Player.Tripcode.Value .. "'") end)
if (Player.Character ~= nil) then
LoadCharacterNew(newWaitForChildSecurity(Player,"Appearance"),Player.Character)
end
end
pcall(function() _G.CSScript_OnPlayerAdded(Player) end)
coroutine.resume(coroutine.create(function()
while Player ~= nil do
wait(0.1)
if (game.Lighting:findFirstChild("DisableRespawns") == nil) then
if (Player.Character ~= nil) then
if (Player.Character:findFirstChild("Humanoid") and (Player.Character.Humanoid.Health == 0)) then
wait(5)
Player:LoadCharacter()
LoadCharacterNew(newWaitForChildSecurity(Player,"Appearance"),Player.Character)
elseif (Player.Character.Parent == nil) then
wait(5)
Player:LoadCharacter()
LoadCharacterNew(newWaitForChildSecurity(Player,"Appearance"),Player.Character)
end
end
end
end
end))
end)
PlayerService.PlayerRemoving:connect(function(Player)
print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' leaving")
if (showServerNotifications) then
game.Players:Chat("Player '" .. Player.Name .. "' left")
end
pcall(function() _G.CSScript_OnPlayerRemoved(Player) end)
end)
InitalizeSecurityValues(game.Lighting,ClientEXEMD5,LauncherMD5,ClientScriptMD5)
Server.IncommingConnection:connect(IncommingConnection)
pcall(function() game.Close:connect(function() Server:stop() end) end)
pcall(function() _G.CSScript_PostInit() end)
coroutine.resume(coroutine.create(function()
while true do
wait(0.1)
pcall(function() _G.CSScript_Update() end)
end
end))
end
function CSConnect(UserID,ServerIP,ServerPort,PlayerName,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID,HeadID,IconType,ItemID,ClientEXEMD5,LauncherMD5,ClientScriptMD5,Tripcode,Ticket)
local suc, err = pcall(function()
client = game:GetService("NetworkClient")
player = game:GetService("Players"):CreateLocalPlayer(UserID)
InitalizeSecurityValues(player,ClientEXEMD5,LauncherMD5,ClientScriptMD5)
InitalizeTripcode(player,Tripcode)
player:SetSuperSafeChat(false)
pcall(function() player:SetUnder13(false) end)
pcall(function() player:SetAccountAge(365) end)
pcall(function() player.Name=PlayerName or "" end)
game:GetService("Visit"):SetUploadUrl("")
InitalizeClientAppearance(player,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID,HeadID,ItemID)
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")
game:Close()
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..")")
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)
end)
if not suc then
local x = Instance.new("Message")
x.Text = err
x.Parent = workspace
wait(math.huge)
end
end
function CSStudio()
pcall(function() dofile("rbxasset://..//..//..//addons//core//AddonLoader.lua") end)
pcall(function() _G.CSScript_PreInit("Studio", "2007M-Shaders") end)
pcall(function() _G.CSScript_PostInit() end)
coroutine.resume(coroutine.create(function()
while true do
wait(0.1)
pcall(function() _G.CSScript_Update() end)
end
end))
end
function CS3DView(UserID,PlayerName,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID,HeadID,IconType,ItemID)
print("3DView loaded. Nerd.")
game:service("RunService"):run()
game:SetMessage("Loading Player...")
local plr = game.Players:createLocalPlayer(UserID)
plr.Name = PlayerName
plr:LoadCharacter()
InitalizeClientAppearance(plr,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID,HeadID,ItemID,IconType)
LoadCharacterNew(newWaitForChild(plr,"Appearance"),plr.Character,false)
local target = game.Workspace.Base.SpawnLocation
local camera = game.Workspace.CurrentCamera
camera.CameraType = 2
local cf = CFrame.new(0, 10, 18)
camera.CoordinateFrame = cf;
camera.CameraSubject = target
i = true
local function fixJump(prop)
plr.Character.Torso.Velocity = plr.Character.Torso.Velocity * Vector3.new (1, 0, 1)
if i == true then
plr.Character.Torso.CFrame = plr.Character.Torso.CFrame - Vector3.new(0, 1.8, 0)
i = false
else
i = true
end
end
wait(0.5)
for i,v in pairs(plr.Character:children()) do
if v.className == "Part" then
v.Anchored = true
end
end
plr.Character.Animate:remove()
plr.Character.Health:remove()
plr.Character.Sound:remove()
game.GuiRoot:remove()
local human = plr.Character.Humanoid
human.Jumping:connect(fixJump)
game:ClearMessage()
game:service("NetworkClient")
end
_G.CSServer=CSServer
_G.CSConnect=CSConnect
_G.CSStudio=CSStudio
_G.CS3DView=CS3DView
-- credit to KeyboardCombination
local succ = pcall(function() --check if the metatables are already read only lol
local canChange = getmetatable(game.Close);
canChange.__metatable = canChange.__metatable
end)
if not succ then
return;
end
function readonlytable(table)
return setmetatable({}, {
__index = table,
__newindex = function(table, key, value)
error("Attempt to modify read-only table")
end,
__metatable = false
});
end
function readonlytablechildren(table)
for i,v in pairs(table) do
if type(v)=="table" and table[i]~=_G._G then
readonlytablechildren(table[i])
table[i] = readonlytable(table[i])
end
if type(v)=="userdata" then
local mt = getmetatable(table[i])
if mt~=nil and mt~=false then
mt.__metatable=false
end
end
end
end
_G.rawset=nil
readonlytablechildren(_G)
_G._G = readonlytable(_G)
mt = getmetatable(game.Changed)
mt.__metatable=false
mt = getmetatable("curse you roblox")
mt.__metatable=false

View File

@ -1,81 +0,0 @@
<roblox xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.roblox.com/roblox.xsd" version="4">
<External>null</External>
<External>nil</External>
<Item class="NetworkSettings" referent="RBX0">
<Properties>
<int name="ExtraPingVariance">0</int>
<int name="MinExtraPing">0</int>
<string name="Name">Network</string>
<bool name="archivable">true</bool>
<float name="dataPacketSize">0.75</float>
<bool name="logPackets">false</bool>
<int name="maxDataModelSendBuffer">1000000</int>
<int name="maxSendBPS">0</int>
<bool name="printInstances">false</bool>
<bool name="printPacketBuffer">false</bool>
<bool name="printProperties">false</bool>
<float name="sendRate">1000000</float>
</Properties>
</Item>
<Item class="DebugSettings" referent="RBX1">
<Properties>
<token name="AssertAction">1</token>
<bool name="DisableEnvironmentalThrottle">false</bool>
<bool name="DisableSleep">false</bool>
<bool name="HighlightAwakeParts">false</bool>
<bool name="HighlightSleepParts">false</bool>
<string name="Name">Diagnostics</string>
<bool name="ShowAggregation">false</bool>
<bool name="ShowAnchors">false</bool>
<bool name="ShowModelCoords">false</bool>
<bool name="ShowPartCoords">false</bool>
<bool name="ShowUnalignedParts">false</bool>
<bool name="ShowWorldCoords">false</bool>
<bool name="SoundWarnings">false</bool>
<bool name="UseNewGraphics">false</bool>
<bool name="ValidatingDebug">false</bool>
<bool name="archivable">true</bool>
<token name="errorReporting">1</token>
<bool name="stackTracingEnabled">true</bool>
</Properties>
</Item>
<Item class="RenderSettings" referent="RBX2">
<Properties>
<token name="AASamples">1</token>
<Vector2int16 name="FullscreenSize">
<X>1024</X>
<Y>768</Y>
</Vector2int16>
<string name="Name">Rendering</string>
<bool name="Shadows">false</bool>
<Vector2int16 name="WindowSize">
<X>800</X>
<Y>600</Y>
</Vector2int16>
<float name="_AggregateSize">1</float>
<bool name="archivable">true</bool>
<bool name="delaySwapBuffer">true</bool>
<float name="maxMeshDetail">100</float>
<float name="maxShadingQuality">100</float>
<float name="minMeshDetail">100</float>
<float name="minShadingQuality">100</float>
<string name="profileName">profiled5</string>
</Properties>
</Item>
<Item class="Selection" referent="RBX3">
<Properties>
<string name="Name">Selection</string>
<bool name="archivable">true</bool>
</Properties>
</Item>
<Item class="GameSettings" referent="RBX4">
<Properties>
<bool name="AnimatedCharacter">true</bool>
<int name="ChatHistory">50</int>
<string name="Name">Game Options</string>
<bool name="SoftwareSound">false</bool>
<bool name="SoundEnabled">true</bool>
<bool name="archivable">true</bool>
</Properties>
</Item>
</roblox>

View File

@ -1,13 +0,0 @@
<roblox xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.roblox.com/roblox.xsd" version="4">
<External>null</External>
<External>nil</External>
<Item class="Script" referent="RBX0">
<Properties>
<bool name="Disabled">false</bool>
<Content name="LinkedSource"><null></null></Content>
<string name="Name">ResetCommand</string>
<string name="Source">function onChatted(msg, speaker)&#13;&#10; &#13;&#10; source = string.lower(speaker.Name)&#13;&#10; msg = string.lower(msg)&#13;&#10; -- Note: This one is NOT caps sensitive&#13;&#10;&#13;&#10; if msg == &quot;!!!reset&quot; then&#13;&#10; speaker.Character.Humanoid.Health = 0&#13;&#10; end&#13;&#10;end&#13;&#10;&#13;&#10;function onPlayerEntered(newPlayer)&#13;&#10; newPlayer.Chatted:connect(function(msg) onChatted(msg, newPlayer) end) &#13;&#10;end&#13;&#10; &#13;&#10;game.Players.ChildAdded:connect(onPlayerEntered)</string>
<bool name="archivable">true</bool>
</Properties>
</Item>
</roblox>

View File

@ -14,23 +14,19 @@ end
function KickPlayer(Player,reason)
pcall(function() _G.CSScript_OnPrePlayerKicked(Player,reason) end)
if (game.Lighting:FindFirstChild("SkipSecurity") ~= nil) then
if (game.Lighting:findFirstChild("SkipSecurity") ~= nil) then
do return end
end
Server = game:GetService("NetworkServer")
Server = game:service("NetworkServer")
if (Player ~= nil) then
pcall(function() _G.CSScript_OnPlayerKicked(Player,reason) end)
for _,Child in pairs(Server:children()) do
name = "ServerReplicator|"..Player.Name.."|"..Player.userId.."|"..Player.AnonymousIdentifier.Value
if (Server:findFirstChild(name) ~= nil and Child.Name == name) then
Child:CloseConnection()
Child:remove()
print("Player '" .. Player.Name .. "' Kicked. Reason: "..reason)
end
end
name = "ServerReplicator|"..Player.Name.."|"..Player.userId.."|"..Player.AnonymousIdentifier.Value
Server[name]:CloseConnection()
Server[name]:remove()
print("Player '" .. Player.Name .. "' Kicked. Reason: "..reason)
end
end

View File

@ -14,7 +14,7 @@ end
function KickPlayer(Player,reason)
pcall(function() _G.CSScript_OnPrePlayerKicked(Player,reason) end)
if (game.Lighting:FindFirstChild("SkipSecurity") ~= nil) then
if (game.Lighting:findFirstChild("SkipSecurity") ~= nil) then
do return end
end
@ -22,15 +22,11 @@ function KickPlayer(Player,reason)
if (Player ~= nil) then
pcall(function() _G.CSScript_OnPlayerKicked(Player,reason) end)
for _,Child in pairs(Server:children()) do
name = "ServerReplicator|"..Player.Name.."|"..Player.userId.."|"..Player.AnonymousIdentifier.Value
if (Server:findFirstChild(name) ~= nil and Child.Name == name) then
Child:CloseConnection()
Child:remove()
print("Player '" .. Player.Name .. "' Kicked. Reason: "..reason)
end
end
name = "ServerReplicator|"..Player.Name.."|"..Player.userId.."|"..Player.AnonymousIdentifier.Value
Server[name]:CloseConnection()
Server[name]:remove()
print("Player '" .. Player.Name .. "' Kicked. Reason: "..reason)
end
end

View File

@ -14,7 +14,7 @@ end
function KickPlayer(Player,reason)
pcall(function() _G.CSScript_OnPrePlayerKicked(Player,reason) end)
if (game.Lighting:FindFirstChild("SkipSecurity") ~= nil) then
if (game.Lighting:findFirstChild("SkipSecurity") ~= nil) then
do return end
end
@ -22,15 +22,11 @@ function KickPlayer(Player,reason)
if (Player ~= nil) then
pcall(function() _G.CSScript_OnPlayerKicked(Player,reason) end)
for _,Child in pairs(Server:children()) do
name = "ServerReplicator|"..Player.Name.."|"..Player.userId.."|"..Player.AnonymousIdentifier.Value
if (Server:findFirstChild(name) ~= nil and Child.Name == name) then
Child:CloseConnection()
Child:remove()
print("Player '" .. Player.Name .. "' Kicked. Reason: "..reason)
end
end
name = "ServerReplicator|"..Player.Name.."|"..Player.userId.."|"..Player.AnonymousIdentifier.Value
Server[name]:CloseConnection()
Server[name]:remove()
print("Player '" .. Player.Name .. "' Kicked. Reason: "..reason)
end
end
@ -557,7 +553,7 @@ print("ROBLOX Client version '" .. rbxversion .. "' loaded.")
function CSServer(Port,PlayerLimit,ClientEXEMD5,LauncherMD5,ClientScriptMD5,Notifications)
pcall(function() dofile("rbxasset://..//..//..//addons//core//AddonLoader.lua") end)
pcall(function() _G.CSScript_PreInit("Server", "2009E-HD") end)
pcall(function() _G.CSScript_PreInit("Server", "2009E") end)
Server = game:GetService("NetworkServer")
RunService = game:GetService("RunService")
Server:start(Port, 20)
@ -743,7 +739,7 @@ end
function CSStudio()
pcall(function() dofile("rbxasset://..//..//..//addons//core//AddonLoader.lua") end)
pcall(function() _G.CSScript_PreInit("Studio", "2009E-HD") end)
pcall(function() _G.CSScript_PreInit("Studio", "2009E") end)
pcall(function() _G.CSScript_PostInit() end)
coroutine.resume(coroutine.create(function()
while true do

View File

@ -14,7 +14,7 @@ end
function KickPlayer(Player,reason)
pcall(function() _G.CSScript_OnPrePlayerKicked(Player,reason) end)
if (game.Lighting:FindFirstChild("SkipSecurity") ~= nil) then
if (game.Lighting:findFirstChild("SkipSecurity") ~= nil) then
do return end
end
@ -22,15 +22,11 @@ function KickPlayer(Player,reason)
if (Player ~= nil) then
pcall(function() _G.CSScript_OnPlayerKicked(Player,reason) end)
for _,Child in pairs(Server:children()) do
name = "ServerReplicator|"..Player.Name.."|"..Player.userId.."|"..Player.AnonymousIdentifier.Value
if (Server:findFirstChild(name) ~= nil and Child.Name == name) then
Child:CloseConnection()
Child:remove()
print("Player '" .. Player.Name .. "' Kicked. Reason: "..reason)
end
end
name = "ServerReplicator|"..Player.Name.."|"..Player.userId.."|"..Player.AnonymousIdentifier.Value
Server[name]:CloseConnection()
Server[name]:remove()
print("Player '" .. Player.Name .. "' Kicked. Reason: "..reason)
end
end

View File

@ -15,7 +15,7 @@ end
function KickPlayer(Player,reason)
pcall(function() _G.CSScript_OnPrePlayerKicked(Player,reason) end)
if (game.Lighting:FindFirstChild("SkipSecurity") ~= nil) then
if (game.Lighting:findFirstChild("SkipSecurity") ~= nil) then
do return end
end
@ -23,17 +23,11 @@ function KickPlayer(Player,reason)
if (Player ~= nil) then
pcall(function() _G.CSScript_OnPlayerKicked(Player,reason) end)
for _,Child in pairs(Server:children()) do
name = "ServerReplicator|"..Player.Name.."|"..Player.userId.."|"..Player.AnonymousIdentifier.Value
if (Server:findFirstChild(name) ~= nil and Child.Name == name) then
--2010L crashes if we don't do this.
wait(0.3)
Child:CloseConnection()
Child:remove()
print("Player '" .. Player.Name .. "' Kicked. Reason: "..reason)
end
end
name = "ServerReplicator|"..Player.Name.."|"..Player.userId.."|"..Player.AnonymousIdentifier.Value
Server[name]:CloseConnection()
Server[name]:remove()
print("Player '" .. Player.Name .. "' Kicked. Reason: "..reason)
end
end

View File

@ -15,7 +15,7 @@ end
function KickPlayer(Player,reason)
pcall(function() _G.CSScript_OnPrePlayerKicked(Player,reason) end)
if (game.Lighting:FindFirstChild("SkipSecurity") ~= nil) then
if (game.Lighting:findFirstChild("SkipSecurity") ~= nil) then
do return end
end
@ -23,17 +23,11 @@ function KickPlayer(Player,reason)
if (Player ~= nil) then
pcall(function() _G.CSScript_OnPlayerKicked(Player,reason) end)
for _,Child in pairs(Server:children()) do
name = "ServerReplicator|"..Player.Name.."|"..Player.userId.."|"..Player.AnonymousIdentifier.Value
if (Server:findFirstChild(name) ~= nil and Child.Name == name) then
--2010L crashes if we don't do this.
wait(0.3)
Child:CloseConnection()
Child:remove()
print("Player '" .. Player.Name .. "' Kicked. Reason: "..reason)
end
end
name = "ServerReplicator|"..Player.Name.."|"..Player.userId.."|"..Player.AnonymousIdentifier.Value
Server[name]:CloseConnection()
Server[name]:remove()
print("Player '" .. Player.Name .. "' Kicked. Reason: "..reason)
end
end

View File

@ -17,23 +17,19 @@ end
function KickPlayer(Player,reason)
pcall(function() _G.CSScript_OnPrePlayerKicked(Player,reason) end)
if (game.Lighting:FindFirstChild("SkipSecurity") ~= nil) then
if (game.Lighting:findFirstChild("SkipSecurity") ~= nil) then
do return end
end
Server = game:GetService("NetworkServer")
if (Player ~= nil) then
pcall(function() _G.CSScript_OnPlayerKicked(Player,reason) end)
for _,Child in pairs(Server:children()) do
name = "ServerReplicator|"..Player.Name.."|"..Player.userId.."|"..Player.AnonymousIdentifier.Value
if (Server:findFirstChild(name) ~= nil and Child.Name == name) then
Child:CloseConnection()
Child:remove()
print("Player '" .. Player.Name .. "' Kicked. Reason: "..reason)
end
end
name = "ServerReplicator|"..Player.Name.."|"..Player.userId.."|"..Player.AnonymousIdentifier.Value
Server[name]:CloseConnection()
Server[name]:remove()
print("Player '" .. Player.Name .. "' Kicked. Reason: "..reason)
end
end

View File

@ -17,23 +17,19 @@ end
function KickPlayer(Player,reason)
pcall(function() _G.CSScript_OnPrePlayerKicked(Player,reason) end)
if (game.Lighting:FindFirstChild("SkipSecurity") ~= nil) then
if (game.Lighting:findFirstChild("SkipSecurity") ~= nil) then
do return end
end
Server = game:GetService("NetworkServer")
if (Player ~= nil) then
pcall(function() _G.CSScript_OnPlayerKicked(Player,reason) end)
for _,Child in pairs(Server:children()) do
name = "ServerReplicator|"..Player.Name.."|"..Player.userId.."|"..Player.AnonymousIdentifier.Value
if (Server:findFirstChild(name) ~= nil and Child.Name == name) then
Child:CloseConnection()
Child:remove()
print("Player '" .. Player.Name .. "' Kicked. Reason: "..reason)
end
end
name = "ServerReplicator|"..Player.Name.."|"..Player.userId.."|"..Player.AnonymousIdentifier.Value
Server[name]:CloseConnection()
Server[name]:remove()
print("Player '" .. Player.Name .. "' Kicked. Reason: "..reason)
end
end

View File

@ -18,23 +18,19 @@ end
function KickPlayer(Player,reason)
pcall(function() _G.CSScript_OnPrePlayerKicked(Player,reason) end)
if (game.Lighting:FindFirstChild("SkipSecurity") ~= nil) then
if (game.Lighting:findFirstChild("SkipSecurity") ~= nil) then
do return end
end
Server = game:GetService("NetworkServer")
if (Player ~= nil) then
pcall(function() _G.CSScript_OnPlayerKicked(Player,reason) end)
for _,Child in pairs(Server:children()) do
name = "ServerReplicator|"..Player.Name.."|"..Player.userId.."|"..Player.AnonymousIdentifier.Value
if (Server:findFirstChild(name) ~= nil and Child.Name == name) then
Child:CloseConnection()
Child:remove()
print("Player '" .. Player.Name .. "' Kicked. Reason: "..reason)
end
end
name = "ServerReplicator|"..Player.Name.."|"..Player.userId.."|"..Player.AnonymousIdentifier.Value
Server[name]:CloseConnection()
Server[name]:remove()
print("Player '" .. Player.Name .. "' Kicked. Reason: "..reason)
end
end

View File

@ -287,4 +287,8 @@ Drummer from Another Mother|DFAM
Brother from Another Mother|BFAM
Let's fly to the castle!
Not AI Powered!
Mega Man drops January 7th!|Listen!
Mega Man drops January 7th!|Listen!
Woahsi! It's a double Yoshi exploshi!|This... This is how the Wii U died....
TEH DAY OF ALL TEH BLOD|THIS IS THE STORY OF A DAY WHERE THERE WAS ALL THIS BLOOD. A MAN WAS WALKING AROUND AND BLOOD STARTED COMING OUT OF HIM EVERYWHERE. THERE WAS SO MUCH BLOOD THAT IT FILLED UP AN ELEVATOR. HE WENT TO THE STORE AND THERE WAS JUST BLOOD ALL OVER THE PLACE! PEOPLE WERE SLIPPING IN IT AND THEY WERE ALL GROSSED OUT. HE TRIED TO GO SWIMMING AND ALL OF THE SHARKS WENT NUTS AND BITTENED EVERYBODY. HE GOT CHASED BY ALL THE VAMPIRES EVER. ONE TIME THE BLOOD GOT A KID AND A DOG. AT THE END OF THE DAY EVERYONE DECIDED THEY WOULD SEND HIM TO SPACE SO THAT HE WOULD STOP GETTING BLOOD EVERY WHERE. THE SCARIEST PART IS THAT THE MAN WAS YOU!!! (OR HE WAS A LADY IF YOU ARE A LADY) AND YOU FORGOT THAT THIS HAPPENED.
Im using tilt controls!
Being useful to the Grox is good for your survival.