09-15-2006 11:17
The following is a loose guide to wanted features for group scripting options. They can return instantly, or via a dataserver request. Reasonable options for implementation are listed.

integer llGetGroupCallback(key avatar/object)
Returns the unique callback number for the active group of keyed avatar/object. If the avatar or object does not have a active group, returns 0. Maybe, if the group is hidden from view, returns -1. Linden groups could return either to avoid malicious objects dying apon the detection of such a group within sensor range.

list llGetRoleList()
Returns a strided list of role names and corresponding integers for object's current group. If group is none, returns a empty list.

integer llGetAvatarRole(key avatar)
If avatar is (a member of/has the active group of) object, returns a integer corresponding to the currently active role within the group, or a bitfield of roles the avatar is a member of.

integer llAvatarGroupCheck(key avatar, integer group)
Returns TRUE if avatar is a member of group.

list/integer llGetAvatarPermissions(key avatar)
Gets a bitfield/list of total permissions the avatar has within the group of the object. This could work by checking the most priv'd role the avatar has in the group, or by totalling the permissions granted by roles the avatar is a member of. Returns a blank list or -1 if the avatar is not a member of object's group.

Make more suggestions.
--Avil Creeggan