I don’t see anything that makes it bad , Just make sure you do not make any critical checks in the Local Script . If you are using UIS for the Spells , you can just trigger it and send a RemoteEvent with Some Values like the Key you chose and you can make a Module Script Containing all your Spells and their functions and then just call it.