update config

This commit is contained in:
Alexander Medvedev 2026-09-05 09:40:41 +02:00
parent d26b7e94ff
commit 091c33d073
22 changed files with 744 additions and 73 deletions

View File

@ -35,15 +35,22 @@ export const en = defineConfig({
items: [ items: [
{ text: "Introduction", link: "/config/introduction" }, { text: "Introduction", link: "/config/introduction" },
{ text: "Basic", link: "/config/basic" }, { text: "Basic", link: "/config/basic" },
{ text: "World", link: "/config/world" },
{ text: "Chat & Anti-Spam", link: "/config/chat" },
{ text: "Commands", link: "/config/commands" },
{ text: "Bedrock & NetherNet", link: "/config/bedrock" },
{ text: "Proxy", link: "/config/proxy" }, { text: "Proxy", link: "/config/proxy" },
{ text: "Authentication", link: "/config/authentication" }, { text: "Authentication", link: "/config/authentication" },
{ text: "Packet Limiter", link: "/config/packet-limiter" },
{ text: "Compression", link: "/config/compression" }, { text: "Compression", link: "/config/compression" },
{ text: "Resource Pack", link: "/config/resource-pack" }, { text: "Resource Pack", link: "/config/resource-pack" },
{ text: "Commands", link: "/config/commands" }, { text: "Plugins", link: "/config/plugins" },
{ text: "RCON", link: "/config/rcon" }, { text: "Server Links", link: "/config/server-links" },
{ text: "PVP", link: "/config/pvp" }, { text: "Player Data", link: "/config/player-data" },
{ text: "Logging", link: "/config/logging" }, { text: "Logging", link: "/config/logging" },
{ text: "Query", link: "/config/query" }, { text: "Query", link: "/config/query" },
{ text: "RCON", link: "/config/rcon" },
{ text: "PVP", link: "/config/pvp" },
{ text: "LAN Broadcast", link: "/config/lan-broadcast" }, { text: "LAN Broadcast", link: "/config/lan-broadcast" },
], ],
}, },

View File

@ -9,7 +9,7 @@ Die Adresse, an die der Server gebunden wird.
:::code-group :::code-group
```toml ```toml
seed = "1785537519969227430" seed = "1790155153199293024"
default_difficulty = "Normal" default_difficulty = "Normal"
op_permission_level = 4 op_permission_level = 4
allow_nether = true allow_nether = true
@ -27,9 +27,13 @@ enforce_whitelist = false
[logging] [logging]
enabled = true enabled = true
threads = true level = "info"
threads = false
thread_ids = false
target = false
color = true color = true
timestamp = true timestamp = true
timestamp_format = "[hour]:[minute]:[second]"
file = "latest.log" file = "latest.log"
[resource_pack.java] [resource_pack.java]
@ -46,7 +50,7 @@ packs = []
[world] [world]
lighting = "default" lighting = "default"
autosave_ticks = 0 autosave_ticks = 6000
[world.chunk] [world.chunk]
type = "anvil" type = "anvil"
@ -57,7 +61,7 @@ algorithm = "LZ4"
level = 6 level = 6
[networking.query] [networking.query]
enabled = true enabled = false
address = "0.0.0.0:25565" address = "0.0.0.0:25565"
[networking.rcon] [networking.rcon]
@ -81,6 +85,7 @@ secret = ""
[networking.proxy.bungeecord] [networking.proxy.bungeecord]
enabled = false enabled = false
secret = ""
[networking.lan_broadcast] [networking.lan_broadcast]
enabled = false enabled = false
@ -93,6 +98,7 @@ online_mode = true
max_players = 1000 max_players = 1000
view_distance = 16 view_distance = 16
simulation_distance = 10 simulation_distance = 10
keep_alive_time = 15
motd = "A blazingly fast Pumpkin server!" motd = "A blazingly fast Pumpkin server!"
[networking.java.compression] [networking.java.compression]
@ -102,6 +108,9 @@ level = 4
[networking.java.authentication] [networking.java.authentication]
enabled = true enabled = true
fallbacks = []
profile_by_name_fallbacks = []
profile_by_uuid_fallbacks = []
connect_timeout = 5000 connect_timeout = 5000
read_timeout = 5000 read_timeout = 5000
prevent_proxy_connections = false prevent_proxy_connections = false
@ -120,15 +129,22 @@ skin = true
cape = true cape = true
elytra = true elytra = true
[networking.java.packet_limiter]
enabled = true
max_packet_rate = 500.0
burst_capacity = 500.0
kick_message = "Kicked for spamming packets"
[networking.bedrock] [networking.bedrock]
enabled = true enabled = true
address = "0.0.0.0:19132"
encryption = true
online_mode = true online_mode = true
max_players = 1000 max_players = 1000
view_distance = 16 view_distance = 16
simulation_distance = 10 simulation_distance = 10
motd = "A blazingly fast Pumpkin server!" motd = "A blazingly fast Pumpkin server!"
username_prefix = ""
replace_username_spaces = true
chunk_caching = true
[networking.bedrock.compression] [networking.bedrock.compression]
enabled = true enabled = true
@ -140,6 +156,18 @@ enabled = true
connect_timeout = 5000 connect_timeout = 5000
read_timeout = 5000 read_timeout = 5000
[networking.bedrock.nethernet]
enabled = true
address = "0.0.0.0:19132"
identity_key = "nethernet-key.der"
stun_servers = []
[networking.bedrock.packet_limiter]
enabled = true
max_packet_rate = 500.0
burst_capacity = 500.0
kick_message = "Kicked for spamming packets"
[commands] [commands]
use_console = true use_console = true
use_tty = true use_tty = true
@ -147,9 +175,18 @@ log_console = true
broadcast_console_to_ops = true broadcast_console_to_ops = true
default_op_level = 0 default_op_level = 0
[commands.overrides]
[chat] [chat]
format = "<{DISPLAYNAME}> {MESSAGE}" format = "<{DISPLAYNAME}> {MESSAGE}"
[chat.anti_spam]
enabled = true
spam_threshold = 200
message_cost = 20
decay_per_tick = 1
ops_bypass = true
[pvp] [pvp]
enabled = true enabled = true
hurt_animation = true hurt_animation = true
@ -182,7 +219,17 @@ april_fools = true
send_recipes = true send_recipes = true
[plugins] [plugins]
enabled = true
hot_reload = false
ask_permission_confirmation = true
allow_unsigned = true
allowed_permissions = []
blocked_permissions = [] blocked_permissions = []
inherit_env = false
loopback_only = false
verify_signatures = true
[plugins.overrides]
[advancement] [advancement]
save_advancements = true save_advancements = true

View File

@ -9,6 +9,9 @@ Pumpkin verifies accounts with Mojang's session servers to ensure players use le
```toml [pumpkin.toml] ```toml [pumpkin.toml]
[networking.java.authentication] [networking.java.authentication]
enabled = true enabled = true
fallbacks = []
profile_by_name_fallbacks = []
profile_by_uuid_fallbacks = []
connect_timeout = 5000 connect_timeout = 5000
read_timeout = 5000 read_timeout = 5000
prevent_proxy_connections = false prevent_proxy_connections = false
@ -32,24 +35,32 @@ elytra = true
### Configuration Options ### Configuration Options
- **`enabled`**: Enables online authentication for Java clients. - **`enabled`**: Enables online authentication for Java clients (default: `true`).
- **`connect_timeout`**: Connection timeout in milliseconds when contacting auth servers. - **`url`**: (Optional) Custom authentication URL to verify join requests (e.g., custom auth servers like Drasl). Supports `{username}` and `{server_hash}` parameters.
- **`read_timeout`**: Read timeout in milliseconds when contacting auth servers. - **`fallbacks`**: List of fallback authentication URLs contacted if the primary/official session server is unreachable.
- **`prevent_proxy_connections`**: Block proxy/VPN connections during authentication. - **`profile_by_name_url`**: (Optional) Custom URL template to fetch player profiles by username (`{username}`).
- **`profile_by_name_fallbacks`**: Fallback URLs for looking up player profiles by username.
- **`profile_by_uuid_url`**: (Optional) Custom URL template to fetch player profiles by UUID (`{uuid}`).
- **`profile_by_uuid_fallbacks`**: Fallback URLs for looking up player profiles by UUID.
- **`connect_timeout`**: Connection timeout in milliseconds when contacting authentication servers (default: `5000`).
- **`read_timeout`**: Read timeout in milliseconds when contacting authentication servers (default: `5000`).
- **`prevent_proxy_connections`**: Whether to block connections coming from proxies or VPNs during Mojang authentication (default: `false`).
- **`prevent_proxy_connection_auth_url`**: (Optional) Custom authentication endpoint used specifically when proxy prevention is enabled.
- **`services_url`**: (Optional) Public Minecraft services URL (used for player certificates and keys).
### Player Profile Settings ### Player Profile Settings
- **`allow_banned_players`**: Allow players flagged/banned by Mojang to connect. - **`allow_banned_players`**: Whether to allow players flagged or banned by Mojang to connect (default: `false`).
- **`allowed_actions`**: Allowed actions when banned players connect (`"FORCED_NAME_CHANGE"`, `"USING_BANNED_SKIN"`). - **`allowed_actions`**: Profile actions permitted when flagged players connect (e.g. `["FORCED_NAME_CHANGE", "USING_BANNED_SKIN"]`).
### Textures Settings ### Textures Settings
- **`enabled`**: Enables player texture validation (skins, capes, elytras). - **`enabled`**: Enables fetching and validating player skins, capes, and elytra textures (default: `true`).
- **`allowed_url_schemes`**: URL schemes permitted for texture downloads (`["http", "https"]`). - **`allowed_url_schemes`**: URL schemes permitted for texture downloads (default: `["http", "https"]`).
- **`allowed_url_domains`**: Domains permitted for texture downloads (`[".minecraft.net", ".mojang.com"]`). - **`allowed_url_domains`**: Domains permitted for texture downloads (default: `[".minecraft.net", ".mojang.com"]`).
- **`types.skin`**: Enable custom skins. - **`types.skin`**: Enable custom player skins (default: `true`).
- **`types.cape`**: Enable capes. - **`types.cape`**: Enable player capes (default: `true`).
- **`types.elytra`**: Enable elytra textures. - **`types.elytra`**: Enable player elytra textures (default: `true`).
## Bedrock Edition Authentication ## Bedrock Edition Authentication
@ -63,3 +74,10 @@ read_timeout = 5000
``` ```
::: :::
### Configuration Options
- **`enabled`**: Whether Xbox Live authentication is required for Bedrock clients (default: `true`).
- **`url`**: (Optional) Custom authentication or discovery endpoint URL.
- **`connect_timeout`**: Connection timeout in milliseconds (default: `5000`).
- **`read_timeout`**: Read timeout in milliseconds (default: `5000`).

View File

@ -5,7 +5,7 @@ Pumpkin uses a single `pumpkin.toml` file to configure all aspects of the server
## Complete Default `pumpkin.toml` ## Complete Default `pumpkin.toml`
```toml ```toml
seed = "1785537519969227430" seed = "1790155153199293024"
default_difficulty = "Normal" default_difficulty = "Normal"
op_permission_level = 4 op_permission_level = 4
allow_nether = true allow_nether = true
@ -23,9 +23,13 @@ enforce_whitelist = false
[logging] [logging]
enabled = true enabled = true
threads = true level = "info"
threads = false
thread_ids = false
target = false
color = true color = true
timestamp = true timestamp = true
timestamp_format = "[hour]:[minute]:[second]"
file = "latest.log" file = "latest.log"
[resource_pack.java] [resource_pack.java]
@ -42,7 +46,7 @@ packs = []
[world] [world]
lighting = "default" lighting = "default"
autosave_ticks = 0 autosave_ticks = 6000
[world.chunk] [world.chunk]
type = "anvil" type = "anvil"
@ -53,7 +57,7 @@ algorithm = "LZ4"
level = 6 level = 6
[networking.query] [networking.query]
enabled = true enabled = false
address = "0.0.0.0:25565" address = "0.0.0.0:25565"
[networking.rcon] [networking.rcon]
@ -77,6 +81,7 @@ secret = ""
[networking.proxy.bungeecord] [networking.proxy.bungeecord]
enabled = false enabled = false
secret = ""
[networking.lan_broadcast] [networking.lan_broadcast]
enabled = false enabled = false
@ -89,6 +94,7 @@ online_mode = true
max_players = 1000 max_players = 1000
view_distance = 16 view_distance = 16
simulation_distance = 10 simulation_distance = 10
keep_alive_time = 15
motd = "A blazingly fast Pumpkin server!" motd = "A blazingly fast Pumpkin server!"
[networking.java.compression] [networking.java.compression]
@ -98,6 +104,9 @@ level = 4
[networking.java.authentication] [networking.java.authentication]
enabled = true enabled = true
fallbacks = []
profile_by_name_fallbacks = []
profile_by_uuid_fallbacks = []
connect_timeout = 5000 connect_timeout = 5000
read_timeout = 5000 read_timeout = 5000
prevent_proxy_connections = false prevent_proxy_connections = false
@ -116,15 +125,22 @@ skin = true
cape = true cape = true
elytra = true elytra = true
[networking.java.packet_limiter]
enabled = true
max_packet_rate = 500.0
burst_capacity = 500.0
kick_message = "Kicked for spamming packets"
[networking.bedrock] [networking.bedrock]
enabled = true enabled = true
address = "0.0.0.0:19132"
encryption = true
online_mode = true online_mode = true
max_players = 1000 max_players = 1000
view_distance = 16 view_distance = 16
simulation_distance = 10 simulation_distance = 10
motd = "A blazingly fast Pumpkin server!" motd = "A blazingly fast Pumpkin server!"
username_prefix = ""
replace_username_spaces = true
chunk_caching = true
[networking.bedrock.compression] [networking.bedrock.compression]
enabled = true enabled = true
@ -136,6 +152,18 @@ enabled = true
connect_timeout = 5000 connect_timeout = 5000
read_timeout = 5000 read_timeout = 5000
[networking.bedrock.nethernet]
enabled = true
address = "0.0.0.0:19132"
identity_key = "nethernet-key.der"
stun_servers = []
[networking.bedrock.packet_limiter]
enabled = true
max_packet_rate = 500.0
burst_capacity = 500.0
kick_message = "Kicked for spamming packets"
[commands] [commands]
use_console = true use_console = true
use_tty = true use_tty = true
@ -143,9 +171,18 @@ log_console = true
broadcast_console_to_ops = true broadcast_console_to_ops = true
default_op_level = 0 default_op_level = 0
[commands.overrides]
[chat] [chat]
format = "<{DISPLAYNAME}> {MESSAGE}" format = "<{DISPLAYNAME}> {MESSAGE}"
[chat.anti_spam]
enabled = true
spam_threshold = 200
message_cost = 20
decay_per_tick = 1
ops_bypass = true
[pvp] [pvp]
enabled = true enabled = true
hurt_animation = true hurt_animation = true
@ -178,7 +215,17 @@ april_fools = true
send_recipes = true send_recipes = true
[plugins] [plugins]
enabled = true
hot_reload = false
ask_permission_confirmation = true
allow_unsigned = true
allowed_permissions = []
blocked_permissions = [] blocked_permissions = []
inherit_env = false
loopback_only = false
verify_signatures = true
[plugins.overrides]
[advancement] [advancement]
save_advancements = true save_advancements = true
@ -199,6 +246,7 @@ save_advancements = true
- **`force_gamemode`**: Force players to join in the default gamemode. - **`force_gamemode`**: Force players to join in the default gamemode.
- **`scrub_ips`**: Anonymize player IP addresses in logs. - **`scrub_ips`**: Anonymize player IP addresses in logs.
- **`use_favicon`**: Enable server icon (`icon.png`). - **`use_favicon`**: Enable server icon (`icon.png`).
- **`favicon_path`**: Optional file path to a custom server favicon icon.
- **`default_level_name`**: Name of the main world directory (default: `"world"`). - **`default_level_name`**: Name of the main world directory (default: `"world"`).
- **`allow_chat_reports`**: Enable signed chat reporting. - **`allow_chat_reports`**: Enable signed chat reporting.
- **`white_list`**: Enable server whitelist. - **`white_list`**: Enable server whitelist.

50
docs/en/config/bedrock.md Normal file
View File

@ -0,0 +1,50 @@
# Bedrock & NetherNet
Pumpkin includes native support for Minecraft Bedrock Edition clients, including NetherNet WebRTC/ICE transport and username customization.
## Configuration
:::code-group
```toml [pumpkin.toml]
[networking.bedrock]
enabled = true
online_mode = true
max_players = 1000
view_distance = 16
simulation_distance = 10
motd = "A blazingly fast Pumpkin server!"
username_prefix = ""
replace_username_spaces = true
chunk_caching = true
[networking.bedrock.nethernet]
enabled = true
address = "0.0.0.0:19132"
identity_key = "nethernet-key.der"
stun_servers = []
```
:::
### Bedrock Options
- **`enabled`**: Whether connections from Bedrock Edition clients are accepted (default: `true`).
- **`online_mode`**: Whether Xbox Live authentication is enforced for Bedrock players (default: `true`).
- **`max_players`**: Maximum number of concurrent Bedrock players (`0` disables the limit, default: `1000`).
- **`view_distance`**: Maximum chunk view distance sent to Bedrock clients (default: `16`).
- **`simulation_distance`**: Maximum tick simulation distance for Bedrock players (default: `10`).
- **`motd`**: Message of the Day displayed in the Bedrock server list.
- **`username_prefix`**: Optional prefix prepended to Bedrock player gamertags (e.g. `"."` or `"*"`), preventing name collisions with Java Edition accounts on cross-play servers (default: `""`).
- **`replace_username_spaces`**: Whether spaces in Bedrock gamertags are automatically replaced with underscores `_`, ensuring player names can be referenced in Minecraft slash commands (default: `true`).
- **`chunk_caching`**: Whether client-side chunk blob caching is enabled to conserve network bandwidth (default: `true`).
### NetherNet Transport Settings
NetherNet is Minecraft Bedrock's modern WebRTC/ICE networking transport:
- **`enabled`**: Whether clients may connect using NetherNet (default: `true`).
- **`address`**: Network socket address for TCP signaling and UDP ICE multiplexing (default: `"0.0.0.0:19132"`).
- **`external_ip`**: Optional public IP address advertised when the server is hosted behind NAT.
- **`identity_key`**: File path to the PKCS#8 P-384 private identity key file retained across restarts for client Trust On First Use (TOFU) (default: `"nethernet-key.der"`).
- **`stun_servers`**: Optional list of STUN server URLs for ICE NAT traversal.

39
docs/en/config/chat.md Normal file
View File

@ -0,0 +1,39 @@
# Chat & Anti-Spam
Pumpkin provides customizable in-game chat formatting and built-in anti-spam protection under `[chat]` in `pumpkin.toml`.
## Configuration
:::code-group
```toml [pumpkin.toml]
[chat]
format = "<{DISPLAYNAME}> {MESSAGE}"
[chat.anti_spam]
enabled = true
spam_threshold = 200
message_cost = 20
decay_per_tick = 1
ops_bypass = true
```
:::
### Chat Settings
- **`format`**: The chat message format string (default: `"<{DISPLAYNAME}> {MESSAGE}"`).
- `{DISPLAYNAME}`: Player display name.
- `{MESSAGE}`: Chat message text.
> [!NOTE]
> Custom chat formatting does not apply when secure chat reporting (`allow_chat_reports = true`) is enabled.
### Anti-Spam Protection
Pumpkin implements a leaky-bucket spam counter to protect the server from spamming players and bot floods:
- **`enabled`**: Whether anti-spam protection is active (default: `true`).
- **`spam_threshold`**: The spam counter threshold in ticks at which a player will be kicked (default: `200` ticks).
- **`message_cost`**: The amount added to the player's spam counter for each chat message or command sent (default: `20` ticks).
- **`decay_per_tick`**: The amount decayed from the player's spam counter on each server tick (default: `1` tick).
- **`ops_bypass`**: Whether server operators bypass anti-spam checks (default: `true`).

View File

@ -13,14 +13,36 @@ use_tty = true
log_console = true log_console = true
broadcast_console_to_ops = true broadcast_console_to_ops = true
default_op_level = 0 default_op_level = 0
# Optional per-command overrides
[commands.overrides.gamemode]
permission_level = 4
[commands.overrides.tp]
enabled = false
``` ```
::: :::
### Configuration Options ### Configuration Options
- **`use_console`**: Whether commands input via console are accepted. - **`use_console`**: Whether commands from the console are accepted.
- **`use_tty`**: Whether TTY support is enabled for the interactive console. - **`use_tty`**: Whether TTY support (rustyline) is enabled for interactive console input.
- **`log_console`**: Whether commands executed by players are logged to the console. - **`log_console`**: Whether commands executed by players are logged to the console.
- **`broadcast_console_to_ops`**: Broadcast console command outputs to server operators. - **`broadcast_console_to_ops`**: Whether console and RCON command output is broadcast to online operators (matches vanilla `broadcast-console-to-ops`).
- **`default_op_level`**: Default OP level assigned (0 to 4). - **`default_op_level`**: The OP permission level assigned to non-operators (0 to 4, default: `0`).
## Command Overrides
You can customize permissions or completely disable individual commands using `[commands.overrides.<command>]`. The key is named after the command without the leading slash (e.g. `gamemode`, `tp`).
### Override Options
- **`enabled`**: Whether the command is enabled (default: `true`). When set to `false`, the command is completely hidden: it will not run, will not appear in `/help`, and will not show up in tab completion. Players attempting to run it will receive an unknown command message.
- **`permission_level`**: The minimum permission level required to run the command:
- `0`: Everyone can use it.
- `2`: Normal operators (typical cheat commands like `/gamemode`).
- `3`: Admins (moderation commands like `/kick`, `/ban`).
- `4`: Server owner (full server management like `/stop`, `/op`).
Leave `permission_level` omitted to keep the command's default permission level.

View File

@ -50,5 +50,5 @@ level = 6
::: :::
- **`algorithm`**: Compression algorithm used for chunk data (e.g. `"LZ4"`). - **`algorithm`**: Compression algorithm used for chunk data. Supported options are `"LZ4"`, `"ZLib"`, `"GZip"`, and `"Custom"` (default: `"LZ4"`).
- **`level`**: Compression level for chunk data. - **`level`**: Compression level for chunk data (default: `6`).

View File

@ -9,10 +9,14 @@ Pumpkin can broadcast server announcements on the local network so LAN clients c
```toml [pumpkin.toml] ```toml [pumpkin.toml]
[networking.lan_broadcast] [networking.lan_broadcast]
enabled = false enabled = false
# motd = "My Custom LAN Server"
# port = 25565
``` ```
::: :::
### Configuration Options ### Configuration Options
- **`enabled`**: Enables or disables broadcasting to local network clients. - **`enabled`**: Enables or disables broadcasting server presence on the local network (default: `false`).
- **`motd`**: (Optional) Custom one-line Message of the Day shown in LAN client discovery. If omitted, defaults to the server's Java MOTD with newlines removed.
- **`port`**: (Optional) Port advertised in the LAN broadcast. Useful for port forwarding or predictable ports in containerized environments like Docker.

View File

@ -9,9 +9,13 @@ Pumpkin provides customizable logging options in `pumpkin.toml`.
```toml [pumpkin.toml] ```toml [pumpkin.toml]
[logging] [logging]
enabled = true enabled = true
threads = true level = "info"
threads = false
thread_ids = false
target = false
color = true color = true
timestamp = true timestamp = true
timestamp_format = "[hour]:[minute]:[second]"
file = "latest.log" file = "latest.log"
``` ```
@ -19,8 +23,12 @@ file = "latest.log"
### Configuration Options ### Configuration Options
- **`enabled`**: Master switch to enable or disable logging. - **`enabled`**: Master switch to enable or disable server logging (default: `true`).
- **`threads`**: Include thread names/IDs in log output. - **`level`**: Minimum log level for console and file output. Available levels are `"trace"`, `"debug"`, `"info"`, `"warn"`, `"error"`, and `"off"` (default: `"info"`). Can also be overridden with the `RUST_LOG` environment variable.
- **`color`**: Enable ANSI color output in console logs. - **`threads`**: Whether to include thread names in log messages (default: `false`).
- **`timestamp`**: Include timestamps in log entries. - **`thread_ids`**: Whether to include numeric thread IDs in log messages (default: `false`).
- **`file`**: Path to the log file (e.g. `"latest.log"`). - **`target`**: Whether to include module and component targets in log entries (default: `false`).
- **`color`**: Whether to enable ANSI colored log output in the console (default: `true`).
- **`timestamp`**: Whether to include timestamps in log entries (default: `true`).
- **`timestamp_format`**: Timestamp format string using `time` format description syntax (default: `"[hour]:[minute]:[second]"`).
- **`file`**: File path to write log output to (default: `"latest.log"`).

View File

@ -0,0 +1,30 @@
# Packet Limiter
Pumpkin features a built-in packet rate limiter to protect the server from packet flooding, spam attacks, and client-side exploits. Packet rate limits can be configured independently for Java Edition and Bedrock Edition clients.
## Configuration
:::code-group
```toml [pumpkin.toml]
[networking.java.packet_limiter]
enabled = true
max_packet_rate = 500.0
burst_capacity = 500.0
kick_message = "Kicked for spamming packets"
[networking.bedrock.packet_limiter]
enabled = true
max_packet_rate = 500.0
burst_capacity = 500.0
kick_message = "Kicked for spamming packets"
```
:::
### Configuration Options
- **`enabled`**: Whether the packet rate limiter is enabled for this client edition (default: `true`).
- **`max_packet_rate`**: Maximum allowed incoming packets per second per client connection (default: `500.0`). Set to `<= 0.0` to disable the rate limit without disabling the limiter module.
- **`burst_capacity`**: Token bucket burst allowance capacity for brief spikes in client packets (default: `500.0`).
- **`kick_message`**: The disconnection message displayed to the player when their connection exceeds the packet limit (default: `"Kicked for spamming packets"`).

View File

@ -0,0 +1,41 @@
# Player Data & Gameplay
Settings for saving persistent player data, advancements, recipe synchronization, and fun seasonal features are configured in `pumpkin.toml`.
## Configuration
:::code-group
```toml [pumpkin.toml]
[player_data]
save_player_data = true
save_player_cron_interval = 300
[advancement]
save_advancements = true
[recipe]
send_recipes = true
[fun]
april_fools = true
```
:::
### Player Data
- **`save_player_data`**: Whether persistent player data (inventory, location, health) is saved to disk (default: `true`).
- **`save_player_cron_interval`**: Time interval in seconds between automatic periodic saves of online player data (default: `300` seconds / 5 minutes).
### Advancements
- **`save_advancements`**: Whether player advancement progress is tracked and saved to disk (default: `true`).
### Recipes
- **`send_recipes`**: Whether crafting and smelting recipes are synchronized with connected clients, enabling the client-side recipe book (default: `true`).
### Fun Features
- **`april_fools`**: Whether fun and seasonal April Fools easter eggs and features are enabled (default: `true`).

59
docs/en/config/plugins.md Normal file
View File

@ -0,0 +1,59 @@
# Plugins
Pumpkin provides a WebAssembly (WASM) plugin runtime with capability-based security. Plugin behavior, signature verification, and permissions are configured under `[plugins]` in `pumpkin.toml`.
## Configuration
:::code-group
```toml [pumpkin.toml]
[plugins]
enabled = true
hot_reload = false
ask_permission_confirmation = true
allow_unsigned = true
allowed_permissions = []
blocked_permissions = []
inherit_env = false
loopback_only = false
verify_signatures = true
# Optional per-plugin overrides
[plugins.overrides.my_plugin]
enabled = true
allow_unsigned = true
max_memory_mb = 128
allowed_permissions = ["fs:read:data"]
blocked_permissions = ["network:outbound"]
loopback_only = true
[plugins.overrides.my_plugin.environment]
API_KEY = "example_secret"
```
:::
### Global Plugin Settings
- **`enabled`**: Master switch to enable or disable the plugin runtime (default: `true`).
- **`hot_reload`**: Watch the `plugins/` directory and automatically reload modified plugins at runtime (default: `false`).
- **`ask_permission_confirmation`**: Prompt in the server console when a plugin requests unapproved capabilities/permissions (default: `true`).
- **`allow_unsigned`**: Allow loading unsigned WASM plugins (default: `true`).
- **`allowed_permissions`**: List of permissions globally pre-approved for all plugins, bypassing interactive console prompts (default: `[]`).
- **`blocked_permissions`**: List of permissions globally denied to all plugins (default: `[]`).
- **`inherit_env`**: Whether host environment variables are inherited into plugin WASI sandboxes by default (default: `false`).
- **`loopback_only`**: Whether outbound network connections from plugins are restricted to `127.0.0.1` / localhost (default: `false`).
- **`max_memory_mb`**: (Optional) Global maximum memory limit in megabytes (MB) per plugin instance.
- **`verify_signatures`**: Whether Pumpkin verifies cryptographic signatures on WASM plugins before loading (default: `true`).
### Per-Plugin Overrides
Fine-tune permissions and environment variables for specific plugins under `[plugins.overrides.<plugin_name>]`:
- **`enabled`**: Enable or disable this specific plugin (default: `true`).
- **`allow_unsigned`**: Override whether this specific plugin can run unsigned (`true`/`false`).
- **`max_memory_mb`**: Maximum memory limit in MB allocated specifically for this plugin.
- **`allowed_permissions`**: Pre-approved permissions for this plugin.
- **`blocked_permissions`**: Explicitly blocked permissions for this plugin.
- **`loopback_only`**: Override loopback network restriction for this plugin.
- **`environment`**: Table of custom environment variables passed directly into the plugin's WASI environment.

View File

@ -16,6 +16,7 @@ secret = ""
[networking.proxy.bungeecord] [networking.proxy.bungeecord]
enabled = false enabled = false
secret = ""
``` ```
::: :::
@ -23,6 +24,7 @@ enabled = false
### Configuration Options ### Configuration Options
- **`[networking.proxy].enabled`**: Master switch to enable proxy support. - **`[networking.proxy].enabled`**: Master switch to enable proxy support.
- **`[networking.proxy.velocity].enabled`**: Enables Velocity forwarding protocol. - **`[networking.proxy.velocity].enabled`**: Enables Velocity modern forwarding protocol.
- **`[networking.proxy.velocity].secret`**: Forwarding secret matching Velocity proxy configuration. - **`[networking.proxy.velocity].secret`**: Forwarding secret matching the Velocity proxy configuration.
- **`[networking.proxy.bungeecord].enabled`**: Enables BungeeCord forwarding protocol. - **`[networking.proxy.bungeecord].enabled`**: Enables BungeeCord player info forwarding protocol.
- **`[networking.proxy.bungeecord].secret`**: Optional shared secret for authenticating connections from the BungeeCord proxy via BungeeGuard (`bungeeguard-token`). When set, incoming connections must provide this token, preventing players from bypassing the proxy to connect directly.

View File

@ -8,7 +8,7 @@ The Query protocol allows external applications (such as server lists or monitor
```toml [pumpkin.toml] ```toml [pumpkin.toml]
[networking.query] [networking.query]
enabled = true enabled = false
address = "0.0.0.0:25565" address = "0.0.0.0:25565"
``` ```
@ -16,5 +16,5 @@ address = "0.0.0.0:25565"
### Configuration Options ### Configuration Options
- **`enabled`**: Enables or disables the Query listener. - **`enabled`**: Enables or disables the GS4 Query listener (default: `false`).
- **`address`**: Network address and port to bind the Query listener to. - **`address`**: Network address and port to bind the Query listener to (default: `"0.0.0.0:25565"`).

View File

@ -33,7 +33,9 @@ force = false
[resource_pack.bedrock] [resource_pack.bedrock]
enabled = false enabled = false
force = false force = false
packs = [] packs = [
# { uuid = "00000000-0000-0000-0000-000000000000", version = "1.0.0", size = 1048576, download_url = "https://example.com/pack.mcpack" }
]
``` ```
::: :::
@ -41,5 +43,20 @@ packs = []
### Options ### Options
- **`enabled`**: Enable resource packs for Bedrock clients. - **`enabled`**: Enable resource packs for Bedrock clients.
- **`force`**: Force Bedrock clients to download required packs. - **`force`**: Force Bedrock clients to download required packs before joining.
- **`packs`**: Array of Bedrock resource pack definitions. - **`packs`**: Array of Bedrock resource pack definitions.
### Bedrock Pack Fields
Each pack in the `packs` array accepts the following properties:
- **`uuid`**: (Required) Unique identifier (UUID) for the Bedrock pack matching its `manifest.json`.
- **`version`**: (Required) Version string of the pack (e.g. `"1.0.0"`).
- **`size`**: (Required) File size of the pack archive in bytes.
- **`download_url`**: (Required) Direct download URL for the `.mcpack` or archive file.
- **`content_key`**: (Optional) Decryption key for encrypted marketplace/custom packs.
- **`sub_pack_name`**: (Optional) Sub-pack name within the pack to activate.
- **`content_id`**: (Optional) Content identifier string.
- **`has_scripts`**: (Optional) Whether the pack contains client scripts (`true`/`false`, default: `false`).
- **`addon_pack`**: (Optional) Whether the pack is marked as an addon pack (default: `false`).
- **`rtx_enabled`**: (Optional) Whether ray tracing / RTX features are enabled for the pack (default: `false`).

View File

@ -0,0 +1,50 @@
# Server Links
Minecraft clients (since 1.21) can display clickable server links in the pause menu and game menus. Configure standard and custom server links under `[server_links]` in `pumpkin.toml`.
## Configuration
:::code-group
```toml [pumpkin.toml]
[server_links]
enabled = true
bug_report = "https://github.com/Pumpkin-MC/Pumpkin/issues"
support = ""
status = ""
feedback = ""
community = ""
website = ""
forums = ""
news = ""
announcements = ""
[server_links.custom]
# "Store" = "https://store.example.com"
# "Discord" = "https://discord.gg/example"
```
:::
### Configuration Options
- **`enabled`**: Master switch to enable broadcasting server links to connecting clients (default: `true`).
- **`bug_report`**: Link to server or project bug tracker (default: `"https://github.com/Pumpkin-MC/Pumpkin/issues"`).
- **`support`**: Link to technical support or help desk.
- **`status`**: Link to server uptime/status page.
- **`feedback`**: Link to player feedback or suggestion page.
- **`community`**: Link to community forums or group.
- **`website`**: Link to official website.
- **`forums`**: Link to discussion forums.
- **`news`**: Link to server blog or news page.
- **`announcements`**: Link to announcements page.
### Custom Links
Define arbitrary key-value links shown in client menus under `[server_links.custom]`:
```toml
[server_links.custom]
"Store" = "https://store.example.com"
"Discord" = "https://discord.gg/example"
```

41
docs/en/config/world.md Normal file
View File

@ -0,0 +1,41 @@
# World
Pumpkin allows fine-tuning world storage formats, autosave intervals, and lighting modes under `[world]` in `pumpkin.toml`.
## Configuration
:::code-group
```toml [pumpkin.toml]
[world]
lighting = "default"
autosave_ticks = 6000
[world.chunk]
type = "anvil"
write_in_place = false
[world.chunk.compression]
algorithm = "LZ4"
level = 6
```
:::
### World Settings
- **`lighting`**: Lighting engine propagation calculation mode.
- `"default"`: Standard Vanilla Minecraft light propagation.
- `"full"`: Full skylight everywhere without shadows.
- `"dark"`: Completely dark lighting everywhere (zero light).
- **`autosave_ticks`**: Number of server ticks between automatic world saves (default: `6000`, equivalent to 5 minutes at 20 TPS). Setting this to `0` disables world autosaving.
### Chunk Storage Settings
- **`type`**: The chunk storage format to use:
- `"anvil"`: Standard Minecraft Anvil region file format (`.mca`).
- `"linear"`: Linear region storage format using fast compression for a smaller disk footprint.
- `"pump"`: Pumpkin's native optimized world format.
- **`write_in_place`**: Whether chunks should be rewritten in place within existing region files rather than reallocating free chunks (default: `false`).
- **`compression.algorithm`**: Compression algorithm used for chunk data (`"LZ4"`, `"ZLib"`, `"GZip"`, `"Custom"`).
- **`compression.level`**: Compression level for chunk storage (default: `6`).

View File

@ -8,7 +8,7 @@ Het adres om de server aan te binden.
:::code-group :::code-group
```toml ```toml
seed = "1785537519969227430" seed = "1790155153199293024"
default_difficulty = "Normal" default_difficulty = "Normal"
op_permission_level = 4 op_permission_level = 4
allow_nether = true allow_nether = true
@ -26,9 +26,13 @@ enforce_whitelist = false
[logging] [logging]
enabled = true enabled = true
threads = true level = "info"
threads = false
thread_ids = false
target = false
color = true color = true
timestamp = true timestamp = true
timestamp_format = "[hour]:[minute]:[second]"
file = "latest.log" file = "latest.log"
[resource_pack.java] [resource_pack.java]
@ -45,7 +49,7 @@ packs = []
[world] [world]
lighting = "default" lighting = "default"
autosave_ticks = 0 autosave_ticks = 6000
[world.chunk] [world.chunk]
type = "anvil" type = "anvil"
@ -56,7 +60,7 @@ algorithm = "LZ4"
level = 6 level = 6
[networking.query] [networking.query]
enabled = true enabled = false
address = "0.0.0.0:25565" address = "0.0.0.0:25565"
[networking.rcon] [networking.rcon]
@ -80,6 +84,7 @@ secret = ""
[networking.proxy.bungeecord] [networking.proxy.bungeecord]
enabled = false enabled = false
secret = ""
[networking.lan_broadcast] [networking.lan_broadcast]
enabled = false enabled = false
@ -92,6 +97,7 @@ online_mode = true
max_players = 1000 max_players = 1000
view_distance = 16 view_distance = 16
simulation_distance = 10 simulation_distance = 10
keep_alive_time = 15
motd = "A blazingly fast Pumpkin server!" motd = "A blazingly fast Pumpkin server!"
[networking.java.compression] [networking.java.compression]
@ -101,6 +107,9 @@ level = 4
[networking.java.authentication] [networking.java.authentication]
enabled = true enabled = true
fallbacks = []
profile_by_name_fallbacks = []
profile_by_uuid_fallbacks = []
connect_timeout = 5000 connect_timeout = 5000
read_timeout = 5000 read_timeout = 5000
prevent_proxy_connections = false prevent_proxy_connections = false
@ -119,15 +128,22 @@ skin = true
cape = true cape = true
elytra = true elytra = true
[networking.java.packet_limiter]
enabled = true
max_packet_rate = 500.0
burst_capacity = 500.0
kick_message = "Kicked for spamming packets"
[networking.bedrock] [networking.bedrock]
enabled = true enabled = true
address = "0.0.0.0:19132"
encryption = true
online_mode = true online_mode = true
max_players = 1000 max_players = 1000
view_distance = 16 view_distance = 16
simulation_distance = 10 simulation_distance = 10
motd = "A blazingly fast Pumpkin server!" motd = "A blazingly fast Pumpkin server!"
username_prefix = ""
replace_username_spaces = true
chunk_caching = true
[networking.bedrock.compression] [networking.bedrock.compression]
enabled = true enabled = true
@ -139,6 +155,18 @@ enabled = true
connect_timeout = 5000 connect_timeout = 5000
read_timeout = 5000 read_timeout = 5000
[networking.bedrock.nethernet]
enabled = true
address = "0.0.0.0:19132"
identity_key = "nethernet-key.der"
stun_servers = []
[networking.bedrock.packet_limiter]
enabled = true
max_packet_rate = 500.0
burst_capacity = 500.0
kick_message = "Kicked for spamming packets"
[commands] [commands]
use_console = true use_console = true
use_tty = true use_tty = true
@ -146,9 +174,18 @@ log_console = true
broadcast_console_to_ops = true broadcast_console_to_ops = true
default_op_level = 0 default_op_level = 0
[commands.overrides]
[chat] [chat]
format = "<{DISPLAYNAME}> {MESSAGE}" format = "<{DISPLAYNAME}> {MESSAGE}"
[chat.anti_spam]
enabled = true
spam_threshold = 200
message_cost = 20
decay_per_tick = 1
ops_bypass = true
[pvp] [pvp]
enabled = true enabled = true
hurt_animation = true hurt_animation = true
@ -181,7 +218,17 @@ april_fools = true
send_recipes = true send_recipes = true
[plugins] [plugins]
enabled = true
hot_reload = false
ask_permission_confirmation = true
allow_unsigned = true
allowed_permissions = []
blocked_permissions = [] blocked_permissions = []
inherit_env = false
loopback_only = false
verify_signatures = true
[plugins.overrides]
[advancement] [advancement]
save_advancements = true save_advancements = true

View File

@ -9,7 +9,7 @@ O endereço para vincular o servidor.
:::code-group :::code-group
```toml ```toml
seed = "1785537519969227430" seed = "1790155153199293024"
default_difficulty = "Normal" default_difficulty = "Normal"
op_permission_level = 4 op_permission_level = 4
allow_nether = true allow_nether = true
@ -27,9 +27,13 @@ enforce_whitelist = false
[logging] [logging]
enabled = true enabled = true
threads = true level = "info"
threads = false
thread_ids = false
target = false
color = true color = true
timestamp = true timestamp = true
timestamp_format = "[hour]:[minute]:[second]"
file = "latest.log" file = "latest.log"
[resource_pack.java] [resource_pack.java]
@ -46,7 +50,7 @@ packs = []
[world] [world]
lighting = "default" lighting = "default"
autosave_ticks = 0 autosave_ticks = 6000
[world.chunk] [world.chunk]
type = "anvil" type = "anvil"
@ -57,7 +61,7 @@ algorithm = "LZ4"
level = 6 level = 6
[networking.query] [networking.query]
enabled = true enabled = false
address = "0.0.0.0:25565" address = "0.0.0.0:25565"
[networking.rcon] [networking.rcon]
@ -81,6 +85,7 @@ secret = ""
[networking.proxy.bungeecord] [networking.proxy.bungeecord]
enabled = false enabled = false
secret = ""
[networking.lan_broadcast] [networking.lan_broadcast]
enabled = false enabled = false
@ -93,6 +98,7 @@ online_mode = true
max_players = 1000 max_players = 1000
view_distance = 16 view_distance = 16
simulation_distance = 10 simulation_distance = 10
keep_alive_time = 15
motd = "A blazingly fast Pumpkin server!" motd = "A blazingly fast Pumpkin server!"
[networking.java.compression] [networking.java.compression]
@ -102,6 +108,9 @@ level = 4
[networking.java.authentication] [networking.java.authentication]
enabled = true enabled = true
fallbacks = []
profile_by_name_fallbacks = []
profile_by_uuid_fallbacks = []
connect_timeout = 5000 connect_timeout = 5000
read_timeout = 5000 read_timeout = 5000
prevent_proxy_connections = false prevent_proxy_connections = false
@ -120,15 +129,22 @@ skin = true
cape = true cape = true
elytra = true elytra = true
[networking.java.packet_limiter]
enabled = true
max_packet_rate = 500.0
burst_capacity = 500.0
kick_message = "Kicked for spamming packets"
[networking.bedrock] [networking.bedrock]
enabled = true enabled = true
address = "0.0.0.0:19132"
encryption = true
online_mode = true online_mode = true
max_players = 1000 max_players = 1000
view_distance = 16 view_distance = 16
simulation_distance = 10 simulation_distance = 10
motd = "A blazingly fast Pumpkin server!" motd = "A blazingly fast Pumpkin server!"
username_prefix = ""
replace_username_spaces = true
chunk_caching = true
[networking.bedrock.compression] [networking.bedrock.compression]
enabled = true enabled = true
@ -140,6 +156,18 @@ enabled = true
connect_timeout = 5000 connect_timeout = 5000
read_timeout = 5000 read_timeout = 5000
[networking.bedrock.nethernet]
enabled = true
address = "0.0.0.0:19132"
identity_key = "nethernet-key.der"
stun_servers = []
[networking.bedrock.packet_limiter]
enabled = true
max_packet_rate = 500.0
burst_capacity = 500.0
kick_message = "Kicked for spamming packets"
[commands] [commands]
use_console = true use_console = true
use_tty = true use_tty = true
@ -147,9 +175,18 @@ log_console = true
broadcast_console_to_ops = true broadcast_console_to_ops = true
default_op_level = 0 default_op_level = 0
[commands.overrides]
[chat] [chat]
format = "<{DISPLAYNAME}> {MESSAGE}" format = "<{DISPLAYNAME}> {MESSAGE}"
[chat.anti_spam]
enabled = true
spam_threshold = 200
message_cost = 20
decay_per_tick = 1
ops_bypass = true
[pvp] [pvp]
enabled = true enabled = true
hurt_animation = true hurt_animation = true
@ -182,7 +219,17 @@ april_fools = true
send_recipes = true send_recipes = true
[plugins] [plugins]
enabled = true
hot_reload = false
ask_permission_confirmation = true
allow_unsigned = true
allowed_permissions = []
blocked_permissions = [] blocked_permissions = []
inherit_env = false
loopback_only = false
verify_signatures = true
[plugins.overrides]
[advancement] [advancement]
save_advancements = true save_advancements = true

View File

@ -1,4 +1,4 @@
# Temel Yapılandırma # Temel Yapılandırma
`pumpkin.toml` dosyasını temsil eder `pumpkin.toml` dosyasını temsil eder
@ -9,7 +9,7 @@ Sunucunun bağlanacağı address.
:::code-group :::code-group
```toml ```toml
seed = "1785537519969227430" seed = "1790155153199293024"
default_difficulty = "Normal" default_difficulty = "Normal"
op_permission_level = 4 op_permission_level = 4
allow_nether = true allow_nether = true
@ -27,9 +27,13 @@ enforce_whitelist = false
[logging] [logging]
enabled = true enabled = true
threads = true level = "info"
threads = false
thread_ids = false
target = false
color = true color = true
timestamp = true timestamp = true
timestamp_format = "[hour]:[minute]:[second]"
file = "latest.log" file = "latest.log"
[resource_pack.java] [resource_pack.java]
@ -46,7 +50,7 @@ packs = []
[world] [world]
lighting = "default" lighting = "default"
autosave_ticks = 0 autosave_ticks = 6000
[world.chunk] [world.chunk]
type = "anvil" type = "anvil"
@ -57,7 +61,7 @@ algorithm = "LZ4"
level = 6 level = 6
[networking.query] [networking.query]
enabled = true enabled = false
address = "0.0.0.0:25565" address = "0.0.0.0:25565"
[networking.rcon] [networking.rcon]
@ -81,6 +85,7 @@ secret = ""
[networking.proxy.bungeecord] [networking.proxy.bungeecord]
enabled = false enabled = false
secret = ""
[networking.lan_broadcast] [networking.lan_broadcast]
enabled = false enabled = false
@ -93,6 +98,7 @@ online_mode = true
max_players = 1000 max_players = 1000
view_distance = 16 view_distance = 16
simulation_distance = 10 simulation_distance = 10
keep_alive_time = 15
motd = "A blazingly fast Pumpkin server!" motd = "A blazingly fast Pumpkin server!"
[networking.java.compression] [networking.java.compression]
@ -102,6 +108,9 @@ level = 4
[networking.java.authentication] [networking.java.authentication]
enabled = true enabled = true
fallbacks = []
profile_by_name_fallbacks = []
profile_by_uuid_fallbacks = []
connect_timeout = 5000 connect_timeout = 5000
read_timeout = 5000 read_timeout = 5000
prevent_proxy_connections = false prevent_proxy_connections = false
@ -120,15 +129,22 @@ skin = true
cape = true cape = true
elytra = true elytra = true
[networking.java.packet_limiter]
enabled = true
max_packet_rate = 500.0
burst_capacity = 500.0
kick_message = "Kicked for spamming packets"
[networking.bedrock] [networking.bedrock]
enabled = true enabled = true
address = "0.0.0.0:19132"
encryption = true
online_mode = true online_mode = true
max_players = 1000 max_players = 1000
view_distance = 16 view_distance = 16
simulation_distance = 10 simulation_distance = 10
motd = "A blazingly fast Pumpkin server!" motd = "A blazingly fast Pumpkin server!"
username_prefix = ""
replace_username_spaces = true
chunk_caching = true
[networking.bedrock.compression] [networking.bedrock.compression]
enabled = true enabled = true
@ -140,6 +156,18 @@ enabled = true
connect_timeout = 5000 connect_timeout = 5000
read_timeout = 5000 read_timeout = 5000
[networking.bedrock.nethernet]
enabled = true
address = "0.0.0.0:19132"
identity_key = "nethernet-key.der"
stun_servers = []
[networking.bedrock.packet_limiter]
enabled = true
max_packet_rate = 500.0
burst_capacity = 500.0
kick_message = "Kicked for spamming packets"
[commands] [commands]
use_console = true use_console = true
use_tty = true use_tty = true
@ -147,9 +175,18 @@ log_console = true
broadcast_console_to_ops = true broadcast_console_to_ops = true
default_op_level = 0 default_op_level = 0
[commands.overrides]
[chat] [chat]
format = "<{DISPLAYNAME}> {MESSAGE}" format = "<{DISPLAYNAME}> {MESSAGE}"
[chat.anti_spam]
enabled = true
spam_threshold = 200
message_cost = 20
decay_per_tick = 1
ops_bypass = true
[pvp] [pvp]
enabled = true enabled = true
hurt_animation = true hurt_animation = true
@ -182,7 +219,17 @@ april_fools = true
send_recipes = true send_recipes = true
[plugins] [plugins]
enabled = true
hot_reload = false
ask_permission_confirmation = true
allow_unsigned = true
allowed_permissions = []
blocked_permissions = [] blocked_permissions = []
inherit_env = false
loopback_only = false
verify_signatures = true
[plugins.overrides]
[advancement] [advancement]
save_advancements = true save_advancements = true

View File

@ -9,7 +9,7 @@
:::code-group :::code-group
```toml ```toml
seed = "1785537519969227430" seed = "1790155153199293024"
default_difficulty = "Normal" default_difficulty = "Normal"
op_permission_level = 4 op_permission_level = 4
allow_nether = true allow_nether = true
@ -27,9 +27,13 @@ enforce_whitelist = false
[logging] [logging]
enabled = true enabled = true
threads = true level = "info"
threads = false
thread_ids = false
target = false
color = true color = true
timestamp = true timestamp = true
timestamp_format = "[hour]:[minute]:[second]"
file = "latest.log" file = "latest.log"
[resource_pack.java] [resource_pack.java]
@ -46,7 +50,7 @@ packs = []
[world] [world]
lighting = "default" lighting = "default"
autosave_ticks = 0 autosave_ticks = 6000
[world.chunk] [world.chunk]
type = "anvil" type = "anvil"
@ -57,7 +61,7 @@ algorithm = "LZ4"
level = 6 level = 6
[networking.query] [networking.query]
enabled = true enabled = false
address = "0.0.0.0:25565" address = "0.0.0.0:25565"
[networking.rcon] [networking.rcon]
@ -81,6 +85,7 @@ secret = ""
[networking.proxy.bungeecord] [networking.proxy.bungeecord]
enabled = false enabled = false
secret = ""
[networking.lan_broadcast] [networking.lan_broadcast]
enabled = false enabled = false
@ -93,6 +98,7 @@ online_mode = true
max_players = 1000 max_players = 1000
view_distance = 16 view_distance = 16
simulation_distance = 10 simulation_distance = 10
keep_alive_time = 15
motd = "A blazingly fast Pumpkin server!" motd = "A blazingly fast Pumpkin server!"
[networking.java.compression] [networking.java.compression]
@ -102,6 +108,9 @@ level = 4
[networking.java.authentication] [networking.java.authentication]
enabled = true enabled = true
fallbacks = []
profile_by_name_fallbacks = []
profile_by_uuid_fallbacks = []
connect_timeout = 5000 connect_timeout = 5000
read_timeout = 5000 read_timeout = 5000
prevent_proxy_connections = false prevent_proxy_connections = false
@ -120,15 +129,22 @@ skin = true
cape = true cape = true
elytra = true elytra = true
[networking.java.packet_limiter]
enabled = true
max_packet_rate = 500.0
burst_capacity = 500.0
kick_message = "Kicked for spamming packets"
[networking.bedrock] [networking.bedrock]
enabled = true enabled = true
address = "0.0.0.0:19132"
encryption = true
online_mode = true online_mode = true
max_players = 1000 max_players = 1000
view_distance = 16 view_distance = 16
simulation_distance = 10 simulation_distance = 10
motd = "A blazingly fast Pumpkin server!" motd = "A blazingly fast Pumpkin server!"
username_prefix = ""
replace_username_spaces = true
chunk_caching = true
[networking.bedrock.compression] [networking.bedrock.compression]
enabled = true enabled = true
@ -140,6 +156,18 @@ enabled = true
connect_timeout = 5000 connect_timeout = 5000
read_timeout = 5000 read_timeout = 5000
[networking.bedrock.nethernet]
enabled = true
address = "0.0.0.0:19132"
identity_key = "nethernet-key.der"
stun_servers = []
[networking.bedrock.packet_limiter]
enabled = true
max_packet_rate = 500.0
burst_capacity = 500.0
kick_message = "Kicked for spamming packets"
[commands] [commands]
use_console = true use_console = true
use_tty = true use_tty = true
@ -147,9 +175,18 @@ log_console = true
broadcast_console_to_ops = true broadcast_console_to_ops = true
default_op_level = 0 default_op_level = 0
[commands.overrides]
[chat] [chat]
format = "<{DISPLAYNAME}> {MESSAGE}" format = "<{DISPLAYNAME}> {MESSAGE}"
[chat.anti_spam]
enabled = true
spam_threshold = 200
message_cost = 20
decay_per_tick = 1
ops_bypass = true
[pvp] [pvp]
enabled = true enabled = true
hurt_animation = true hurt_animation = true
@ -182,7 +219,17 @@ april_fools = true
send_recipes = true send_recipes = true
[plugins] [plugins]
enabled = true
hot_reload = false
ask_permission_confirmation = true
allow_unsigned = true
allowed_permissions = []
blocked_permissions = [] blocked_permissions = []
inherit_env = false
loopback_only = false
verify_signatures = true
[plugins.overrides]
[advancement] [advancement]
save_advancements = true save_advancements = true