Combat 2.1 Simplified Teams Spec
Nexii Malthus
This is an intentionally separate request from the full Combat 2.1 Teams request at https://feedback.secondlife.com/scripting-features/p/combat-21-teams
For a reduced/simplified API surface. We don't really need the entire draft spec that Rider came up with, the core items that we truly need are:
- integer llGetTeam(key task)
- llSetTeam(key task, integer team)
- list llGetTeamMemberList(integer team)
llGetTeam returns the current team assigned to the AVATAR or the OBJECT. Default is 0.
llSetTeam sets the team for the AVATAR or the OBJECT. It requires objects owner to own the land, deeded to group owned land or
simply be set to that group
(land management group). Otherwise any participant could switch teams mid-combat OR access special teams they might not be privy to.llGetTeamMemberList returns a list of AVATARS in the region assigned to that team.
Teams are inherited from their rezzer (whether avatar or object).
OBJECTS and AVATARS crossing a region neighbour can carry their team assignment with them into the next region.
AVATARS teleporting into another region can carry their team assignment as well.
Following in the footsteps of Combat2 and llDamage with damage type: "The goal is a coherent set of tools that lets residents create complex and compelling combat systems using a common and easy to use framework." -- Therefore like damage type, a team number can match a default TEAM_* constant or a custom integer. Additionally the field may be repurposed.
- TEAM_UNASSIGNED 0x0
- TEAM_RED 0x1
- TEAM_BLUE 0x2
Nice to have:
- REZ_TEAM for llRezObjectWithParams (llSetTeam-requirements, e.g. system generating NPCs/Vehicles assigned to teams)
- CHANGED_TEAM for changed event (object or avatar)
- Team configuration would be nice to have still of course but it is more optional, for HUDs and scripts to get the names and colours of a small set of configured teams per list llGetTeamDetails(integer team). If the object or avatar is assigned to a team number outside the team config range that is OK it might be a custom or repurposed number for a system, they just won't be able to have team details. llSetTeamDetails(integer team, list params) should exist and have same requirements as llSetTeam. Team config would be simplified as these two functions.
Log In

Rider Linden
For the record the original spec is here: