i maded a question like 8 hours ago and it seems to have worked.. BUT however it is STILL broken!
the full script:
--//Admin Commands Script --//Variables\\-- local DataStore = game:GetService("DataStoreService") local BanList = DataStore:GetDataStore("BanList") local Admins = {"no, i wont give u free admin"} --//admins --//Events\\-- game.Players.PlayerAdded:connect(function(Player) local Folder = Instance.new("Folder", Player) Folder.Name = "PlayerValues" local BanCheck = Instance.new("BoolValue", Folder) BanCheck.Name = "IsBanned" BanCheck.Value = BanList:GetAsync(Player.userId) or false --//False is default if no save for the player --//Checks if the player is banned or not if Player.PlayerValues.IsBanned.Value == true then Player:Kick("You're Banned From This Game.") --//Reason for kick end Player.Chatted:connect(function(message) for i, AdminName in ipairs(Admins) do if Player.Name == AdminName then --//Commands\\-- --//Kill Command if message:sub(1, 6) == "/kill " then local TargetPlayer = game.Players:FindFirstChild(message:sub(7)) if TargetPlayer then local Character = TargetPlayer.Character if Character then Character.Humanoid.Health = 0 end end end --//Heal Command if message:sub(1, 6) == "/heal " then local TargetPlayer = game.Players:FindFirstChild(message:sub(7)) if TargetPlayer then local Character = TargetPlayer.Character if Character then Character.Humanoid.Health = Character.Humanoid.MaxHealth end end end --//Kick Command if message:sub(1, 6) == "/kick " then local TargetPlayer = game.Players:FindFirstChild(message:sub(7)) if TargetPlayer then TargetPlayer:Kick("Kicked by " .. Player.Name) --//Kick message/reason end end --//Ban Command if message:sub(1, 5) == "/ban " then local TargetPlayer = game.Players:FindFirstChild(message:sub(6)) if TargetPlayer then local BanCheck = TargetPlayer.PlayerValues.IsBanned if BanCheck then BanCheck.Value = true BanList:SetAsync(TargetPlayer.userId, true) end TargetPlayer:Kick("You've been banned from this game by " .. Player.Name) --//Reason || Message end end --//Unban Command if message:sub(1, 7) == "/unban " then --//USES ID NOT NAME local UserId = tonumber(message:sub(8)) if UserId then BanList:SetAsync(UserId, false) end end --//im cencoring this command xdd end) break end end end end end)
the problem is at line 8, when i place end it breaks other parts.
The solution is pretty simple, and you're probably going to be kicking yourself in the face in a minute, but that's part of programming. Anyway, your error starts at line 8, and ends at the end of your function
game.Players.PlayerAdded:connect(function(Player) local Folder = Instance.new("Folder", Player) Folder.Name = "PlayerValues" local BanCheck = Instance.new("BoolValue", Folder) BanCheck.Name = "IsBanned" BanCheck.Value = BanList:GetAsync(Player.userId) or false --//False is default if no save for the player --//Checks if the player is banned or not if Player.PlayerValues.IsBanned.Value == true then Player:Kick("You're Banned From This Game.") --//Reason for kick end
You have two 'blocks' here (i'm sure that's not the proper terminology but i'm sticking with it) , your function, and the if statement. At the moment, your if statement is the only 'block' that has been closed. So, to tell the program where the function stops, you need to add an end, but with a )
game.Players.PlayerAdded:connect(function(Player) local Folder = Instance.new("Folder", Player) Folder.Name = "PlayerValues" local BanCheck = Instance.new("BoolValue", Folder) BanCheck.Name = "IsBanned" BanCheck.Value = BanList:GetAsync(Player.userId) or false if Player.PlayerValues.IsBanned.Value == true then Player:Kick("You're Banned From This Game.") end end) --Sneaky, eh?
Always double check your code, an error is usually caused by something pretty simple. ;3
The easy thing to do is to add another end
at the end, as you forgot to add one.
Hope it works!