# Configuration file

tiquality {
    # When a tracker is being throttled, we can send a notification to the user.
    # How often do you want the user to receive a message about his/her personal tick speed?
    # 
    # Note: If you don't want to send a message at all, set DEFAULT_THROTTLE_WARNING_LEVEL to 1.
    # Min: 0
    # Max: 2147483647
    I:DEFAULT_THROTTLE_WARNING_INTERVAL_SECONDS=600

    # When a tracker is being throttled, we can send a notification to the user.
    # Throttling is measured by comparing the full tick cycles within ticking queues and comparing that to the server ticks.
    # Every 100 server ticks the amount of completed full ticks of the tracker is compared.
    # 
    # If the tracker is falling behind (actively throttling) the value for this tracker gets closer to zero. In
    # comparison, a tracker that runs at full speed will have a value of 1 (100%)
    # Whenever the value falls below the value specified here, a warning will be sent to the tracker
    # 
    # There's currently a limitation making warning levels between 0.5 and 1.0 unreliable. (Between 50% and 100% speed)
    # 
    # Set to 1 to disable
    # 
    # Note: If the server is ticking at 18 TPS, the tracker can still have a value of 1. Server tick speed does not impact this value.
    # Min: 0.0
    # Max: 1.0
    D:DEFAULT_THROTTLE_WARNING_LEVEL=0.5

    # Define a maximum square range someone can claim using /tq claim [range].
    # This will also be the default value for usage of /tq claim [range] without the range argument
    I:MAX_CLAIM_RADIUS=50

    # Tiquality pre-allocates the max tick time someone can use.
    # This includes offline players (Loaded chunks with an offline player's base, for example)
    # With this in mind, what multiplier should we use to assign tick time to them?
    # 
    # Where 0 means offline player's base does not get any pre-allocated tick time and 1 means they will get the same tick time as an online player.
    # Keep in mind that people might be living together...
    # Min: 0.0
    # Max: 1.0
    D:OFFLINE_PLAYER_TICK_TIME_MULTIPLIER=0.5

    # Tiquality stores data in every affected chunk, but it's possible
    # tiquality's data can get corrupted somehow. In order to still be able to use tiquality
    # without resetting your world, we can store data in a different tag in the chunk.
    # 
    # WARNING: Changing this value will erase previous data saved by tiquality, but will not
    # affect other data (Your world stays intact, but tiquality has a clean slate)
    # 
    # Just increase this number by one if you run into problems. Don't forget to submit a
    # detailed bug report on Github if you run into unexpected problems.
    # 
    # New versions of Tiquality with incompatible storage data will override this setting for you automatically.
    I:SAVE_VERSION=0

    # Between ticks, the server must do some internal processing.
    # Increase this value if you see "can't keep up!" errors.
    # Try to keep this value as low as possible for performance.
    # Min: 0
    # Max: 2147483647
    I:TIME_BETWEEN_TICKS_IN_NS=90000

    # The alias for the /tiquality command.
    # Bear in mind that when this alias is already in use by another mod, we skip command registration entirely. (Even /tiquality)
    S:TIQUALITY_COMMAND_ALIAS=tq

    ##########################################################################################################
    # block_tick_behavior
    #--------------------------------------------------------------------------------------------------------#
    # A block will tick if at least one of the following statements is true:
    # - There's a Tracker assigned and the tracker has enough time to tick the block
    # - The block is defined in the config NATURAL_BLOCKS and there's no tracker assigned to it
    # - The block is defined in the config NATURAL_BLOCKS and the tracker has enough time to tick the block
    # - The block is defined in the config ALWAYS_TICKED_BLOCKS It will tick even if a tracker has been assigned that ran out of time. Note that this will still consume the time on the tracker.
    # 
    # Try running `/tq set <below|feet> DEFAULT`. It will remove the block from the config, returning default behavior.
    # Try running `/tq set <below|feet> NATURAL`. It will add the block to the config under NATURAL_BLOCKS.
    # Try running `/tq set <below|feet> PRIORITY`. It will add the block to the config under PRIORITY_BLOCKS.
    # Try running `/tq set <below|feet> ALWAYS_TICK`. It will add the block to the config under ALWAYS_TICKED_BLOCKS.
    # Try running `/tq set <below|feet> TICK_DENIED`. It will add the block to the config under TICK_DENIED_BLOCKS.
    # 
    # Protip: Use /tq info first, to see if you are actually positioned on the block correctly.
    # 
    # For nicer formatting, see: https://github.com/TerminatorNL/Tiquality/blob/master/README.md#my-blocks-dont-tick-what-do-i-do
    ##########################################################################################################

    block_tick_behavior {
        # Some blocks, you simply don't want to be throttled, ever. For example: piston extensions.
        # Tiquality will still attempt to tick them per player, but if the player runs out of tick time, it will still tick these blocks.
        # Items in this list are also appended to NATURAL_BLOCKS through code, there is no need to define blocks twice.
        S:ALWAYS_TICKED_BLOCKS <
            minecraft:piston_extension
            minecraft:piston_head
            minecraft:portal
         >

        # Some blocks are automatically generated in the world, but do require ticking in order to function properly.
        # Define the blocks you wish to keep tick when the block has not been assigned an owner yet.
        # Keep in mind, if there is an owner set on this block, the block can be throttled. See: ALWAYS_TICKED_BLOCKS
        S:NATURAL_BLOCKS <
            minecraft:mob_spawner
            minecraft:chest
            minecraft:ender_chest
            minecraft:trapped_chest
            REGEX=leaves
            REGEX=sapling
            REGEX=flowing
            minecraft:snow_layer
            minecraft:ice
            minecraft:water
            minecraft:lava
            minecraft:grass
            minecraft:sand
            minecraft:gravel
            minecraft:beetroots
            minecraft:wheat
            minecraft:carrots
            minecraft:potatoes
            minecraft:reeds
            minecraft:farmland
            minecraft:fire
            minecraft:cocoa
            minecraft:cactus
            minecraft:double_plant
         >

        # When people run bases, you can prioritize which blocks have to be updated first. Unlinke
        # ALWAYS_TICKED_BLOCKS, PRIORITY_BLOCKS can be throttled.
        S:PRIORITY_BLOCKS <
         >

        # Blocks you never want to tick are defined here. Useful for stopping dupes or game breaking lag without banning recipes!
        S:TICK_DENIED_BLOCKS <
         >
    }

    ##########################################################################################################
    # entity_tick_behavior
    #--------------------------------------------------------------------------------------------------------#
    # Entity handling is a bit different than blocks. DEFAULT behavior is the same as NATURAL in blocks.
    ##########################################################################################################

    entity_tick_behavior {
        # Some entities, you simply don't want to be throttled, ever.
        # Tiquality will still attempt to tick them per player, but if the player runs out of tick time, it will still tick these entities.
        # Players are hardcoded to be in this category.
        S:ALWAYS_TICKED_ENTITIES <
         >

        # When people run bases, you can prioritize which entities have to be updated first. Unlike
        # ALWAYS_TICKED_ENTITIES, PRIORITY_ENTITIES can be throttled.
        # If you put 'minecraft:item' here, it will be easier for players to pick them up etc. Recommended.
        S:PRIORITY_ENTITIES <
            minecraft:item
            minecraft:falling_block
         >

        # Entities you never want to tick are defined here. Useful for stopping dupes or game breaking lag without banning recipes!
        S:TICK_DENIED_ENTITIES <
         >
    }

}


