Proposal: llLinksetDataWritePublic( string name, string value, string password, integer perm_mask ) If password is an empty string, it does what llLinksetDataWrite does, plus setting a perm mask for that name. If password is not an empty string, it does what llLinksetDataWriteProtected does, plus setting a perm mask for that name. Perm mask can be a bitwise combination of: LINKSET_DATA_OWNER_READ: Allows scripts with the same owner to read. LINKSET_DATA_OWNER_WRITE: Allows scripts with the same owner to write LINKSET_DATA_GROUP_READ: Allows scripts with the same group to read. LINKSET_DATA_GROUP_WRITE: Allows scripts with the same group to write. LINKSET_DATA_PUBLIC_READ: Allows any script to read. LINKSET_DATA_PUBLIC_WRITE: Allows any script to write. The permissions are dropped on: Using llLinksetDataWrite / llLinksetDataWriteProtected on the same name (this fixes the issues of someone preloading an object with tons of public values). Deleting the key through llLinksetDataDelete... or llLinksetDataReset. To access the data from a different linkset, use: string llLinksetDataReadRemote(key uuid, string name, string password) integer llLinksetDataWriteRemote(key uuid, string name, string value, string password) These function exactly the same as the non-remote versions, except with a key specifying the prim to read from. ---- Why this? ---- If you're gonna work on a large scale project in SL you're likely going to have to keep some data synced across linksets. This can be anything from a game controller keeping list of player HUD UUIDs, or player metadata such as skill points, status effects such as "broken leg" etc that players and NPCs can react to. In order for linksets to acquire such data, you have a few options: A remote server / experience keys: These are relatively slow, and asynchronous, meaning you often have to rely on caching since you can't easily or frequently access the data. Listeners: These are faster, but requires some sort of syn/ack system, fallbacks (because listeners have a tendency to fail during lag spikes) and a lot of string parsing, eating up significant script time as you start adding more and more NPCs that all need to be kept updated. Descriptions: These are fast and synchronous, but limited to 127 characters and don't allow special characters. And the attachment would need to be either attached to a non-HUD slot, or you'd have to cache the HUD UUID somewhere. In which case you're back to square one. Being able to using public linkset data would have the following benefits: The data is synchronous. The data is never dropped because of lag spikes. The data doesn't require two-way communication. The data isn't limited to 127 characters and may use unicode. The data doesn't require your script to perform time-consuming string parsing since linkset data uses key/value pairs. Personally I'm mostly interested in the reading part, but I know some people have been asking for the ability to write, so I included it in the proposal.