I know that from Studio it's possible to make it so that players can't toggle ShiftLockSwitch/Mouselock, but that seems to leave me stuck with a free camera. Is there an easy way to force a shiftlock view (where the mouse automatically rotates the character and camera), or does it require a more convoluted approach?
Yes. A Player object has a bool value called DevEnableMouseLock
. This is if you want a player to be able to use it, true means they can use it, false means they can't.
There are also multiple values in StarterPlayer:
http://wiki.roblox.com/index.php?title=API:Enum - use this to change the values http://wiki.roblox.com/index.php?title=API:Class/StarterPlayer