You really shouldn’t be releasing this on scriptfodder if you don’t know how to define a variable properly. Sorry, but it’s true
Networking is the entire basis of a Loadout addon, you are in for a bad time if you can’t figure out that “bad argument #1 to ‘WriteString’ (string expected, got nil)” means exactly what it says it means. You are passing nil to net.WriteString() instead of a string and its throwing an error so obviously the solution is to make sure you don’t send any nil values.
Also your code disturbs me, I’m trying to figure out whats going on with “net.Receive(‘Send_Primary’” and why on earth thats in a loop but I am not sure
And why use a Think hook to check if a key is down? Why not PlayerBindPress?