You should keep the prices on the server, the cash could even be in the tool as an IntValue. As long as you use the value from the server and not from client you should be fine
So for example if I put a int value in starterpack can exploiters change the value. Also how can I identify which tool it is. I don’t know which tool it is unless I send the server the name of the code, but can’t exploiters change the name of the argument?
Only for themselves, which is why you only use the value the server sees which won’t be the exploited value
You already send ToolName over, which would be the name of the tool, and yes they could send over their own name but does it matter as long as it’s valid? And you check that they have enough cash or level or whatever requirements are needed for certain weapon.