The only way to make this more efficient is to use the PlayerAdded event instead of the ChildAdded event. There are, however, numerous ways to make your code more readable. Readability is arguably even more important than functionality.
Tabbing
First a foremost, be sure to tab you code correctly. Every time you have a loop, function, or if statement you should have that loop, function, or if statement followed by a single end, and then everything inside between the beginning of the loop, function, or if statement and its end should be tabbed once. For example, this piece of code is tabbed correctly:
local num1 = 1
local num2 = 10
local bool = true
function check()
for i = num1,num2 do
if bool then
print(it's true)
end
end
end
This way, it is much easier to read and also to see what end goes with what.
Variables
You should write out variables so anyone looking at your code will know what they mean. Abbreviations are fine, but you should leave enough of a clue so everyone will understand them. For example, cam would be a perfectly fine name to put for the variable of a camera, but simply putting c would not be as good.
In Lua, variables are usually created in one of these two formats:
local lower = 1
local lowerUpperUpper = 2
With the first word lower case and all others upper case. This is the style I prefer. Another option is this:
local word_anotherword_anotherword = 2
With underscores separating multiple words.
You should also always use local variables whenever possible. No only are they more efficient, but as soon as someone see the local key word they immediately know that a variable is about to be defined, making your code more readable.
Functions
You need to know when to use anonymous functions and when not to. In the case of PlayerAdded and CharacterAdded events, anonymous functions are usually better. Instead of clever use of connections with regular functions, you can simply put one anonymous function inside the other, making your code easily read.
game.Players.PlayerAdded:connect(function(plr)
plr.CharacterAdded:connect(function(chr)
end)
end)
I hope I helped! If you have any more questions feel free to comment!