Groups
- Do you want to have your little family that maintains the relations between their members?
- Do you want to have a fan club with people you play with?
- Maybe you are a dominant and you want to organize your underlings.
- Do you have stalls or cages you want to store your underlings from any place.
- Perhaps, you want to settle your own sim or other big group and need to organize it with the roles and permissions.
This is what the group functionality is for and not limited to that. There are many other group based features that are planned.
Freemium and enterprise
In the free subscription, everyone can create one group with 5 roles and up to 10 members and 5 locations, which I consider more than enough for a normal usage. It is possible to extend those limits, if you want to have a big stable, prison or other RP facility and need to organize the members and their access or use the enterprise features.
Note that this is a feature that scales a cost, it's why it can't be offered fully for free.
Roles
The members don't have to belong to any role. They belong to the group but don't benefit much from it, except the other members may have control over them. The group permissions are assigned to the roles and a member needs to have the role assigned to have the proper access granted. You will find the permissions that are specific for the group management as well as those can manage member's devices or the assets inworld.
Active and paused role
It's common for Second Life's roleplay that someone may have a role that is currently not active. For example, ponified stable's trainer or imprisoned staff member. You want them to keep the roles but not to be able to use them temporarily. It's why instead of removing them from the roles you can pause them.
Automations
It may also happen that if someone is in a proper mindset (e.g pony), their roles should activate or deactivate automatically. This is where the automations come in. You can find them in the roles' configuration.
Locations
Locations are connected with the storing feature. If you have the location defined, you can assign to it your members. Then the assigned members will have the location available in The One Ring under the "Stores". If you have proper permissions you can store the subject in the location. The subject is teleported to the location and if the anchor key is setup, they are leashed to the anchor.
To setup location you can provide a custom name and the in world location which you can take from the top banner of your viewer, the tail of the url. Remember, you need to stand at the exact place you want your subject to be teleported to.
If you want to setup the anchor key, it's a little bit more tricky, because the objects don't have an easy way to expose their keys. This is why you can wear The One Ring, grab your own leash and anchor yourself to the point you want to use as the location's anchor. In the location config, you can click then fetch button and the key of the object will appear in the input.
For the scripters
Assets
The assets are more useful when you are a scripter. The access feature doesn't require a target to be an avatar. It may be any key. However, for the group access the key must belong to the group. It's easy with the members, but if you have an object in world and you want to assign a group access to it? This is the asset.
Note, it's not recommended to use exact object's key, because each new copy of the objects will have new key. It's better to make a common key for the set of the objects.
For example, you can make an asset: "doors" and use the generated uuid in your script you put to all of the doors in your sim. Then your group members will have permission granted depending on their roles.
Custom permissions
However, there is no "open door" permission. Those that exist are usually used and reserved for existing features. To solve that, you can create custom permission (role's config) and give a role access to the custom permission.
Shared assets
Sometimes you want to grant permissions over an asset to another group. Then you can share it with the group. The shared asset acts like group's own asset, except the group with the granted access can't remove it.
API
If you want to use the access feature in your script, you can use the API endpoint. Note, that the access is calculated based on all of the sources, not only the group access. The endpoint looks like this:
GET https://api.ponifia.com/access?u=[comma separated list of user keys]&t=[target_key]&p=[comma separated permissions' list]The response is a plain text where each line defines a permission for each user. The line is separated with "|" character. The first item on the list is the user key and the second is an integer which indicates the access. Less significant bit corresponds to the first permission on the input list.
This format is easier to parse and lighter for the LSL scripts than json.
The example request:
https://api.ponifia.com/access?u=14a57132-70f4-4c7b-b88a-bf09d2ff5c66|other_key&t=00000000-0000-0000-0000-000000000000&p=collar_lockThe example response:
14a57132-70f4-4c7b-b88a-bf09d2ff5c66|0 other_key|0
In the most cases you will want to use only one user, however the bulk access is provided to help you with SL's throttling policy.