# CoordinateOffset v4.0.6 Configuration
# See https://github.com/joshuaprince/CoordinateOffset/wiki/Configuration-Guide

# Specify the method by which coordinate offsets will be calculated.
# Options are any key under `offsetProviders` below (e.g. constant, random...)
defaultOffsetProvider: constant

# List of overrides to the default offset provider. The first item has the
#   highest priority. `provider` is a required key; optional keys are
#   `world`, `playerUuid`, and `permission` which, if present, must ALL match
#   for the override to apply.
offsetProviderOverrides:
#  - provider: constant
#    world: world
#    permission: coordinateoffset.provider.my_custom_permission
#  - provider: zeroAtLocation
#    playerUuid: 00000000-0000-0000-0000-000000000000


offsetProviders:
  constant:
    # The "constant" offset provider class applies a specific offset.
    # X and Z values MUST be divisible by 16 to align with chunk boundaries!
    class: ConstantOffsetProvider
    offsetX: 0
    offsetZ: 16384

    # The constant offset can be multiplied by a constant factor in specific
    #   worlds so that portal travel lines up. Make sure that the constant
    #   offsets multiplied by these values still result in a multiple of 16.
    worldScaling:
      world_nether: 0.125


  disabled:
    # A constant offset of 0 will disable coordinate obfuscation and allow
    #   players to see their real coordinates.
    class: ConstantOffsetProvider
    offsetX: 0
    offsetZ: 0


  random:
    # The "random" offset provider class generates a random offset for each
    #   player.
    class: RandomOffsetProvider

    # These events will trigger the offset to re-roll if enabled.
    resetOnDeath: false
    resetOnWorldChange: false

    # Offsets can be saved to each player's NBT data and reused across joins
    #   and server restarts.
    persistent: false
    persistenceKey: default

    # Maximum possible offset
    randomBound: 100000

    # Aligned worlds will use the same offset, optionally with a scale factor.
    #   For example, `world:world_nether:8` would match Vanilla portal
    #   scaling, so each player's Nether offset is 1/8th their Overworld
    #   offset and portal linking math still works.
    # Note: This ONLY works if `resetOnWorldChange` is false!
    worldAlignment:
      - world:world_nether:8


  zeroAtLocation:
    # The "zero at location" offset provider class generates an offset equal
    #   to the player's coordinates, so they will see themselves at roughly
    #   (0, 0) every time their offset changes.
    class: ZeroAtLocationOffsetProvider

    # These events will set the offset to the player's location (and therefore
    #   "zero out" the player) if enabled.
    resetOnDeath: false
    resetOnWorldChange: false

    # Aligned worlds will use the same offset, optionally with a scale factor.
    #   For example, `world:world_nether:8` would match Vanilla portal
    #   scaling, so each player's Nether offset is 1/8th their Overworld
    #   offset and portal linking math still works.
    # Note: This ONLY works if `resetOnWorldChange` is false!
    worldAlignment:
      - world:world_nether:8

  # Add custom offset modes here. For example:
  # myCustomOffsetMode:
  #   provider: constant
  #   offsetX: -16000
  #   offsetZ: 16000


# Coordinates are used to determine how to shift these blocks slightly. That
#   means that if the client and server disagree about coordinates, they also
#   disagree about how to shift these blocks, so movement is glitchy near these
#   blocks. These settings completely disable collisions for these blocks.
#   More info: https://github.com/joshuaprince/CoordinateOffset/issues/8
# Note: Requires a server restart for changes to take effect.
fixCollision:
  bamboo: true
  dripstone: true

# If true, players with the `coordinateoffset.bypass` permission will bypass
#   all providers and see their real coordinates.
bypassByPermission: true

# Wait for players to be near the world border to send border packets.
#   Disabling this fixes moving borders, but may leak coordinates - see
#   https://github.com/joshuaprince/CoordinateOffset/wiki/Implications-and-Limitations#world-border
obfuscateWorldBorder: true

# Enable a log message when a player's offset changes.
verbose: false

# Enable additional logging when errors occur in the plugin.
debug:
  enable: false
  packetHistorySize: 8
