If you need it to stay as an ObjectValue, since it references the instance, you can change
if Owner.Value == PlayerName then
to
if Owner.Value.Name == PlayerName then
which should get the instance name—the player name. Come to think of it, that’s probably a better option in the first place than using a StringValue, since you can also more easily access other parts of the player. Try changing it back to an object value and using .Name
.
Actually, it seems like you already did this in the script with the error, but simply forgot to in the script from the original post.