config-version: 2 # Don't change this!

settings:
  # You can customize everything in this plugin, certain configurations may break the plugin.
  # Say for example you disable every way to access a grave, or make it so graves never spawn.
  # Be mindful while editing the config, it is very powerful. I put comments on most options to help.
  # If something is not working as expected please report it in the discussion.
  # https://www.spigotmc.org/resources/graves.74208/

  # To disable messages, sounds and effects set them to ""
  # To find out what a config option does, scroll down to the default options section, options are there with text explaining what each one does.

  ################
  # Help/Support #
  ################
  # If you are having an issue with the plugin, and need help because something is not working as expected, you can't understand
  # something in the config file, or you are getting unexpected results. You can join our Discord for help.
  # Discord: https://discord.ranull.com/

  ###########
  # Storage #
  ###########
  # Data storage system.
  storage:
    type: SQLITE # SQLITE, More storage types will be added in the future.
    sqlite: # Unless you know what you're doing leave options under sqlite default.
      journal-mode: "WAL" # https://www.sqlite.org/pragma.html#pragma_journal_mode
      synchronous: "OFF" # https://www.sqlite.org/pragma.html#pragma_synchronous

  #########
  # Debug #
  #########
  # Debug information, debug level 2 can be useful in finding out why a Grave does not spawn on your server.
  debug: 0 # 0 = Nothing, 1 = Information, 2 = Failures

  ###############
  # Integration #
  ###############
  # Enable/Disable integrations into other plugins, if you are having errors relating to another plugin try disabling it here.
  integration:
    vault: # https://www.spigotmc.org/resources/vault.34315/
      enabled: true # Should Vault integration be enabled.
    worldedit: # https://dev.bukkit.org/projects/worldedit/
      enabled: true # Should WorldEdit integration be enabled.
      write: true # Should Graves write its schematics into its own folder.
    worldguard: # https://dev.bukkit.org/projects/worldguard/
      enabled: true # Should WorldGuard integration be enabled.
    griefdefender: # https://www.spigotmc.org/resources/griefdefender.68900/
      enabled: false # Should GriefDefender integration be enabled.
    furniturelib: # https://www.spigotmc.org/resources/furniturelibary.9368/
      enabled: false # Should FurnitureLib integration be enabled.
    furnitureengine: # https://www.spigotmc.org/resources/furnitureengine.97134/
      enabled: false # Should FurnitureEngine integration be enabled.
    protectionlib: # https://www.spigotmc.org/resources/protectionlib.9368/
      enabled: false # Should ProtectionLib integration be enabled.
    itemsadder: # https://www.spigotmc.org/resources/itemsadder.73355/
      enabled: false # Should ItemsAdder integration be enabled.
      write: false # Should Graves write its data into the ItemsAdder data folder.
    oraxen: # https://www.spigotmc.org/resources/oraxen.72448/
      enabled: false # Should Oraxen integration be enabled.
      write: false # Should Graves write its pack into the Oraxen pack folder.
    placeholderapi: # https://www.spigotmc.org/resources/placeholderapi.6245/
      enabled: false # Should PlaceholderAPI integration be enabled.
    chestsort: # https://www.spigotmc.org/resources/chestsort.59773/
      enabled: false # Should ChestSort integration be enabled.
    itembridge: # https://www.spigotmc.org/resources/itembridge.77080/
      enabled: false # Should ItemBridge integration be enabled.

  #################
  # Compatibility #
  #################
  compatibility:
    warning: true # Warn when a plugin to have known incompatibilities is detected.

  ###############
  # Token Setup #
  ###############
  # Here is where you define your tokens that you can use in graves. Supported only on 1.12+
  token:
    weak: # Token name, you can define multiple tokens.
      material: SUNFLOWER # https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Material.html
      name: "Grave Artifact" # Grave token name.
      craft: true # Can players craft this grave token.
      lore: # Grave token lore.
        - "&7Keep this artifact in your"
        - "&7inventory and when you die"
        - "&7a grave will be created."
      recipe: # Grave token recipe, use AIR for an empty square, make sure it is unique.
        - "GOLD_NUGGET GOLD_NUGGET GOLD_NUGGET"
        - "GOLD_NUGGET BONE GOLD_NUGGET"
        - "GOLD_NUGGET GOLD_NUGGET GOLD_NUGGET"

  #######################
  # Permission Override #
  #######################
  # Override config options for players who have these permissions, "graves.permission.{name}".
  # If a player has multiple permissions, by group inheritance or manually given, options will be chosen from the top down.
  # Meaning for example, since admin is at the top and if the player has this permission among others.
  # The admin permission will always override permissions below it, therefore you should put your highest permission groups at the top,
  # so they correctly override in a hierarchy, this prevents you having to define the same thing for each permission group.
  # Remember you can copy options from the default section.
  permission:
    admin: # graves.permission.admin
      grave:
        time: -1
      block:
        material: BEDROCK
      world:
        - ALL

  ###################
  # Entity Override #
  ###################
  # Override default config options for entities that match these types, entity type names must be uppercase.
  # https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/entity/EntityType.html
  entity:
    # Here we override the options for entities, remember you can copy options from the default section.
    PLAYER: # Override default options for players.
      grave:
        enabled: true
        time: 1200
      block:
        head:
          type: 1
      world:
        - ALL
      death:
        reason:
          - ALL

  ###################
  # Default Options #
  ###################
  # Below are the default options for graves that are not overridden above, any options not defined above will take from here.
  # You can copy options below above into an entity section or a permission group, it has the same indentation.
  default:
    default:
      #########
      # Grave #
      #########
      grave:
        enabled: false # Should graves be enabled by default, if set to true under default all living entities will create graves.
        time: 300 # (Second) How long graves should stay alive for, 300 = 5 minutes, 10800 = 3 hours, -1 lasts forever.
        max: 18 # The max amount of graves an entity can have.
        break: true # Can graves be broken.
        explode: true # Can graves be blown up.

      #############
      # Placement #
      #############
      placement:
        can-build: false # Only create graves where the entity can build, should work with all protection plugins.
        can-build-protectionlib: false # Only create graves where the entity can build, (According to ProtectionLib).
        ground: true # If the entity dies in the air should the grave fall to the ground.
        void: true # If the entity dies in the void, should it place a grave in the air if it can't find anywhere else.
        lava-top: true # If the entity dies in lava should the grave it float to the top.
        void-smart: true # If the entity dies in the void, try place the grave on the last solid block they stood on. (Only works for players)
        lava-smart: true # If the entity dies in lava, try place the grave on the last solid block they stood on. (Only works for players)
        offset:
          x: 0 # Placement offset X, this will affect all other offsets.
          y: 0 # Placement offset Y, this will affect all other offsets.
          z: 0 # Placement offset Z, this will affect all other offsets.

      #########
      # World #
      #########
      # What worlds will a grave will spawn in.
      world:
        - world
        - world_nether
        - world_the_end
        #- ALL

      ########
      # Drop #
      ########
      # Should a grave drop it's contents when destroyed for the following reasons.
      drop:
        timeout: true # When a grave times out drop everything in it. If false it gets destroyed.
        explode: true # When a grave explodes drop everything in it. If false it gets destroyed.
        break: true # When a grave is broken drop everything in it. If false it gets destroyed.

      #########
      # Block #
      #########
      # Block options, this can be disabled if you only want holograms.
      block:
        enabled: true # Should grave blocks be enabled.
        material: PLAYER_HEAD # Material: PLAYER_HEAD, CHEST, BEACON.
        walk-over: false # Should graves be looted if the block is walked over.
        offset:
          x: 0 # Block offset X.
          y: 0 # Block offset Y.
          z: 0 # Block offset Z.
        head:
          type: 0 # 0 = Player/Entity head, (1 = Custom texture or 2 = Player username set under name).
          base64: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjdjYWI1NmM4MmNiODFiZGI5OTc5YTQ2NGJjOWQzYmEzZTY3MjJiYTEyMmNmNmM1Mjg3MzAxMGEyYjU5YWVmZSJ9fX0="
          name: "MHF_Chest" # If type is set to 2.

      ############
      # Hologram #
      ############
      # If you are running PaperMC you can set armor-stands-tick to false for improved performance without impacting any functionality.
      hologram:
        enabled: true # Should holograms be created.
        marker: true # Should the hologram be a marker, you can't interact with markers.
        height-line: 0.28 # How far apart should holograms be from each-other.
        offset:
          x: 0 # Hologram offset X.
          y: -0.28 # Hologram offset Y.
          z: 0 # Hologram offset Z.
        line:
          - "&7%owner_name_display%'s &rGrave"
          - "&c%killer_name_display% &c☠"

      ##############
      # Protection #
      ##############
      # Protection options, protect graves from players, this does not protect from explosions, look for grave: explode: to disable this.
      protection:
        enabled: true # Enable the grave protection feature.
        time: 600 # Seconds, 300 = 5 minutes. Set to -1 to always stay locked.
        open:
          owner: true # Can the owner open the owners grave.
          killer: true # Can the killer open the owners grave.
          other: false # Can other entities open the owners grave.
          missing:
            owner: true # If a killer can't be found should the owner be allowed to open the grave.
            other: false # If a killer can't be found should everyone be allowed to open the grave.
        state:
          protected: "&c✘"
          unprotected: "&a✔"

      #########
      # Token #
      #########
      token: # You have to define the token at the top of the config file.
        enabled: true # Should graves require tokens for their creation.
        name: "weak" # Name of the token defined in token setup.

      ###########
      # Storage #
      ###########
      # How the items are saved in graves, compact mode stacks all items and puts them into a small as possible inventory. exact mode matches the players inventory exactly.
      storage:
        mode: COMPACT # Storage mode: COMPACT, EXACT, CHESTSORT (Requires ChestSort).

      ##############
      # Experience #
      ##############
      # If store is false it will store what Minecraft would normally drop, if you want to fully disable it, set store to true and store-percent to 0.
      experience:
        store: true # Should all the entities EXP be stored in the grave. If false only the vanilla drop amount will be stored.
        store-percent: 0.8 # How much of the EXP should be stored, 0.8 = 80%, 1 = 100%, 0 = 0%.

      ###########
      # Respawn #
      ###########
      respawn:
        compass: true # Should entities be given a compass to their last grave when they respawn. (Only works for players)
        compass-time: 30 # How long should the entity be given a compass on respawn after the grave was first created.
        function: "none" # Should we run a function after respawning, you can use menu and list among the other functions.

      ############
      # Particle #
      ############
      particle:
        enabled: false # Enable the particles feature.
        type: "REDSTONE" # https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Particle.html
        count: 4 # Amount of particles.
        dust-size: 4 # Only applies to REDSTONE.
        dust-color: "RED" # only applies to REDSTONE, https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Color.html
        offset:
          x: 0 # Particle offset X.
          y: 0 # Particle offset Y.
          z: 0 # Particle offset Z.

      ###########
      # Compass #
      ###########
      # Compass that points towards the closest location belonging to a grave, only supported on 1.16.2+.
      compass:
        function: "distance" # The function that gets run on right click.
        ignore: true # Ignore the compass if an entity dies with it, drop it normally.
        destroy: true # Should a previous compass be destroyed when creating a new grave.
        name: "%owner_name%'s Grave"
        lore:
          - "%world_formatted%, %x%x, %y%y, %z%z"

      ############
      # Teleport #
      ############
      # Teleportation options.
      teleport:
        enabled: true # Can the entity teleport to their grave from the Graves GUI.
        cost: 5 # How much it costs to teleport to a grave, you need Vault for this.
        cost-different-world: 20 # Extra cost added on top of cost if the grave is in a different world.
        cost-distance-increase: true # Increase the price the further away the grave is.
        unsafe: false # Should entities be allowed to always teleport to a grave even if unsafe.
        top: true # If the grave is in an unsafe location, should the entity be teleported to the top.

      ##########
      # Zombie #
      ##########
      zombie:
        type: ZOMBIE # https://hub.spigotmc.org/javadocs/spigot/org/bukkit/entity/LivingEntity.html
        name: "%owner_name%'s Zombie"
        spawn-owner: false # Should a grave spawn a zombie when it is looted by its owner.
        spawn-other: true # Should a grave spawn a zombie if it is looted by another player.
        only-break: false # Should a zombie only spawn if the player broke the grave not open it.
        explode: false # Should a grave spawn a zombie if it is blown up, this only works if the grave can be blown up.
        owner-head: true # Will the zombie have the owners head on.
        health: 20 # How much health the zombie has.
        pickup: false # Can the zombie pickup dropped items.
        drop: false # Do grave zombies drop items, this may include the head it is wearing.

      ###########
      # Replace #
      ###########
      replace:
        block: # What blocks can graves replace.
          not-solid: true # Replace blocks that are not solid.

      ###########
      # Virtual #
      ###########
      # Options for the virtual inventory.
      virtual:
        distance: 15 # Minimum distance entities need to be from a grave to open it virtually. -1 for infinite distance.

      #############
      # Schematic #
      #############
      # Schematic options, this feature is in beta. Schematics don't get cleaned up when the grave is removed.
      schematic:
        enabled: false # Should schematics be enabled.
        name: "grave_default" # Schematic file name.
        offset:
          x: 0 # Schematic offset X.
          y: 0 # Schematic offset Y.
          z: 0 # Schematic offset Z.

      ################
      # FurnitureLib #
      ################
      # This option requires FurnitureLib, you must have this installed to use models.
      furniturelib:
        enabled: false # Should FurnitureLib furniture be used.
        name: "Grave1" # Object ID, GraveStone requires the DiceFurniture plugin.
        line: # If the model contains a sign, this is the text we will apply to it.
          - "%owner_name% Died"
          - "By %killer_name%"

      ###################
      # FurnitureEngine #
      ###################
      # This option requires FurnitureEngine, you must have this installed to use models.
      furnitureengine:
        enabled: false # Should FurnitureEngine furniture be used.
        name: "grave" # Furniture name.

      ##############
      # ItemsAdder #
      ##############
      # The option requires ItemsAdder, you must have this installed to use models.
      # Graves automatically adds models into ItemsAdder, if you want to use it you will need to re-generate your pack and use "graves:grave" as the furniture name.
      itemsadder:
        furniture:
          enabled: false # Should we use ItemsAdder furniture?
          name: "itemsadder:mysterious_stone" # Furniture name.
        block:
          enabled: false # Should we use ItemsAdder blocks?
          name: "itemsadder:nice_stone" # Block name.

      ##########
      # Oraxen #
      ##########
      # The option requires Oraxen, you must have this installed to use models.
      # Graves automatically adds models into Oraxen, if you want to use it you will need to re-generate your pack and use "grave" as the furniture name.
      oraxen:
        furniture:
          enabled: false # Should we use Oraxen furniture?
          name: "grave" # Block name.
        block:
          enabled: false # Should we use Oraxen blocks?
          name: "caveblock" # Block name.

      #######
      # GUI #
      #######
      # Functions: none, list, menu, teleportation, protection
      gui:
        grave:
          title: "%owner_name%'s Grave"

        menu:
          list:
            item:
              block: true # Should we use options under block for the menu item?
              material: CHEST # Item if block is false or can't be found.
            title: "Grave List"
            function: "menu" # Open the menu by default, if you don't want to use the menu you can change this to none or any other valid function.
            name: "Grave"
            empty: "You don't have any graves."
            lore:
              - "Created &f%time_lived_formatted% &7ago"

          grave:
            title: "Grave Menu"
            slot:
              0:
                material: "PAPER"
                function: "distance"
                name: "Information"
                lore:
                  - "Items: &f%item%"
                  - "Levels: &f%level%"
                  - "Death Location: &f%world_formatted%, %x%x, %y%y, %z%z"

              1:
                material: "ENDER_PEARL"
                function: "teleportation"
                name: "Teleport"
                lore:
                  - "Teleport to your grave"

              #2: # Toggle protection on and off, you can uncomment this if you want.
              #  material: "TRIPWIRE_HOOK"
              #  function: "protection"
              #  name: "Toggle Protection %state_protection%"
              #  lore:
              #    - "Toggle grave protection"

      ###########
      # Command #
      ###########
      # Run commands on grave actions.
      command:
        loot:
          - ""
          #- "say %interact_name% looted %owner_name%'s grave"
        create:
          - ""
          #- "say %owner_name% was killed by %killer_name% at %x%x %y%y %z%z, grave lasts for %time_alive_remaining_formatted%."
        open:
          - ""
          #- "say %interact_name% is looting %owner_name%'s grave."
        break:
          - ""
          #- "say %interact_name% broke %owner_name%'s grave."
        explode:
          - ""
          #- "say %interact_name% exploded %owner_name%'s grave."
        teleport:
          - ""
          #- "say %interact_name% teleported to %owner_name%'s grave."

      ##########
      # Ignore #
      ##########
      ignore:
        item: # Items that graves will ignore from the inventory, these items will be handled normally.
          material:
            - ""
            #- BEDROCK  # https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Material.html
          name: # If an item has this exact name it will be handled normally.
            - ""
            #- "&4Admin Sword"
          lore: # If an item has this exact line of lore it will be handled normally.
            - ""
            #- "Soulbound"
          name-contains: # If an item contains this string in the name it will be handled normally.
            - ""
            #- "Super Pickaxe"
          lore-contains: # If an item contains this string in the lore it will be handled normally.
            - ""
            #- "Ignore Lore"
        block: # Blocks that graves will not spawn in.
          material:
            - ""
            #- LAVA

      #########
      # Death #
      #########
      # https://hub.spigotmc.org/javadocs/spigot/org/bukkit/event/entity/EntityDamageEvent.DamageCause.html
      death:
        player: true # Create a grave if an entity dies to a player.
        entity: false # Create a grave if an entity dies to an entity.
        environmental: false # Create a grave if an entity dies to things such as fall damage, lava and suffocation.
        reason: # Only create graves for entities that were killed for these reasons.
          #- CONTACT
          - ENTITY_ATTACK
          - ENTITY_SWEEP_ATTACK
          #- PROJECTILE
          #- SUFFOCATION
          #- FALL
          #- FIRE
          #- FIRE_TICK
          #- MELTING
          #- LAVA
          #- DROWNING
          #- BLOCK_EXPLOSION
          #- ENTITY_EXPLOSION
          #- VOID
          #- LIGHTNING
          #- SUICIDE
          #- STARVATION
          #- POISON
          #- MAGIC
          #- WITHER
          #- FALLING_BLOCK
          #- THORNS
          #- DRAGON_BREATH
          #- CUSTOM
          #- FLY_INTO_WALL
          #- HOT_FLOOR
          #- CRAMMING
          #- DRYOUT
          #- FREEZE
          #- ALL

      #########
      # Spawn #
      #########
      # https://hub.spigotmc.org/javadocs/spigot/org/bukkit/event/entity/CreatureSpawnEvent.SpawnReason.html
      spawn: # Only create graves for creature entities that have a spawn reason from the list below.
        reason:
          - NATURAL
          - DEFAULT
          - JOCKEY
          - CHUNK_GEN
          - EGG
          - SPAWNER_EGG
          - LIGHTNING
          - BUILD_SNOWMAN
          - BUILD_IRONGOLEM
          - BUILD_WITHER
          - VILLAGE_DEFENSE
          - VILLAGE_INVASION
          - BREEDING
          - SLIME_SPLIT
          - REINFORCEMENTS
          - NETHER_PORTAL
          - DISPENSE_EGG
          - INFECTION
          - CURED
          - OCELOT_BABY
          - SILVERFISH_BLOCK
          - MOUNT
          - TRAP
          - ENDER_PEARL
          - SHOULDER_ENTITY
          - DROWNED
          - SHEARED
          - EXPLOSION
          - RAID
          - PATROL
          - BEEHIVE
          - PIGLIN_ZOMBIFIED
          - COMMAND
          - CUSTOM
          #- SPAWNER
          #- ALL

      ###########
      # Message #
      ###########
      message:
        prefix: "&7☠ &8» &r"
        loot: ""
        experience: "Looted &7%level% &rlevels from grave."
        empty: "You don't have any graves."
        death: "You died in &7%world_formatted% &rat &7%x%&rx, &7%y%&ry, &7%z%&rz, a grave was created that lasts for &7%time_alive_remaining_formatted%&r."
        ignore: "A grave was not created because you died in &7%name%&r."
        max: "A grave was not created, you have reached the maximum."
        failure: "A grave was unable to be placed, item's dropped on ground."
        no-money: "You don't have enough money, you need &7%teleport_cost%&r."
        no-token: "A grave was not created because you didn't have a grave token."
        give-token: "You were given a Grave Token."
        distance: "You are &7%distance% &rblocks away."
        distance-world: "Can't measure distance, wrong world."
        teleport: "You teleported to your grave."
        teleport-top: "Grave is in an unsafe location, you have been teleported nearby."
        teleport-failure: "Teleport failed, teleport location is unsafe."
        teleport-disabled: "Grave teleportation is disabled."
        build-denied: "A grave was not created because you don't have permission to build where you died."
        distance-virtual: "You are too far away to virtually open this grave."
        permission-denied: "Permission denied."
        protection: "This grave is protected for %time_protection_remaining_formatted%."
        region-create-deny: "A grave was not created because grave creation is disabled in this region."
        region-teleport-deny: "Grave teleportation is disabled in this region."
        world: # Change the world name is %world_formatted%, if a world is not defined below it will try to format it itself.
          world: "Overworld"
          world_nether: "Nether"
          world_the_end: "The End"
        death-reason: # https://hub.spigotmc.org/javadocs/spigot/org/bukkit/event/entity/EntityDamageEvent.DamageCause.html
          ENTITY_ATTACK: "Attacked"
          ENTITY_SWEEP_ATTACK: "Sweep Attacked"
          PROJECTILE: "Projectile Struck"
          SUFFOCATION: "Suffocated"
          FALL: "Fell"
          FIRE: "Burned"
          FIRE_TICK: "Burned"
          MELTING: "Melted"
          LAVA: "Burned"
          DROWNING: "Drowned"
          BLOCK_EXPLOSION: "Exploded"
          ENTITY_EXPLOSION: "Exploded"
          VOID: "Voided"
          LIGHTNING: "Zeus"
          SUICIDE: "Suicide"
          STARVATION: "Starved"
          POISON: "Poisoned"
          MAGIC: "Magic Missile"
          WITHER: "Withered Away"
          FALLING_BLOCK: "Crushed"
          THORNS: "Thorned"
          DRAGON_BREATH: "Dragon Breath"
          CUSTOM: "Dark Magic"
          FLY_INTO_WALL: "Highspeed Splat"
          HOT_FLOOR: "Burned Feet"
          CRAMMING: "Crushed"
          DRYOUT: "Suffocated"
          FREEZE: "Froze"

      ########
      # Time #
      ########
      time:
        second: "&7%second%&fs "
        minute: "&7%minute%&fm "
        hour: "&7%hour%&fh "
        day: "&7%day%&fd "
        infinite: "&7Forever"

      #########
      # Sound #
      #########
      sound:
        open: BLOCK_CHEST_OPEN
        close: BLOCK_CHEST_CLOSE
        loot: ENTITY_DONKEY_CHEST
        teleport: ENTITY_ENDERMAN_TELEPORT
        menu-open: ENTITY_CHICKEN_EGG
        protection: BLOCK_CHEST_LOCKED
        protection-change: ENTITY_DONKEY_CHEST

      ##########
      # Effect #
      ##########
      effect:
        loot: MOBSPAWNER_FLAMES
