Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

Why doesn't this serverlock script work(It is not the variables).?

Asked by 5 years ago

I was wondering why it doesnt server lock if i type in the command? Note this is not a free model i wrote playername for convenience and because i wasn't sure if i was still gonna use player name i just wanted to be specific instead of people asking me why u didnt put in the variable. Please don't label this as a free model I really need help because I've been trying and I can't seem to get it to work.

local slock = false
local admin = "playername"
local Player = game:GetService("Players")


game.Players.PlayerAdded:Connect(function(plr)
    if plr.Name == admin and slock == true then
      plr:kick("Server is Locked")
      print("locked")
       else 
        if slock == false
        then
            print("unlocked")
        wait()
        end
        end
              plr.Chatted:Connect(function(Message)
             if string.lower(string.sub(Message, 1 , 5)) == "slock" and Player.Name == admin then
            slock = true
        else
            if string.lower(string.sub(Message, 1 , 6)) == "unslock" and Player.Name == admin then
            slock = false
            end
          end 
    end)
    end)

1 answer

Log in to vote
0
Answered by
Thetacah 712 Moderation Voter
5 years ago
Edited 5 years ago

Good afternoon!

I'm not a big fan of how that script works, so I've whipped up my own to share with you!


local slock = false --Default. Server is not locked. local admins = {37040233, 34215} --Here I created a table with UserIds. Enter all of the people who you want to be able to use the slock and unslock commands here. I prefer IDs over usernames since you can change your username, but you can't change your userId. local function checkIfAdmin(player) --This function will check to see if the player in question is an admin for i, v in pairs(admins) do --Goes through all the admins. if player.UserId == v then --See if we find a match between the players id and a value in our admins table. return true --Returning true. The user in question is an admin else --Otherwise, return false --Return false. The user in questions is NOT an admin end end end game.Players.PlayerAdded:Connect(function(plr) --Runs upon a new player entering the game if not checkIfAdmin(plr) and slock then --if the server is locked, and the player is not an admin: plr:Kick("The server is locked!") --Kick the player. You can change the text inside :Kick() end if checkIfAdmin(plr) then -- If the player who entered is an admin plr.Chatted:Connect(function(Message) --Whenever the admin chats, run the following: if string.lower(string.sub(Message, 1 , 5)) == "slock" then --If the first five letters of the admins chat is equal to "slock", then: print("Server locked") slock = true -- slock is now set to true. Players who join who are not admins will be kicked! elseif string.lower(string.sub(Message, 1 , 7)) == "unslock" then--If the first seven letters of the admins chat is euqal to "unslock", then: print("Server unlocked") slock = false --We re-open the servers up to everyone! end end) end end)

The code without my comments(a lot cleaner, haha:)):

local slock = false
local admins = {37040233}

local function checkIfAdmin(player)
    for i, v in pairs(admins) do
        if player.UserId == v then
            return true
        else
            return false
        end
    end
end
game.Players.PlayerAdded:Connect(function(plr)
    if not checkIfAdmin(plr) and slock then
        plr:Kick()
    end
    if checkIfAdmin(plr) then
        plr.Chatted:Connect(function(Message)
            if string.lower(string.sub(Message, 1 , 5)) == "slock" then
                print("Server locked")
                slock = true
            elseif string.lower(string.sub(Message, 1 , 7)) == "unslock" then
                print("Server unlocked")
                slock = false
            end
        end)
    end
end)


Be sure to let me know if you encounter any issues with the code!

Best regards,

thetacah

Ad

Answer this question