-
-
Notifications
You must be signed in to change notification settings - Fork 187
Bukkit Configuration
Aurora Lahtela edited this page Sep 30, 2025
·
37 revisions

This page is about the Bukkit/Sponge/Nukkit/Fabric config.yml file and the various settings it provides.
For Bungee see Bungee Configuration
Page version: 5.6 build 2959
You can configure Plan using environment variables. This can be useful for those running servers in docker environments.
Examples:
- Server.ServerName -> PLAN_SERVER_SERVERNAME
- Database.MySQL.Password -> PLAN_DATABASE_MYSQL_PASSWORD
- ServerInfoFile.yml is also supported, eg. PLAN_SERVER_ID, PLAN_SERVER_UUID to have specific servers keep their identity if your server destroys all files on shutdown.
- With string lists variable needs to be format "- One\n- Two" where \n is newline
Server
| Setting | Default | Description |
|---|---|---|
| ServerName | Plan |
Name of the server, displayed on the page and used to access the page of the server on networks. |
Plugin.Logging
| Setting | Default | Description |
|---|---|---|
| Locale | default |
2 letter Locale code, see Localization. default for English. write-all to write all locales' files |
| Create_new_locale_file_on_next_enable | false |
Writes a new locale.txt file to the plugin folder on enable. |
| Log_untranslated_locale_keys | false |
Logs keys that have default value in the currently in-use locale to console. This is to help translators update files. |
| Dev | false |
Enables development error logging as well as other debug messages, such as request matching |
| Delete_logs_after_days | 7 |
Number of days after which log files are removed |
Plugin (Other)
| Setting | Default | Description |
|---|---|---|
| Update_notifications.Check_for_updates | true |
Enables Plan update check |
| Update_notifications.Notify_about_DEV_releases | false |
Should update notifications include DEV releases |
| Configuration.Allow_proxy_to_manage_settings | true |
Should server config file on Bungee/Velocity apply changes to this server's config. |
Database
| Setting | Default | Description |
|---|---|---|
| Type | H2 |
'MySQL', 'H2' or 'SQLite'
|
| MySQL.Host | localhost |
|
| MySQL.Port | 3306 |
|
| MySQL.User | root |
User for editing the database |
| MySQL.Password | minecraft |
Password of MySQL.User
|
| MySQL.Database | Plan |
Name of the Database to use |
| MySQL.Launch_options | ?rewriteBatchedStatements=true |
Launch options to use |
| MySQL.Max_Lifetime | 25 MINUTES |
How long HikariCP will keep connection in the pool. Reduce this if you are getting connection timeout errors. |
Webserver
| Setting | Default | Description |
|---|---|---|
| Port | 8804 |
Port of the Webserver |
| Alternative_IP.Enabled | false |
Should an alternate address be used for the WebServer links |
| Alternative_IP.Address | your.domain.here:%port% |
Address to use as link in inspect and analyze commands if setting above is enabled. %port% will be replaced with the Port automatically. If you have port-forwarded an alternate address to the webserver port, %port% is not required. |
| Internal_IP | 0.0.0.0 |
Internal InetAddress to start the WebServer on. 0.0.0.0 manages the Internal IP automatically. No need to change unless running in Docker. |
| Public_html_directory | "public_html" |
Html Customization feature that allows hosting any files on the Plan webserver. |
| Cache.Reduced_refresh_barrier | 15 SECONDS | Prevents constant json updates with this threshold |
| Cache.Invalidate_query_results_on_disk_after | 7 DAYS | How long to store query page results so that they can be shared |
| Cache.Invalidate_disk_cache_after | 2 DAYS | How long to store json for the panel data, note that old panel data is deleted when new one is cached. |
| Cache.Invalidate_memory_cache_after | 5 MINUTES | How long to store json for the panel data in memory, same as above applies. |
| Security.SSL_certificate | View the tutorial on setting up a SSL Certificate | |
| Security.Disable_authentication | false |
Disables login if HTTPS is enabled. |
| Security.Disable_registration | false |
Disables user registration page if HTTPS is enabled. |
| Security.Access_log.Print_to_console | false |
Print any incoming request to the console log. |
| Security.Access_log.Remove_logs_after_days | 30 | How long access log is kept in the Plan database. |
| Security.CORS.Allow_origin | '"*"' | Allows other sites to fetch JSON from Plan webserver. |
| Security.Use_X-Forwarded-For_Header | false |
Allows you to use whitelist with reverse-proxy |
| Security.Cookies_expire_after | 2 HOURS | Determine time after login-cookies expire |
| Security.IP_whitelist.Enabled | false |
Enables or disables the IP whitelist for the webserver |
| Security.IP_whitelist.Whitelist | locahost | List of IP addresses to allow accessing the webserver. Supports wildcards, cidr and dynamic dns (see comment above the setting) |
| Disable_Webserver | false |
Disables the WebServer. This is for External WebServer Use |
| External_Webserver_address | https://www.example.address |
Address to give to users when Plan WebServer is disabled. |
Data_gathering
| Setting | Default | Description |
|---|---|---|
| Geolocations | true |
Enable Geolocation gathering |
| Accept_GeoLite2_EULA | false |
Allow downloading GeoLite2 Database (Better for geolocation) |
| Geolocation_Download_URL | "https://geodb.playeranalytics.net/GeoLite2-Country.mmdb" |
Maxmind Geolite2-Country database download location. |
| Ping | true |
Enable ping gathering |
| Disk_space | true |
Enable free disk space gathering |
| Commands.Log_unknown | false |
Log commands that are not registered, e.g. /bremobmreb (Currenly not in use) |
| Commands.Log_aliases_as_main_command | true |
Combines command aliases to the main command, e.g. /i to /give (Currenly not in use) |
| Join_addresses.Enabled | true |
Enable/Disable join address gathering |
| Join_addresses.Preserve_case | false |
Case sensitive join address storage |
| Join_addresses.Preserve_invalid | false |
Keep non IP address or DNS domain join addresses |
| Join_addresses.Filter_out_from_data | - play.example.com |
Hide specific addresses from data (e.g. if cloudflare hidden IP is gathered) |
Time.Delays
-
Unitsupports valuesMILLISECONDS,SECONDS,MINUTES,HOURS,DAYS
| Setting | Default (Unit) | Description |
|---|---|---|
| Ping_server_enable_delay |
300 (SECONDS) |
Delay from server start before Ping is started to be gathered. |
| Ping_player_join_delay |
30 (SECONDS) |
Delay from player login before Ping is started to be gathered. |
| Wait_for_DB_Transactions_on_disable |
20 (SECONDS) |
Maximum time to wait until unfinished transactions are executed when database closes. |
Time.Thresholds
-
Unitsupports valuesMILLISECONDS,SECONDS,MINUTES,HOURS,DAYS
| Setting | Default (Unit) | Description |
|---|---|---|
| AFK_threshold |
3 (MINUTES) |
Idle time before Plan considers a player afk |
| Activity_index.Playtime_threshold |
30 (MINUTES) |
Playtime/Week to be considered Active by Activity Index |
| Remove_inactive_player_data_after |
180 (DAYS) |
How many days player has to not log in to be removed from the database |
| Remove_time_series_data_after |
3650 (DAYS) |
How many days Players online & Performance data is stored |
| Remove_ping_data_after |
14 (DAYS) |
How many days Ping data is stored |
| Remove_disabled_extension_data_after |
2 (DAYS) |
How many days data of disabled Extensions in stored |
Time.Periodic_tasks
-
Unitsupports valuesMILLISECONDS,SECONDS,MINUTES,HOURS,DAYS
| Setting | Default (Unit) | Description |
|---|---|---|
| Check_DB_for_server_config_files_every |
1 (MINUTES) |
How often database is checked for updated config file |
| Extension_data_refresh_every |
1 (HOURS) |
How often server data for DataExtensions is updated |
| Clean_Database_every |
1 (HOURS) |
How often database is cleaned of old data. |
Display_options
| Setting | Default | Description |
|---|---|---|
| Theme | default |
See Themes for more details about this setting |
| Player_head_image_url | "https://crafatar.com/avatars/${playerUUID}?size=120&default=MHF_Steve&overlay" |
Change service for player head images |
| Sessions.Show_on_page | 50 |
How many sessions are visible on a page |
| Sessions.Order_world_pies_by_percentage | false |
By Default WorldPie is ordered alphabetically, colors are still determined alphabetically. |
| Players_table.Show_on_server_page | 2500 |
How many players are visible on /server page Players tab |
| Players_table.Show_on_players_page | 25000 |
How many players are visible on /players page |
| Open_player_links_in_new_tab | false |
Feature switch for old behavior of player links |
| Graphs.Show_gaps_in_data | false |
Displays data gaps in line graphs (Might increase page load time) |
| Graphs.TPS |
18 & 10
|
Thresholds for TPS graph colors |
| Graphs.Disk_space |
500 & 100
|
Thresholds for Disk graph colors |
| Command_colors |
&2, &7, &f
|
Color codes to use for command messages |
Formatting
| Setting | Default | Description |
|---|---|---|
| Decimal_points | '#.##' | How many decimal points should be displayed |
| Time_amount | Time amounts are formatted by replacing the placeholders of these settings. More below. | |
| Dates | Dates are formatted with SimpleDateFormat patterns | |
| Dates.TimeZone | server |
Change time zone used for the web pages, accepts format 'GMT+2' or 'GMT-04:30', 'server' or 'UTC'
|
| Dates.Show_recent_day_names | true | The day in dates is replaced by 'Today', 'Yesterday', 'Friday' for the few most recent days. |
Formatting.Time_amount Examples
Default:
| Time | Formatted |
|---|---|
| 400 days, 12 hours, 30 minutes and 20 seconds | 1 year, 1 month, 5d 12h 30m 20s |
| 400 days | 1 year, 1 month, 5d |
| 12 hours 20 sec. | 12h 20s |
| 0 sec. | 0s |
Extra Zeros
Time_amount:
Year: '1 year, '
Years: '%years% years, '
Month: '1 month, '
Months: '%months% months, '
Day: '1d '
Days: '%days%d '
Hours: '%zero%%hours%:'
Minutes: '%hours%%zero%%minutes%:'
Seconds: '%minutes%%zero%%seconds%'
Zero: '00:00:00'
| Time | Formatted |
|---|---|
| 400 days, 12 hours, 30 minutes and 20 seconds | 1 year, 1 month, 5d 12:30:20 |
| 400 days | 1 year, 1 month, 5d |
| 12 hours 20 sec. | 12:00:20 |
| 30 minutes | 00:30:00 |
| 20 sec. | 00:00:20 |
| 0 sec. | 00:00:00 |
World_aliases
-
World_aliases.ListList of Worlds and the aliases used in graph generation. You can lump worlds together by setting their alias as the same value. -
World_aliases.RegexList of regexes "Alias for world:^abc$" that replace any matching world names with the alias on the left side of:You can use https://regex101.com/ for testing regexes. Any matching worlds will not be added to.Listagain after they're removed.
Export
- See External WebServer Use for more information
Plugins
- If you have third party plugins installed, their analysis settings will be displayed here.
Customized_files
- Related to PageExtension Resource API that allows users to edit web files added to Plan by 3rd party plugins.