I’ve always found it annoying to access client scripts that were stored in starterplayer, startercharacter, etc. and I don’t want to pay 5 dollars for sleitnick’s require autocomplete plugin (Maybe later on?).
Along with this, actually, accessing playerscripts gives no intellisense since Roblox seems to not like backtracking, or something like that.
Is it okay to store scripts/client modules in ReplicatedFirst?
Storing Localscripts and client modules in ReplicatedFirst would work, but it’s important that you understand the actual main purpose of ReplicatedFirst. You can read about it here.
ReplicatedFirst, as the name suggests, is one of the first services to be replicated. Which means you should only put dependencies and assets that need to be loaded before your scripts.
Usually though, using ReplicatedStorage or StarterPlayerScripts will work just fine.
As others have said, you shouldn’t put all client code to ReplicatedFirst because ReplicatedFirst is for a specific purpose.
You can store client scripts and modules in ReplicatedStorage. Roblox added the RunContext property for scripts. When the RunContext of a script is Client, the script will run on the client. Unlike LocalScripts, Scripts with RunContext Client will run even in ReplicatedStorage.
I don’t want my system to be dependant on RunContext, and plus in examination I want the general contexts to be “observable” or “seperated”, not shoehorned in.
What I mean is that I want the placement to make sense. Not just be dependant on RunContext.
If you want to use LocalScripts then StarterPack, StarterGui, StarterPlayerScripts, StarterCharacterScripts and ReplicatedFirst seem to be the only places where they will run or be copied to a location where they run.