Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --[[
- WELCOME!
- Current commands:
- :size (all, others, me, playerName) amount (10, 20, -10, 20, etc)
- Examples:
- :size all 20
- :size others -10
- :size me 100
- :size noob123 -30
- :potato (all, others, me, playerName)
- Examples:
- :potato all
- :potato others
- :potato me
- :potato noob123
- :explode (all, others, me, playerName)
- Examples:
- :explode all
- :explode others
- :explode me
- :explode noob123
- :admin (all, playerName)
- Examples:
- :admin all
- :admin noob123
- :unadmin (all, playerName)
- ! This command only works on the person running the script
- Examples:
- :unadmin all
- :unadmin noob123
- :win (me, playerName)
- Examples:
- :win me
- :win noob123
- :sound (me) (id)
- Examples:
- :sound me 111111
- :decal (me) (id)
- Examples:
- :decal me 111111
- ]]--
- local players = game:GetService('Players')
- local localPlr = players.LocalPlayer
- local char = localPlr.Character or localPlr.CharacterAdded:Wait()
- local utils = {}
- local admins = { localPlr }
- local prefix = ':'
- local remoteKey = "D=9Vb7aMuZt!8aMH"
- local events = {
- changePlateSize = game:GetService("Workspace").RemoteEvents:FindFirstChild("ChangePlateSize"),
- potatoEvent = game:GetService("Workspace").RemoteEvents:FindFirstChild("PotatoEvent"),
- placeMineEvent = game:GetService("Workspace").RemoteEvents:FindFirstChild("PlaceMineEvent"),
- placePlateEvent = game:GetService("Workspace").RemoteEvents:FindFirstChild("PlacePlateEvent"),
- addDecalEvent = game:GetService("Workspace").RemoteEvents:FindFirstChild("AddDecal"),
- addSoundEvent = game:GetService("Workspace").RemoteEvents:FindFirstChild("AddSound")
- }
- local function sizeCmd(cmd, args, player)
- if not args then return end
- local victim = tostring(args[1])
- local size = tonumber(args[2])
- if not victim or not size then return end
- if victim == 'all' then
- for i, v in pairs(players:GetPlayers()) do
- if v.gamestats.Plate.Value then
- events.changePlateSize:FireServer(v.gamestats.Plate.Value, size, remoteKey)
- end
- end
- elseif victim == 'others' then
- for i, v in pairs(players:GetPlayers()) do
- if v.gamestats.Plate.Value and v ~= player then
- events.changePlateSize:FireServer(v.gamestats.Plate.Value, size, remoteKey)
- end
- end
- elseif victim == 'me' then
- if localPlr.gamestats.Plate.Value then
- events.changePlateSize:FireServer(localPlr.gamestats.Plate.Value, size, remoteKey)
- end
- else
- local victimPlr = utils.findPlayer(victim)
- if not victimPlr then return end
- if victimPlr.gamestats.Plate.Value then
- events.changePlateSize:FireServer(victimPlr.gamestats.Plate.Value, size, remoteKey)
- end
- end
- end
- local function potatoCmd(cmd, args, player)
- if not args then return end
- local victimName = args[1]
- if not victimName then return end
- if victimName == 'all' then
- for i, v in pairs(players:GetPlayers()) do
- events.potatoEvent:FireServer(v.Name, remoteKey)
- end
- elseif victimName == 'others' then
- for i, v in pairs(players:GetPlayers()) do
- if v ~= player then
- events.potatoEvent:FireServer(v.Name, remoteKey)
- end
- end
- elseif victimName == 'me' then
- events.potatoEvent:FireServer(player.Name, remoteKey)
- else
- local victimPlr = utils.findPlayer(victimName)
- if not victimPlr then return end
- events.potatoEvent:FireServer(victimPlr.Name, remoteKey)
- end
- end
- local function explodeCmd(cmd, args, player)
- if not args then return end
- local victimName = args[1]
- if not victimName then return end
- if victimName == 'all' then
- for i, v in pairs(players:GetPlayers()) do
- local humPos = v.Character.HumanoidRootPart.Position
- if humPos then
- events.placeMineEvent:FireServer(humPos, remoteKey)
- end
- end
- elseif victimName == 'others' then
- for i, v in pairs(players:GetPlayers()) do
- if v ~= player then
- local humPos = v.Character.HumanoidRootPart.Position
- if humPos then
- events.placeMineEvent:FireServer(humPos, remoteKey)
- end
- end
- end
- elseif victimName == 'me' then
- local humPos = player.Character.HumanoidRootPart.Position
- if humPos then
- events.placeMineEvent:FireServer(humPos, remoteKey)
- end
- else
- local victimPlr = utils.findPlayer(victimName)
- if not victimPlr then return end
- local victimHumPos = victimPlr.Character.HumanoidRootPart.Position
- if victimHumPos then
- events.placeMineEvent:FireServer(victimHumPos, remoteKey)
- end
- end
- end
- local function winCmd(cmd, args, player)
- if not args then return end
- local plrName = args[1]
- if not plrName then return end
- if plrName == 'me' then
- for i, v in pairs(players:GetPlayers()) do
- if v ~= player and v.gamestats.Plate.Value then
- local humPos = v.Character.HumanoidRootPart.Position
- for _ = 1, 3, 1 do
- events.potatoEvent:FireServer(v.Name, remoteKey)
- events.placeMineEvent:FireServer(humPos, remoteKey)
- end
- end
- end
- else
- local plr = utils.findPlayer(plrName)
- if not plr then return end
- for i, v in pairs(players:GetPlayers()) do
- if v ~= player and v.gamestats.Plate.Value then
- local humPos = v.Character.HumanoidRootPart.Position
- for _ = 1, 3, 1 do
- events.potatoEvent:FireServer(v.Name, remoteKey)
- events.placeMineEvent:FireServer(humPos, remoteKey)
- end
- end
- end
- end
- end
- local function soundCmd(cmd, args, player)
- if not args then return end
- local plrPlateName = tostring(args[1])
- local soundId = tonumber(args[2])
- if not plrPlateName or not soundId then return end
- if plrPlateName == 'all' then
- for i, v in pairs(game.Workspace.Plates:GetChildren()) do
- events.addSoundEvent:FireServer('rbxassetid://'..soundId, v, remoteKey)
- end
- elseif plrPlateName == 'others' then
- for i, v in pairs(game.Workspace.Plates:GetChildren()) do
- if v ~= player then
- events.addSoundEvent:FireServer('rbxassetid://'..soundId, v, remoteKey)
- end
- end
- elseif plrPlateName == 'me' then
- for i, v in pairs(game.Workspace.Plates:GetChildren()) do
- if v.Owner.Value == player.Name then
- events.addSoundEvent:FireServer('rbxassetid://'..soundId, v, remoteKey)
- end
- end
- else
- local plr = utils.findPlayer(plrPlateName)
- if not plr then return end
- for i, v in pairs(game.Workspace.Plates:GetChildren()) do
- if v.Owner.Value == plr.Name then
- events.addSoundEvent:FireServer('rbxassetid://'..soundId, v, remoteKey)
- end
- end
- end
- end
- local function decalCmd(cmd, args, player)
- if not args then return end
- local plrPlateName = tostring(args[1])
- local decalId = tonumber(args[2])
- if not plrPlateName and not decalId then return end
- if plrPlateName == 'all' then
- for i, v in pairs(game.Workspace.Plates:GetChildren()) do
- events.addDecalEvent:FireServer(decalId, v, remoteKey)
- end
- elseif plrPlateName == 'others' then
- for i, v in pairs(game.Workspace.Plates:GetChildren()) do
- if v ~= player then
- events.addDecalEvent:FireServer(decalId, v, remoteKey)
- end
- end
- elseif plrPlateName == 'me' then
- for i, v in pairs(game.Workspace.Plates:GetChildren()) do
- if v.Owner.Value == player.Name then
- events.addDecalEvent:FireServer(decalId, v, remoteKey)
- end
- end
- else
- local plr = utils.findPlayer(plrPlateName)
- if not plr then return end
- for i, v in pairs(game.Workspace.Plates:GetChildren()) do
- if v.Owner.Value == plr.Name then
- events.addDecalEvent:FireServer(decalId, v, remoteKey)
- end
- end
- end
- end
- local function adminCmd(cmd, args, player)
- if not args then return end
- local adminName = args[1]
- if not adminName then return end
- if adminName == 'all' then
- for i, v in pairs(players:GetPlayers()) do
- utils.addAdmin(v)
- end
- else
- local adminPlr = utils.findPlayer(adminName)
- if not adminPlr then return end
- utils.addAdmin(adminPlr)
- end
- end
- local function unadminCmd(cmd, args, player)
- if not args then return end
- local plrName = args[1]
- if not plrName then return end
- if plrName == 'all' then
- for i, v in pairs(players:GetPlayers()) do
- if v ~= player then utils.removeAdmin(v) end
- end
- else
- local plr = utils.findPlayer(plrName)
- if not plr or plr == localPlr then return end
- utils.removeAdmin(plr)
- end
- end
- local cmds = {
- ['size'] = sizeCmd,
- ['potato'] = potatoCmd,
- ['explode'] = explodeCmd,
- ['win'] = winCmd,
- ['sound'] = soundCmd,
- ['decal'] = decalCmd,
- ['admin'] = adminCmd,
- ['unadmin'] = unadminCmd
- }
- --=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--
- utils.hasAdmin = function (player)
- for i, v in pairs(admins) do
- if v.Name == player.Name then return true end
- end
- return false
- end
- utils.matchCmd = function (msg)
- for i, v in pairs(cmds) do
- if msg:match(i) and msg:match(prefix) then return i end
- end
- return nil
- end
- utils.addAdmin = function (player)
- if utils.hasAdmin(player) then return end
- table.insert(admins, player)
- end
- utils.removeAdmin = function (player)
- if not utils.hasAdmin(player) then return end
- for i, v in pairs(admins) do
- if v.Name == player.Name then table.remove(admins, i) end
- end
- end
- utils.parseArgs = function (msg)
- local args = {}
- for word in string.gmatch(msg, "[^%s]+") do
- table.insert(args, word)
- end
- table.remove(args, 1) -- remove the command from the message, so you get the args
- return args
- end
- utils.findPlayer = function (playerName)
- for i, v in pairs(players:GetPlayers()) do
- if v.Name == playerName then return v end
- end
- return nil
- end
- --=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--
- local function onPlayerChatted(message, player)
- if not utils.hasAdmin(player) then return end
- local cmdName = utils.matchCmd(message)
- if not cmdName then return end
- if cmdName == 'unadmin' and player ~= localPlr then return end
- local cmd = cmds[cmdName]
- local args = utils.parseArgs(message)
- cmd(message, args, player)
- end
- local function onPlayerJoin(player)
- player.Chatted:Connect(function(message)
- onPlayerChatted(message, player)
- end)
- end
- for _, player in pairs(players:GetPlayers()) do
- player.Chatted:Connect(function(message)
- onPlayerChatted(message, player)
- end)
- end
- players.PlayerAdded:Connect(onPlayerJoin)
Advertisement
Add Comment
Please, Sign In to add comment