What I want to achieve - I want people to have each other as a target e.g Player1 Has Player2 as target and they can both kill each other but other people cant heres my script it keeps picking Player1 rarely player2 as target
local module = {}
-- DO NOT REMOVE THINGS WILL BREAK
module.Playing = {}
module.Targets = {}
module.Targets2 = {}
module.PlayingRem = {}
-- Settings
module.MinimumPlayers = 2
module.IntermissionTime = 5
module.KnifeGiveTime = 5
module.GameTime = 60 * 3
return module
local module = {}
-- Services
local Players = game:GetService("Players")
local RS = game:GetService("ReplicatedStorage")
local SS = game:GetService("ServerStorage")
-- Remotes
local SendStatus = RS["Remotes"]["SendStatus"]
-- Modules
local settings_ = require(script.Parent.Parent:WaitForChild("Settings"))
-- Functions
function isInTable(tableValue, toFind)
local found = false
for _,v in pairs(tableValue) do
if v==toFind then
found = true
break;
end
end
return found
end
function tablefind(tab,el)
for index, value in pairs(tab) do
if value == el then
return index
end
end
end
function Format(Int)
return string.format("%02i", Int)
end
function convertToHMS(Seconds)
local Minutes = (Seconds - Seconds%60)/60
Seconds = Seconds - Minutes*60
local Hours = (Minutes - Minutes%60)/60
Minutes = Minutes - Hours*60
return Format(Hours)..":"..Format(Minutes)..":"..Format(Seconds)
end
function module.GiveTargets()
print("Selecting Targets...")
for _, x in pairs(settings_.Playing) do
local target = settings_.Playing[math.random(1, #settings_.Playing)]
local id = target.UserId
local reward = math.random(5, 15)
if isInTable(settings_.Targets, x) and isInTable(settings_.Targets2, target) then
else
print(x.Name .. " - " .. target.Name)
RS.Remotes.ShowTarget:FireClient(x, id, target.Name, reward)
table.insert(settings_.Targets, x)
table.remove(settings_.Playing, tablefind(settings_.Playing, x))
table.insert(settings_.PlayingRem, x)
wait(.01)
RS.Remotes.ShowTarget:FireClient(target, id, x.Name, reward)
table.insert(settings_.Targets2, target)
end
end
wait(4)
module.GiveKnives()
end
function module.GiveKnives()
RS.Remotes.StartTimer:FireAllClients(settings_.KnifeGiveTime)
wait(settings_.KnifeGiveTime)
for _, x in pairs(settings_.PlayingRem, settings_.Playing) do
if x.Backpack:FindFirstChild("Knife") or x.Character:FindFirstChild("Knife") then
else
local knife = game.ReplicatedStorage.Knife:Clone()
knife.Parent = x.Backpack
end
end
for i = 1, settings_.GameTime do
RS.Remotes.SendStatus:FireAllClients(convertToHMS(settings_.GameTime - i))
if i == settings_.GameTime then
break
end
wait(1)
end
end
function module.RemoveKnives()
for _, x in pairs(settings_.PlayingRem) do
local knife = x.Backpack:FindFirstChild("Knife") or x.Character:FindFirstChild("Knife")
knife:Destroy()
end
end
return module