C'est vraiment du niveau basique, je vous conseille de comprendre par vous-même, et éviter de faire un poste chaque fois que vous êtes bloqué quelque part.
"ply" n'est qu'une variable, vous pouvez très bien inclure n'importe quel type de nom. Dans votre fonction, en top position, local Grainbox = LocalPlayer(), celle-ci sera mise en cache pour chaque appellation. Pas besoin de vérifier le lecteur côté client (IsValid).