HyperScript
Docs

← All of the Docs HyperLog

Looking things up HyperLog

expressionwho last changed block at <location>HyperLog

The name of whoever last placed or broke the block there; unset if nobody is on record

set {_name} to who last changed block at player's location
expressionblock changes at <location>HyperLog

What happened to that block, newest first, as a list of lines such as Steve placed stone, 5 minutes ago. Looks back 30 days

set {_lines} to block changes at player's location in the last 7 days
expressionblock changes at <location> in the last <duration>HyperLog

The same, as far back as you say

set {_lines} to block changes at player's location in the last 7 days
expressionblock changes by <who> in the last <duration>HyperLog

What that player placed and broke in that time, newest first, each line with its place

set {_did} to block changes by arg.1 in the last 1 hour within 50 blocks of player
expression... within <n> blocks of <location>HyperLog

Behind block changes by: only around a place

rollback everything for 10 minutes within 20 blocks of player
Guide and examples
command /history:
    permission: "staff.history"
    trigger:
        async:
            set {_lines} to block changes at player's location in the last 7 days
            loop {_lines}:
                send "&7%loop-value%"
            else:
                send "&7Nothing happened to this block."

command /griefcheck <target>:
    permission: "staff.griefcheck"
    trigger:
        async:
            set {_did} to block changes by arg.1 in the last 1 hour within 50 blocks of player
            send "&7%arg.1% changed &f%size of {_did}% &7blocks near you in the last hour."
SyntaxMeaning
who last changed block at <location>The name of whoever last placed or broke the block there; unset if nobody is on record
block changes at <location>What happened to that block, newest first, as a list of lines such as Steve placed stone, 5 minutes ago. Looks back 30 days
block changes at <location> in the last <duration>The same, as far back as you say
block changes by <who> in the last <duration>What that player placed and broke in that time, newest first, each line with its place
... within <n> blocks of <location>Behind block changes by: only around a place
  • Put lookups in an async: block, as the examples do. CoreProtect reads its database to answer, and that should not hold up the server.
  • <who> is a name, and it need not be somebody who is online. Where a location is asked for, player stands for where the player is.
  • size of a list of changes is how many there were.