Combat Log
LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
This article has been classified as a stub, you can help the Second Life Wiki by expanding this article and adding more information.
The Combat Log has been added as part of the Combat2 update which allows for auditing and useful usecases.
- Combat Log messages are sent region-wide on the channel: COMBAT_CHANNEL
- Records all damage events, damage adjustments and kills
- System generated messages by a specific ID that scripts may filter to: COMBAT_LOG_ID
- Scripts may write to this channel if not restricted by the region, check via: llGetEnv("restrict_combat_log")
System generated messages can be delayed up to 1 second as the sim collects messages to send them in bulk at a time.
Message Format
The format of the combat log message is a JSON array ([]
) containing JSON objects ([{},{},{}]
). There is always an "event" property present to describe the type of the message object for parsing. The schema of the different objects are as follows:
(Table of a damage event)
(Table of a damage adjustment event)
(Table of a death event)
Example Messages
Below is an example of a system generated combat log message, featuring a DAMAGE event following by a DEATH event:
[
{
"damage": 15,
"event": "DAMAGE",
"initial": 15,
"owner": "c5a07167-9bbe-4944-a7b0-a9677afa134d",
"rezzer": "c5a07167-9bbe-4944-a7b0-a9677afa134d",
"source": "02f42025-7c1f-9277-435d-f3b60d3250f1",
"target": "89574eed-53b1-4441-a85b-2b75d0facfd9",
"type": 1
},
{
"event": "DEATH",
"owner": "c5a07167-9bbe-4944-a7b0-a9677afa134d",
"rezzer": "c5a07167-9bbe-4944-a7b0-a9677afa134d",
"source": "02f42025-7c1f-9277-435d-f3b60d3250f1",
"source_pos": [
"154.5489501953125",
"146.957275390625",
"29.285243988037109"
],
"target": "89574eed-53b1-4441-a85b-2b75d0facfd9",
"target_pos": [
"156.97242736816406",
"141.52787780761719",
"25.638824462890625"
],
"type": 1
}
]
Parsing Messages
You can use JSON functions to help parse the messages:
// Script example with a listener and showing how to filter for death events