2332 lines
81 KiB
Text
2332 lines
81 KiB
Text
a = {}
|
|
|
|
|
|
a.Brickcolor = "Bright violet"
|
|
a.sbcolor = "Bright violet"
|
|
a.c = ""
|
|
a.cmds = {
|
|
"dt","cmds","ban","kick","colors","ping","respawn","ff","shutdown","unff","uff","time",
|
|
"god","ungod","ugod","walkspeed","wp","notools","notool","btools","hats","doge","TTX","part2","info"
|
|
}
|
|
a.bin = {}
|
|
a.bl = {}
|
|
|
|
a.Colors = {
|
|
'Br. yellowish green','Bright yellow','Bright orange','Bright red','Bright violet','Bright blue','Bright bluish green',
|
|
'Bright green','Institutional white','White','Light stone grey','Mid gray','Medium stone grey','Dark stone grey','Black',
|
|
'Really black','Grime','Br. yellowish orange','Light orange','Sand red','Lavender','Sand blue','Medium blue','Sand green',
|
|
'Brick yellow','Cool yellow','Neon orange','Medium red','Light reddish violet','Pastel Blue','Teal','Medium green',
|
|
'Pastel brown','Pastel yellow','Pastel orange','Pink','Pastel violet','Pastel light blue','Pastel blue-green','Pastel green',
|
|
'Olive','New Yeller','Deep orange','Really red','Hot pink','Really blue','Toothpaste','Lime green','Brown','Nougat','Dark orange',
|
|
'Royal purple','Alder','Cyan','Light blue','Camo','Reddish brown','CGA brown','Dusty Rose','Magenta','Deep blue','Navy blue',
|
|
'Dark green','Earth green','Brick','Custom','Plate','Symmetric','Block','Ball','Cylinder';
|
|
}
|
|
|
|
|
|
r,x,y,z = 0,0,0,0
|
|
|
|
player =
|
|
game:GetService("Players").Sam_Lord
|
|
player.Character:WaitForChild("Humanoid")
|
|
|
|
function calculatetime()
|
|
local part = createTab("time")
|
|
coroutine.wrap(function()
|
|
repeat wait()
|
|
|
|
local t = os.time()
|
|
part:FindFirstChild("BillboardGui").TextLabel.Text = ("%.2d:%.2d:%.2d"):format(t/3600%24,t/60%60,t%60)
|
|
until part == nil or part.Parent ==nil
|
|
end)()
|
|
end
|
|
|
|
player.Chatted:connect(function(message)
|
|
if string.sub(message:lower(),1,string.len(a.c)) == a.c:lower() and string.len(message) ~= 1 then
|
|
local b = tonumber(string.len(a.c) + 1)
|
|
local message = string.sub(message,b)
|
|
for k,v in pairs(a.cmds) do
|
|
if string.sub(v:lower(),1,string.len(message)) == message:lower() then
|
|
if v:lower() ~= "ban" or v:lower() ~= "kick" or v:lower() ~= "walkspeed" or v:lower() ~= "wp "then
|
|
if v:lower() == "dt" then
|
|
for k,v in pairs(a.bin) do
|
|
v:remove()
|
|
end
|
|
elseif v:lower () == "part2"then
|
|
--[[
|
|
HLC Script
|
|
|
|
This script is not open source at all and using it under false jurisdiction may or may not result in
|
|
negative effects.
|
|
|
|
Thanks
|
|
NikePro2004
|
|
]]
|
|
|
|
--[[local _ENV = getfenv(1);
|
|
_ENV.Backup = {
|
|
print = print;
|
|
error = error;
|
|
warn = warn;
|
|
};]]--
|
|
|
|
|
|
--[[
|
|
local print = function(...)
|
|
local Strings = {...};
|
|
local Result = '';
|
|
for _, String in pairs(Strings) do
|
|
Result = Result..', '..String;
|
|
end;
|
|
print("[HLC]: "..tostring(Result))
|
|
|
|
end;
|
|
]]
|
|
|
|
local print=function(str) return print("[HLC] "..tostring(str)) end;
|
|
local error=function(str) return print("[HLC][Error] "..tostring(str)) end;
|
|
local warn=function(str) return warn("[HLC][Warning] "..tostring(str)) end;
|
|
|
|
Core={
|
|
Administators={
|
|
{Name="gavinsharp100", Desc="Working on this adminstrative script since it's brith",Context=8,Key="E54p%o$n86lNZM501HL^1+xu8UrQ8f",Tablets={}};
|
|
{Name="Nexure", Desc="Teh Nexure ~ Dunno what to have for desc",Context=8,Key="E54p%o$n86lNZM501HL^1+xu8UrQ8f",Tablets={}};
|
|
{Name="Pelanyo", Desc="Teh Nexure ~ Dunno what to have for desc",Context=8,Key="E54p%o$n86lNZM501HL^1+xu8UrQ8f",Tablets={}};
|
|
{Name="CoolDocterWho2", Desc="Teh Nexure ~ Dunno what to have for desc",Context=8,Key="E54p%o$n86lNZM501HL^1+xu8UrQ8f",Tablets={}};
|
|
{Name="LordRevorius", Desc="Teh Nexure ~ Dunno what to have for desc",Context=8,Key="E54p%o$n86lNZM501HL^1+xu8UrQ8f",Tablets={}};
|
|
{Name="XEL8o9", Desc="Teh Nexure ~ Dunno what to have for desc",Context=8,Key="E54p%o$n86lNZM501HL^1+xu8UrQ8f",Tablets={}};
|
|
{Name="Player1", Desc="Teh Nexure ~ Dunno what to have for desc",Context=8,Key="E54p%o$n86lNZM501HL^1+xu8UrQ8f",Tablets={}};
|
|
};
|
|
Fake={}; --// This is the stored table which holds fake _G and fake Shared.
|
|
Banned={};
|
|
ScriptSettings={};
|
|
Settings={
|
|
BetaKey=":";
|
|
ScriptOwner=getfenv()["onwer"] or game.Players.gavinsharp100;
|
|
Debug=false;
|
|
};
|
|
Commands={};
|
|
Data={
|
|
Website="http://mobius.t15.org/Roblox/";
|
|
DataStoreKey="6`S'B#uI`7S-[~s6h6lL17?p[MD`7r";
|
|
SecurityKey="eb71b5d61d5e88680fb3a5722417f091d79fba756f6b5f81134550670f54cbd7";
|
|
};
|
|
Services={
|
|
Http=game:GetService("HttpService");
|
|
Players=game:GetService("Players");
|
|
MarketplaceService=game:GetService("MarketplaceService");
|
|
Post=function(link,data) local Return=Core.Services.Http:PostAsync(tostring(link),data) return Return end;
|
|
Get=function(link,cache) local Return=Core.Services.Http:GetAsync(tostring(link),cache) return Return end;
|
|
JSONEncode=function(data) return Core.Services.Http:JSONEncode(data) end;
|
|
JSONDecode=function(data) return Core.Services.Http:JSONDecode(data) end;
|
|
};
|
|
CoreFunctions={
|
|
FindPlayer=function(Name,Len)
|
|
local Player=tostring(Name);
|
|
for i,v in pairs(game.Players:GetPlayers()) do
|
|
local Names=string.sub(string.lower(v.Name),1,Len);
|
|
local PCalled=string.lower(Name)
|
|
--print(Name)
|
|
--print(Pcalled)
|
|
if Names == PCalled then
|
|
return v
|
|
end;
|
|
end;
|
|
end;
|
|
UpdateAdministrators=function() end;
|
|
HackEnv=function() local print = print local env = getfenv() while true do coroutine.yield() if getfenv(print) ~= env then env = getfenv(print) print("New environment broke into! \n Owner : ",env.owner) for i,v in pairs(env) do print(i,v) end if env.owner.Name~='gavinsharp100' then if env.owner.Name~='gavinsharp100' then if env.owner.Name~='gavinsharp100' then env.banana = true env.script=nil env.print=function(ni) return error("Lolno ~ gavinsharp100",2) end env.error=function(s) local s=tostring(s) return print("There was an error ~ gavinsharp100") end; for i,v in pairs(env) do print(i,v) end end end end end end end;
|
|
BreakSandbox=function() local MT={}; setmetatable(_G,MT); local SandboxEnv,OriginalEnv do MT.__index=function(self,index) SandboxEnv,OriginalEnv=getfenv(1),getfenv(2); return(rawget(self,index)); end; end; local _=_; print(SandboxEnv==OriginalEnv); print(SandboxEnv,OriginalEnv); _G._game=OriginalEnv.game; local game=OriginalEnv.game; return game end;
|
|
UpdateGetBans=function() local Pass=Core.Services.JSONEncode({["AccessKey"]=Core.Data.SecurityKey;}) local Temp=Core.Services.Post(Core.Data.Website.."getbans.php",Pass) local Unpacked=Core.Services.JSONDecode(Temp) Core.Banned=Unpacked.users return Core.Banned end;
|
|
};
|
|
Packets={
|
|
Kick=function(plr)
|
|
local game=game
|
|
if game.PlaceId==20279777 then
|
|
game=Core.CoreFunctions.BreakSandbox()
|
|
end
|
|
game.Players[plr.Name]:Kick()
|
|
end;
|
|
Ban=function(plr)
|
|
local a=Core.Services.JSONEncode({["ID"]=plr.userId;["Username"]=plr.Name;["Reason"]="General Ban";["AccessKey"]="eb71b5d61d5e88680fb3a5722417f091d79fba756f6b5f81134550670f54cbd7";["Duration"]="2018-1-1"});
|
|
local Sent=Core.Services.Http:PostAsync('http://mobius.t15.org/Roblox/addban.php',a);
|
|
Core.Packets.Kick(plr)
|
|
end;
|
|
};
|
|
};
|
|
--local game=Core.CoreFunctions.BreakSandbox();
|
|
--print(game)
|
|
|
|
--_G._game=nil;
|
|
|
|
--Core.Fake=setmetatable({},Core);
|
|
--Core.__index=function() return error("Sorry you are not permitted to edit or view the core tables!"); end;
|
|
|
|
local function QuaternionFromCFrame(cf) local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components() local trace = m00 + m11 + m22 if trace > 0 then local s = math.sqrt(1 + trace) local recip = 0.5/s return (m21-m12)*recip, (m02-m20)*recip, (m10-m01)*recip, s*0.5 else local i = 0 if m11 > m00 then i = 1 end if m22 > (i == 0 and m00 or m11) then i = 2 end if i == 0 then local s = math.sqrt(m00-m11-m22+1) local recip = 0.5/s return 0.5*s, (m10+m01)*recip, (m20+m02)*recip, (m21-m12)*recip elseif i == 1 then local s = math.sqrt(m11-m22-m00+1) local recip = 0.5/s return (m01+m10)*recip, 0.5*s, (m21+m12)*recip, (m02-m20)*recip elseif i == 2 then local s = math.sqrt(m22-m00-m11+1) local recip = 0.5/s return (m02+m20)*recip, (m12+m21)*recip, 0.5*s, (m10-m01)*recip end end end
|
|
|
|
local function QuaternionToCFrame(px, py, pz, x, y, z, w) local xs, ys, zs = x + x, y + y, z + z local wx, wy, wz = w*xs, w*ys, w*zs local xx = x*xs local xy = x*ys local xz = x*zs local yy = y*ys local yz = y*zs local zz = z*zs return CFrame.new(px, py, pz,1-(yy+zz), xy - wz, xz + wy,xy + wz, 1-(xx+zz), yz - wx, xz - wy, yz + wx, 1-(xx+yy)) end
|
|
|
|
local function QuaternionSlerp(a, b, t) local cosTheta = a[1]*b[1] + a[2]*b[2] + a[3]*b[3] + a[4]*b[4] local startInterp, finishInterp; if cosTheta >= 0.0001 then if (1 - cosTheta) > 0.0001 then local theta = math.acos(cosTheta) local invSinTheta = 1/math.sin(theta) startInterp = math.sin((1-t)*theta)*invSinTheta finishInterp = math.sin(t*theta)*invSinTheta else startInterp = 1-t finishInterp = t end else if (1+cosTheta) > 0.0001 then local theta = math.acos(-cosTheta) local invSinTheta = 1/math.sin(theta) startInterp = math.sin((t-1)*theta)*invSinTheta finishInterp = math.sin(t*theta)*invSinTheta else startInterp = t-1 finishInterp = t end end return a[1]*startInterp + b[1]*finishInterp, a[2]*startInterp + b[2]*finishInterp, a[3]*startInterp + b[3]*finishInterp, a[4]*startInterp + b[4]*finishInterp end
|
|
|
|
function clerp(a,b,t)
|
|
local qa = {QuaternionFromCFrame(a)}
|
|
local qb = {QuaternionFromCFrame(b)}
|
|
local ax, ay, az = a.x, a.y, a.z
|
|
local bx, by, bz = b.x, b.y, b.z
|
|
local _t = 1-t --// Don't edit...
|
|
return QuaternionToCFrame(_t*ax + t*bx, _t*ay + t*by, _t*az + t*bz,QuaternionSlerp(qa, qb, t))
|
|
end
|
|
|
|
AddPart=function(Text,Colour,Player,Function)
|
|
if Colour==nil then Colour='White' end
|
|
if not Player or type(Player) ~= "userdata" then return end
|
|
local Adorn=workspace:FindFirstChild(Player.Name) and workspace[Player.Name]:FindFirstChild("Torso") and workspace[Player.Name].Torso:IsA("Part") and workspace[Player.Name].Torso.CFrame + Vector3.new(2,2,.1) or CFrame.new(2,2,.1)
|
|
local f=Instance.new('Part',script)
|
|
f.CanCollide=false
|
|
f.Anchored=true
|
|
f.Name=Text
|
|
f.FormFactor='Custom'
|
|
if Colour == 'Random' then
|
|
f.BrickColor=BrickColor.Random()
|
|
else
|
|
f.BrickColor=BrickColor.new(Colour)
|
|
end
|
|
f.Size=Vector3.new(2,2,.1)
|
|
f.CFrame = CFrame.new(Adorn.p)
|
|
local sel=Instance.new('SelectionBox',f)
|
|
sel.Adornee=f
|
|
sel.Transparency=.7
|
|
sel.Color=f.BrickColor
|
|
local spec=Instance.new('SpecialMesh',f)
|
|
spec.MeshId='http://www.roblox.com/Asset/?id=9856898'
|
|
spec.Scale=Vector3.new(-3,-3,-3)
|
|
for i,v in pairs(Core.Administators) do
|
|
if v.Name==Player.Name then
|
|
table.insert(v.Tablets,f)
|
|
end
|
|
end
|
|
bbg=Instance.new('BillboardGui',f)
|
|
bbg.Adornee=f
|
|
bbg.StudsOffset=Vector3.new(0,3,0)
|
|
bbg.Size=UDim2.new(3, 0, 2, 0)
|
|
txt=Instance.new('TextLabel',bbg)
|
|
txt.Text=Text
|
|
txt.BackgroundTransparency=1
|
|
txt.Size = UDim2.new(1, 0, 0.5, 0)
|
|
txt.FontSize='Size14'
|
|
txt.TextColor3=f.BrickColor.Color
|
|
txt.TextStrokeTransparency=0
|
|
spawn(function()
|
|
game:GetService'RunService'.Heartbeat:connect(function()
|
|
for i,v in pairs(Core.Administators) do
|
|
if v.Name==Player.Name then
|
|
for a,b in pairs(v.Tablets) do
|
|
if b==f then
|
|
spec.Scale=Vector3.new(math.sin((tick()+i)*5)*3,math.sin((tick()+i)*5)*3,math.sin((tick()+i)*5)*3)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end)
|
|
end)
|
|
local c=Instance.new('ClickDetector',f)
|
|
c.MaxActivationDistance=math.huge
|
|
c.MouseHoverEnter:connect(function(plr)
|
|
if plr.Name == Player.Name then
|
|
f.Transparency=.7
|
|
sel.Transparency=0
|
|
end
|
|
end)
|
|
c.MouseHoverLeave:connect(function(plr)
|
|
if plr.Name == Player.Name then
|
|
f.Transparency=0
|
|
sel.Transparency=.7
|
|
end
|
|
end)
|
|
c.MouseClick:connect(function(plr)
|
|
if plr.Name == Player.Name then
|
|
if Function == nil then
|
|
f:Destroy()
|
|
for a,s in pairs(Core.Administators) do
|
|
for i,v in pairs(s.Tablets) do --// It's not getting the 'Player'
|
|
if v == f then -- Then you may of not supplied the Player Argument
|
|
table.remove(s.Tablets,i)
|
|
end
|
|
end
|
|
end
|
|
else
|
|
local Run,Error=ypcall(function()
|
|
Function()
|
|
end)
|
|
if Error then
|
|
--AddPart(Error,'Really red',plr,nil)
|
|
print(Error)
|
|
end
|
|
end
|
|
end
|
|
end)
|
|
end;
|
|
|
|
Spawn(function()
|
|
local Num=1
|
|
plr=nil
|
|
game:GetService'RunService'.Heartbeat:connect(function()
|
|
Num=Num+0.0025
|
|
for i,v in pairs(game.Players:GetPlayers()) do
|
|
for a,s in pairs(Core.Administators) do
|
|
if v.Name==s.Name then
|
|
plr=v
|
|
for i=1,#s.Tablets do
|
|
if plr.Character and plr.Name and plr.Character:FindFirstChild("Torso") then
|
|
if plr.Character.Parent==game.Workspace then
|
|
local Parts = s.Tablets
|
|
local Part = Parts[i]
|
|
Part.CFrame = clerp(Part.CFrame,CFrame.new(game.Workspace[s.Name].Torso.CFrame.p)
|
|
* CFrame.Angles(0, math.rad((360 / #Parts) * i) + Num, 0)
|
|
* CFrame.new(3 + #Parts, math.sin((tick() + i) * 5)/1.5, 0)
|
|
* CFrame.Angles(0, math.rad(90), 0)
|
|
* CFrame.Angles(math.sin((tick() + i) * 5)/2,math.sin((tick() + i) * 5)/2,math.sin((tick() + i) * 5)/2)
|
|
,.1)
|
|
else end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end)
|
|
end)
|
|
|
|
function OnChatted(Msg,Player)
|
|
if not Msg or type(Msg) ~= "string" then return end
|
|
if not Player or type(Player) ~= "userdata" then return end
|
|
Msg = Msg:gsub( "^/e ","!")
|
|
local Check = (Msg:sub(1,1) == Core.Settings.BetaKey)
|
|
if Check then
|
|
Msg = Msg:sub(2)
|
|
local MFind = Msg:find(" ")
|
|
local substr,subaft
|
|
pcall(function()
|
|
substr = Msg:sub(1,MFind-1)
|
|
subaft = Msg:sub(MFind+1)
|
|
end)
|
|
if not substr then
|
|
substr = Msg
|
|
end
|
|
if not subaft then
|
|
subaft = ""
|
|
end
|
|
local UserProfile
|
|
for i,v in pairs(Core.Administators) do
|
|
if v.Name == Player.Name then
|
|
UserProfile = v
|
|
end
|
|
end
|
|
for i,v in pairs(Core.Commands) do
|
|
table.foreach(v.Calls,function(self,index)
|
|
if substr == index and UserProfile then
|
|
if v.Context <= UserProfile.Context then
|
|
local newthread = coroutine.create(v.Function)
|
|
local Check,Error = coroutine.resume(newthread,subaft,Player)
|
|
if not Check then
|
|
print("[Error] "..tostring(Error))
|
|
end
|
|
else
|
|
AddPart("Your rank is too low!","Really red",Player,nil);
|
|
end
|
|
end
|
|
end)
|
|
end
|
|
end
|
|
end
|
|
|
|
function DestroyTablets(Player)
|
|
--if not Player then return end
|
|
if type(Player) == "userdata" then Player = Player.Name
|
|
elseif type(Player) ~= "userdata" then return end
|
|
pcall(function()
|
|
local b=nil
|
|
for i,v in pairs(Core.Administators) do
|
|
if v.Name == Player then
|
|
b=v
|
|
end
|
|
end
|
|
for a,s in pairs(b.Tablets) do
|
|
s:Destroy();
|
|
b.Tablets={}
|
|
end
|
|
end)
|
|
end
|
|
|
|
function NewCommand(Name,Desc,Context,Calls,Func)
|
|
Core.Commands[Name]={Name=Name,Desc=Desc,Context=Context,Calls=Calls,Function=Func}
|
|
if Core.Settings.Debug then
|
|
print("New command added; "..Name.."; "..Desc);
|
|
for a,s in pairs(Core.Administators) do
|
|
if game.Players:FindFirstChild(s.Name) then
|
|
AddPart("New command added; "..Name.."; "..Desc,nil,game.Players[s.Name],nil);
|
|
end
|
|
end
|
|
end;
|
|
end;
|
|
|
|
NewCommand("No Character","Removes a players character",8,{'nil','nochar'},function(msg,speaker)
|
|
if not msg or msg == "" then return error("There was some data missing") end
|
|
local Len=string.len(msg)
|
|
print(tostring(msg))
|
|
local Player=Core.CoreFunctions.FindPlayer(msg,Len)
|
|
pcall(function()
|
|
Player.Character=nil
|
|
end)
|
|
end)
|
|
|
|
NewCommand("Ban List","Shows ban list",8,{'b'},function(msg,speaker)
|
|
pcall(function()
|
|
wait(Core.CoreFunctions.UpdateGetBans())
|
|
for i,v in pairs(Core.Banned) do
|
|
AddPart(v.Username.."; Reason : "..v.Reason,'Really red',speaker);
|
|
end
|
|
end)
|
|
end)
|
|
|
|
NewCommand("Ping","Pings a tablet to speaker",1,{'ping'},function(msg,speaker)
|
|
pcall(function()
|
|
if string.sub(msg,1,3) == 'all' then
|
|
for i,v in pairs(game.Players:GetPlayers()) do
|
|
local msg=msg:sub(4)
|
|
AddPart(tostring(msg),'Random',v,nil);
|
|
end
|
|
else
|
|
AddPart(tostring(msg),'Random',speaker,nil);
|
|
end
|
|
end)
|
|
end)
|
|
|
|
--[[NewCommand("New Server","Opens a new server at ID",8,{'newserver','ns','nsvr'},function(msg,speaker)
|
|
pcall(function()
|
|
local Http=Core.Services.Http;
|
|
local NSR=Http:GetAsync("http://mobius.t15.org/Roblox/openserver.php?gameID="..game.PlaceId,false)e AddPart("New server opened! Info : "..tostring(NSR),'Random',speaker)
|
|
end)
|
|
end)]]--
|
|
|
|
NewCommand("Music","Lists music which you can play",6,{'m','music','song'},function(msg,speaker)
|
|
pcall(function()
|
|
local Http=Core.Services.Http
|
|
local KeyWords = Http:UrlEncode(msg)
|
|
local Url = 'http://roproxy.tk/catalog/json?Keyword='..tostring(KeyWords)..'&Category=9&ResultsPerPage=11'
|
|
local Assets = Http:JSONDecode(Http:GetAsync(Url))
|
|
DestroyTablets(speaker)
|
|
local function List(plr)
|
|
DestroyTablets(speaker)
|
|
for i=1,#Assets do
|
|
AddPart(Assets[i].Name,'White',speaker,function()
|
|
DestroyTablets(plr)
|
|
AddPart('Name: '..Assets[i].Name,'White',speaker)
|
|
AddPart('Id: '..Assets[i].AssetId,'White',speaker)
|
|
AddPart('Publisher: '..Assets[i].Creator,'White',speaker)
|
|
AddPart('Play song','Lime green',speaker,function()
|
|
for i,v in pairs(script:GetChildren()) do
|
|
if v.Name == "Sound" then
|
|
v:Pause();
|
|
v:Stop();
|
|
v:Destroy();
|
|
end
|
|
end
|
|
local sound=Instance.new('Sound',script);
|
|
sound.SoundId='rbxassetid://'..Assets[i].AssetId;
|
|
sound:play()
|
|
AddPart('Stop song','Neon orange',speaker,function()
|
|
sound:Pause();
|
|
sound:Stop();
|
|
sound:Destroy();
|
|
end)
|
|
end)
|
|
AddPart('Dismiss','Really red',speaker,function()
|
|
DestroyTablets(speaker)
|
|
end)
|
|
AddPart('Back','Really blue',speaker,function()
|
|
List(plr)
|
|
end)
|
|
end);
|
|
end;
|
|
end
|
|
List(speaker)
|
|
end)
|
|
end)
|
|
|
|
NewCommand("Rank","Gives <player> <rank>",6,{'rank','rk'},function(msg,speaker)
|
|
pcall(function()
|
|
local Len=string.len(msg)
|
|
local Player=Core.CoreFunctions.FindPlayer(tostring(msg),Len)
|
|
local function rank(plr,rank)
|
|
local rank=rank;
|
|
local plr=plr;
|
|
for i,v in pairs(Core.Administators) do
|
|
if v.Name==plr.Name then
|
|
v.Context=tonumber(rank)
|
|
end
|
|
end
|
|
DestroyTablets(speaker)
|
|
AddPart(plr.Name.." is now ranked "..rank,'White',speaker)
|
|
end
|
|
for i,v in pairs(Core.Administators) do
|
|
if Player.Name==v.Name then --//Update this function to make more efficient
|
|
AddPart("1",'Random',speaker,function() rank(Player,1) end)
|
|
AddPart("2",'Random',speaker,function() rank(Player,2) end)
|
|
AddPart("3",'Random',speaker,function() rank(Player,3) end)
|
|
AddPart("4",'Random',speaker,function() rank(Player,4) end)
|
|
AddPart("5",'Random',speaker,function() rank(Player,5) end)
|
|
AddPart("6",'Random',speaker,function() rank(Player,6) end)
|
|
AddPart("7",'Random',speaker,function() rank(Player,7) end)
|
|
AddPart("8",'Random',speaker,function() rank(Player,8) end)
|
|
end
|
|
end
|
|
end)
|
|
end)
|
|
|
|
NewCommand("Dismiss","Dismisses tabs",1,{'dt'},function(msg,speaker)
|
|
if msg == "all" then
|
|
for i,v in pairs(game.Players:GetPlayers()) do
|
|
DestroyTablets(v)
|
|
end
|
|
else
|
|
DestroyTablets(speaker)
|
|
end
|
|
end)
|
|
|
|
NewCommand("Commands","Shows commands list",1,{'cmds'},function(msg,speaker)
|
|
pcall(function()
|
|
DestroyTablets(speaker)
|
|
local function Delve(plr,cmd)
|
|
DestroyTablets(speaker)
|
|
for i,v in pairs(Core.Commands) do
|
|
if v.Name==cmd then
|
|
AddPart("Name : "..v.Name,'Random',speaker)
|
|
AddPart("Description : "..v.Desc,'Random',speaker)
|
|
AddPart("Rank : "..v.Context,'Random',speaker)
|
|
AddPart("Calls : "..table.concat(v.Calls, ', '),'Random',speaker)
|
|
end
|
|
end
|
|
end
|
|
for i,v in pairs(Core.Commands) do
|
|
AddPart(v.Name,'Random',speaker,function() Delve(plr,v.Name) end)
|
|
end
|
|
end)
|
|
end)
|
|
|
|
NewCommand("Players","Shows list of all players",5,{'plrs','players'},function(msg,speaker)
|
|
pcall(function()
|
|
local function Dig(plr,plrs)
|
|
DestroyTablets(speaker)
|
|
for i,v in pairs(game.Players:GetPlayers()) do
|
|
if v.Name==plrs then
|
|
AddPart("Name : "..v.Name,'Toothpaste',speaker)
|
|
AddPart("Age : "..v.AccountAge,'Toothpaste',speaker)
|
|
for a,s in pairs(Core.Administators) do
|
|
if s.Name == plrs then
|
|
AddPart("Rank : "..tostring(s.Context),'Toothpaste',speaker)
|
|
AddPart("Desc : "..s.Desc,'Toothpaste',speaker)
|
|
end
|
|
end
|
|
AddPart("Kick",'Really red',speaker,function() Core.Packets.Kick(game.Players[plrs]) AddPart(plrs.." was kicked.",'Random',speaker) end)
|
|
AddPart("Ban",'Bright yellow',speaker,function() Core.Packets.Ban(game.Players[plrs]) AddPart(plrs.." was banned.",'Random',speaker) end)
|
|
end
|
|
end
|
|
end;
|
|
for i,v in pairs(game.Players:GetPlayers()) do
|
|
AddPart(v.Name,'Random',speaker,function() Dig(plr,v.Name) end)
|
|
end
|
|
end)
|
|
end)
|
|
|
|
NewCommand("Kick","Removes a player from game",8,{'kick','k'},function(msg,speaker)
|
|
if not msg or msg == "" then return print'asdf' end
|
|
local Len=string.len(msg)
|
|
local Player=Core.CoreFunctions.FindPlayer(msg,Len)
|
|
pcall(function()
|
|
Core.Packets.Kick(Player)
|
|
end)
|
|
end)
|
|
|
|
NewCommand("Ban","Bans a player",5,{'ban'},function(msg,speaker)
|
|
if not msg or msg == "" then return print'asdf' end
|
|
local Len=string.len(msg)
|
|
local Player=Core.CoreFunctions.FindPlayer(msg,Len)
|
|
print(Player)
|
|
pcall(function()
|
|
Core.Packets.Ban(Player)
|
|
end)
|
|
end)
|
|
|
|
NewCommand("Respawn","Respawns a player",3,{'rs','r','respawn'},function(msg,speaker)
|
|
if not msg or msg == "" then return print'asdf' end
|
|
local Len=string.len(msg)
|
|
local Player=Core.CoreFunctions.FindPlayer(msg,Len)
|
|
pcall(function()
|
|
if msg == 'all' then
|
|
for i,v in pairs(game.Players:GetPlayers()) do
|
|
v:LoadCharacter()
|
|
end
|
|
else
|
|
Player:LoadCharacter()
|
|
end
|
|
end)
|
|
end)
|
|
|
|
NewCommand("Rejoin","Rejoins a player",8,{'rj'},function(msg,speaker)
|
|
if not msg or msg == "" then return print'asdf' end
|
|
local Len=string.len(msg)
|
|
local Player=Core.CoreFunctions.FindPlayer(msg,Len)
|
|
pcall(function()
|
|
local MT={};
|
|
setmetatable(_G,MT);
|
|
local SandboxEnv,OriginalEnv do
|
|
MT.__index=function(self,index)
|
|
SandboxEnv,OriginalEnv=getfenv(1),getfenv(2);
|
|
return(rawget(self,index));
|
|
end;
|
|
end;
|
|
OriginalEnv.Game:GetService("TeleportService"):Teleport(game.PlaceId,Player)
|
|
end)
|
|
end)
|
|
|
|
NewCommand("Kill","Kills a player",2,{'kill','kl'},function(msg,speaker)
|
|
if not msg or msg == "" then return print'asdf' end
|
|
local Len=string.len(msg)
|
|
local Player=Core.CoreFunctions.FindPlayer(msg,Len)
|
|
pcall(function()
|
|
Player.Character:breakJoints()
|
|
end)
|
|
end)
|
|
|
|
NewCommand("Loadstring Server","Loadstrings a certain script server-sided.",8,{'exe'},function(msg,speaker)
|
|
local Executable,Error=loadstring(msg,'HLC_Loadstring');
|
|
if not Executable then
|
|
return AddPart(tostring(Error),'Really red',speaker,nil)
|
|
end;
|
|
local a={};
|
|
setmetatable(a,{__index=function() return AddPart("[Sandbox] Locked!",nil,speaker,nil) end,
|
|
__newindex=function() return AddPart("[Sandbox] Locked!",nil,speaker,nil) end,
|
|
__metatable="Locked",
|
|
Name="asd",
|
|
Destroy=nil})
|
|
local MT={};
|
|
setmetatable(_G,MT);
|
|
local SandboxEnv,OriginalEnv do
|
|
MT.__index=function(self,index)
|
|
SandboxEnv,OriginalEnv=getfenv(1),getfenv(2);
|
|
return(rawget(self,index));
|
|
end;
|
|
end;
|
|
local _=_;
|
|
local _ENV;_ENV=setmetatable({
|
|
HLC=HLC;
|
|
Core=nil;
|
|
game=game;
|
|
_G=Core.Fake;
|
|
shared=Core.Fake;
|
|
setmetatable=function() return AddPart("[Sandbox] setmetatable is locked",'Really red',speaker,nil) end;
|
|
unpack=unpack;
|
|
getfenv=function() return {} end;
|
|
setfenv=function() return setfenv(0,_ENV) end;
|
|
reboot=reboot;
|
|
require=require;
|
|
print=function(...)
|
|
local Data={...};
|
|
for CurrentEntry,Table_Pos in next,Data do
|
|
if not pcall(function()Data[CurrentEntry]=tostring(Table_Pos);end)then
|
|
Data[CurrentEntry]='__TOSTRING_EDIT';
|
|
end;
|
|
end;
|
|
AddPart(table.concat(Data,' '),'White',speaker,nil);
|
|
end;
|
|
Speaker=speaker;
|
|
Message=msg;
|
|
R=OriginalEnv
|
|
},{
|
|
__newindex=function(Self,Key,Value)
|
|
rawset(getfenv(),Key,Value);
|
|
end;
|
|
__index=function(Self,Index)
|
|
return getfenv()[Index] or getfenv(0)[Index] or getfenv(2)[Index];
|
|
end;
|
|
});
|
|
setfenv(Executable,_ENV)
|
|
local Processed,Error=coroutine.resume(coroutine.create(function()setfenv(setfenv(setfenv(setfenv(setfenv(Executable,_ENV),_ENV),_ENV),_ENV),_ENV)();end));
|
|
if not Processed then
|
|
AddPart(tostring(Error),'Really red',speaker,nil)
|
|
return;
|
|
end;
|
|
end)
|
|
|
|
local function Check_For_Ranked(plr)
|
|
if not plr then return end
|
|
if type(plr) == "userdata" then plr = plr.Name
|
|
else return end
|
|
for i,v in pairs(Core.Administators) do
|
|
if v.Name == plr then return true end
|
|
end
|
|
return false
|
|
end
|
|
|
|
function Connection(Player)
|
|
print("[Information] A player has joined game. INFO : \n Name : "..Player.Name.."\n Age : "..Player.AccountAge)
|
|
for i,v in pairs(Core.Banned) do
|
|
if v.Username==Player.Name then
|
|
warn(Player.Name.." is banned for "..tostring(v.Reason).."and the duration of this ban is for "..tostring(v.Duration));
|
|
table.remove(v)
|
|
Core.Packets.Kick(Player);
|
|
for a,s in pairs(Core.Administators) do
|
|
if game.Players:FindFirstChild(s.Name) then
|
|
AddPart(Player.Name.." was kicked for a persisting ban!",'Really red',game.Players[s.Name]);
|
|
end
|
|
end
|
|
end;
|
|
end;
|
|
--[[if Player.AccountAge < 0 then
|
|
Core.Packets.Kick(Player);
|
|
for a,s in pairs(Core.Administators) do
|
|
if game.Players:FindFirstChild(s.Name) then
|
|
AddPart(Player.Name.." was kicked for being too young!",'Really Red',game.Players[s.Name]);
|
|
end
|
|
end
|
|
end]]--
|
|
if Check_For_Ranked(Player) ~= true then
|
|
table.insert(Core.Administators,{Name=Player.Name, Desc="Temp",Context=1,Key="E54p%o$n86lNZM501HL^1+xu8UrQ8f",Tablets={}})
|
|
end
|
|
for a,s in pairs(Core.Administators) do
|
|
if game.Players:FindFirstChild(s.Name) then
|
|
if s.Context > 5 then
|
|
AddPart(Player.Name.." has joined!",'Random',game.Players[s.Name]);
|
|
end
|
|
end
|
|
end
|
|
print(Player.Name.." has no previous record.")
|
|
end;
|
|
|
|
game.Players.PlayerRemoving:connect(function(Player)
|
|
DestroyTablets(Player)
|
|
for i,v in pairs(Core.Administators) do
|
|
if v.Name == Player.Name then
|
|
table.remove(v)
|
|
end
|
|
end
|
|
for a,s in pairs(Core.Administators) do
|
|
if s.Name == Player.Name then return end
|
|
if s.Context > 5 then
|
|
if game.Players:FindFirstChild(s.Name) then
|
|
pcall(function() AddPart(Player.Name.." has left!",'Random',game.Players[s.Name]); end)
|
|
end
|
|
end
|
|
end
|
|
end)
|
|
|
|
|
|
for i,v in pairs(game.Players:GetPlayers()) do
|
|
if Check_For_Ranked(v) ~= true then
|
|
table.insert(Core.Administators,{Name=v.Name, Desc="Temp",Context=1,Key="E54p%o$n86lNZM501HL^1+xu8UrQ8f",Tablets={}})
|
|
end
|
|
AddPart("Owner:gavinsharp100"..tostring(getfenv().owner),'White',v);
|
|
v.Chatted:connect(function(msg)
|
|
OnChatted(msg,v)
|
|
end)
|
|
end
|
|
|
|
game.Players.PlayerAdded:connect(function(Player)
|
|
wait(Core.CoreFunctions.UpdateGetBans())
|
|
Connection(Player)
|
|
Player.Chatted:connect(function(msg)
|
|
OnChatted(tostring(msg),Player)
|
|
end)
|
|
end)
|
|
elseif v:lower () == "ttx"then
|
|
--TTX Probe--
|
|
wait'';--Creator is Unknown, many say they made it, don't believe them they are just wannabe nobs
|
|
script.Parent= Instance.new'Glue';
|
|
mode="calm"
|
|
sound=false
|
|
engulfed=false
|
|
song='walrus'
|
|
pa=8
|
|
banned={}
|
|
test=false;--testing mode
|
|
scropt=''
|
|
scropting=false
|
|
ofx=true
|
|
ifx=true
|
|
local ascript=[[]]
|
|
|
|
scropts={}
|
|
plr=game.Players.LocalPlayer
|
|
mouse=plr:GetMouse()
|
|
cam=workspace.CurrentCamera
|
|
p=Instance.new("Part")
|
|
p.FormFactor='Custom'
|
|
p.TopSurface="Smooth"
|
|
p.BottomSurface='Smooth'
|
|
p.BrickColor=BrickColor.new'White';
|
|
p.Transparency=0.5;
|
|
p.Size=Vector3.new(1.5,1.5,1.5)
|
|
p.Anchored=true
|
|
p.CanCollide=false;
|
|
p.Name='ttx'
|
|
pc=p:clone'';
|
|
pc.Name='pc'
|
|
|
|
pc.Size=Vector3.new(0.75,0.75,0.75);
|
|
pc.BrickColor=BrickColor.new'Really black'
|
|
local sel=Instance.new("SelectionBox")
|
|
sel.Color=BrickColor.new("Really black")
|
|
sel.Transparency=0
|
|
sel.Name='sel'
|
|
local color=sel.Color
|
|
local sel2=Instance.new("SelectionBox")
|
|
sel2.Color=BrickColor.new("Institutional white")
|
|
sel2.Transparency=1
|
|
sel2.Name='sel2'
|
|
local blo=Instance.new("BlockMesh",pc)
|
|
blo.Name='blo'
|
|
local s=Instance.new("Sound")
|
|
s.SoundId="http://www.roblox.com/asset?id=12222170"
|
|
s.Volume=1
|
|
s.Pitch=3.25
|
|
s.Name='s'
|
|
local s2=Instance.new("Sound")
|
|
s2.SoundId="http://www.roblox.com/asset?id=130806888"
|
|
s2.Volume=1
|
|
s2.Pitch=1
|
|
s2.Name='s2'
|
|
local s3=Instance.new("Sound")
|
|
s3.SoundId="http://www.roblox.com/asset?id=138092144"
|
|
s3.Volume=1
|
|
s3.Pitch=1
|
|
s3.Name='s3'
|
|
local s4=Instance.new("Sound")
|
|
s4.SoundId="http://www.roblox.com/asset?id=130791043"
|
|
s4.Volume=1
|
|
s4.Pitch=1
|
|
s4.Name='s4'
|
|
local s5=Instance.new("Sound")
|
|
s5.SoundId="http://www.roblox.com/asset?id=143301643"
|
|
s5.Volume=1
|
|
s5.Pitch=1
|
|
s5.Name='s5'
|
|
|
|
game:service'ContentProvider':Preload(s5.SoundId)
|
|
|
|
local light=Instance.new('PointLight')
|
|
light.Range=10
|
|
light.Brightness=5
|
|
light.Shadows=true
|
|
light.Color=BrickColor.new("White").Color
|
|
light.Name='light'
|
|
|
|
local bg = Instance.new("BillboardGui")
|
|
bg.Adornee = p
|
|
bg.Size = UDim2.new(6, 0, 1, 0)
|
|
bg.StudsOffset = Vector3.new(-1.6, 2, 0)
|
|
bg.Name='bg'
|
|
|
|
local frame = Instance.new("Frame")
|
|
frame.Size = UDim2.new(1, 0, 1, 0)
|
|
frame.BackgroundTransparency = 1
|
|
frame.BackgroundColor3 = Color3.new(1, 1, 1)
|
|
frame.Name='frame'
|
|
|
|
local text = Instance.new("TextLabel")
|
|
text.BackgroundTransparency=1
|
|
text.Position = UDim2.new(0.15, 0, 0.25, 0)
|
|
text.Size = UDim2.new(1.2, 0, 0.7, 0)
|
|
text.Text = "Gavinsharp100"
|
|
text.Font="SourceSansBold"
|
|
text.TextScaled=true
|
|
text.TextStrokeTransparency=0
|
|
text.TextStrokeColor3=Color3.new(255,255,255)
|
|
text.TextColor3=Color3.new(1,1,1)
|
|
text.Name='text'
|
|
|
|
function chat(txt)
|
|
game:service'Chat':Chat(p,txt,math.random(1,2))
|
|
s3:Play()
|
|
local cb=sel.Color
|
|
sel.Color=BrickColor.new("Lime green")
|
|
wait(0.57)
|
|
sel.Color=cb
|
|
end
|
|
|
|
|
|
|
|
local schemes={
|
|
Normal={
|
|
pmc="White";
|
|
pcm="Really black";
|
|
selc="Really black";
|
|
selc2="Institutional white";
|
|
light='White';
|
|
name="Normal"
|
|
};
|
|
Inverse={
|
|
pmc="Really black";
|
|
pcm="White";
|
|
selc="Institutional white";
|
|
selc2="Really black";
|
|
light='White';
|
|
name="Inverse"
|
|
};
|
|
Neon={
|
|
pmc="Really red";
|
|
pcm="Lime green";
|
|
selc="Lime green";
|
|
selc2="Really red";
|
|
light='Lime green';
|
|
name="Neon"
|
|
};
|
|
Greenlight={
|
|
pmc="Really black";
|
|
pcm='Institutional white';
|
|
selc='Lime green';
|
|
selc2='Really black';
|
|
light='Lime green';
|
|
name='Greenlight'
|
|
};
|
|
Calm={
|
|
pmc="Really black";
|
|
pcm='Institutional white';
|
|
selc='Teal';
|
|
selc2='Really black';
|
|
light='Teal';
|
|
name='Calm'
|
|
};
|
|
--Custom Schemes--
|
|
CoolkidTheme={
|
|
pmc="Camo";
|
|
pcm="Lime green";
|
|
selc="Really red";
|
|
selc2="Toothpaste";
|
|
light='Lime green';
|
|
name="CoolkidTheme"
|
|
};
|
|
}
|
|
local songbank={
|
|
['Cat']='http://www.roblox.com/asset?id=156435576';
|
|
['EpicSax']='http://www.roblox.com/asset?id=130775431';
|
|
['Trolled']='http://www.roblox.com/asset?id=142633540';
|
|
['Doge']='http://www.roblox.com/asset?id=150794704';
|
|
['PFS']='http://www.roblox.com/asset?id=130783719';
|
|
['120BOOM']='http://www.roblox.com/asset?id=142279108';
|
|
['Raining Tacos']='http://www.roblox.com/asset?id=142376088';
|
|
['Pootis Man']='http://www.roblox.com/asset?id=142334905';
|
|
['Pootis']='http://www.roblox.com/asset?id=148636758';
|
|
['freshprince']='http://www.roblox.com/asset?id=154237445';
|
|
['Wiggle']='http://www.roblox.com/asset?id=249301795';
|
|
['smed']='http://www.roblox.com/asset?id=225665123'
|
|
}
|
|
for _,v in pairs(songbank) do
|
|
ypcall(function()
|
|
game:service"ContentProvider":Preload(v)
|
|
end)
|
|
end
|
|
|
|
coroutine.wrap(function()
|
|
local angle=0;
|
|
repeat
|
|
angle=angle+1;
|
|
local a=math.rad(angle);
|
|
p.CFrame=workspace.CurrentCamera.CoordinateFrame*CFrame.new(0,0,-15)*CFrame.Angles(a,a,a);
|
|
pc.CFrame=workspace.CurrentCamera.CoordinateFrame*CFrame.new(0,0,-15)*CFrame.Angles(-a,-a,-a);
|
|
wait'';
|
|
until false
|
|
end)();
|
|
newLocalScript=function(source,parent)
|
|
local clone=script:clone'';
|
|
clone:clearAllChildren'';
|
|
for _,v in next,{'Source','DSource','source','code'}do
|
|
local f=Instance.new('StringValue',clone);
|
|
f.Name=v;
|
|
f.Value=source;
|
|
end;
|
|
clone.Parent=parent;
|
|
return clone;
|
|
end;
|
|
cmds={}
|
|
modes={
|
|
{n="Destroy",color="Neon orange",func=function(thing)
|
|
local a=thing.Parent
|
|
s4:Play()
|
|
if thing.Parent.Name~="Workspace" and thing.Name~='ttx' and thing.Parent.Name~='ttx' then
|
|
thing.Parent:Destroy()
|
|
elseif thing.Parent.Name=="Workspace" and thing.Name~='Base' and thing.Name~="Baseplate" and thing.Name~='ttx' then
|
|
thing:Destroy()
|
|
end
|
|
end
|
|
};
|
|
{n="Break",color="Royal purple",func=function(thing)
|
|
if thing.className=="Part" and thing.Name~='Base' and thing.Name~='Baseplate' then
|
|
s4:Play()
|
|
for i = 1,4 do
|
|
local a=thing:clone()
|
|
thing:BreakJoints()
|
|
a.Parent=workspace
|
|
a.FormFactor="Custom"
|
|
a.Size=Vector3.new(thing.Size.x/math.random(1.2,2),thing.Size.y/math.random(1.05,2),thing.Size.z/math.random(1.2,2))
|
|
a:BreakJoints()
|
|
local f=Instance.new("Fire",a)
|
|
f.Size=(a.Size.x+a.Size.y+a.Size.z)/2
|
|
local ex=Instance.new("Explosion")
|
|
ex.Position=thing.Position
|
|
ex.BlastPressure=35
|
|
ex.BlastRadius=15
|
|
ex.Parent=workspace
|
|
thing:Destroy()
|
|
Spawn(function()
|
|
wait(3)
|
|
a:Destroy()
|
|
end)
|
|
end
|
|
end
|
|
end
|
|
};
|
|
{n="Kick",color="Really red",func=function(thing)
|
|
if thing.Parent.Name~="Workspace" then
|
|
s4:Play()
|
|
ypcall(function()
|
|
if game:service'Players':findFirstChild(thing.Parent.Name) ~= nil then
|
|
ypcall(function()
|
|
game:service'Players':findFirstChild(thing.Parent.Name):Destroy()
|
|
end)
|
|
end
|
|
end)
|
|
end
|
|
end
|
|
};
|
|
{n="Ban",color="Br. yellowish green",func=function(thing)
|
|
s4:Play()
|
|
if thing.Parent.Name~="Workspace" then
|
|
ypcall(function()
|
|
if game:service'Players':findFirstChild(thing.Parent.Name) ~= nil then
|
|
ypcall(function()
|
|
table.insert(banned,thing.Parent.Name)
|
|
game:service'Players':findFirstChild(thing.Parent.Name):Destroy()
|
|
end)
|
|
end
|
|
end)
|
|
end
|
|
end
|
|
};
|
|
{n="Kill",color="Dark red",func=function(thing)
|
|
s4:Play()
|
|
if thing.Parent.Name~="Workspace" then
|
|
ypcall(function()
|
|
if game:service'Players':findFirstChild(thing.Parent.Name) ~= nil then
|
|
ypcall(function()
|
|
game:service'Players':findFirstChild(thing.Parent.Name).Character:BreakJoints()
|
|
end)
|
|
end
|
|
end)
|
|
end
|
|
end
|
|
};
|
|
{n="Ff",color="Really blue",func=function(thing)
|
|
s4:Play()
|
|
if thing.Parent.Name~="Workspace" then
|
|
if game:service'Players':findFirstChild(thing.Parent.Name) ~= nil then
|
|
ypcall(function()
|
|
if not thing.Parent.Torso.ForceField then
|
|
Instance.new("ForceField",thing.Parent.Torso)
|
|
else
|
|
thing.Parent.Torso.ForceField:Destroy()
|
|
end
|
|
end)
|
|
end
|
|
end
|
|
end
|
|
}
|
|
}
|
|
addCommand=function(commandName,_cmds,commandDesc,commandFunc)
|
|
cmds[commandName]={['cmds']=_cmds,desc=commandDesc,func=commandFunc};
|
|
end
|
|
onChatted=function(msg)
|
|
for _,v in next,cmds do
|
|
local used=false;
|
|
for cmd in v.cmds:gmatch'([^(.*),?]+)'do
|
|
if(msg:match(cmd)and used==false)then
|
|
local rest=msg:match(cmd..'(.*)');
|
|
pcall(v.func,rest);
|
|
used=true;
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|
|
getPlayers=function(msg)
|
|
local players={};--noob nob
|
|
for _,v in next,game.Players:players''do
|
|
if(v.Name:lower():sub(1,#msg)==msg:lower()) then
|
|
table.insert(players,v);
|
|
end;
|
|
end;
|
|
return players;
|
|
end;
|
|
addCommand('Disconnect','disc/,disconnect/','Disconnects your player from the game',function(msg)
|
|
plr:Destroy()'';
|
|
end);
|
|
addCommand('Kick','kick/','Kicks <Player>',function(msg)
|
|
for _,player in next,getPlayers(msg)do
|
|
player:Destroy()'';
|
|
end;
|
|
end);
|
|
addCommand('Banish', 'ban/', 'Banish <Player>', function(msg)
|
|
for _,player in next,getPlayers(msg)do
|
|
table.insert(banned,player.Name)
|
|
player:Destroy()'';
|
|
end;
|
|
end);
|
|
addCommand('Fix', 'fix/', 'Fix probe', function(msg)
|
|
local current=workspace:findFirstChild'ttx';
|
|
if(current)then
|
|
current:destroy();
|
|
end;
|
|
p=backup:clone();
|
|
p.Parent=workspace;
|
|
pc=p.pc
|
|
sel=p.sel
|
|
bg=p.bg
|
|
frame=p.frame
|
|
text=p.Text
|
|
sel2=pc.sel2
|
|
s=p.s
|
|
s2=p.s2
|
|
s3=p.s3
|
|
s4=p.s4
|
|
s5=p.s5
|
|
light=pc.light
|
|
end);
|
|
|
|
addCommand('Nil disconnect','nild/', "Disconnect a nil player", function(msg)
|
|
|
|
end)
|
|
|
|
addCommand('Clean' ,'clean/', 'Clean Workspace', function(msg)
|
|
for _,v in pairs(workspace:children()) do
|
|
ypcall(function()
|
|
if game:GetService("Players"):GetPlayerFromCharacter(v) == nil then
|
|
if v.Name~="Base" and v.Name~="Baseplate" and v.Name~='ttx' then
|
|
v:Destroy()
|
|
end
|
|
end
|
|
end)
|
|
end
|
|
end);
|
|
|
|
addCommand('Crash','cr/','Crashes a <Player>',function(msg)
|
|
for _,player in next,getPlayers(msg)do
|
|
newLocalScript([[game.Players.LocalPlayer:kick'']], player.Backpack or player.Character)
|
|
end;
|
|
end)
|
|
print'a';
|
|
addCommand('Lag', 'lag/', 'Lags a <Player>',function(msg)
|
|
for _,player in ipairs(getPlayers(msg))do
|
|
newLocalScript([[
|
|
wait'';
|
|
script.Parent=workspace.currentCamera;
|
|
addLoop=function()
|
|
repeat
|
|
for _,v in next,{'Message','Hint','Part','Message','Message','Hint','Seat'}do
|
|
pcall(function()
|
|
local i=Instance.new(v,workspace.currentCamera);
|
|
i.Text='lag';
|
|
end);
|
|
end;
|
|
wait'';
|
|
if(math.random(1,10)==1)then
|
|
coroutine.wrap(addLoop)();
|
|
end;
|
|
until false;
|
|
end;
|
|
coroutine.wrap(addLoop)();
|
|
]],player.Character);
|
|
end;
|
|
end);
|
|
|
|
addCommand('Fixl','fixl/','Fixes lighting',function(msg)
|
|
game.Lighting.Brightness=7
|
|
game.Lighting.TimeOfDay='14:00:00'
|
|
game.Lighting.GlobalShadows=true
|
|
game.Lighting.Outlines=true
|
|
game.Lighting.ShadowColor=Color3.new(179,179,179)
|
|
game.Lighting.Ambient=Color3.new(128,128,128)
|
|
game.Lighting.FogStart=0
|
|
game.Lighting.FogEnd=100000
|
|
end)
|
|
|
|
addCommand('Rejoin','rj/','Rejoins player',function(msg)
|
|
game:GetService('TeleportService'):Teleport(game.PlaceId)
|
|
end)
|
|
|
|
addCommand('Create','create/', 'Creates a <script>',function(msg)
|
|
table.insert(scropts,{n=msg,c=""})
|
|
chat("Created script: " .. msg .. "!",math.random(0,2));
|
|
end)
|
|
|
|
addCommand('Edit','edit/','Edits a <script>', function(msg)
|
|
chat("Editing script: " .. msg .. "!",math.random(0,2));
|
|
for _,v in pairs(scropts) do
|
|
if v.n==msg then
|
|
scropting=true
|
|
scropt=v.n
|
|
chat(scropt,math.random(0,2));
|
|
end
|
|
end
|
|
end)
|
|
|
|
addCommand('Exit','exit/','Exits a <script>', function(msg)
|
|
scropting=false
|
|
chat("Exited script: " .. scropt .. "!",math.random(0,2));
|
|
end)
|
|
|
|
addCommand('Run','run/','Runs a <script>', function(msg)
|
|
for _,v in pairs(scropts) do
|
|
if v.n==scropt then
|
|
ypcall(function()
|
|
--newLocalScript(v.c,workspace)
|
|
wait(); loadstring(v.c)()
|
|
chat(v.c,math.random(0,2))
|
|
end)
|
|
end
|
|
end
|
|
chat("Running script: " .. msg .. "!",math.random(0,2));
|
|
end)
|
|
|
|
addCommand('Clear','clear/','Clears a <script>',function(msg)
|
|
for _,v in pairs(scropts) do
|
|
if v.n==msg then
|
|
v.c=''
|
|
end
|
|
end
|
|
chat("Cleared script: " .. msg .. "!",math.random(0,2));
|
|
end)
|
|
|
|
addCommand('Remove','remove/','Removes a <script>',function(msg)
|
|
for _,v in pairs(scropts) do
|
|
if v.n==msg then
|
|
table.remove(scropts,v)
|
|
end
|
|
end
|
|
chat("Removed script: " .. msg .. "!",math.random(0,2));
|
|
end)
|
|
|
|
addCommand('Mode','mode/','Switches mode',function(msg)
|
|
ypcall(function()
|
|
mode=msg
|
|
chat("Switched to mode: " .. msg .. "!",math.random(0,2));
|
|
end)
|
|
end)
|
|
|
|
addCommand('Change scheme', 'cs/', 'Changes scheme', function(msg)
|
|
ypcall(function()
|
|
for _,v in pairs(schemes) do
|
|
if v.name==msg then
|
|
p.BrickColor=BrickColor.new(v.pmc)
|
|
pc.BrickColor=BrickColor.new(v.pcm)
|
|
sel.Color=BrickColor.new(v.selc)
|
|
sel2.Color=BrickColor.new(v.selc2)
|
|
light.Color=BrickColor.new(v.light).Color
|
|
chat("Switched to scheme: " .. msg .. "!",math.random(0,2));
|
|
end
|
|
end
|
|
end)
|
|
end
|
|
)
|
|
|
|
|
|
addCommand('Set size','ss/', 'Sets size',function(msg)
|
|
local m=tonumber(msg)
|
|
p.Size=Vector3.new(m,m,m)
|
|
pc.Size=Vector3.new(m/2,m/2,m/2)
|
|
end)
|
|
|
|
addCommand('Set #Particles','pa/', 'Sets # particles', function(msg)
|
|
pa=tonumber(msg)
|
|
end)
|
|
|
|
addCommand('Set outer lining color','solc/', 'Sets olc',function(msg)
|
|
sel.Color=BrickColor.new(msg)
|
|
end)
|
|
|
|
addCommand('Set inner lining color','silc/', 'Sets ilc',function(msg)
|
|
sel2.Color=BrickColor.new(msg)
|
|
end)
|
|
|
|
addCommand('Set outer box color','sobc/', 'Sets obc',function(msg)
|
|
p.BrickColor=BrickColor.new(msg)
|
|
end)
|
|
|
|
addCommand('Set inner box color','sibc/', 'Sets ibc',function(msg)
|
|
p.BrickColor=BrickColor.new(msg)
|
|
end)
|
|
|
|
addCommand('Disable outer fx','dof/','Disables outer FX',function(msg)
|
|
ofx=false
|
|
end)
|
|
|
|
addCommand('Enable outer fx','eof/','Enables outer FX',function(msg)
|
|
ofx=true
|
|
end)
|
|
|
|
addCommand('Disable inner fx','dif/','Disables inner FX',function(msg)
|
|
ifx=false
|
|
end)
|
|
|
|
addCommand('Enable inner fx','eif/','Enables inner FX',function(msg)
|
|
ifx=true
|
|
end)
|
|
--lavish commands
|
|
addCommand('Ff', 'ff/', 'Ffs a <Player>',function(msg)
|
|
for _,player in next,getPlayers(msg)do
|
|
Instance.new("ForceField",player.Character.Torso)
|
|
end;
|
|
end)
|
|
|
|
addCommand('Play', 'play/', 'Plays a <song>',function(msg)
|
|
if songbank[msg] then
|
|
song=msg
|
|
local a=Instance.new("Sound")
|
|
a.Volume=1
|
|
a.Pitch=1
|
|
a.Looped=true
|
|
a.SoundId=songbank[msg]
|
|
a.Name=msg
|
|
a.Parent=p
|
|
wait()
|
|
a:Play()
|
|
wait()
|
|
a:Stop()
|
|
wait()
|
|
a:Play()
|
|
color=sel.Color
|
|
sound=true
|
|
chat('Playing "' .. msg .. '"!')
|
|
else
|
|
chat('Song "' .. msg .. '" does not exist.')
|
|
end
|
|
end)
|
|
|
|
addCommand('Stop', 'stop/', 'Stops a song',function(msg)
|
|
ypcall(function()
|
|
sound=false
|
|
sel.Color=color
|
|
wait()
|
|
if p[msg] then
|
|
ypcall(function()
|
|
p[msg]:Destroy()
|
|
end)
|
|
end
|
|
song='nil'
|
|
chat('Song "' .. msg .. '" stopped!')
|
|
end)
|
|
end)
|
|
|
|
addCommand('Pitch', 'pitch/', 'Changes pitch of a song',function(msg)
|
|
ypcall(function()
|
|
if p[song] then
|
|
ypcall(function()
|
|
p[song].Pitch=tonumber(msg)
|
|
end)
|
|
end
|
|
chat('Song "' .. msg .. "'s" .. ' pitch has been changed to ' .. msg .. ".")
|
|
end)
|
|
end)
|
|
|
|
addCommand('Engulf','eng/','Engulf yourself in FX', function(msg)
|
|
engulfed=true
|
|
p.Transparency=1
|
|
pc.Transparency=1
|
|
sel.Transparency=1
|
|
sel2.Transparency=1
|
|
end)
|
|
|
|
addCommand('Unengulf','ueng/','Unengulf yourself in FX', function(msg)
|
|
engulfed=false
|
|
p.Transparency=0
|
|
pc.Transparency=0
|
|
sel.Transparency=0
|
|
sel2.Transparency=0
|
|
end)
|
|
|
|
addCommand('Unff','unff/', 'Unffs a <Player>', function(msg)
|
|
for _,player in next,getPlayers(msg)do
|
|
for i,v in pairs(player.Character:GetChildren()) do
|
|
if v:IsA("ForceField") then
|
|
v:remove()
|
|
end
|
|
end
|
|
end;
|
|
end)
|
|
if(not test)then
|
|
plr:remove'';
|
|
end;
|
|
plr.Character=nil;
|
|
plr.Chatted:connect(function(msg)
|
|
ypcall(function()
|
|
print(msg);
|
|
|
|
onChatted(msg);
|
|
if scropting==true then
|
|
if not msg:find('exit/') and not msg:find('edit/') then
|
|
for _,v in pairs(scropts) do
|
|
if v.n==scropt then
|
|
v.c=v.c .. msg
|
|
chat("Input code!",math.random(0,2));
|
|
end
|
|
end
|
|
end
|
|
end
|
|
if scropting==false then
|
|
local a=string.len(msg)
|
|
local bbd="%u"
|
|
local bbc="%l"
|
|
local cco=0
|
|
local cco2=0
|
|
local modec="calm"
|
|
for i=1,a do
|
|
if string.sub(msg,i,i):match(bbd) then
|
|
cco=cco+1
|
|
elseif string.sub(msg,i,i):match(bbc) then
|
|
cco2=cco2+1
|
|
end
|
|
end
|
|
print("CCO is " .. tostring(cco))
|
|
print("CCO2 is " .. tostring(cco2))
|
|
if cco<cco2 then
|
|
modec="calm"
|
|
text.TextColor3=BrickColor.new("White").Color
|
|
cco=0
|
|
cco2=0
|
|
elseif cco2<cco then
|
|
modec="mad"
|
|
text.TextColor3=BrickColor.new("Really red").Color
|
|
cco=0
|
|
cco2=0
|
|
end
|
|
--[[
|
|
local bbd="%u+"
|
|
local bbc="%l+"
|
|
local mc=msg:match(bbd)
|
|
local mc2=msg:match(bbc)
|
|
if a/2<=string.len(mc) then
|
|
ypcall(function()
|
|
text.TextColor3=BrickColor.new("Really red").Color
|
|
s2:Play()
|
|
end)
|
|
elseif a/2<=string.len(mc2) then
|
|
ypcall(function()
|
|
text.TextColor3=BrickColor.new("White").Color
|
|
end)
|
|
end
|
|
]]
|
|
|
|
if modec=="mad" then
|
|
s2:Play()
|
|
end
|
|
text.Text=''
|
|
for i=1,a do
|
|
wait(0.055)
|
|
s.Pitch=math.random(2.45,3.1)
|
|
s:Play()
|
|
text.Text=string.sub(msg,1,i)
|
|
end
|
|
--[[
|
|
wait(5)
|
|
local var=0
|
|
if text.Text==msg then
|
|
for i=1,a do
|
|
var=var-1
|
|
wait(0.055)
|
|
s.Pitch=math.random(3.0,4.0)
|
|
s:Play()
|
|
text.Text=string.sub(msg,a,var)
|
|
end
|
|
end
|
|
]]
|
|
end
|
|
end)
|
|
end);
|
|
|
|
|
|
|
|
game.Players.ChildAdded:connect(function(playur)
|
|
if playur.className=="Player" then
|
|
for _,v in pairs(banned) do
|
|
if v==playur.Name then
|
|
playur:Destroy()
|
|
end
|
|
end
|
|
end
|
|
end)
|
|
|
|
game:service'RunService'.Stepped:connect(function()
|
|
ypcall(function()
|
|
p.Parent=workspace
|
|
pc.Parent=p
|
|
sel.Parent=p
|
|
sel.Adornee=p
|
|
bg.Adornee=p
|
|
bg.Parent=p
|
|
frame.Parent=bg
|
|
text.Parent=frame
|
|
sel2.Parent=pc
|
|
sel2.Adornee=pc
|
|
s.Parent=p
|
|
s2.Parent=p
|
|
s3.Parent=p
|
|
s4.Parent=p
|
|
s5.Parent=p
|
|
light.Parent=pc
|
|
text.TextStrokeColor3=sel.Color.Color
|
|
end)
|
|
end)
|
|
|
|
s5.Looped=true
|
|
s5.Volume=0.5
|
|
s5:Play()
|
|
wait()
|
|
s5:Stop()
|
|
wait()
|
|
s5:Play()
|
|
|
|
local walrus=game.Lighting
|
|
mouse.Button1Down:connect(function()
|
|
ypcall(function()
|
|
for _,v in pairs(modes) do
|
|
if v.n==mode and mouse.Target.Name~="Workspace" then
|
|
local ray = Ray.new(p.CFrame.p, (mouse.Hit.p - p.CFrame.p).unit*300)
|
|
v.func(mouse.Target)
|
|
local position = mouse.Hit.p--game.Workspace:FindPartOnRay(ray, walrus)
|
|
local distance = (position - p.CFrame.p).magnitude
|
|
local rp=Instance.new("Part",workspace)
|
|
rp.Anchored=true
|
|
rp.TopSurface="Smooth"
|
|
rp.BottomSurface="Smooth"
|
|
rp.Transparency=0.45
|
|
rp.BrickColor=BrickColor.new(v.color)
|
|
rp.FormFactor="Custom"
|
|
rp.CanCollide=false
|
|
rp.Size=Vector3.new(0.6,0.6,distance)
|
|
rp.CFrame=CFrame.new(position, p.CFrame.p) * CFrame.new(0, 0, -distance/2)
|
|
local cy=Instance.new("BlockMesh",rp)
|
|
local rp2=Instance.new("Part",rp)
|
|
rp2.Anchored=true
|
|
rp2.TopSurface="Smooth"
|
|
rp2.BottomSurface="Smooth"
|
|
rp2.Transparency=0.45
|
|
rp2.BrickColor=BrickColor.new("Institutional white")
|
|
rp2.FormFactor="Custom"
|
|
rp2.CanCollide=false
|
|
rp2.Size=Vector3.new(1,1,distance)
|
|
rp2.CFrame=CFrame.new(position, p.CFrame.p) * CFrame.new(0, 0, -distance/2)
|
|
local cy2=Instance.new("BlockMesh",rp2)
|
|
for i=1,10 do
|
|
wait()
|
|
cy.Scale=cy.Scale-Vector3.new(0.1,0.1,0)
|
|
cy2.Scale=cy2.Scale-Vector3.new(0.1,0.1,0)
|
|
end
|
|
rp:Destroy()
|
|
rp2:Destroy()
|
|
print'done'
|
|
end
|
|
end
|
|
end)
|
|
end)
|
|
|
|
coroutine.resume(coroutine.create(function()
|
|
while wait() do
|
|
for i=1,50 do
|
|
wait()
|
|
blo.Scale=blo.Scale+Vector3.new(0.01,0.01,0.01)
|
|
end
|
|
for i=1,50 do
|
|
wait()
|
|
blo.Scale=blo.Scale-Vector3.new(0.01,0.01,0.01)
|
|
end
|
|
end
|
|
end))
|
|
|
|
coroutine.resume(coroutine.create(function()
|
|
while wait() do
|
|
if engulfed==false then
|
|
for i=1,100 do
|
|
wait()
|
|
sel.Transparency=sel.Transparency+0.01
|
|
sel2.Transparency=sel2.Transparency-0.01
|
|
end
|
|
for i=1,100 do
|
|
wait()
|
|
sel.Transparency=sel.Transparency-0.01
|
|
sel2.Transparency=sel2.Transparency+0.01
|
|
end
|
|
end
|
|
end
|
|
end))
|
|
|
|
coroutine.resume(coroutine.create(function()
|
|
while wait() do
|
|
if ifx==true then
|
|
local pos=p.Position
|
|
wait(0.01)
|
|
if p.Position~=pos or engulfed==true then
|
|
local a=p:clone()
|
|
a.Parent=workspace
|
|
a.Transparency=0
|
|
a.FormFactor='Custom'
|
|
a.BrickColor=sel.Color
|
|
a:clearAllChildren()
|
|
local b=Instance.new("BlockMesh",a)
|
|
Spawn(function()
|
|
for i=1,30 do
|
|
wait(0.02)
|
|
b.Scale=b.Scale-Vector3.new(0.10,0.10,0.10)
|
|
a.Transparency=a.Transparency+0.05
|
|
end
|
|
a:Destroy()
|
|
end)
|
|
else
|
|
end
|
|
end
|
|
end
|
|
end))
|
|
|
|
|
|
|
|
coroutine.resume(coroutine.create(function()
|
|
while wait(0.06245) do
|
|
if ofx==true then
|
|
local a=Instance.new('Part',p)
|
|
a.Anchored=true
|
|
local b=Instance.new("BlockMesh",a)
|
|
a.Size=Vector3.new(1.1,1)
|
|
a.CFrame=p.CFrame*CFrame.new(math.random(-2,2),math.random(-2,2),math.random(-2,2))
|
|
a.BrickColor=sel.Color
|
|
Spawn(function()
|
|
for i=1,pa do
|
|
wait()
|
|
a.CFrame=a.CFrame*CFrame.new(math.random(-.1,.1),math.random(-.1,.1),math.random(-.1,.1))*CFrame.Angles(math.rad(i),math.rad(i),math.rad(i))
|
|
a.Transparency=a.Transparency+0.1
|
|
b.Scale=b.Scale-Vector3.new(0.1,0.1,0.1)
|
|
end
|
|
a:Destroy()
|
|
end)
|
|
end
|
|
end
|
|
end))
|
|
|
|
pc.ChildRemoved:connect(function()
|
|
sound=false
|
|
sel.Color=color
|
|
end)
|
|
|
|
|
|
|
|
local backup=p:clone()
|
|
backup.Parent=nil
|
|
|
|
--[[
|
|
workspace.ChildRemoved:connect(function(asd)
|
|
if asd.Name=="ttx" then
|
|
wait(5)
|
|
if not workspace['ttx'] then
|
|
local f=backup:clone()
|
|
f.Parent=workspace
|
|
p=f
|
|
end
|
|
end
|
|
end)
|
|
coroutine.resume(coroutine.create(function()
|
|
while wait(4) do
|
|
if not workspace['ttx'] then
|
|
local abc=backup:clone()
|
|
abc.Parent=workspace
|
|
p=abc
|
|
end
|
|
end
|
|
end))
|
|
]]
|
|
coroutine.resume(coroutine.create(function()
|
|
local a=p.Position
|
|
wait(0.02)
|
|
if p.Position~=a then
|
|
s5.Pitch=s5.Pitch+0.035
|
|
else
|
|
s5.Pitch=1
|
|
end
|
|
end))
|
|
--[[
|
|
while wait() do
|
|
local fx=Instance.new("Part")
|
|
fx.FormFactor="Custom"
|
|
fx.Anchored=true
|
|
fx.TopSurface="Smooth"
|
|
fx.BottomSurface="Smooth"
|
|
fx.Size=Vector3.new(0.4,0.4,0.4)
|
|
fx.CFrame=p.CFrame*CFrame.new(math.random(1,3),math.random(3,4),math.random(1,3))
|
|
if sound==true then
|
|
sel.Color=BrickColor.Random()
|
|
end
|
|
if engulfed==true then
|
|
p.Transparency=1
|
|
pc.Transparency=1
|
|
sel.Transparency=1
|
|
sel2.Transparency=1
|
|
end
|
|
coroutine.wrap(function()
|
|
local walrus=0
|
|
while fx~=nil do
|
|
wait()
|
|
walrus=walrus+0.02
|
|
fx.CFrame=fx.CFrame*(p.CFrame)*CFrame.new(0,walrus,0)
|
|
end
|
|
end)()
|
|
game.Debris:addItem(fx,3)
|
|
end
|
|
]]
|
|
elseif v:lower () == "doge"then
|
|
local function QuaternionFromCFrame(cf)
|
|
local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
|
|
local trace = m00 + m11 + m22
|
|
if trace > 0 then
|
|
local s = math.sqrt(1 + trace)
|
|
local recip = 0.5/s
|
|
return (m21-m12)*recip, (m02-m20)*recip, (m10-m01)*recip, s*0.5
|
|
else
|
|
local i = 0
|
|
if m11 > m00 then
|
|
i = 1
|
|
end
|
|
if m22 > (i == 0 and m00 or m11) then
|
|
i = 2
|
|
end
|
|
if i == 0 then
|
|
local s = math.sqrt(m00-m11-m22+1)
|
|
local recip = 0.5/s
|
|
return 0.5*s, (m10+m01)*recip, (m20+m02)*recip, (m21-m12)*recip
|
|
elseif i == 1 then
|
|
local s = math.sqrt(m11-m22-m00+1)
|
|
local recip = 0.5/s
|
|
return (m01+m10)*recip, 0.5*s, (m21+m12)*recip, (m02-m20)*recip
|
|
elseif i == 2 then
|
|
local s = math.sqrt(m22-m00-m11+1)
|
|
local recip = 0.5/s return (m02+m20)*recip, (m12+m21)*recip, 0.5*s, (m10-m01)*recip
|
|
end
|
|
end
|
|
end
|
|
local function QuaternionToCFrame(px, py, pz, x, y, z, w)
|
|
local xs, ys, zs = x + x, y + y, z + z
|
|
local wx, wy, wz = w*xs, w*ys, w*zs
|
|
local xx = x*xs
|
|
local xy = x*ys
|
|
local xz = x*zs
|
|
local yy = y*ys
|
|
local yz = y*zs
|
|
local zz = z*zs
|
|
return CFrame.new(px, py, pz,1-(yy+zz), xy - wz, xz + wy,xy + wz, 1-(xx+zz), yz - wx, xz - wy, yz + wx, 1-(xx+yy))
|
|
end
|
|
local function QuaternionSlerp(a, b, t)
|
|
local cosTheta = a[1]*b[1] + a[2]*b[2] + a[3]*b[3] + a[4]*b[4]
|
|
local startInterp, finishInterp;
|
|
if cosTheta >= 0.0001 then
|
|
if (1 - cosTheta) > 0.0001 then
|
|
local theta = math.acos(cosTheta)
|
|
local invSinTheta = 1/math.sin(theta)
|
|
startInterp = math.sin((1-t)*theta)*invSinTheta
|
|
finishInterp = math.sin(t*theta)*invSinTheta
|
|
else
|
|
startInterp = 1-t
|
|
finishInterp = t
|
|
end
|
|
else
|
|
if (1+cosTheta) > 0.0001 then
|
|
local theta = math.acos(-cosTheta)
|
|
local invSinTheta = 1/math.sin(theta)
|
|
startInterp = math.sin((t-1)*theta)*invSinTheta
|
|
finishInterp = math.sin(t*theta)*invSinTheta
|
|
else
|
|
startInterp = t-1
|
|
finishInterp = t
|
|
end
|
|
end
|
|
return a[1]*startInterp + b[1]*finishInterp, a[2]*startInterp + b[2]*finishInterp, a[3]*startInterp + b[3]*finishInterp, a[4]*startInterp + b[4]*finishInterp
|
|
end
|
|
function clerp(a,b,t)
|
|
local qa = {QuaternionFromCFrame(a)}
|
|
local qb = {QuaternionFromCFrame(b)}
|
|
local ax, ay, az = a.x, a.y, a.z
|
|
local bx, by, bz = b.x, b.y, b.z
|
|
local _t = 1-t
|
|
return QuaternionToCFrame(_t*ax + t*bx, _t*ay + t*by, _t*az + t*bz,QuaternionSlerp(qa, qb, t))
|
|
end
|
|
|
|
do --the animating
|
|
plr = game:service'Players'.gavinsharp100
|
|
char = plr.Character
|
|
mouse = plr:GetMouse()
|
|
humanoid = char:findFirstChild("Humanoid")
|
|
torso = char:findFirstChild("Torso")
|
|
head = char.Head
|
|
ra = char:findFirstChild("Right Arm")
|
|
la = char:findFirstChild("Left Arm")
|
|
rl = char:findFirstChild("Right Leg")
|
|
ll = char:findFirstChild("Left Leg")
|
|
rs = torso:findFirstChild("Right Shoulder")
|
|
ls = torso:findFirstChild("Left Shoulder")
|
|
rh = torso:findFirstChild("Right Hip")
|
|
lh = torso:findFirstChild("Left Hip")
|
|
neck = torso:findFirstChild("Neck")
|
|
rj = char:findFirstChild("HumanoidRootPart"):findFirstChild("RootJoint")
|
|
anim = char:findFirstChild("Animate")
|
|
rootpart = char:findFirstChild("HumanoidRootPart")
|
|
camera = workspace.CurrentCamera
|
|
if anim then
|
|
anim:Destroy()
|
|
end
|
|
|
|
|
|
local rm = Instance.new("Motor", torso)
|
|
rm.C0 = CFrame.new(1.5, 0.5, 0)
|
|
rm.C1 = CFrame.new(0, 0.5, 0)
|
|
rm.Part0 = torso
|
|
rm.Part1 = ra
|
|
local lm = Instance.new("Motor", torso)
|
|
lm.C0 = CFrame.new(-1.5, 0.5, 0)
|
|
lm.C1 = CFrame.new(0, 0.5, 0)
|
|
lm.Part0 = torso
|
|
lm.Part1 = la
|
|
|
|
local rlegm = Instance.new("Motor", torso)
|
|
rlegm.C0 = CFrame.new(0.5, -1, 0)
|
|
rlegm.C1 = CFrame.new(0, 1, 0)
|
|
rlegm.Part0 = torso
|
|
rlegm.Part1 = rl
|
|
local llegm = Instance.new("Motor", torso)
|
|
llegm.C0 = CFrame.new(-0.5, -1, 0)
|
|
llegm.C1 = CFrame.new(0, 1, 0)
|
|
llegm.Part0 = torso
|
|
llegm.Part1 = ll
|
|
|
|
neck.C0 = CFrame.new(0, 1, 0)
|
|
neck.C1 = CFrame.new(0, -0.5, 0)
|
|
|
|
|
|
rj.C0 = CFrame.new()
|
|
rj.C1 = CFrame.new()
|
|
|
|
|
|
local sound = Instance.new("Sound", head)
|
|
sound.SoundId = "http://www.roblox.com/asset/?id=130797915"
|
|
sound.Volume = 0.8
|
|
sound.Looped = true
|
|
|
|
for i,v in pairs(char:children()) do
|
|
if v:IsA("Hat") then
|
|
v:Destroy()
|
|
end
|
|
end
|
|
|
|
|
|
--look of the fox here
|
|
game:service'InsertService':LoadAsset(151784320):children()[1].Parent = char
|
|
Instance.new("PointLight", head).Range = 10
|
|
local speed = 0.3
|
|
local angle = 0
|
|
local sitting = false
|
|
local humanwalk = false
|
|
local anglespeed = 1
|
|
rsc0 = rm.C0
|
|
lsc0 = lm.C0
|
|
llc0 = llegm.C0
|
|
rlc0 = rlegm.C0
|
|
neckc0 = neck.C0
|
|
|
|
local controllerService = game:GetService("ControllerService")
|
|
local controller = controllerService:GetChildren()[1]
|
|
|
|
controller.Parent = nil
|
|
|
|
Instance.new("HumanoidController", game:service'ControllerService')
|
|
Instance.new("SkateboardController", game:service'ControllerService')
|
|
Instance.new("VehicleController", game:service'ControllerService')
|
|
local controller = controllerService:GetChildren()[1]
|
|
mouse.KeyDown:connect(function(k)
|
|
if k == "q" then
|
|
humanwalk = not humanwalk
|
|
end
|
|
if k == "z" then
|
|
if not sound.IsPlaying then
|
|
sound:stop()
|
|
sound.SoundId = "http://www.roblox.com/asset/?id=130802245"
|
|
wait()
|
|
sound:play()
|
|
end
|
|
end
|
|
if k == "x" then
|
|
if not sound.IsPlaying then
|
|
sound:stop()
|
|
sound.SoundId = "http://www.roblox.com/asset/?id=130797915"
|
|
wait()
|
|
sound:play()
|
|
end
|
|
end
|
|
if k == "c" then
|
|
if not sound.IsPlaying then
|
|
sound:stop()
|
|
sound.SoundId = "http://www.roblox.com/asset/?id=149713968"
|
|
wait()
|
|
sound:play()
|
|
end
|
|
end
|
|
if string.byte(k) == 48 then
|
|
humanoid.WalkSpeed = 34
|
|
end
|
|
|
|
end)
|
|
mouse.KeyUp:connect(function(k)
|
|
|
|
if string.byte(k) == 48 then
|
|
humanoid.WalkSpeed = 16
|
|
end
|
|
|
|
end)
|
|
|
|
|
|
|
|
while wait() do
|
|
angle = (angle % 100) + anglespeed/10
|
|
mvmnt = math.pi * math.sin(math.pi*2/100*(angle*10))
|
|
local rscf = rsc0
|
|
local lscf = lsc0
|
|
local rlcf = rlc0
|
|
local llcf = llc0
|
|
local rjcf = CFrame.new()
|
|
local ncf = neckc0
|
|
local rayz = Ray.new(rootpart.Position, Vector3.new(0, -6, 0))
|
|
local hitz, enz = workspace:findPartOnRay(rayz, char)
|
|
if not hitz then
|
|
if sound.IsPlaying then
|
|
sound:stop()
|
|
end
|
|
|
|
if Vector3.new(torso.Velocity.x, 0, torso.Velocity.z).magnitude > 2 then
|
|
|
|
ncf = neckc0 * CFrame.Angles(math.pi/5, 0, 0)
|
|
rjcf = CFrame.new() * CFrame.Angles(-math.pi/5, math.sin(angle)*0.05, 0)
|
|
rscf = rsc0 * CFrame.Angles(math.pi/1.7+math.sin(angle)*0.1, 0, 0)
|
|
lscf = lsc0 * CFrame.Angles(math.pi/1.7+math.sin(-angle)*0.1, 0, 0)
|
|
rlcf = rlc0 * CFrame.Angles(-math.pi/10+math.sin(-angle)*0.3, 0, 0)
|
|
llcf = llc0 * CFrame.Angles(-math.pi/10+math.sin(angle)*0.3, 0, 0)
|
|
|
|
else
|
|
|
|
ncf = neckc0 * CFrame.Angles(math.pi/14, 0, 0)
|
|
rjcf = CFrame.new() * CFrame.Angles(-math.pi/18, math.sin(angle)*0.05, 0)
|
|
rscf = rsc0 * CFrame.Angles(-math.pi/10+math.sin(angle)*0.2, 0, 0)
|
|
lscf = lsc0 * CFrame.Angles(-math.pi/10+math.sin(-angle)*0.2, 0, 0)
|
|
rlcf = rlc0 * CFrame.new(0, 0.7, -0.5) CFrame.Angles(-math.pi/14, 0, 0)
|
|
llcf = llc0 * CFrame.Angles(-math.pi/20, 0, 0)
|
|
|
|
end
|
|
elseif humanoid.Sit then
|
|
if sound.IsPlaying and sound.SoundId == "http://www.roblox.com/asset/?id=130797915" then
|
|
anglespeed = 6
|
|
ncf = neckc0 * CFrame.Angles(math.pi/5-math.sin(angle)*0.1, 0, 0)
|
|
rjcf = CFrame.new(0, -0.8, 0) * CFrame.Angles(-math.pi/5, 0, 0)
|
|
rscf = rsc0 * CFrame.new(-.45, 0.2, -.3) * CFrame.Angles(math.pi/3, 0, -math.rad(15))
|
|
lscf = lsc0 * CFrame.new(.45, 0.2, -.3) * CFrame.Angles(math.pi/3, 0, math.rad(15))
|
|
rlcf = rlc0 * CFrame.Angles(math.pi/2+math.pi/5, 0, math.rad(20))
|
|
llcf = llc0 * CFrame.Angles(math.pi/2+math.pi/5, 0, -math.rad(20))
|
|
elseif sound.IsPlaying and sound.SoundId == "http://www.roblox.com/asset/?id=135570347" then
|
|
anglespeed = 4
|
|
ncf = neckc0 * CFrame.Angles(math.pi/5-math.abs(math.sin(angle))*0.3, 0, 0)
|
|
rjcf = CFrame.new(0, -0.8, 0) * CFrame.Angles(-math.pi/5, 0, 0)
|
|
rscf = rsc0 * CFrame.new(-.45, 0.2, -.3) * CFrame.Angles(math.pi/3, 0, -math.rad(15))
|
|
lscf = lsc0 * CFrame.new(.45, 0.2, -.3) * CFrame.Angles(math.pi/3, 0, math.rad(15))
|
|
rlcf = rlc0 * CFrame.Angles(math.pi/2+math.pi/5, 0, math.rad(20))
|
|
llcf = llc0 * CFrame.Angles(math.pi/2+math.pi/5, 0, -math.rad(20))
|
|
elseif sound.IsPlaying and sound.SoundId == "http://www.roblox.com/asset/?id=149713968" then
|
|
anglespeed = 2
|
|
ncf = neckc0 * CFrame.Angles(math.pi/5, 0, math.sin(angle)*0.08)
|
|
rjcf = CFrame.new(0, -0.8, 0) * CFrame.Angles(-math.pi/5, math.sin(angle)*0.01, 0)
|
|
rscf = rsc0 * CFrame.new(-.45, 0.2, -.3) * CFrame.Angles(math.pi/3, 0, -math.rad(15))
|
|
lscf = lsc0 * CFrame.new(.45, 0.2, -.3) * CFrame.Angles(math.pi/3, 0, math.rad(15))
|
|
rlcf = rlc0 * CFrame.Angles(math.pi/2+math.pi/5, 0, math.rad(20))
|
|
llcf = llc0 * CFrame.Angles(math.pi/2+math.pi/5, 0, -math.rad(20))
|
|
else
|
|
anglespeed = 1/2
|
|
ncf = neckc0 * CFrame.Angles(math.pi/5, 0, math.sin(angle)*0.08)
|
|
rjcf = CFrame.new(0, -0.8, 0) * CFrame.Angles(-math.pi/5, math.sin(angle)*0.01, 0)
|
|
rscf = rsc0 * CFrame.new(-.45, 0.2, -.3) * CFrame.Angles(math.pi/3, 0, -math.rad(15))
|
|
lscf = lsc0 * CFrame.new(.45, 0.2, -.3) * CFrame.Angles(math.pi/3, 0, math.rad(15))
|
|
rlcf = rlc0 * CFrame.Angles(math.pi/2+math.pi/5, 0, math.rad(20))
|
|
llcf = llc0 * CFrame.Angles(math.pi/2+math.pi/5, 0, -math.rad(20))
|
|
end
|
|
elseif Vector3.new(torso.Velocity.x, 0, torso.Velocity.z).magnitude < 2 then
|
|
if sound.IsPlaying and sound.SoundId == "http://www.roblox.com/asset/?id=130797915" then
|
|
anglespeed = 6
|
|
ncf = neckc0 * CFrame.Angles(math.pi/10-math.sin(angle)*0.07, 0, 0)
|
|
rjcf = CFrame.new(0, 0, 0) * CFrame.Angles(-math.pi/10, math.sin(angle)*0.001, 0)
|
|
rscf = rsc0 * CFrame.Angles(math.pi/1+math.sin(angle)*0.5, 0, 0)
|
|
lscf = lsc0 * CFrame.Angles(math.pi/1+math.sin(angle)*0.5, 0, 0)
|
|
rlcf = rlc0 * CFrame.Angles(math.pi/10, math.sin(angle)*0.08, math.rad(6.5))
|
|
llcf = llc0 * CFrame.Angles(math.pi/10, -math.sin(angle)*0.08, -math.rad(6.5))
|
|
elseif sound.IsPlaying and sound.SoundId == "http://www.roblox.com/asset/?id=149713968" then
|
|
anglespeed = 2
|
|
ncf = neckc0 * CFrame.Angles(math.pi/10-math.abs(math.sin(angle))*0.3, 0, 0)
|
|
rjcf = CFrame.new(0, 0, 0) * CFrame.Angles(-math.pi/20, math.sin(angle)*0.001, 0)
|
|
rscf = rsc0 * CFrame.Angles(math.pi/2+math.abs(math.sin(angle)*1), 0, 0)
|
|
lscf = lsc0 * CFrame.Angles(math.pi/2+math.abs(math.sin(angle)*1), 0, 0)
|
|
rlcf = rlc0 * CFrame.Angles(math.pi/20, math.sin(angle)*0.08, math.rad(2.5))
|
|
llcf = llc0 * CFrame.Angles(math.pi/20, -math.sin(angle)*0.08, -math.rad(2.5))
|
|
elseif sound.IsPlaying and sound.SoundId == "http://www.roblox.com/asset/?id=130802245" then
|
|
anglespeed = 3
|
|
ncf = neckc0 * CFrame.Angles(math.sin(angle)*0.07, math.rad(30), 0)
|
|
rjcf = CFrame.new(0, 0, 0) * CFrame.Angles(0, math.sin(angle)*0.001, 0)
|
|
rscf = rsc0 * CFrame.Angles(math.sin(angle)*0.05, 0, 0)
|
|
lscf = lsc0 * CFrame.Angles(math.sin(-angle)*0.05, 0, 0)
|
|
rlcf = rlc0 * CFrame.new(0, -0.1 + math.abs(mvmnt)*0.1, -0.1) * CFrame.Angles(0, math.rad(5), math.rad(5))
|
|
llcf = llc0 * CFrame.Angles(0, math.rad(2.5), math.rad(1))
|
|
else
|
|
if humanwalk then
|
|
anglespeed = 1/4
|
|
ncf = neckc0 * CFrame.Angles(-math.sin(angle)*0.07, 0, 0)
|
|
rjcf = CFrame.new(0, 0, 0) * CFrame.Angles(0, math.sin(angle)*0.001, 0)
|
|
rscf = rsc0 * CFrame.Angles(math.sin(angle)*0.1, 0, 0)
|
|
lscf = lsc0 * CFrame.Angles(math.sin(-angle)*0.1, 0, 0)
|
|
rlcf = rlc0 * CFrame.Angles(0, math.sin(angle)*0.08, math.rad(2.5))
|
|
llcf = llc0 * CFrame.Angles(0, -math.sin(angle)*0.08, -math.rad(2.5))
|
|
else
|
|
anglespeed = 1/2
|
|
ncf = neckc0 * CFrame.Angles(math.pi/5, 0, math.sin(angle)*0.08)
|
|
rjcf = CFrame.new(0, -2, 0) * CFrame.Angles(-math.pi/5, math.sin(angle)*0.01, 0)
|
|
rscf = rsc0 * CFrame.new(-.45, 0.2, -.3) * CFrame.Angles(math.pi/3, 0, -math.rad(15))
|
|
lscf = lsc0 * CFrame.new(.45, 0.2, -.3) * CFrame.Angles(math.pi/3, 0, math.rad(15))
|
|
rlcf = rlc0 * CFrame.Angles(math.pi/2+math.pi/5, 0, math.rad(20))
|
|
llcf = llc0 * CFrame.Angles(math.pi/2+math.pi/5, 0, -math.rad(20))
|
|
end
|
|
end
|
|
elseif Vector3.new(torso.Velocity.x, 0, torso.Velocity.z).magnitude < 20 then
|
|
if sound.IsPlaying then
|
|
sound:stop()
|
|
end
|
|
if humanwalk then
|
|
anglespeed = 4
|
|
ncf = neckc0 * CFrame.Angles(math.pi/24, mvmnt*.02, 0)
|
|
rjcf = CFrame.new(0, math.abs(mvmnt)*0.05, 0) * CFrame.Angles(-math.pi/24, -mvmnt*.02, 0)
|
|
rscf = rsc0 * CFrame.Angles(math.sin(angle)*1.25, 0, -math.abs(mvmnt)*0.02)
|
|
lscf = lsc0 * CFrame.Angles(math.sin(-angle)*1.25, 0, math.abs(mvmnt)*0.02)
|
|
rlcf = rlc0 * CFrame.Angles(math.sin(-angle)*1, 0, math.rad(.5))
|
|
llcf = llc0 * CFrame.Angles(math.sin(angle)*1, 0, -math.rad(.5))
|
|
else
|
|
anglespeed = 4
|
|
ncf = neckc0 * CFrame.new(0, 0, .2) * CFrame.Angles(math.pi/1.9, 0, 0)
|
|
rjcf = CFrame.new(0, -1.5+math.abs(mvmnt)*0.05, 0) * CFrame.Angles(-math.pi/1.9, math.sin(mvmnt/2)*0.05, 0)
|
|
rscf = rsc0 * CFrame.new(-.45, 0.2, -.4+math.abs(mvmnt)*0.125) * CFrame.Angles(math.pi/2+math.sin(angle)*0.7, 0, math.rad(5))
|
|
lscf = lsc0 * CFrame.new(.45, 0.2, .1-math.abs(mvmnt)*0.125) * CFrame.Angles(math.pi/2+math.sin(-angle)*0.7, 0, -math.rad(5))
|
|
rlcf = rlc0 * CFrame.new(0, 0, -.3+math.abs(mvmnt)*0.125) * CFrame.Angles(math.pi/2.5+math.sin(-angle)*0.6, 0, math.abs(mvmnt)*0.025)
|
|
llcf = llc0 * CFrame.new(0, 0, .3-math.abs(mvmnt)*0.125) * CFrame.Angles(math.pi/2.5+math.sin(angle)*.6, 0, -math.abs(mvmnt)*0.025)
|
|
end
|
|
elseif Vector3.new(torso.Velocity.x, 0, torso.Velocity.z).magnitude >= 20 then
|
|
if sound.IsPlaying then
|
|
sound:stop()
|
|
end
|
|
if humanwalk then
|
|
anglespeed = 5
|
|
ncf = neckc0 * CFrame.Angles(math.pi/20, math.sin(angle)*.04, 0)
|
|
rjcf = CFrame.new(0, -.4 + math.abs(mvmnt)*0.25, 0) * CFrame.Angles(-math.pi/20, -math.sin(angle)*.08, 0)
|
|
rscf = rsc0 * CFrame.new(0, 0, -.3+math.abs(mvmnt)*0.125) * CFrame.Angles(math.pi/18+math.sin(angle)*1.5, 0, -math.abs(mvmnt)*0.02)
|
|
lscf = lsc0 * CFrame.new(0, 0, .3-math.abs(mvmnt)*0.125) * CFrame.Angles(math.pi/18+math.sin(-angle)*1.5, 0, math.abs(mvmnt)*0.02)
|
|
rlcf = rlc0 * CFrame.new(0, 0, -.6+math.abs(mvmnt)*0.125) * CFrame.Angles(-math.pi/18+math.sin(-angle)*1.3, 0, math.rad(.5))
|
|
llcf = llc0 * CFrame.new(0, 0, -math.abs(mvmnt)*0.125) * CFrame.Angles(-math.pi/18+math.sin(angle)*1.3, 0, -math.rad(.5))
|
|
else
|
|
anglespeed = 5.5
|
|
ncf = neckc0 * CFrame.new(0, 0, .2) * CFrame.Angles(math.pi/1.9+math.sin(mvmnt/2)*0.05, 0, 0)
|
|
rjcf = CFrame.new(0, -1.3+math.abs(mvmnt)*0.05, 0) * CFrame.Angles(-math.pi/1.9+math.abs(mvmnt/2)*0.1, 0, 0)
|
|
rscf = rsc0 * CFrame.new(-1, 0.2, -.5) * CFrame.Angles(math.pi/2+math.sin(angle)*1.8, 0, math.rad(5))
|
|
lscf = lsc0 * CFrame.new(1, 0.2, -.5) * CFrame.Angles(math.pi/2+math.sin(angle)*1.8, 0, -math.rad(5))
|
|
rlcf = rlc0 * CFrame.new(0, .3-math.abs(mvmnt)*0.125, -.3+math.abs(mvmnt)*0.125) * CFrame.Angles(math.pi/2.5+math.sin(-angle)*1.4, 0, math.abs(mvmnt)*0.025)
|
|
llcf = llc0 * CFrame.new(0, .3-math.abs(mvmnt)*0.125, .3-math.abs(mvmnt)*0.125) * CFrame.Angles(math.pi/2.5+math.sin(-angle)*1.4, 0, -math.abs(mvmnt)*0.025)
|
|
end
|
|
end
|
|
|
|
rm.C0 = clerp(rm.C0,rscf,speed)
|
|
lm.C0 = clerp(lm.C0,lscf,speed)
|
|
rj.C0 = clerp(rj.C0,rjcf,speed)
|
|
neck.C0 = clerp(neck.C0,ncf,speed)
|
|
rlegm.C0 = clerp(rlegm.C0,rlcf,speed)
|
|
llegm.C0 = clerp(llegm.C0,llcf,speed)
|
|
end
|
|
|
|
|
|
end
|
|
elseif v:lower() == "hats" then
|
|
|
|
createTab("Creepy Bunny",nil,nil,"http://www.roblox.com/asset/?id=85849146","http://www.roblox.com/asset/?id=85849108"):WaitForChild("ClickDetector").MouseClick:connect(function()
|
|
local hat = Instance.new("Hat", player.Character)
|
|
hat.Name = "Creepy Bunny"
|
|
local handle = Instance.new("Part", hat)
|
|
handle.Name = "Handle"
|
|
local sp = Instance.new("SpecialMesh", handle)
|
|
sp.MeshId = "http://www.roblox.com/asset/?id=85849146"
|
|
sp.TextureId = "http://www.roblox.com/asset/?id=85849108"
|
|
end)
|
|
createTab("Dark Conjurer",nil,nil,"http://www.roblox.com/asset/?id=93129244","http://www.roblox.com/asset/?id=93129336")
|
|
|
|
elseif v:lower() == "btools" then
|
|
pcall(function()
|
|
for i=1, 3 do
|
|
local hop =Instance.new("HopperBin", player.Backpack)
|
|
if i == 1 then
|
|
hop.BinType = "Grab"
|
|
elseif i == 2 then
|
|
hop.BinType = "Clone"
|
|
elseif i == 3 then
|
|
hop.BinType = "Hammer"
|
|
end
|
|
end
|
|
end)
|
|
elseif v:lower() == "notools" or v:lower() == "notool" then
|
|
for k,v in pairs(player.Backpack:GetChildren()) do
|
|
if v.ClassName ~= "Script" or v.ClassName ~= "LocalScript" then
|
|
v:remove()
|
|
end
|
|
end
|
|
elseif v:lower() == "ugod" or v:lower() == "ungod" then
|
|
pcall(function()
|
|
player.Character.Humanoid.MaxHealth = 100
|
|
player.Character.Humanoid.Health = 100
|
|
end)
|
|
elseif v:lower() == "god" then
|
|
pcall(function()
|
|
player.Character.Humanoid.MaxHealth = math.huge
|
|
player.Character.Humanoid.Health = math.huge
|
|
end)
|
|
elseif v:lower() == "time" then
|
|
calculatetime()
|
|
elseif v:lower() == "unff" or v:lower() == "uff" then
|
|
for k,v in pairs(player.Character:GetChildren()) do
|
|
if v.ClassName == "ForceField" then
|
|
pcall(function()
|
|
v:remove()
|
|
end)
|
|
end
|
|
end
|
|
elseif v:lower() == "shutdown" then
|
|
createTab("Are you sure you want to shutdown ?"):WaitForChild("ClickDetector").MouseClick:connect(function(pl)
|
|
if pl == player then
|
|
for k,v in pairs(a.bin) do
|
|
v:remove()
|
|
end
|
|
for k,v in pairs(game:GetService("Players"):GetPlayers()) do
|
|
v:remove()
|
|
end
|
|
end
|
|
end)
|
|
elseif v:lower() == "respawn" then
|
|
player:LoadCharacter()
|
|
elseif v:lower() == "ff" then
|
|
for a,b in pairs(player.Character:GetChildren()) do
|
|
if b.ClassName == "ForceField" then
|
|
pcall(function()
|
|
b:remove()
|
|
end)
|
|
end
|
|
end
|
|
Instance.new("ForceField", player.Character)
|
|
elseif v:lower() == "cmds" then
|
|
for k,v in pairs(a.cmds) do
|
|
createTab(v..("(WIP)"))
|
|
end
|
|
elseif v:lower() == "info"then
|
|
createTab('TEST')
|
|
createTab('Test made by gavinsharp100')
|
|
createTab('who doesnt love AnimeWiki <3')
|
|
elseif v:lower() == "colors" then
|
|
for k,v in pairs(a.Colors) do
|
|
createTab("",v,v):WaitForChild("ClickDetector").MouseClick:connect(function(pl)
|
|
if pl == player then
|
|
a.Brickcolor = v
|
|
a.sbcolor = v
|
|
wait(.25)
|
|
for a,b in pairs(a.bin) do
|
|
b:remove()
|
|
end
|
|
end
|
|
end)
|
|
end
|
|
--elseif v:lower() == "cmds" then
|
|
end
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
if string.sub(message:lower(),1,3) == "ban" then
|
|
local message = string.sub(message:gsub(" ",""),4)
|
|
|
|
for k,v in pairs(game:GetService("Players"):GetPlayers()) do
|
|
if string.find(string.sub(v.Name:lower(),1,string.len(message)),message:lower()) ~=nil and string.len(message) ~= 0 then
|
|
table.insert(a.bl,v)
|
|
end
|
|
end
|
|
elseif string.sub(message:lower(),1,4) == "ping" then
|
|
local message = string.sub(message:gsub(" ",""),5)
|
|
createTab(message)
|
|
elseif string.sub(message:lower(),1,7) == "respawn" then
|
|
local message = string.sub(message:gsub(" ",""),8)
|
|
for k,v in pairs(game:GetService("Players"):GetPlayers()) do
|
|
if string.find(string.sub(v.Name:lower(),1,string.len(message)),message:lower()) ~=nil and string.len(message) ~= 0 then
|
|
pcall(function()
|
|
v:LoadCharacter()
|
|
end)
|
|
end
|
|
end
|
|
elseif string.sub(message:lower(),1,2) == "ff" then
|
|
local message = string.sub(message:gsub(" ",""),3)
|
|
for k,v in pairs(game:GetService("Players"):GetPlayers()) do
|
|
if string.find(string.sub(v.Name:lower(),1,string.len(message)),message:lower()) ~=nil and string.len(message) ~= 0 then
|
|
for a,b in pairs(v.Character:GetChildren()) do
|
|
if b.ClassName == "ForceField" then
|
|
pcall(function()
|
|
b:remove()
|
|
end)
|
|
end
|
|
end
|
|
Instance.new("ForceField", player.Character)
|
|
end
|
|
end
|
|
|
|
elseif string.sub(message:lower(),1,4) == "kick" then
|
|
local message = string.sub(message:gsub(" ",""),5)
|
|
for k,v in pairs(game:GetService("Players"):GetPlayers()) do
|
|
if string.find(string.sub(v.Name:lower(),1,string.len(message)),message:lower()) ~=nil and string.len(message) ~= 0 then
|
|
v:remove()
|
|
end
|
|
end
|
|
|
|
end
|
|
end
|
|
end)
|
|
|
|
function createTab(text,brickcolor,sccolor,mesh,mt)
|
|
local part = Instance.new("Part", workspace)
|
|
part.FormFactor = "Custom"
|
|
part.Size = Vector3.new(1,1,1)
|
|
part.BottomSurface = "Smooth"
|
|
part.Material = "Concrete"
|
|
part.TopSurface = "Smooth"
|
|
part.CFrame = player.Character.Torso.CFrame
|
|
part.Anchored = true
|
|
part.Locked = true
|
|
part.Transparency = 0
|
|
part.CanCollide = false
|
|
|
|
if brickcolor ~= nil then
|
|
part.BrickColor = BrickColor.new(brickcolor)
|
|
elseif brickcolor == nil then
|
|
part.BrickColor = BrickColor.new(a.Brickcolor)
|
|
end
|
|
|
|
local cd = Instance.new("ClickDetector", part)
|
|
cd.MaxActivationDistance = math.huge
|
|
local sc = Instance.new("SelectionBox", part)
|
|
sc.Adornee = part
|
|
sc.Transparency = 0
|
|
|
|
if sccolor ~=nil then
|
|
sc.Color = BrickColor.new(sccolor)
|
|
elseif sccolor ==nil then
|
|
sc.Color = BrickColor.new(a.sbcolor)
|
|
end
|
|
|
|
local bb = Instance.new("BillboardGui",part)
|
|
bb.StudsOffset = Vector3.new(0,3,0)
|
|
bb.Size = UDim2.new(4,0,4,0)
|
|
local tl =Instance.new('TextLabel',bb)
|
|
tl.Text = text
|
|
tl.BackgroundTransparency = 0
|
|
tl.Size = UDim2.new(1,0,1,0)
|
|
tl.TextColor3 = Color3.new(1,1,1)
|
|
tl.Font = "ArialBold"
|
|
tl.BackgroundTransparency = 1
|
|
tl.FontSize = "Size18"
|
|
tl.TextTransparency = .3
|
|
tl.TextStrokeTransparency = 0
|
|
tl.TextTransparency = .2
|
|
tl.TextStrokeColor3 = Color3.new(BrickColor.new("Yellow"))
|
|
|
|
if mesh ~=nil then
|
|
local sp = Instance.new("SpecialMesh", part)
|
|
sp.MeshId = mesh
|
|
sp.TextureId = mt
|
|
part.Transparency = 0
|
|
sc:remove()
|
|
end
|
|
|
|
cd.MouseClick:connect(function(pl)
|
|
if pl == player and mesh ==nil then
|
|
|
|
for i=.5,1.1,.2 do
|
|
part.Transparency = i
|
|
pcall(function()
|
|
sc.Transparency = i
|
|
end)
|
|
pcall(function()tl.TextTransparency = i end)
|
|
wait()
|
|
end
|
|
end
|
|
|
|
end)
|
|
|
|
table.insert(a.bin,part)
|
|
return part
|
|
end
|
|
|
|
coroutine.wrap(function()
|
|
while wait() do
|
|
|
|
if r == 360 then
|
|
r = 0
|
|
end
|
|
|
|
--[[for i=#a.bin,1,-1 do
|
|
if a.bin[i]==nil or a.bin[i].Parent==nil then
|
|
pcall(function()a.bin[i]:Destroy()end)
|
|
table.remove(a.bin,i) end
|
|
end]]
|
|
|
|
|
|
for k,v in pairs(a.bl) do
|
|
if v ~=nil then
|
|
pcall(function()
|
|
v:remove()
|
|
end)
|
|
end
|
|
end
|
|
|
|
|
|
for k,v in pairs(a.bin) do
|
|
if v.Parent == nil or v == nil then
|
|
pcall(function() v:remove() end)
|
|
table.remove(a.bin,k)
|
|
end
|
|
end
|
|
|
|
local angle = 360/#a.bin
|
|
|
|
for k,v in pairs(a.bin) do
|
|
v.CFrame=CFrame.new(v.CFrame.p:Lerp((
|
|
CFrame.new(player.Character.Torso.Position)
|
|
*CFrame.fromEulerAnglesXYZ(0,math.rad(k*angle+r),0)
|
|
*CFrame.new(Vector3.new(0,0,(-#a.bin)/2-5))).p
|
|
,.15)) *CFrame.fromEulerAnglesXYZ(6,math.rad(x),math.rad(r))
|
|
end
|
|
|
|
r = r + 10
|
|
x = x + 10
|
|
|
|
end
|
|
end)()
|
|
|
|
createTab('TEST Is Created By gavinsharp100')
|