I have an inventory system where people have tools for when the round starts
Unfortunately people can disrupt the server with their tools
So I am wondering how I can disable the tool script in the one area
I have looked at the other topic and I didnt really learn anything from it
If you can help, thanks
1 Like
- You can display the backpack in that area if you wanted Like this
-- Check if the player is in the area
game.StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.Backpack, false)
- You can disable scripts in tool like this (Add this inside of the Tool script)
-- Check if the player is in the area
script.Disabled = true
Also I recommend you checking out Zone Plus to check if the Player entered a Zone
Ok, checking out zoneplus
Thanks
1 Like
local Zone = require(game:GetService("ReplicatedStorage").Zone)
local container = workspace.Lobby
local zone = Zone.new(container)
zone.playerEntered:Connect(function(player)
print(("player entered the zone!"):format(player.Name))
end)
zone.playerExited:Connect(function(player)
print(("player exited the zone!"):format(player.Name))
end)
script.Disabled = true
Attempted to call require with invalid argument(s). - Line 1
Do you have ZonePlus module in Replicated storage?
yes
i put it there and i got the same error
What is Zone supposed to be? I put a boolvalue and remote event, they didnt work
Weird, works perfectly fine for me, Make sure to add a huge part that is anchored and CanCollide to false
One huge part? so, not a model with a lot of parts called lobby
Yes one part that is invisible and CanCollide is false
Like this but the transparency is 1
Dont you put something in replicated storage?
I think thats the problem
Put the module in replicated storage
add a part in workspace named “Zone”
After that add a Script inside of Server Script Service
local Zone = require(game:GetService("ReplicatedStorage").Zone)
local container = workspace.Zone
local zone = Zone.new(container)
zone.playerEntered:Connect(function(player)
print(("player entered the zone!"):format(player.Name))
end)
zone.playerExited:Connect(function(player)
print(("player exited the zone!"):format(player.Name))
end)
script.Disabled = true
local Zone = require(game:GetService("ReplicatedStorage").Zone)
local container = workspace.Zone
local zone = Zone.new(container)
zone.playerEntered:Connect(function(player)
print(("player entered the zone!"):format(player.Name))
end)
zone.playerExited:Connect(function(player)
print(("player exited the zone!"):format(player.Name))
end)
script.Disabled = true
Nothing Prints
If nothing works, its ok, its not a big deal anway
I see why, you are disabling the script.
Remove the disable line instead use this
local Zone = require(game:GetService("ReplicatedStorage").Zone)
local container = workspace.Zone
local zone = Zone.new(container)
zone.playerEntered:Connect(function(player)
print(("player entered the zone!"):format(player.Name))
end)
zone.playerExited:Connect(function(player)
print(("player exited the zone!"):format(player.Name))
end)
Now because you are disabling the tool What you could do is add this Script I sent you in server script service.
And when the Player enters you could disable their backpack By adding a Remote event in ReplicatedStorage called “RemoveTools”
zone.playerEntered:Connect(function(player)
game.ReplicatedStorage.RemoveTools:FireClient(Player)
end)
After that add a local script inside of StarterPlayerScripts.
game.ReplicatedStorage.RemoveTools.OnClientEvent:Connect(functioon()
game:GetService("StarterGui"):SetCoreGuiEnabled(Enum.CoreGuiType.Backpack, false)
end)
So basically I tried to do what you said and I got errors
But I think I have found a better way
local Zone = require(game:GetService("ReplicatedStorage").Zone)
local container = workspace.Zone
local zone = Zone.new(container)
game.StarterPack.ClassicBomb.PlantBomb.Disabled = true
zone.playerEntered:Connect(function(player)
print(("player entered the zone!"):format(player.Name))
end)
zone.playerExited:Connect(function(player)
print(("player exited the zone!"):format(player.Name))
end)
Now, the tools stays disabled even when I leave the area
This script is quite old, but it still works when inside of the part:
If a player touches the part, all their tools will be removed from the Backpack.
local part = script.Parent
local function remove(otherPart)
local humanoid = otherPart.Parent:FindFirstChild('Humanoid')
local player = game.Players:FindFirstChild(otherPart.Parent.Name)
if humanoid and player then
local inHand = otherPart.Parent:FindFirstChildWhichIsA('Tool')
local inBackpack = player.Backpack:FindFirstChildWhichIsA('Tool')
if inHand then
inHand:Destroy()
end
if inBackpack then
inBackpack:Destroy()
end
end
end
part.Touched:Connect(remove)
Does it add them back when they are out of the zone?
No it doesn’t unless you want to use TouchedEnded which is unreliable.
Just enable it back like I’ve given you an example when the Player enters.
Just do the steps but this time on the remote event do this
game:GetService("StarterGui"):SetCoreGuiEnabled(Enum.CoreGuiType.Backpack, true)