Provide an overview of:
-
What does the code do and what are you not satisfied with?
I have 16 parts that give the player a tool (each tool is different, 16 total). Once the tool is given the tool can be copied onto one of 16 parts AND be given back to the player. Each time it is copied over it is deleted from the player.character so it looks like it is picking it up and putting it back down. -
What potential improvements have you considered?
I have considered using tables or arrays, but I do not know how to use them since I have never tried before. I have also posted about my local and server script seperately and gotten help BUT because I never posted about them together until now the help I got did not ultimately work as I wanted. -
How (specifically) do you want to improve the code?
I want to improve my already working code by making it shorter and seeing if i can use less remote events. If I were to have a remote event for each tool to be copied onto each part then it would total 256 remote events (16 tool X 16 possible places to copy to) and that is WAY too much.
This is one of the Local Scripts.
local rep = game:GetService("ReplicatedStorage").POVComps.BBComics.CopyComicPlacements
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local mouse = player:GetMouse()
function onButton1Down(Player)
if mouse.Target.Name == "ComicPlacement1" then
rep.CopyComic1P1:FireServer()
print("Copying Comic 1 to Placement 1")
elseif mouse.Target.Name == "ComicPlacement2" then
rep.CopyComic1P2:FireServer()
print("Copying Comic 1 to Placement 2")
elseif mouse.Target.Name == "ComicPlacement3" then
rep.CopyComic1P2:FireServer()
print("Copying Comic 1 to Placement 3")
elseif mouse.Target.Name == "ComicPlacement4" then
rep.CopyComic1P2:FireServer()
print("Copying Comic 1 to Placement 4")
elseif mouse.Target.Name == "ComicPlacement5" then
rep.CopyComic1P2:FireServer()
print("Copying Comic 1 to Placement 5")
elseif mouse.Target.Name == "ComicPlacement6" then
rep.CopyComic1P2:FireServer()
print("Copying Comic 1 to Placement 6")
elseif mouse.Target.Name == "ComicPlacement7" then
rep.CopyComic1P2:FireServer()
print("Copying Comic 1 to Placement 7")
elseif mouse.Target.Name == "ComicPlacement8" then
rep.CopyComic1P2:FireServer()
print("Copying Comic 1 to Placement 8")
elseif mouse.Target.Name == "ComicPlacement9" then
rep.CopyComic1P2:FireServer()
print("Copying Comic 1 to Placement 9")
elseif mouse.Target.Name == "ComicPlacement10" then
rep.CopyComic1P2:FireServer()
print("Copying Comic 1 to Placement 10")
elseif mouse.Target.Name == "ComicPlacement11" then
rep.CopyComic1P2:FireServer()
print("Copying Comic 1 to Placement 11")
elseif mouse.Target.Name == "ComicPlacement12" then
rep.CopyComic1P2:FireServer()
print("Copying Comic 1 to Placement 12")
elseif mouse.Target.Name == "ComicPlacement13" then
rep.CopyComic1P2:FireServer()
print("Copying Comic 1 to Placement 13")
elseif mouse.Target.Name == "ComicPlacement14" then
rep.CopyComic1P2:FireServer()
print("Copying Comic 1 to Placement 14")
elseif mouse.Target.Name == "ComicPlacement15" then
rep.CopyComic1P2:FireServer()
print("Copying Comic 1 to Placement 15")
elseif mouse.Target.Name == "ComicPlacement16" then
rep.CopyComic1P2:FireServer()
print("Copying Comic 1 to Placement 16")
end
end
mouse.Button1Down:Connect(onButton1Down)
This is one of the Server Scripts. The “Comic1Tool, Comic2Tool, etc” are the tools given to the plyer to copy over and pick onto one of 16 parts.
local repplcmt = game:GetService("ReplicatedStorage").POVComps.BBComics.CopyComicPlacements
local reptools = game:GetService("ReplicatedStorage").POVComps.BBComics.ComicTools
local ComicPlacement = script.Parent
repplcmt.CopyComic1P1.OnServerEvent:Connect(function(Player)
local ComicTool = reptools.Comic1Tool:Clone()
Player.Character:FindFirstChild("Comic1Tool"):Destroy()
ComicTool.Parent = game.Workspace
ComicTool.Handle.Position = ComicPlacement.Position
ComicTool.Handle.Orientation = ComicPlacement.Orientation
ComicTool.Handle.Anchored = true
end)
repplcmt.CopyComic2P1.OnServerEvent:Connect(function(Player)
local ComicTool = reptools.Comic2Tool:Clone()
Player.Character:FindFirstChild("Comic2Tool"):Destroy()
ComicTool.Parent = game.Workspace
ComicTool.Handle.Position = ComicPlacement.Position
ComicTool.Handle.Orientation = ComicPlacement.Orientation
ComicTool.Handle.Anchored = true
end)
repplcmt.CopyComic3P1.OnServerEvent:Connect(function(Player)
local ComicTool = reptools.Comic2Tool:Clone()
Player.Character:FindFirstChild("Comic3Tool"):Destroy()
ComicTool.Parent = game.Workspace
ComicTool.Handle.Position = ComicPlacement.Position
ComicTool.Handle.Orientation = ComicPlacement.Orientation
ComicTool.Handle.Anchored = true
end)
repplcmt.CopyComic4P1.OnServerEvent:Connect(function(Player)
local ComicTool = reptools.Comic2Tool:Clone()
Player.Character:FindFirstChild("Comic4Tool"):Destroy()
ComicTool.Parent = game.Workspace
ComicTool.Handle.Position = ComicPlacement.Position
ComicTool.Handle.Orientation = ComicPlacement.Orientation
ComicTool.Handle.Anchored = true
end)
repplcmt.CopyComic5P1.OnServerEvent:Connect(function(Player)
local ComicTool = reptools.Comic2Tool:Clone()
Player.Character:FindFirstChild("Comic5Tool"):Destroy()
ComicTool.Parent = game.Workspace
ComicTool.Handle.Position = ComicPlacement.Position
ComicTool.Handle.Orientation = ComicPlacement.Orientation
ComicTool.Handle.Anchored = true
end)
repplcmt.CopyComic6P1.OnServerEvent:Connect(function(Player)
local ComicTool = reptools.Comic2Tool:Clone()
Player.Character:FindFirstChild("Comic6Tool"):Destroy()
ComicTool.Parent = game.Workspace
ComicTool.Handle.Position = ComicPlacement.Position
ComicTool.Handle.Orientation = ComicPlacement.Orientation
ComicTool.Handle.Anchored = true
end)
repplcmt.CopyComic7P1.OnServerEvent:Connect(function(Player)
local ComicTool = reptools.Comic2Tool:Clone()
Player.Character:FindFirstChild("Comic7Tool"):Destroy()
ComicTool.Parent = game.Workspace
ComicTool.Handle.Position = ComicPlacement.Position
ComicTool.Handle.Orientation = ComicPlacement.Orientation
ComicTool.Handle.Anchored = true
end)
repplcmt.CopyComic8P1.OnServerEvent:Connect(function(Player)
local ComicTool = reptools.Comic2Tool:Clone()
Player.Character:FindFirstChild("Comic8Tool"):Destroy()
ComicTool.Parent = game.Workspace
ComicTool.Handle.Position = ComicPlacement.Position
ComicTool.Handle.Orientation = ComicPlacement.Orientation
ComicTool.Handle.Anchored = true
end)
repplcmt.CopyComic9P1.OnServerEvent:Connect(function(Player)
local ComicTool = reptools.Comic2Tool:Clone()
Player.Character:FindFirstChild("Comic9Tool"):Destroy()
ComicTool.Parent = game.Workspace
ComicTool.Handle.Position = ComicPlacement.Position
ComicTool.Handle.Orientation = ComicPlacement.Orientation
ComicTool.Handle.Anchored = true
end)
repplcmt.CopyComic10P1.OnServerEvent:Connect(function(Player)
local ComicTool = reptools.Comic2Tool:Clone()
Player.Character:FindFirstChild("Comic10Tool"):Destroy()
ComicTool.Parent = game.Workspace
ComicTool.Handle.Position = ComicPlacement.Position
ComicTool.Handle.Orientation = ComicPlacement.Orientation
ComicTool.Handle.Anchored = true
end)
repplcmt.CopyComic11P1.OnServerEvent:Connect(function(Player)
local ComicTool = reptools.Comic2Tool:Clone()
Player.Character:FindFirstChild("Comic11Tool"):Destroy()
ComicTool.Parent = game.Workspace
ComicTool.Handle.Position = ComicPlacement.Position
ComicTool.Handle.Orientation = ComicPlacement.Orientation
ComicTool.Handle.Anchored = true
end)
repplcmt.CopyComic12P1.OnServerEvent:Connect(function(Player)
local ComicTool = reptools.Comic2Tool:Clone()
Player.Character:FindFirstChild("Comic12Tool"):Destroy()
ComicTool.Parent = game.Workspace
ComicTool.Handle.Position = ComicPlacement.Position
ComicTool.Handle.Orientation = ComicPlacement.Orientation
ComicTool.Handle.Anchored = true
end)
repplcmt.CopyComic13P1.OnServerEvent:Connect(function(Player)
local ComicTool = reptools.Comic2Tool:Clone()
Player.Character:FindFirstChild("Comic13Tool"):Destroy()
ComicTool.Parent = game.Workspace
ComicTool.Handle.Position = ComicPlacement.Position
ComicTool.Handle.Orientation = ComicPlacement.Orientation
ComicTool.Handle.Anchored = true
end)
repplcmt.CopyComic14P1.OnServerEvent:Connect(function(Player)
local ComicTool = reptools.Comic2Tool:Clone()
Player.Character:FindFirstChild("Comic14Tool"):Destroy()
ComicTool.Parent = game.Workspace
ComicTool.Handle.Position = ComicPlacement.Position
ComicTool.Handle.Orientation = ComicPlacement.Orientation
ComicTool.Handle.Anchored = true
end)
repplcmt.CopyComic15P1.OnServerEvent:Connect(function(Player)
local ComicTool = reptools.Comic2Tool:Clone()
Player.Character:FindFirstChild("Comic15Tool"):Destroy()
ComicTool.Parent = game.Workspace
ComicTool.Handle.Position = ComicPlacement.Position
ComicTool.Handle.Orientation = ComicPlacement.Orientation
ComicTool.Handle.Anchored = true
end)
repplcmt.CopyComic16P1.OnServerEvent:Connect(function(Player)
local ComicTool = reptools.Comic2Tool:Clone()
Player.Character:FindFirstChild("Comic16Tool"):Destroy()
ComicTool.Parent = game.Workspace
ComicTool.Handle.Position = ComicPlacement.Position
ComicTool.Handle.Orientation = ComicPlacement.Orientation
ComicTool.Handle.Anchored = true
end)