Why should I use StarterPlayerScripts instead ReplicatedStorage?

I’m currently migrating some of my projects to newer Roblox systems and workflows, including the use of server authority and Input Action System (IAS). As part of that process, I’m trying to understand the recommended place to store and run client-side scripts.

My goal is to keep my client code centralized and organized while following Roblox best practices.

The issue?

From what I’ve seen, some newer Roblox examples and systems seem to support placing scripts in ReplicatedStorage and setting their RunContext to Client.


image

Personally, I’m not against this approach but I’d rather have client scripts in a central location/folder rather than distributing them across different other containers.

I understand the function of StarterCharacterScripts and I find it useful in certain scenarios.
What is the central reasoning or core-benefit to storing my scripts in starterplayer when i could just have it in ReplicatedStorage with RunContext set to client

I’m trying to understand the practical advantages of using StarterPlayerScripts & if they don’t existing I’m willing to migrate.

For example:

  • Are there security benefits to using StarterPlayerScripts?
  • Does Roblox handle it’s replication, loading, or execution better?
    – aside from them being stored inside the player object
  • Are there edge cases where a client script in ReplicatedStorage would behave differently or be less reliable?
  • Is StarterPlayerScripts still considered the preferred location for player-related client code, and if so, why?

Summary

I’m mainly interested in understanding the reasoning behind Roblox’s recommended practices and if they are still considered “recommended” after recent updates.

If you’re using the RunContext in your workflow, I’d also be interested in hearing how you decide whether a script belongs in ReplicatedStorage or StarterPlayerScripts.

2 Likes

There is no real security benefit since anything in ReplicatedStorage is already visible to the client. The main difference is execution timing and organization. Scripts in StarterPlayerScripts are cloned into PlayerScripts when the player joins, which gives you more control over the loading order compared to just dumping everything into ReplicatedStorage with RunContext.

2 Likes

i use starterplayerscripts for gui scripts, idk i think that is what its supposed to be used for. u could obv put the scripts inside startergui aswell but u cant script sync startergui LOL

3 Likes