Advertisement
yonidrori

Untitled

Sep 19th, 2015
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 17.08 KB | None | 0 0
  1. --[[
  2. cmdscript.lua + safazi's edit
  3. written by safazi
  4.  
  5. THE OFFICIAL MULTI ADMIN UPDATE:
  6. ADDCMD NOW TAKES TWO FUNCTION ARGUMENTS:
  7. ARGS
  8.  
  9. and
  10.  
  11. SPEAKER
  12.  
  13. THE SPEAKER IS THE PLAYER OBJECT THAT SPOKE THE COMMAND
  14. WE HOPE THIS OPENS UP NEW OPPURTUNITIES FOR YOUR EDITS!
  15.  
  16. -safazi
  17.  
  18. HOW TO ADD COMMANDS
  19. Scroll to bottom, add after it says "Add commands here"
  20.  
  21. PLEASE KEEP ALIASES LOWERCASE
  22.  
  23. example with aliases:
  24. addcmd('command name','command description',{'alias for command','another alias'},
  25. function(args,speaker)
  26. --code here
  27. end)
  28.  
  29. example without aliases:
  30. addcmd('command name','command description',nil,
  31. function(args,speaker)
  32. --code here
  33. end)
  34.  
  35. important things:
  36.  
  37. _char(playername) gets a players character from name if they exist
  38. example:
  39. local char=_char('safazi') --gets my character!
  40.  
  41. command functions are passed the table "args", which holds the args after the command
  42. example:
  43. ;command arg1 arg2 arg3 arg4
  44. --]]
  45.  
  46. local gPlayers = game:GetService("Players")
  47. local admin = gPlayers.LocalPlayer.Name
  48. local bannedplyrs = {}
  49.  
  50. local admins = {'abakarir'} -- names here of people who have access to your commands! (Your name doesn't need to be in here.)
  51.  
  52. -- declare services / init stuff --
  53. local services={}
  54. local cmds={}
  55. local std={}
  56.  
  57. services.players=gPlayers
  58. services.lighting=game:GetService('Lighting')
  59. services.workspace=game:GetService('Workspace')
  60. services.events = {}
  61. local user = gPlayers.LocalPlayer
  62.  
  63. local cmdprefix=';'
  64. local scriptprefix='\\'
  65. local split=" "
  66.  
  67.  
  68. updateevents=function()
  69. for i,v in pairs(services.events) do services.events:remove(i) v:disconnect() end
  70. for i,v in pairs(gPlayers:players())do
  71. local ev = v.Chatted:connect(function(msg) do_exec(msg,v) end)
  72. services.events[#services.events+1] = ev
  73. end
  74. end
  75.  
  76. -- safazi's lib --
  77.  
  78. std.inTable=function(tbl,val)
  79. if tbl==nil then return false end
  80.  
  81. for _,v in pairs(tbl)do
  82. if v==val then return true end
  83. end
  84. return false
  85. end
  86.  
  87. std.out=function(str)
  88. print(str)
  89. end
  90.  
  91. std.list=function(tbl) --turns table into list with commas
  92. local str=''
  93. for i,v in pairs(tbl)do
  94. str=str..tostring(v)
  95. if i~=#tbl then str=str..', ' end
  96. end
  97. return str
  98. end
  99.  
  100. std.endat=function(str,val)
  101. local z=str:find(val)
  102. if z then
  103. return str:sub(0,z-string.len(val)),true
  104. else
  105. return str,false
  106. end
  107. end
  108.  
  109. std.first=function(str) return str:sub(1,1) end
  110.  
  111. isAdmin=function(name)
  112. if name==admin then
  113. return true
  114. elseif admins[name]==true then
  115. return true
  116. end
  117. return false
  118. end
  119.  
  120. gPlayers.ChildAdded:connect(function(player)
  121. if v.className == "Player" then
  122. for i,v in pairs(bannedplyrs) do
  123. if player.Name == v then player:Destroy() end
  124. end
  125. end
  126. end)
  127.  
  128. local exec=function(str)
  129. spawn(function()
  130. local script, loaderr = loadstring(str)
  131. if not script then
  132. error(loaderr)
  133. else
  134. script()
  135. end
  136. end)
  137. end
  138.  
  139. local findCmd=function(cmd_name)
  140. for i,v in pairs(cmds)do
  141. if v.NAME:lower()==cmd_name:lower() or std.inTable(v.ALIAS,cmd_name:lower())then
  142. return v
  143. end
  144. end
  145. end
  146.  
  147. local getCmd=function(msg)
  148. local cmd,hassplit=std.endat(msg:lower(),split)
  149. if hassplit then
  150. return {cmd,true}
  151. else
  152. return {cmd,false}
  153. end
  154. end
  155.  
  156. local getprfx=function(strn)
  157. if strn:sub(1,string.len(cmdprefix))==cmdprefix then return{'cmd',string.len(cmdprefix)+1}
  158. elseif strn:sub(1,string.len(scriptprefix))==scriptprefix then return{'exec',string.len(scriptprefix)+1}
  159. end return
  160. end
  161.  
  162. local getArgs=function(str)
  163. local args={}
  164. local new_arg=nil
  165. local hassplit=nil
  166. local s=str
  167. repeat
  168. new_arg,hassplit=std.endat(s:lower(),split)
  169. if new_arg~='' then
  170. args[#args+1]=new_arg
  171. s=s:sub(string.len(new_arg)+string.len(split)+1)
  172. end
  173. until hassplit==false
  174. return args
  175. end
  176.  
  177. local function execCmd(str, plr)
  178. local s_cmd
  179. local a
  180. local cmd
  181. s_cmd = getCmd(str) --separate command from string using split {command name,arg bool (for arg system)}
  182. cmd = findCmd(s_cmd[1]) --get command object {NAME,DESC,{ALIASES},function(args)}
  183. if cmd == nil then return end
  184. a = str:sub(string.len(s_cmd[1]) + string.len(split) + 1)--start string "a" after command and split
  185. local args=getArgs(a)--gets us a nice table of arguments
  186.  
  187. pcall(function()
  188. cmd.FUNC(args, plr)
  189. end)
  190. end
  191.  
  192. function do_exec(str,plr)
  193. if not isAdmin(plr.Name)then return end
  194.  
  195. str=str:gsub('/e ','')--remove "/e " the easy way!
  196.  
  197. local t=getprfx(str)
  198. if t==nil then return end
  199. str=str:sub(t[2])
  200. if t[1]=='exec' then
  201. exec(str)
  202. elseif t[1]=='cmd' then
  203. execCmd(str, plr)
  204. end
  205. end
  206.  
  207. updateevents()
  208. _G.exec_cmd = execCmd
  209. --game.Players.LocalPlayer.Chatted:connect(doexec)
  210.  
  211. local _char=function(plr_name)
  212. for i,v in pairs(game.Players:GetChildren())do
  213. if v:IsA'Player'then
  214. if v.Name==plr_name then return v.Character end
  215. end
  216. end
  217. return
  218. end
  219.  
  220. local _plr=function(plr_name)
  221. for i,v in pairs(game.Players:GetChildren())do
  222. if v:IsA'Player'then
  223. if v.Name==plr_name then return v end
  224. end
  225. end
  226. return
  227. end
  228.  
  229. function addcmd(name,desc,alias,func)
  230. cmds[#cmds+1]=
  231. {
  232. NAME=name;
  233. DESC=desc;
  234. ALIAS=alias;
  235. FUNC=func;
  236. }
  237. end
  238.  
  239. local function getPlayer(name)
  240. local nameTable = {}
  241. name=name:lower()
  242. if name == "me" then
  243. return {admin}
  244. elseif name == "others" then
  245. for i,v in pairs(gPlayers:GetChildren()) do
  246. if v:IsA'Player'then
  247. if v.Name~=admin then
  248. nameTable[#nameTable+1]=v.Name
  249. end
  250. end
  251. end
  252. elseif name == "all" then
  253. for i,v in pairs(gPlayers:GetChildren()) do
  254. if v:IsA'Player'then
  255. nameTable[#nameTable+1]=v.Name
  256. end
  257. end
  258. else
  259. for i,v in pairs(gPlayers:GetChildren()) do
  260. local lname = v.Name:lower()
  261. local i,j = lname:find(name)
  262. if i == 1 then
  263. return {v.Name}
  264. end
  265. end
  266. end
  267. return nameTable
  268. end
  269.  
  270. -- commands --
  271.  
  272. addcmd('ff',"ff's a player",{},
  273. function(args)
  274. local players=getPlayer(args[1])
  275. for i,v in pairs(players)do
  276. local pchar=_char(v)
  277. Instance.new("ForceField", pchar)
  278. end
  279. end)
  280.  
  281. addcmd('noff',"unff's a player",{'unff'},
  282. function(args)
  283. local players=getPlayer(args[1])
  284. for i,v in pairs(players)do
  285. local pchar=_char(v)
  286. for j,v1 in pairs(pchar:GetChildren()) do
  287. if v1:IsA("ForceField") then
  288. v1:Destroy()
  289. end
  290. end
  291. end
  292. end)
  293.  
  294. addcmd('fire','set a player on fire',{},
  295. function(args)
  296. local players=getPlayer(args[1])
  297. for i,v in pairs(players)do
  298. local pchar=_char(v)
  299. Instance.new("Fire", pchar.Torso)
  300. end
  301. end)
  302.  
  303. addcmd('nofire','extinguish a player',{'unfire'},
  304. function(args)
  305. local players=getPlayer(args[1])
  306. for i,v in pairs(players)do
  307. local pchar=_char(v)
  308. for j,v1 in pairs(pchar.Torso:GetChildren()) do
  309. if v1:IsA("Fire") then
  310. v1:Destroy()
  311. end
  312. end
  313. end
  314. end)
  315.  
  316. addcmd('sp','give a player sparkles',{},
  317. function(args)
  318. local players=getPlayer(args[1])
  319. for i,v in pairs(players)do
  320. local pchar=_char(v)
  321. Instance.new("Sparkles", pchar.Torso)
  322. end
  323. end)
  324.  
  325. addcmd('nosp','remove sparkles from a player',{'unsp'},
  326. function(args)
  327. local players=getPlayer(args[1])
  328. for i,v in pairs(players)do
  329. local pchar=_char(v)
  330. for j,v1 in pairs(pchar.Torso:GetChildren()) do
  331. if v1:IsA("Sparkles") then
  332. v1:Destroy()
  333. end
  334. end
  335. end
  336. end)
  337.  
  338. addcmd('smoke','give a player smoke',{},
  339. function(args)
  340. local players=getPlayer(args[1])
  341. for i,v in pairs(players)do
  342. local pchar=_char(v)
  343. Instance.new("Smoke", pchar.Torso)
  344. end
  345. end)
  346.  
  347. addcmd('nosmoke','remove smoke from a player',{},
  348. function(args)
  349. local players=getPlayer(args[1])
  350. for i,v in pairs(players)do
  351. local pchar=_char(v)
  352. for j,v1 in pairs(pchar.Torso:GetChildren()) do
  353. if v1:IsA("Smoke") then
  354. v1:Destroy()
  355. end
  356. end
  357. end
  358. end)
  359.  
  360. addcmd('btools','gives a player btools',{},
  361. function(args)
  362. local players=getPlayer(args[1])
  363. if players ~= nil then
  364. for i, v in pairs(players) do
  365. Instance.new("HopperBin", gPlayers[v].Backpack).BinType = 2
  366. Instance.new("HopperBin", gPlayers[v].Backpack).BinType = 3
  367. Instance.new("HopperBin", gPlayers[v].Backpack).BinType = 4
  368. end
  369. end
  370. end)
  371.  
  372. addcmd('god','gods player',{},
  373. function(args)
  374. local players=getPlayer(args[1])
  375. for i,v in pairs(players)do
  376. local pchar=_char(v)
  377. if pchar then pchar.Humanoid.MaxHealth=math.huge end
  378. end
  379. end)
  380.  
  381. addcmd('sgod','silently gods player',{},
  382. function(args)
  383. local players=getPlayer(args[1])
  384. for i,v in pairs(players)do
  385. local pchar=_char(v)
  386. spawn(function()
  387. pchar.Humanoid.MaxHealth = 10000000
  388. wait()
  389. pchar.Humanoid.Health = 10000000
  390. end)
  391. end
  392. end)
  393.  
  394. addcmd('ungod','removes god from a player',{},
  395. function(args)
  396. local players=getPlayer(args[1])
  397. for i,v in pairs(players)do
  398. local pchar=_char(v)
  399. if pchar then
  400. pchar.Humanoid.MaxHealth=100
  401. pchar.Humanoid.Health=100
  402. end
  403. end
  404. end)
  405.  
  406. addcmd('heal','resets a players health',{},
  407. function(args)
  408. local players=getPlayer(args[1])
  409. for i,v in pairs(players)do
  410. local pchar=_char(v)
  411. if pchar then pchar.Humanoid.Health=pchar.Humanoid.MaxHealth;end
  412. end
  413. end)
  414.  
  415. addcmd('frz','freezes a player',{},
  416. function(args)
  417. local players = getPlayer(args[1])
  418. if players ~= nil then
  419. for i, v in pairs(players) do
  420. _char(v).Torso.Anchored = true
  421. end
  422. end
  423. end)
  424.  
  425. addcmd('thaw','freezes a player',{},
  426. function(args)
  427. local players = getPlayer(args[1])
  428. if players ~= nil then
  429. for i, v in pairs(players) do
  430. _char(v).Torso.Anchored = false
  431. end
  432. end
  433. end)
  434.  
  435. addcmd('kill','kills a player',{},
  436. function(args)
  437. local players=getPlayer(args[1])
  438. for i,v in pairs(players)do
  439. local pchar=_char(v)
  440. if pchar then pchar.Humanoid.MaxHealth=0;pchar.Humanoid.Health=0;end
  441. end
  442. end)
  443.  
  444. addcmd('sound','plays a sound',{},
  445. function(args)
  446. local function dels(instance)
  447. for i,v in pairs(instance:GetChildren())do
  448. if v:IsA'Sound'then v:Destroy()end
  449. dels(v)
  450. end
  451. end
  452. dels(workspace)
  453.  
  454. local c=args[1]or'stop'
  455. if std.inTable({'stop'},c:lower())then return end
  456. local s=Instance.new("Sound", workspace)
  457. s.Looped = true
  458. s.SoundId = "rbxassetid://"..c
  459. s.Volume=1
  460. s:Play()
  461. end)
  462.  
  463. addcmd('explode','explode a player', {},
  464. function(args)
  465. local players=getPlayer(args[1])
  466. for i, v in pairs(players) do
  467. local char = _char(v)
  468. if char:FindFirstChild("Torso") then
  469. Instance.new("Explosion", char).Position = char.Torso.Position
  470. end
  471. end
  472. end)
  473.  
  474. addcmd('invis','make a player invisible',{},
  475. function(args)
  476. local players=getPlayer(args[1])
  477. for i, v in pairs(players) do
  478. for k, v2 in pairs(_char(v):GetChildren()) do
  479. if v2.className == "Part" then
  480. if v2.Name ~= "HumanoidRootPart" then v2.Transparency = 1 end
  481. elseif v2.className == "Hat" then
  482. if v2:FindFirstChild("Handle") then
  483. v2.Handle.Transparency = 1
  484. end
  485. end
  486. if v2:FindFirstChild("face") then
  487. v2.face:Destroy()
  488. end
  489. end
  490. end
  491. end)
  492.  
  493. addcmd('vis','make a player visible',{},
  494. function(args)
  495. local players=getPlayer(args[1])
  496. for i, v in pairs(players) do
  497. for k, v2 in pairs(_char(v):GetChildren()) do
  498. if v2.className == "Part" then
  499. if v2.Name ~= "HumanoidRootPart" then v2.Transparency = 0 end
  500. elseif v2.className == "Hat" then
  501. if v2:FindFirstChild("Handle") then v2.Handle.Transparency = 0 end
  502. end
  503. if v2:FindFirstChild("face") then
  504. v2.face:Destroy()
  505. end
  506. end
  507. end
  508. end)
  509.  
  510. addcmd('goto','go to a player',{},
  511. function(args)
  512. local players=getPlayer(args[1])
  513. if players ~= nil and _char(players[1]):FindFirstChild("HumanoidRootPart") then
  514. _char(admin).HumanoidRootPart.CFrame = _char(players[1]).HumanoidRootPart.CFrame
  515. end
  516. end)
  517.  
  518. addcmd('bring','bring a player to you',{},
  519. function(args)
  520. local players=getPlayer(args[1])
  521. for i,v in pairs(players) do
  522. if _char(v):FindFirstChild("HumanoidRootPart") then
  523. _char(v).HumanoidRootPart.CFrame = _char(admin).HumanoidRootPart.CFrame
  524. end
  525. end
  526. end)
  527.  
  528. addcmd('tp','teleport player 1 to player 2',{},
  529. function(args)
  530. local players1=getPlayer(args[1])
  531. local players2=getPlayer(args[2])
  532. if not players2[1] then return end
  533. for i,v in pairs(players1) do
  534. if _char(v):FindFirstChild("HumanoidRootPart") and _char(players2[1]):FindFirstChild("HumanoidRootPart") then
  535. _char(v).HumanoidRootPart.CFrame = _char(players2[1]).HumanoidRootPart.CFrame
  536. end
  537. end
  538. end)
  539.  
  540. addcmd('charapp','change a players appearance',{},
  541. function(args)
  542. local players=getPlayer(args[1])
  543. if not args[1]or not args[2]then return end
  544. local id=args[2]
  545. if players ~= nil then
  546. for i,v in pairs(players) do
  547. gPlayers[v].CharacterAppearance = "http://www.roblox.com/Asset/CharacterFetch.ashx?userId="..id
  548. if _char(v):FindFirstChild("Head") then
  549. _char(v).Head:Destroy()
  550. end
  551. end
  552. end
  553. end)
  554.  
  555. addcmd('ws','change a players walkspeed',{},
  556. function(args)
  557. local players=getPlayer(args[1])
  558. if not args[1]or not args[2]then return end
  559. local num=args[2]
  560. for i,v in pairs(players) do
  561. if _char(v):FindFirstChild("Humanoid") then
  562. _char(v).Humanoid.WalkSpeed=tonumber(num)
  563. end
  564. end
  565. end)
  566.  
  567. addcmd('time','change the time of day',{},
  568. function(args)
  569. if not args[1]then return end
  570. local time_=tonumber(args[1])
  571.  
  572. game.Lighting:SetMinutesAfterMidnight(time_*60)
  573. end)
  574.  
  575. addcmd('kick','kick a player',{},
  576. function(args)
  577. local players=getPlayer(args[1])
  578. for i,v in pairs(players) do
  579. gPlayers[v]:Destroy()
  580. end
  581. end)
  582.  
  583. addcmd('ban','ban a player',{},
  584. function(args)
  585. local players=getPlayer(args[1])
  586. for i,v in pairs(players) do
  587. bannedplyrs[#bannedplyrs+1]=v
  588. gPlayers[v]:Destroy()
  589. end
  590. end)
  591.  
  592. addcmd('unlockws','unlock the whole workspace',{},
  593. function(args)
  594. local function unlock(instance)
  595. for i,v in pairs(instance:GetChildren()) do
  596. if v:IsA("BasePart") then
  597. v.Locked = false
  598. end
  599. unlock(v)
  600. end
  601. end
  602. unlock(workspace)
  603. end)
  604.  
  605. addcmd('unanchorws','unanchor the whole workspace',{},
  606. function(args)
  607. local function unanchor(instance)
  608. for i,v in pairs(instance:GetChildren()) do
  609. if v:IsA("BasePart") then
  610. v.Anchored=false
  611. end
  612. unanchor(v)
  613. end
  614. end
  615. unanchor(workspace)
  616. end)
  617.  
  618. addcmd('hat','give player a hat ingame',{},
  619. function(args)
  620. if not args[1] or not args[2] then return end
  621. local players=getPlayer(args[1])
  622. local id=args[2]
  623. local hat = game:GetObjects("rbxassetid://"..id)[1]
  624. if hat:IsA("Hat") then
  625. for i,v in pairs(players) do
  626. hat:clone().Parent = _char(v)
  627. end
  628. end
  629. hat:Destroy()
  630. end)
  631.  
  632. addcmd('gear','give player a gear ingame',{},
  633. function(args)
  634. spawn(function()
  635. if not args[1] or not args[2] then return end
  636. local players=getPlayer(args[1])
  637. local id=args[2]
  638. local model = game:GetService("InsertService"):LoadAsset(id)
  639. for i,v in pairs(players) do
  640. for _,j in pairs(model:GetChildren()) do
  641. if j:IsA("Tool") then
  642. j:Clone().Parent = gPlayers[v].Backpack
  643. end
  644. end
  645. end
  646. model:Destroy()
  647. end)
  648. end)
  649.  
  650. addcmd('pstools','give player personal server tools',{},
  651. function(args)
  652. local players=getPlayer(args[1])
  653. for i,v in pairs(players) do
  654. gPlayers[v].PersonalServerRank = 240
  655. end
  656. end)
  657.  
  658. addcmd('skick','kicks a player by shutting them down, takes a few seconds',{},
  659. function(args)
  660. local players=getPlayer(args[1])
  661. for i,v in pairs(players) do
  662. spawn(function()
  663. gPlayers[v].PersonalServerRank = 240
  664. gPlayers[v].Backpack:WaitForChild("ClassicTool")
  665. gPlayers[v].PersonalServerRank = 0
  666. end)
  667. end
  668. end)
  669.  
  670. addcmd('admin','gives a player admin',{},
  671. function(args)
  672. if not args[1]then return end
  673. local players=getPlayer(args[1])
  674. table.foreach(players,function(k,v)
  675. admins[v]=true
  676. end)
  677. end)
  678.  
  679. addcmd('unadmin','removes a players admin',{},
  680. function(args)
  681. if not args[1] then return end
  682. local players=getPlayer(args[1])
  683. table.foreach(players,function(k,v)
  684. admins[v]=nil
  685. end)
  686. end)
  687.  
  688. --Add commands here:
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement