[Studio Beta] New Input Action System

An all-around better solution in my opinion would be to add a singleton dedicated to client UI. There is zero reason why anyone would want the current StarterGui behavior of being deeply coupled to player and character spawning (I still run into hard-to-track race conditions because of this). It’s simply an annoying and unintuitive vestigial aspect of older Roblox.

The benefits of introducing a new singleton over trying to migrate the existing system are clear:

  1. No worries for backwards-compatibility.

  2. Its implementation is pretty obvious; it’s just a normal replicated container that renders GUIs inside it.

  3. It would just be overall more ergonomic to use (can put RunContext.Client scripts inside that just work, easy access with game:GetService("Interface") instead of game:GetService("Players").LocalPlayer:WaitForChild("PlayerGui"), UI rendered in studio and no cloning like you’d expect).

Please seriously consider this alternative instead.

2 Likes