Server Code:
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Focused = ReplicatedStorage:WaitForChild("Focused")
local UnFocused = ReplicatedStorage:WaitForChild("Unfocused")
local GroupId = 7
local MinRank = 0
local function CreateForceField(player)
local forceField = Instance.new("ForceField")
forceField.Visible = true
forceField.Parent = player.character
for _,v in player.character:GetDescendants() do
if v:IsA("MeshPart") then
v.Material = Enum.Material.ForceField
end
end
end
local function RemoveForceField(player)
player.Character.ForceField:Destroy()
for _,v in player.character:GetDescendants() do
if v:IsA("MeshPart") then
v.Material = Enum.Material.Plastic
end
end
end
local function CheckRank(Player)
if Player:GetRankInGroup(GroupId) >= MinRank then
return true
end
end
Focused.OnServerEvent:Connect(function(Player)
local CheckIfAllowed = CheckRank(Player)
if CheckIfAllowed == true then
RemoveForceField(Player)
end
end)
UnFocused.OnServerEvent:Connect(function(Player)
local CheckIfAllowed = CheckRank(Player)
if CheckIfAllowed == true then
CreateForceField(Player)
end
end)
Client Code:
local InputService = game:GetService("UserInputService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Focused = ReplicatedStorage:WaitForChild("Focused")
local UnFocused = ReplicatedStorage:WaitForChild("Unfocused")
InputService.WindowFocused:Connect(function()
Focused:FireServer()
end)
InputService.WindowFocusReleased:Connect(function()
UnFocused:FireServer()
end)