Combat Log

From Second Life Wiki
Revision as of 07:28, 26 July 2024 by Nexii Malthus (talk | contribs) (Stub page about Combat Log)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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