✓ Accepted answer
When you run roblox for testing using the current working environment (without starting a server). It does not setup any server client connection. This means you have direct access to the whole game which in practise you will only have the client resources not the server.
Roblox studio studio incudes two testing methods the first uses the current working environment, this can be ran by pressing F5. The second method you should use which does setup a server and a client. You can use this method by going to the test tab and check the server checkbox, next you can set the number of client to use the current game and then you can click start.
This will setup a server and a client which communicates using the loop back ip "127.0.0.1" this also means the client cannot access the server resources directly and the server cannot access the clients computer. This is obviously dependant upon what you are trying to do with the game scripts.
3.. Firstly server scripts have different permissions than localscripts but to answer your question local scripts run on the clients machine meaning that they will have little lag (Which is why they have access to objects like the users mouse). Localscript should be use only when you want simple changes which will only effect the user such as playing sound local to the user like a raidio.
Hope this helps.
Feel free to correct me if I messed up or forgot to add somthing