Give us access to Instance.UniqueId

This is like very true, I mentioned a very similar thing in my lighting range post. You as a developer have the job to learn about optimising your games. This is obviously a not so pleasant step in game development, but it’s worth it and should be encouraged to learn it.

If I as a developer need certain more demanding features because my game needs it, then let me exclude the devices which can’t handle these features. Sure Roblox has said before that they don’t like the idea of targeting specific hardware capabilities and restricting part of the user base from playing your game, but this is just the reality that literally any engine has faced for years. Of course you couldn’t play Fortnite on a Samsung Galaxy S3 Mini, but does that mean Epic Games would intentionally limit Unreal Engine because of a minority of people who refuse to upgrade?, of course not!

You could argue: “Roblox doesn’t need realism or these fancy graphics features”. I do wanna say that realism is NOT the reason people want such features. They simply want CONTROL over the engine so they can have its behavior be consistent and meeting their demands for their game. Not everyone is interested in making a game that abides by the classic “Roblox” look. Some people want to innovate and push boundaries, but with the current engine you’re being actively punished for trying to push the boundaries of the engine.

2 Likes

It goes both ways btw.
I really miss Legacy lightning for example and instead of removing this features legacy lightning had they could’ve been reimplemented in modernized way where you can adjust settings.
Old neon for example had a pretty interesting effect that is currently impossible to replicate normally.
I mean we have unified lightning in beta so hope is not yet lost.

For what it’s worth, since I made that post I’ve come to decide that this isn’t really worth adding;

  • This would likely harm join times & replication cost of new instances
  • The client is already pretty high on memory usage as is
  • UniqueId wouldn’t be required for a lot of games. (just track the instances yourself)
  • There’s no way to straight up disable a property from being used in runtime so we’d incur that cost permanently

My flat 16 bytes per instance guess is also probably very off, there’s likely some other factors at play that would increase memory usage

There VERY MUCH is a way to disable it. Roblox engineers have C++ access and can do a lot more than what a developer can do in lua with studio. They also have fast flags which are already widely used for this exact thing where features are turned on/off.

No it is actually a hash that is created from the seconds since 1/1/2021, a randomly generated Int64, and the Unique ID count