# Configurations

## Overview

Arclight use `arclight.conf` as the config file, in HOCON syntax. You can find the reference of the HOCON [here](https://github.com/lightbend/config/blob/main/HOCON.md).

```none
# Repository: https://github.com/IzzelAliz/Arclight
# Issue Tracker: https://github.com/IzzelAliz/Arclight/issues
# 
# 
# Config version number, do not edit.
"_v"=1

# Async Catcher related settings
# There are four modes, and BLOCK is recommended
# NONE - Do nothing
# DISPATCH - Non blocking-ly dispatch action to main thread
# BLOCK - Run in main thread and wait for results
# EXCEPTION - Raise an error
async-catcher {
    defaultOperation=block
    
    # Dump stack trace information in debug.log
    dump=true
    
    overrides {}
    
    warn=true
}

compatibility {
    entity-property-overrides {}
    
    # Let plugin or mod controls the final entity damage
    # When set to true, mod added damage will potentially be overridden by plugins
    exact-plugin-entity-damage-control=false
    
    # Extra worlds running logic
    # If any mods do not function well, try search class names in logs related to [EXT_LOGIC] and add them here
    extra-logic-worlds=[
        "com.example.mod.ExtraLogicWorld",
        "xyz.nucleoid.fantasy.RuntimeWorld"
    ]
    
    # true - Forward Forge permission query to Bukkit
    # false - Disable permission forward
    # reverse - Forward Bukkit player perimission query to Forge
    forward-permission=true
    
    material-property-overrides {}
    
    # Create symbol links to mod dimension folder that matches Bukkit world name
    # Enable this could improve plugin compotibility
    # Changing this on production server will cause changes to mod world names
    #  and cause data loss on plugins relying world names
    # See https://github.com/IzzelAliz/Arclight/wiki/World-Symlink for more detail
    symlink-world=false
    
    # Regex for valid username check. Leave it blank will fallback to vanilla check
    # Following allows Chinese characters:
    # valid-username-regex = "^[ -~\\p{sc=Han}]{1,16}$"
    # Following allows any username to login:
    # valid-username-regex = ".+"
    valid-username-regex=""
}

# Language/I18n settings
locale {
    current="en_us"
    fallback="en_us"
}

# Optimization related settings
optimization {
    cache-plugin-class=true
    
    disable-data-fixer=false
    
    # Interval in ticks to update the goal selector
    # Higher values costs less resources
    # Cause mobs changing their goals less often
    goal-selector-update-interval=2
}

velocity {
    # Enable Velocity modern player info forwarding
    enable=false
    
    # The secret used in Velocity modern player info forwarding
    secret=""
}
```


## compatibility


### forward-permission

Forward permission queries between the mod platform and Bukkit plugins.

When set to `true`, all permission queries on mod platforms will be forwarded to Bukkit. This is useful when you are installing Bukkit permission plugins.

When set to `reverse`, all permission queries on Bukkit will be forwarded to the mod platform. This is useful when a permission mod is installed.

When set to `false`, forwarding is disabled.


### symlink-world

Create symbol links for secondary dimensions (The End, modded dimensions) that matches Bukkit world folder naming style. If you have problems with world management plugins, enabling this may help.

This is disabled by default. See [World Symlinks](/doc/world-symlinks-WrTtvrThOT) for more details.


### valid-username-regex

Override the default username validation check provided by Mojang. By default, Minecraft only allows usernames that contain fewer than 16 alphabetic/numeric characters.

Set this to `^[ -~\\p{sc=Han}]{1,16}$` allow usernames with Chinese characters to join.

Set this to `.+` to allow any username to join, although this is not recommended.


## velocity

### enabled

Enables the Velocity modern forwarding mode. See [Setup Proxy Network](/doc/setup-proxy-network-RuLc6YRdhy) for more details.

### secret

Set the Velocity modern forwarding secret. This should be the same value in `forwarding.secret` file. See [Setup Proxy Network](/doc/setup-proxy-network-RuLc6YRdhy) for more details.


## optimization

### cache-plugin-class

Store computed plugin class files on disk, and they can be used on the next server launch.

This is enabled by default.

### goal-selector-update-interval

This option controls the frequency mob goal selectors try to “find next target”, in ticks.

Finding new targets is an expensive task because it searches around the nearby world and queries blocks and entities. Increasing this value can reduce this performance cost, but result in slower mob goal selector update. For example, hostile mobs will target nearby players more slowly.



---

Arclight is based on Spigot, which means you can configure the Arclight server through `spigot.yml`, `bukkit.yml` and `server.properties` config files.

Refer to [spigot.yml](https://docs.papermc.io/paper/reference/spigot-configuration), [bukkit.yml](https://docs.papermc.io/paper/reference/bukkit-configuration), and [server.properties](https://docs.papermc.io/paper/reference/server-properties) for more details.

---

**Documents**

- [Versions and its supporting status](https://wiki.izzel.io/s/arclight-docs/doc/versions-and-its-supporting-status-NCKYxXI3mt)
- [Tutorials](https://wiki.izzel.io/s/arclight-docs/doc/tutorials-LsIkwojL9P)
- [Administration](https://wiki.izzel.io/s/arclight-docs/doc/administration-puh66tln4f)
- [Development](https://wiki.izzel.io/s/arclight-docs/doc/development-kCaAexaIdQ)
- [FAQ](https://wiki.izzel.io/s/arclight-docs/doc/faq-ApcZ25PXVT)
- [Donate](https://wiki.izzel.io/s/arclight-docs/doc/donate-Bj9cf2F5YH)