nyuuzyou/wikis huggingface dataset:
GroupAccountTransactionsRequest

==Message Layout==
{
	GroupAccountTransactionsRequest Low NotTrusted Zerocoded
	{
		AgentData		Single
		{	AgentID			LLUUID	}
		{	SessionID		LLUUID	}
		{	GroupID			LLUUID		}
	}
	{
		MoneyData			Single
		{	RequestID		LLUUID	}
		{	IntervalDays	S32	}
		{	CurrentInterval	S32	}
	}
}
==Usage and Notes==
This message is used to ge the account transactions for a given group over a set period of time.
RequestID - A unique identifier which identifies this request. Any reply to this message will have the request ID in it so as go signifgy which replies go with which requests
IntervalDays - The current interval (in days) in which the group transactions will be computed for. For example, if you want a week's worth of data, the interval would be 7. Any number less than 1 will rounded to 1.
CurrentInterval - The interval (where the length of the interval is defined by IntervalDays) in which to end the details history in intervals ago. A value of 0 means "ending today". For example, if the interval is a week and you want to request the data for this past week, you would specify 0 here. For data from 2 weeks ago until last week, you would specify a value of 1. Any number less than 0 will be rounded to 0. 
Category:Messages
Category:Group Messages
GroupActiveProposalItemReply

==Message Layout==
{
	GroupActiveProposalItemReply Low Trusted Zerocoded
	{
		AgentData	Single
		{	AgentID			LLUUID			}
		{	GroupID			LLUUID			}
	}
	{
		TransactionData Single
		{	TransactionID	LLUUID	}
		{	TotalNumItems	U32		}
	}
	{
		ProposalData	Variable
		{	VoteID			LLUUID			}
		{	VoteInitiator	LLUUID			}
		{	TerseDateID		Variable	1	} 
		{	StartDateTime	Variable	1	}	
		{	EndDateTime		Variable	1	}	
		{	AlreadyVoted	BOOL			}
		{	VoteCast		Variable	1	}	
		{	Majority	F32		}
		{	Quorum		S32		}
		{	ProposalText	Variable	1	}	
	}
}
==Usage and Notes==
Category:Messages
Category:Group Messages
GroupActiveProposalsRequest

==Message Layout==
{
	GroupActiveProposalsRequest Low NotTrusted Unencoded
	{
		AgentData	Single
		{	AgentID			LLUUID			}
		{	SessionID		LLUUID			}
	}
	{
		GroupData	Single
		{	GroupID			LLUUID			}
	}
	{
		TransactionData Single
		{	TransactionID	LLUUID	}
	}
}
==Usage and Notes==
Requests all of the active proposals for a given group. The agent must be in the group to request the active proposals.
TransactionID - This transcation ID is used as a way to keep track of what replies go with what request. This ID should be unique for each new request. 
Category:Messages
Category:Group Messages
GroupDataUpdate

==Message Layout==
{
	GroupDataUpdate	Low	Trusted	Zerocoded
	{
		AgentGroupData		Variable
		{	AgentID			LLUUID	}
		{	GroupID			LLUUID	}
		{	AgentPowers		U64		}
		{	GroupTitle		Variable	1	}
	}
}
==Usage and Notes==
Category:Messages
Category:Group Messages
GroupMemberData

POST: 
<llsd>
 <map>
 <key>group_id</key>
 <uuid>01234567-89ab-cdef-fedc-ba9876543210</uuid>
 </map>
</llsd>
The response is a map containing the requesting agent's ID, the group ID, the member count, a map of member data, a map of group defaults, and an array of group titles.
Response:
<llsd>
 <map>
 <key>agent_id</key>
 <uuid>00112233-4455-6677-8899-aabbccddeeff</uuid>
		
	<key>group_id</key>
	<uuid>01234567-89ab-cdef-fedc-ba9876543210</uuid>
	<key>member_count</key>
	<integer>10</integer>
 
	<map> <!-- Member List -->
	 <key>ffeeddcc-bbaa-9988-7766-554433221100</key>
	 <map>
	 <key>donated_square_meters</key>
		<integer>4</integer>
			
		<key>last_login</key>
		<string>2012/20/03</string>
	
		<key>powers</key>
		<string>FFFFFFFF</string>
		<key>title</key>
		<integer>1</integer>
		<key>owner</key>
		<bool>True</bool>
	 </map>
	</map>
	<map> <!-- Group Defaults -->
	 <key>default_powers</key>
	 <string>01c00000</string> 
	</map>
	<array> <!-- Group Titles -->
	 <string>Group Default Title</string>
 <string>Group Title 1</string>
 <string>Group Title 2</string>
	 <string>Group Owner Title</string>
 <string>Group Title 3</string>
	</array>
 </map>
</llsd>
Note: the powers value is a string and must be converted to a U64.
To reduce the amount of data being transferred, default member information is omitted from the member list. This may result in a member information block with an empty map.
	<map> <!-- Member List -->
	 <key>ffeeddcc-bbaa-9988-7766-554433221100</key>
	 <map>
	 <key>donated_square_meters</key>
		<key>last_login</key>
		<key>powers</key>
		<key>title</key>
		<key>owner</key>
	 </map>
	</map>
If any of the above keys do not exist, use the following default values:
* donated_square_meters: 0
* last_login: "unknown"
* powers: default_powers from the defaults map
* title: the first element from the titles array
* owner: false
=== History ===
2024 	Fixed. Note that large groups can return an enormous amount of data.
2017 	Broken. May return data for other group. Callers should verify 'group_id' in response matches that in request and re-issue if different. SL-16849.
~2012	Introduced
Category:Capabilities
GroupMembersReply

==Message Layout==
{
	GroupMembersReply Low Trusted Zerocoded
	{
		AgentData		Single
		{	AgentID		LLUUID	}
	}
	{
		GroupData		Single
		{	GroupID		LLUUID	}
		{ RequestID	LLUUID	}
		{	MemberCount	S32		}
	}
	{
		MemberData		Variable
		{	AgentID		LLUUID	}
		{	Contribution	S32	}
		{	OnlineStatus	Variable	1	}	
		{	AgentPowers		U64	}
		{	Title			Variable	1	}	
		{	IsOwner			BOOL	}
	}
}
==Usage and Notes==
Category:Messages
Category:Group Messages
GroupMembersRequest

==Message Layout==
{
	GroupMembersRequest Low NotTrusted Unencoded
	{
		AgentData		Single
		{	AgentID		LLUUID	}
		{	SessionID	LLUUID	}
	}
	{
		GroupData		Single
		{	GroupID		LLUUID	}
		{ RequestID	LLUUID	}
	}
}
==Usage and Notes==
Requests a list of all of the members in a group as well as other information. If the requesting agent is not a member of the group, this message requests a listing of group members who are visible in the directory as well as the members' land contribution, the members' titles and if the members are the owner of the group. If the requesting agent is a member of the group, this message requests a count of all members, all members' online statuses, and all members' powers within the group as well as all of the data requested for non-member requests.
RequestID - A unique indicator for this particular request. This should be unique for each request made. Helps tracking incoming replies to this request.
Category:Messages
Category:Group Messages
GroupNoticeAdd

==Message Layout==
{
	GroupNoticeAdd Low Trusted Unencoded
	{
		AgentData	Single
		{	AgentID			LLUUID		}
	}
	{
		MessageBlock		Single
		{	ToGroupID		LLUUID	}
		{	ID				LLUUID	}
		{	Dialog			U8	}
		{	FromAgentName	Variable	1	}
		{	Message			Variable	2	}
		{	BinaryBucket	Variable	2	}
	}
}
==Usage and Notes==
Category:Messages
Category:Group Messages
GroupNoticeDelete

==Message Layout==
{
	GroupNoticeDelete Low NotTrusted Unencoded
	{
		AgentData	Single
		{	AgentID			LLUUID		}
		{	SessionID		LLUUID		}
	}
	{
		Data	Single
		{	GroupNoticeID	LLUUID		}
		{	GroupID			LLUUID		}
	}
}
==Usage and Notes==
Note: This isn't currently used.
Category:Messages
Category:Group Messages
GroupNoticeRequest

==Message Layout==
{
	GroupNoticeRequest Low NotTrusted Unencoded
	{
		AgentData Single
		{	AgentID		LLUUID	}
		{	SessionID	LLUUID	}
	}
	{
		Data Single
		{	GroupNoticeID	LLUUID	}
	}
}
==Usage and Notes==
Requests data for a specific group notice. The requesting agent must have the group ability to receive group notices.
Category:Messages
Category:Group Messages
GroupNoticesListReply

==Message Layout==
{
	GroupNoticesListReply	Low	Trusted	Unencoded
	{
		AgentData	Single
		{	AgentID			LLUUID		}
		{	GroupID			LLUUID		}
	}
	{
		Data		Variable
		{	NoticeID		LLUUID		}
		{	Timestamp		U32			}
		{	FromName		Variable 2	}
		{	Subject			Variable 2	}
		{	HasAttachment	BOOL		}
		{	AssetType		U8			}
	}
}
==Usage and Notes==
Category:Messages
Category:Group Messages
GroupNoticesListRequest

==Message Layout==
{
	GroupNoticesListRequest	Low	NotTrusted	Unencoded
	{
		AgentData Single
		{	AgentID			LLUUID		}
		{	SessionID		LLUUID		}
	}
	{
		Data Single
		{	GroupID			LLUUID		}
	}
}
==Usage and Notes==
Requests a list of all the group notices for a group. The requesting agent must have the aiblity to receive notices within the group for this to work.
Category:Messages
Category:Group Messages
GroupProfileReply

==Message Layout==
{
	GroupProfileReply Low Trusted Zerocoded
	{
		AgentData	Single
		{	AgentID			LLUUID			}
	}
	{
		GroupData		Single
		{	GroupID			LLUUID			}
		{	Name			Variable	1	}	
		{	Charter			Variable	2	}	
		{	ShowInList		BOOL	}
		{	MemberTitle		Variable	1	}	
		{	PowersMask		U64	}	
		{	InsigniaID		LLUUID			}
		{	FounderID		LLUUID			}
		{	MembershipFee	S32				}
		{	OpenEnrollment	BOOL			} 
		{	Money			S32	}
		{	GroupMembershipCount	S32	}
		{	GroupRolesCount			S32	}
		{	AllowPublish	BOOL	}
		{	MaturePublish	BOOL	}
		{	OwnerRole		LLUUID	}
	}
}
==Usage and Notes==
Category:Messages
Category:Group Messages
GroupProfileRequest

==Message Layout==
{
	GroupProfileRequest Low NotTrusted Unencoded
	{
		AgentData	Single
		{	AgentID			LLUUID			}
		{	SessionID	LLUUID	}
	}
	{
		GroupData	Single
		{	GroupID			LLUUID			}
	}
}
==Usage and Notes==
Category:Messages
Category:Group Messages
GroupProposalBallot

==Message Layout==
{
	GroupProposalBallot Low NotTrusted Unencoded
	{
		AgentData		Single
		{	AgentID		LLUUID			}
		{	SessionID	LLUUID	}
	}
	{
		ProposalData		Single
		{	ProposalID		LLUUID			}
		{	GroupID			LLUUID			}
		{	VoteCast		Variable	1	}	
	}
}
==Usage and Notes==
Message used for casting a vote for a given proposal which is active in a particular group. To have the vote count, the agent must have the power in the group to vote on proposals and the proposal must still be an active proposal. The vote will not count after the proposal as expired. Also, each agent may only vote once per proposal.
VoteCast - The vote being cast. It can be one of the following values: "Yes", "No" or "Abstain"
Category:Messages
Category:Group Messages
GroupProposalBallot CAP

Cast a vote on a proposal
POST:
<llsd><map><key>agent-id</key><uuid>01234567-0123-0123-0123-0123456789ab</uuid><key>group-id</key><uuid>fedcba98-fdec-fdec-fdec-fdecba987654</uuid><key>proposal-id</key><uuid>7a132f29-a5f7-2cf4-aaa9-40884c6f2d90</uuid><key>session-id</key><uuid>01234567-0123-0123-0123-0123456789ab</uuid><key>vote</key><string>Abstain</string></map></llsd>
Response:
<llsd><map><key>voted</key><boolean>1</boolean></map></llsd>
Replacement for GroupProposalBallot UDP message
GroupRoleChanges

==Message Layout==
{
	GroupRoleChanges	Low	NotTrusted	Unencoded
	{
		AgentData	Single
		{	AgentID	LLUUID	}
		{	SessionID	LLUUID	}
		{	GroupID		LLUUID	}
	}
	{
		RoleChange	Variable
		{	RoleID		LLUUID	}
		{	MemberID	LLUUID	}
		{	Change		U32		}
	}
}
==Usage and Notes==
Requests changes the roles in which group members are assigned to. The requesting agent must have relevant powers to be able to make changes depdnding on the type of change (such as power to add/remove from roles).
MemberID - The agent ID of the member whom's role is changing.
Change - Change must be a valid LLRoleMemberChangeType which can be RMC_ADD, RMC_REMOVE, RMC_NONE. Any non-valid values will simply negate any change being made.
Category:Messages
Category:Group Messages
GroupRoleDataReply

==Message Layout==
{
	GroupRoleDataReply Low	Trusted	Unencoded
	{
		AgentData	Single
		{	AgentID			LLUUID			}
	}
	{
		GroupData		Single
		{	GroupID			LLUUID	}
		{	RequestID	LLUUID	}
		{	RoleCount	S32		}
	}
	{
		RoleData	Variable
		{	RoleID		LLUUID	}
		{	Name		Variable	1	}
		{	Title		Variable	1	}
		{	Description	Variable	1	}
		{	Powers		U64		}
		{	Members		U32		}
	}
}
==Usage and Notes==
Category:Messages
Category:Group Messages
GroupRoleDataRequest

==Message Layout==
{
	GroupRoleDataRequest Low	NotTrusted	Unencoded
	{
		AgentData	Single
		{	AgentID		LLUUID	}
		{	SessionID	LLUUID	}
	}
	{
		GroupData	Single
		{	GroupID		LLUUID	}
		{	RequestID	LLUUID	}
	}
}
==Usage and Notes==
Requests data for all of the roles in a given group. The requesting agent must be in the group to make this request.
RequestID - A unique identifier which identifies this particular request so that replies may be associated with the request. For best results, this should be unique and generated each time a request is made.
Category:Messages
Category:Group Messages
GroupRoleMembersReply

==Message Layout==
{
	GroupRoleMembersReply Low	Trusted	Unencoded
	{
		AgentData	Single
		{	AgentID		LLUUID	}
		{	GroupID		LLUUID	}
		{	RequestID	LLUUID	}
		{	TotalPairs	U32		}
	}
	{
		MemberData		Variable
		{	RoleID		LLUUID	}
		{	MemberID	LLUUID	}
	}
}
==Usage and Notes==
Category:Messages
Category:Group Messages
GroupRoleMembersRequest

==Message Layout==
{
	GroupRoleMembersRequest Low	NotTrusted	Unencoded
	{
		AgentData	Single
		{	AgentID			LLUUID			}
		{	SessionID	LLUUID	}
	}
	{
		GroupData		Single
		{	GroupID		LLUUID	}
		{	RequestID	LLUUID	}
	}
}
==Usage and Notes==
Requests a pairing of group members to their roles in the group. The requesting agent must be a group member to make this request.
RequestID - A unique identifier which identifies this particular request so that replies may be associated with the request. For best results, this should be unique and generated each time a request is made.
Category:Messages
Category:Group Messages
GroupRoleUpdate

==Message Layout==
{
	GroupRoleUpdate		Low	NotTrusted	Unencoded
	{
		AgentData	Single
		{	AgentID		LLUUID	}
		{	SessionID	LLUUID	}
		{	GroupID		LLUUID	}
	}
	{
		RoleData	Variable{	RoleID		LLUUID	}
		{	Name		Variable	1	}
		{	Description	Variable	1	}
		{	Title		Variable	1	}
		{	Powers		U64		}
		{	UpdateType	U8		}
	}
}
==Usage and Notes==
Updates various data for roles within a group. The requesting agent needs to have the group ability to change role properties to adjust a role's name, description or title. The requesting agent needs to have the group ability to change role power to adjust ta role's powers. The requesting agent needs the group ability to create role to create a role. The request agent needs the group ability to delete roles to delete a role.
UpdateType - This needs to be a LLRoleChangeType Any invalid value for UpdateType will have the role update be ignored.
Category:Messages
Category:Group Messages
GroupTitleUpdate

==Message Layout==
{
	GroupTitleUpdate	Low	NotTrusted	Unencoded
	{
		AgentData	Single
		{	AgentID		LLUUID	}
		{	SessionID	LLUUID	}
		{	GroupID		LLUUID	}
		{	TitleRoleID	LLUUID	}
	}
}
==Usage and Notes==
Updates an agent's "title role" within a group. The requesting agent must be a member of the group and be in the specified role to change its "title role" to be the specified role.
Category:Messages
Category:Group Messages
GroupTitlesReply

==Message Layout==
{
	GroupTitlesReply Low Trusted	Zerocoded
	{
		AgentData	Single
		{	AgentID		LLUUID	}
		{	GroupID		LLUUID	}
		{	RequestID	LLUUID	}
	}
	{
		GroupData	Variable
		{	Title		Variable	1	} 
		{	RoleID		LLUUID			}
		{	Selected	BOOL			}
	}
}
==Usage and Notes==
Category:Messages
Category:Group Messages
GroupTitlesRequest

==Message Layout==
{
	GroupTitlesRequest Low	NotTrusted	Unencoded
	{
		AgentData	Single
		{	AgentID		LLUUID	}
		{	SessionID	LLUUID	}
		{	GroupID		LLUUID	}
		{	RequestID	LLUUID	}
	}
}
==Usage and Notes==
Requests all of the possible titles for the requesting agent in a given group.
Category:Messages
Category:Group Messages
GroupVoteHistoryItemReply

==Message Layout==
{
	GroupVoteHistoryItemReply Low Trusted Zerocoded
	{
		AgentData	Single
		{	AgentID			LLUUID			}
		{	GroupID			LLUUID			}
	}
	{
		TransactionData Single
		{	TransactionID	LLUUID	}
		{	TotalNumItems	U32		}
	}
	{
		HistoryItemData	Single
		{	VoteID			LLUUID			}
		{	TerseDateID		Variable	1	} 
		{	StartDateTime	Variable	1	}	
		{	EndDateTime		Variable	1	}	
		{	VoteInitiator	LLUUID			}
		{	VoteType		Variable	1	}	
		{	VoteResult		Variable	1	}	
		{	Majority	F32		}
		{	Quorum		S32		}
		{	ProposalText	Variable	2	}	
	}
	{
		VoteItem	Variable
		{	CandidateID		LLUUID		}
		{	VoteCast		Variable	1	}	
		{	NumVotes		S32		}
	}
}
==Usage and Notes==
Category:Messages
Category:Group Messages
GroupVoteHistoryRequest

==Message Layout==
{
	GroupVoteHistoryRequest Low NotTrusted Unencoded
	{
		AgentData	Single
		{	AgentID			LLUUID	}
		{	SessionID		LLUUID	}
	}
	{
		GroupData	Single
		{	GroupID			LLUUID	}
	}
	{
		TransactionData Single
		{	TransactionID	LLUUID	}
	}
}
==Usage and Notes==
Requests all of the archived proposals for a given group. The agent must have the power in the group to be able to view archived proposals.
TransactionID - This transcation ID is used as a way to keep track of what replies go with what request. This ID should be unique for each new request.
Category:Messages
Category:Group Messages
Group Abilities

=== Feature Design Document ===
(none)
=== Functional Spec ===
(none)
=== Test scripts ===
Members & Roles - Abilities sub-tab test
=== Discussion for future improvements ===
(none)
=== Relationship to other features ===
 List of features that need to be tested when this feature changes, and why. 
(none)
=== User Guides ===
(none)
Group Authorization

==Group Authorization==
This script is used to check whether the object is set to the appropriate group (by group key).
==The Script==
// © 2009 Chase Quinnell and TerraCo Designs
// http://www.terracodesigns.com
// Please keep this open source and leave my name reference here
// This is the group key for the authorized group.
string authgroupkey = "INSERT YOUR GROUP KEY HERE";
Unauthorized()
{
 string thisScript = llGetScriptName();
 llOwnerSay("/me [" + thisScript + "]: Sorry, you're wearing the wrong group tag.");
 llDetachFromAvatar();
 llRemoveInventory(thisScript);
 llDie();
}
default
{
 on_rez(integer start_param)
 {
 llResetScript();
 }
 state_entry()
 {
 key ownerKey = llGetOwner();
 llRequestPermissions(ownerKey, PERMISSION_ATTACH);
 key thisPrimsKey = llGetKey();
 string groupKey = llList2String(llGetObjectDetails(thisPrimsKey, [OBJECT_GROUP]), 0);
 if (groupKey != authgroupkey)
 Unauthorized();
 else
 llOwnerSay("Authorization passed");
 }
 run_time_permissions(integer perm)
 {
 if (!(perm & PERMISSION_ATTACH))
 llResetScript();
 }
}
Group IM

=== Feature Design Document ===
Goals
This feature allows the Resident to send a message to all the members of a given group.
The Resident must be a member of the said group.
=== Functional Spec ===
(none)
=== Test scripts ===
Group IM Test
=== Discussion for future improvements ===
(none)
=== Relationship to other features ===
 List of features that need to be tested when this feature changes, and why. 
(none)
Group Inviter

Second Life group inviter is a scripted agent (bot) which sends direct group invitation to other Second Life residents.
This is useful to automatically invite visitors to specific group, or invite all buyers of the certain good or service to support group.
You may host your own bot to sit on your land by buying software and installing it on your PC, or by renting SL bot. Renting is usually cheaper considering that you don't need to keep your PC around the clock.
Due to LSL limitations it's impossible to send direct group invitations using in-world objects. Only way is to use the scripted agent (read more here).
==Existing bot software==
Refer to Group inviters comparison to compare existing bots and their possibilities.
==Links==
* Direct and indirect group inviters: explaination
* Direct group inviters at XStreetSL
* VAW iGroup - Automated Group Inviter
* MyRoBoT Group.Invitor - Manual and Automatic Group Inviter
* SmartBots - the group Management Services (Inviter+Chat+Notices), free week subscription
Group Inviter with AdminBot

Simple group inviter script to issue group invitation with AdminBot.
AdminBot LSL library allows to manipulate the group from LSL script: send group invites, listen to the group chat and do more amazing things.
////////////////////////////////////////////////////
// SmartBots AdminBot, http://www.smartbots2life.com
// Group Inviter Script example
////////////////////////////////////////////////////
// AdminBot commands, codes etc... (according to AdminBot docs]
// Setup and startup
integer SB_SETUP_SETGROUP=180101; integer SB_SETUP_SETGROUPUUID=180102; integer SB_SETUP_DEBUG=180103;
integer SB_STATUS_QUERY=180104; integer SB_INVITE_SEND=180105; integer SB_CHAT_SAY=180106;
integer SB_GROUP_EJECT=180107; integer SB_CHAT_LISTEN=180108; integer SB_NOTICE_SEND=180109;
integer SB_RESET_ADMINBOT=9996660; integer SB_SETUP_SETLINK=180110; integer SB_COMMAND_FAILED=180201;
integer SB_STATUS_REPLY=180202; integer SB_CHAT_MESSAGE=180203; integer SB_SETUP_SUCCESS=180204;
integer SB_SETUP_FAILED=180205; integer SB_CHAT_SUCCESS=180206;
default
{
 state_entry() {
 // Setup group inviter
 // We'll set our group on start up. Do not forget to place your own "Security Code" here
 llMessageLinked(LINK_SET,SB_SETUP_SETGROUP,"Your group name","SECURITY CODE");
 // AdminBot will issue the link message on success or error - see link_message
 }
 
 // We will issue the direct group invitation on touch. Do that by sending group invite message.
 touch_start(integer detected) {
 // "FORCE" means to invite existing group members too
 llMessageLinked(LINK_SET,SB_INVITE_SEND,"FORCE",llDetectedKey(0));
 }
 // This event parses different replies from AdminBot (error messages) 
 link_message(integer sender,integer cmd, string data, key id) {
 /////////////////// Group setup failed
 if(cmd==SB_COMMAND_FAILED)
 llOwnerSay("AdminBot command failed, error code:\n"+data);
 
 /////////////////// Group setup failed
 if(cmd==SB_SETUP_FAILED)
 llOwnerSay("AdminBot group setup failed:\n"+data);
 }
}
See AdminBot Examples page for more examples.
Group Membership

=== Feature Design Document ===
(none)
=== Functional Spec ===
(none)
=== Test scripts ===
Members & Roles - Members sub-tab test
Group Powers - Membership test 
These 2 tests are very similar. Combine them if possible.
=== Discussion for future improvements ===
(none)
=== Relationship to other features ===
 List of features that need to be tested when this feature changes, and why. 
(none)
=== User Guides ===
(none)