Core Protect

Core Protect is a data logging tool that logs changes made to blocks and inventories in the world. This is the primary tool used on the CapeCraft server for combatting griefers and trolls. With it a staff member can find proof that a user caused an event or broke a rule as well as return the world to the state it had before.

We are going to start with the basics of how CoreProtect works and then go into detail on how to handle specific situations.

CoreProtect is always logging block and inventory changes across the server, whether it comes from a player or entity. Staff members of a server can access CoreProtect’s CoreInspect mode using ./co i. When in inspection mode right and left click will perform a lookup on that block position. Punching a block (left click) will lookup the block you punched, right clicking on a block will perform a lookup on the face you clicked on, essentially acting as if you had placed a block. I would recommend testing this out on a server to see what it’s like, getting comfortable with direct location lookups is the basis for the rest of the plugin.

Example of CoreInspect

This is generally what you use to narrow down information to use later. Things like usernames and time. Checking every block in a grief would be far too time consuming.

Now this is where it starts to get complicated. CoreProtect has another mode used to perform a search, lookup mode. This allows you to define parameters by which the search will be done. You can find a list of the parameters to use here. The parameters help limit the search results by area, username, or action. This is generally used for proof gathering as well as verification of damage.
To use the lookup mode you can use the command ./co lookup <parameters> or ./co l <parameters>. For the command to work you need to give it the parameters needed for your lookup, such as ./co l u:mov51 a:+block r:5 t:12h.

Image 2
Image 3

Once you have started a lookup you will see a response in chat similar to image 2. By default CoreProtect displays 4 lines of changes and then will split the remainder up into equal sized pages. To navigate to a page number run the command ./co l <page number>. The amount of lines displayed can be changed by adding a colon after the page number and then the amount of lines you want to show. (image 3)

Once you have narrowed down your search with ./co l you can roll back the damage. It’s as simple as replacing the l or lookup in your command with rb or rollback. It will rollback all of the changes it showed in lookup mode.


CoreLookup parameters

  • Action: | a:
    The action parameter is used to define what exactly you need to lookup. It can be excluded from the final command but will not show container modifications.
    • +/-/_Container
      Shows any interactions with a block container.
      Does not include enderchests.
    • +/-/_Session
      Shows the action of a users session status changing, includes location and log in/out.
    • +/-/_Block
      Shows any blocks modified in an area. Requires a radius parameter. Cascading updates such as water, bamboo, grass turning to dirt, and water/lava interaction are tracked on a case by case basis.
    • _click
      Shows the action of clicking on a clickable block. Useful for checking levers, buttons, and doors.
    • _Chat
      Shows chat logs, displayed next to the user that sent the message and time since it was sent.
    • Command
      Shows command logs, displayed next to the user that sent the command and time since it was sent.
    • _Kill
      Shows deaths/kills in a defined radius. Must have a radius parameter. Non player kills will be prefixed by a # and named after the block/entity that dealt the final blow. Use the same name with the # to perform a rollback.
    • _Username
      Used to limit a lookup to specific users or game elements. A players username will be the last name they were known by on the server, not necessarily their current one.
      Non player lookups such as lighting, lava, pistons, or endermen are performed by using a #.
  • Block: | b:
    Used to look for specific block that have been changed. You can use a , to search for multiple blocks with one command but only the first entry will autocomplete.
  • Exclude: | e:
    Used to exclude certain types of blocks from a lookup. Can only be blocks, not actions or entities. Can use , to exclude multiple blocks.
  • Radius: | r:
    Restricts a lookup to a specific radius around the player. The radius on it’s own is defined by the number of blocks you give it. A radius of 5 would look 10 blocks in each direction and the full 256 block column. You can use decimal places to get a single block lookup using .5 as your radius. The plugins default maximum radius is 100 blocks. to bypass that you have to use the global tag.
    • #worldedit
      Used to lookup within your worldedit selection. Can not bypass the lookup limit. Lookup is limited by the vertical size of the worldedit selection as well.
    • #global
      This looks everywhere on the server in all of the worlds that your CoreProtect installation has a log for.
    • #%world%
      You can define a specific world for the lookup in. This is different from the global lookup in that you can specify only the overworld or even use worlds from multiverse.
  • Time: | t:
    The amount of time to search into the past for the specified action.

    Time format is as follows:
    Weeks = w
    Days = d
    Hours = h
    Minutes = m
    Seconds = s

    There is no month option.
  • User: | u:
    Limits the search to a specific user or world entity. A players username will be the last name they were known by on the server, not necessarily their current one.
    Non player lookups (world entity) such as lighting, lava, pistons, or endermen are performed by using a #.