For example if I’m placing NPCs in Studio and want certain ones to have different stats set by hand. I know Attributes exist but they replicate and by the time my game is done I would have 100+ Attributes that don’t need replicated, replicating. What are my options? Possible ideas:
• Stop specific Attributes from replicating somehow, so I can keep using the Attribute system
• Something to do with scripting. Even though I can’t think of a way, because any script I add to an Instance is identical to every instance of that script in Studio.
• Some 3rd Party Plugin I haven’t heard of yet.
I mean, no? Anything you do on the server is going to replicated on the client especially with attributes, if not then we’d have issues, you can set parts with attributes inside of serverstorage in which the client can’t see those. You could also just have client-sided attributes. There isn’t any reason you’d just want to have only server-side since it’d be the same performance impact either way.
The only option would be a dictionary module script in server storage with the instance as a key and a table of values as the value.
I’ve never made a Plugin before but I read that before Tags existed as an official Roblox feature, someone made a Plugin to add Tags to studio. Tags and Attributes are very similar, so maybe it’s possible for me to create a “serverside-only Attributes” Plugin?
I think you’re referring to the Tag Editor plugin, rather than tags themselves. This was a third party plugin up until Roblox created their own and eventually integrated them into the Properties window.
It would’ve been possible to create something similar to tags using ObjectValues previously, however.
As for server-side attributes: Attributes will replicate to anything also available on the client, but changing them on the client will not replicate back to the server unless the Instance is client owned.
In an instance where you do not want the attributes visible to the client, I suggest either storing a table on the server and referencing that, or using a separate Instance on the server (somewhere not replicated, e.g. ServerStorage) that stores the attributes, and having a script apply whatever it needs to to the target Instance.