Skip to content

Referencia de pocketmine.yml ​

pocketmine.yml contiene los ajustes que no caben en server.properties. Se crea en la carpeta del servidor en el primer arranque. Al actualizar, los ajustes nuevos no se añaden a un archivo que ya existe: cópialos de esta página (o de un archivo nuevo) cuando los necesites; los que falten usan el valor por defecto que aparece aquí.

Esta página se genera a partir de resources/pocketmine.yml de VanillaMine (rama vanilla-content). Las descripciones son los comentarios de ese archivo, que están en inglés.

TIP

Cualquier ajuste se puede indicar también en la línea de comandos con su clave con puntos, p. ej. ./start.sh --settings.async-workers=4. La línea de comandos tiene prioridad sobre el archivo.

settings ​

AjustePor defectoDescripción (en inglés)
settings.force-languagefalseWhether to send all strings translated to server locale or let the device handle them
settings.per-player-languagetrueTranslate server-side messages (join/quit, kicks, command output...) to each player's game language instead of the server language, when a translation for it exists. The console always uses the server language.
settings.shutdown-message"Server closed"
settings.query-pluginstrueAllow listing plugins via Query
settings.enable-profilingfalseEnable plugin and core profiling by default
settings.profile-report-trigger20Will only add results when tick measurement is below or equal to given value (default 20)
settings.async-workersautoNumber of AsyncTask workers. Used for plugin asynchronous tasks, world generation, compression and web communication. Set this approximately to your number of cores. If set to auto, it'll try to detect the number of cores (or use 2)
settings.enable-dev-buildsfalseWhether to allow running development builds. Dev builds might crash, break your plugins, corrupt your world and more. It is recommended to avoid using development builds where possible.
YAML
yaml
settings:
  #Whether to send all strings translated to server locale or let the device handle them
  force-language: false
  #Translate server-side messages (join/quit, kicks, command output...) to each player's game language
  #instead of the server language, when a translation for it exists. The console always uses the server language.
  per-player-language: true
  shutdown-message: "Server closed"
  #Allow listing plugins via Query
  query-plugins: true
  #Enable plugin and core profiling by default
  enable-profiling: false
  #Will only add results when tick measurement is below or equal to given value (default 20)
  profile-report-trigger: 20
  #Number of AsyncTask workers.
  #Used for plugin asynchronous tasks, world generation, compression and web communication.
  #Set this approximately to your number of cores.
  #If set to auto, it'll try to detect the number of cores (or use 2)
  async-workers: auto
  #Whether to allow running development builds. Dev builds might crash, break your plugins, corrupt your world and more.
  #It is recommended to avoid using development builds where possible.
  enable-dev-builds: false

memory ​

AjustePor defectoDescripción (en inglés)
memory.global-limit0Global soft memory limit in megabytes. Set to 0 to disable This will trigger low-memory-triggers and fire an event to free memory when the usage goes over this
memory.main-limit0Main thread soft memory limit in megabytes. Set to 0 to disable This will trigger low-memory-triggers and fire an event to free memory when the usage goes over this
memory.main-hard-limit1024Main thread hard memory limit in megabytes. Set to 0 to disable This will stop the server when the limit is surpassed
memory.async-worker-hard-limit256AsyncWorker threads' hard memory limit in megabytes. Set to 0 to disable This will crash the task currently executing on the worker if the task exceeds the limit NOTE: THIS LIMIT APPLIES PER WORKER, NOT TO THE WHOLE PROCESS.
memory.check-rate20Period in ticks to check memory (default 1 second)
memory.continuous-triggertrueContinue firing low-memory-triggers and event while on low memory
memory.continuous-trigger-rate30Only if memory.continuous-trigger is enabled. Specifies the rate in memory.check-rate steps (default 30 seconds)
memory.garbage-collection.period36000Period in ticks to fire the garbage collector manually (default 30 minutes), set to 0 to disable This only affects the main thread. Other threads should fire their own collections
memory.memory-dumpSettings controlling memory dump handling.
memory.memory-dump.dump-async-workertrueDump memory from async workers as well as the main thread. If you have issues with segfaults when dumping memory, disable this setting.
memory.max-chunks.chunk-radius4Cap maximum render distance per player when low memory is triggered. Set to 0 to disable cap.
YAML
yaml
memory:
  #Global soft memory limit in megabytes. Set to 0 to disable
  #This will trigger low-memory-triggers and fire an event to free memory when the usage goes over this
  global-limit: 0

  #Main thread soft memory limit in megabytes. Set to 0 to disable
  #This will trigger low-memory-triggers and fire an event to free memory when the usage goes over this
  main-limit: 0

  #Main thread hard memory limit in megabytes. Set to 0 to disable
  #This will stop the server when the limit is surpassed
  main-hard-limit: 1024

  #AsyncWorker threads' hard memory limit in megabytes. Set to 0 to disable
  #This will crash the task currently executing on the worker if the task exceeds the limit
  #NOTE: THIS LIMIT APPLIES PER WORKER, NOT TO THE WHOLE PROCESS.
  async-worker-hard-limit: 256

  #Period in ticks to check memory (default 1 second)
  check-rate: 20

  #Continue firing low-memory-triggers and event while on low memory
  continuous-trigger: true

  #Only if memory.continuous-trigger is enabled. Specifies the rate in memory.check-rate steps (default 30 seconds)
  continuous-trigger-rate: 30

  garbage-collection:
    #Period in ticks to fire the garbage collector manually (default 30 minutes), set to 0 to disable
    #This only affects the main thread. Other threads should fire their own collections
    period: 36000

  #Settings controlling memory dump handling.
  memory-dump:
    #Dump memory from async workers as well as the main thread. If you have issues with segfaults when dumping memory, disable this setting.
    dump-async-worker: true

  max-chunks:
    #Cap maximum render distance per player when low memory is triggered. Set to 0 to disable cap.
    chunk-radius: 4

network ​

AjustePor defectoDescripción (en inglés)
network.batch-threshold256Threshold for batching packets, in bytes. Only these packets will be compressed Set to 0 to compress everything, -1 to disable.
network.compression-level6Compression level used when sending batched packets. Higher = more CPU, less bandwidth usage
network.compression-threadfalseCompress the packet batches of the sessions in a dedicated thread instead of the main thread. With many players close together this is one of the biggest costs of the main thread (every movement is sent to every viewer). The batches are sent as soon as the thread is done with them (usually while the main thread waits for the next tick). Off by default: players noticed a delay on every action (breaking blocks, joining) with it on (see PERF-NETWORK.md); when false the batches are compressed on the main thread (or in AsyncTasks, see async-compression).
network.async-compressionfalseUse AsyncTasks for compression during the main game session. Increases latency, but may reduce main thread load
network.async-compression-threshold10000Threshold for async compression, in bytes. Only packets larger than this will be compressed asynchronously Due to large overhead of AsyncTask, async compression isn't worth it except for large packets
network.upnp-forwardingfalseExperimental. Use UPnP to automatically port forward
network.max-mtu-size1492Maximum size in bytes of packets sent over the network (default 1492 bytes). Packets larger than this will be fragmented or split into smaller parts. Clients can request MTU sizes up to but not more than this number.
network.raklib-anti-spoofing-cookiesfalseRakNet anti-spoofing cookies: the server only accepts connection requests that echo a cookie derived from the client's address, so attackers can't open sessions with spoofed IPs. Off by default: some providers' DDoS protection (e.g. OVH's game firewall) rewrites RakNet handshakes and is known to break with these checks.
network.enable-encryptiontrueEnable encryption of Minecraft network traffic. This has an impact on performance, but prevents hackers from stealing sessions and pretending to be other players. DO NOT DISABLE THIS unless you understand the risks involved.
network.nethernetNetherNet is the WebRTC-based transport that Bedrock clients 1.26.50 and newer prefer over RakNet (newer clients drop RakNet). It is enabled with enable-nethernet in server.properties and served by a small helper program (pm-nethernet) that the server starts by itself. Clients reach it with HTTP(S) on TCP server-port (no conflict with RakNet, which uses UDP) and then send game data over UDP. By default the helper owns UDP server-port and shares it with RakNet and Query, so only server-port has to be open, in TCP and UDP. nethernet-udp-port in server.properties moves NetherNet's UDP traffic to a port of its own instead (open it too). If the helper is missing or fails, the server keeps running with RakNet only.
network.nethernet.binary""Path of the pm-nethernet program. Empty = use the one shipped for this platform.
network.nethernet.advertise-addresses""Extra public IP addresses (comma-separated) to give to clients, for servers behind NAT. The address the player typed in the server list is always offered too, so this is rarely needed.
network.nethernet.identity-file"nethernet_identity.pem"Operator identity key (P-384, created on first start). Over plain HTTP the client shows a one-time trust prompt and remembers this key. Back it up, and copy it to every server of a network so players are only asked once.
network.nethernet.domain"self"Name shown in the trust prompt
network.nethernet.httpsHTTPS for signaling. Clients try HTTPS first: with a certificate valid for the address players type they skip the trust prompt, and iOS clients (which never retry over plain HTTP) can join. Without one, the server rejects the HTTPS attempt and Windows/Android clients retry over plain HTTP. iOS players cannot join without HTTPS (the same happens with Bedrock Dedicated Server, Mojang bugs BDS-23108 and BDS-23125). See native/nethernet/README.md.
network.nethernet.https.acme-domains""Get certificates automatically from Let's Encrypt for these names (comma-separated), e.g. "play.example.com". The names must point to this server and players must join with one of them. A public IP address works too (short-lived certificate, renewed every few days) for players who join by IP. Let's Encrypt checks that the name is yours by connecting to port 80 (HTTP) or 443 (TLS) of this server, so one of them must be open and unused while certificates are issued and renewed. The server listens on it only for that moment.
network.nethernet.https.acme-email""Contact e-mail for Let's Encrypt (expiry notices). Optional.
network.nethernet.https.acme-http-port0Local ports for the checks, if your router/firewall forwards 80/443 to other ports. 0 = default (80 and 443).
network.nethernet.https.acme-tls-port0
network.nethernet.https.acme-directory""ACME CA directory. Empty = Let's Encrypt.
network.nethernet.https.certificate""Or use your own certificate files (PEM; reloaded automatically when they change). They take precedence over acme-domains.
network.nethernet.https.private-key""
network.nethernet.tls-certificate""Deprecated: use https.certificate and https.private-key
network.nethernet.tls-private-key""
network.nethernet.verify-identitytrueNetherNet clients skip Minecraft's encryption handshake (the transport is encrypted). What prevents someone from replaying a captured login of an Xbox-authenticated player is that the client signs the connection with the key of its login. Players whose connection is not signed with that key are disconnected. Only turn this off to work around a client bug.
network.nethernet.log-level"info"Log level of the helper program: debug, info, warn or error. Its full output also goes to nethernet.log.
network.proxyRun behind pm-proxy, the Luxury Nodes Bedrock proxy. The proxy owns the player connections, checks Xbox Live and sends each player here over pm-link with a ticket signed by its key. With this enabled the server opens no RakNet or NetherNet port and players can only join through a trusted proxy.
network.proxy.enabledfalse
network.proxy.listen"127.0.0.1:19200"Address and TCP port pm-proxy connects to (servers.<name>.address in its config.yml). Keep this port private: firewall it so that only the proxy can reach it.
network.proxy.server-name"lobby-1"Name of this server in the proxy's configuration (servers.<name>). Tickets for other servers are refused.
network.proxy.public-keys[]Public keys of the proxies allowed to connect, as printed by pm-proxy at startup.
YAML
yaml
network:
  #Threshold for batching packets, in bytes. Only these packets will be compressed
  #Set to 0 to compress everything, -1 to disable.
  batch-threshold: 256
  #Compression level used when sending batched packets. Higher = more CPU, less bandwidth usage
  compression-level: 6
  #Compress the packet batches of the sessions in a dedicated thread instead of the main thread. With many players
  #close together this is one of the biggest costs of the main thread (every movement is sent to every viewer).
  #The batches are sent as soon as the thread is done with them (usually while the main thread waits for the next
  #tick). Off by default: players noticed a delay on every action (breaking blocks, joining) with it on (see
  #PERF-NETWORK.md); when false the batches are compressed on the main thread (or in AsyncTasks, see async-compression).
  compression-thread: false
  #Use AsyncTasks for compression during the main game session. Increases latency, but may reduce main thread load
  async-compression: false
  #Threshold for async compression, in bytes. Only packets larger than this will be compressed asynchronously
  #Due to large overhead of AsyncTask, async compression isn't worth it except for large packets
  async-compression-threshold: 10000
  #Experimental. Use UPnP to automatically port forward
  upnp-forwarding: false
  #Maximum size in bytes of packets sent over the network (default 1492 bytes). Packets larger than this will be
  #fragmented or split into smaller parts. Clients can request MTU sizes up to but not more than this number.
  max-mtu-size: 1492
  #RakNet anti-spoofing cookies: the server only accepts connection requests that echo a cookie derived from the
  #client's address, so attackers can't open sessions with spoofed IPs. Off by default: some providers' DDoS
  #protection (e.g. OVH's game firewall) rewrites RakNet handshakes and is known to break with these checks.
  raklib-anti-spoofing-cookies: false
  #Enable encryption of Minecraft network traffic. This has an impact on performance, but prevents hackers from stealing sessions and pretending to be other players.
  #DO NOT DISABLE THIS unless you understand the risks involved.
  enable-encryption: true
  #NetherNet is the WebRTC-based transport that Bedrock clients 1.26.50 and newer prefer over RakNet (newer clients
  #drop RakNet). It is enabled with enable-nethernet in server.properties and served by a small helper program
  #(pm-nethernet) that the server starts by itself. Clients reach it with HTTP(S) on TCP server-port (no conflict
  #with RakNet, which uses UDP) and then send game data over UDP. By default the helper owns UDP server-port and
  #shares it with RakNet and Query, so only server-port has to be open, in TCP and UDP. nethernet-udp-port in
  #server.properties moves NetherNet's UDP traffic to a port of its own instead (open it too).
  #If the helper is missing or fails, the server keeps running with RakNet only.
  nethernet:
    #Path of the pm-nethernet program. Empty = use the one shipped for this platform.
    binary: ""
    #Extra public IP addresses (comma-separated) to give to clients, for servers behind NAT. The address the player
    #typed in the server list is always offered too, so this is rarely needed.
    advertise-addresses: ""
    #Operator identity key (P-384, created on first start). Over plain HTTP the client shows a one-time trust prompt
    #and remembers this key. Back it up, and copy it to every server of a network so players are only asked once.
    identity-file: "nethernet_identity.pem"
    #Name shown in the trust prompt
    domain: "self"
    #HTTPS for signaling. Clients try HTTPS first: with a certificate valid for the address players type they skip the
    #trust prompt, and iOS clients (which never retry over plain HTTP) can join. Without one, the server rejects the
    #HTTPS attempt and Windows/Android clients retry over plain HTTP. iOS players cannot join without HTTPS (the same
    #happens with Bedrock Dedicated Server, Mojang bugs BDS-23108 and BDS-23125). See native/nethernet/README.md.
    https:
      #Get certificates automatically from Let's Encrypt for these names (comma-separated), e.g. "play.example.com".
      #The names must point to this server and players must join with one of them. A public IP address works too
      #(short-lived certificate, renewed every few days) for players who join by IP.
      #Let's Encrypt checks that the name is yours by connecting to port 80 (HTTP) or 443 (TLS) of this server, so
      #one of them must be open and unused while certificates are issued and renewed. The server listens on it only
      #for that moment.
      acme-domains: ""
      #Contact e-mail for Let's Encrypt (expiry notices). Optional.
      acme-email: ""
      #Local ports for the checks, if your router/firewall forwards 80/443 to other ports. 0 = default (80 and 443).
      acme-http-port: 0
      acme-tls-port: 0
      #ACME CA directory. Empty = Let's Encrypt.
      acme-directory: ""
      #Or use your own certificate files (PEM; reloaded automatically when they change). They take precedence over
      #acme-domains.
      certificate: ""
      private-key: ""
    #Deprecated: use https.certificate and https.private-key
    tls-certificate: ""
    tls-private-key: ""
    #NetherNet clients skip Minecraft's encryption handshake (the transport is encrypted). What prevents someone from
    #replaying a captured login of an Xbox-authenticated player is that the client signs the connection with the key
    #of its login. Players whose connection is not signed with that key are disconnected. Only turn this off to work
    #around a client bug.
    verify-identity: true
    #Log level of the helper program: debug, info, warn or error. Its full output also goes to nethernet.log.
    log-level: "info"
  #Run behind pm-proxy, the Luxury Nodes Bedrock proxy. The proxy owns the player connections, checks Xbox Live and
  #sends each player here over pm-link with a ticket signed by its key. With this enabled the server opens no RakNet
  #or NetherNet port and players can only join through a trusted proxy.
  proxy:
    enabled: false
    #Address and TCP port pm-proxy connects to (servers.<name>.address in its config.yml). Keep this port private:
    #firewall it so that only the proxy can reach it.
    listen: "127.0.0.1:19200"
    #Name of this server in the proxy's configuration (servers.<name>). Tickets for other servers are refused.
    server-name: "lobby-1"
    #Public keys of the proxies allowed to connect, as printed by pm-proxy at startup.
    public-keys: []

debug ​

AjustePor defectoDescripción (en inglés)
debug.level1If > 1, it will show debug messages in the console
YAML
yaml
debug:
  #If > 1, it will show debug messages in the console
  level: 1

player ​

AjustePor defectoDescripción (en inglés)
player.save-player-datatrueChoose whether to enable player data saving.
player.verify-xuidtrueIf true, checks that joining players' Xbox user ID (XUID) match what was previously recorded. This also prevents non-XBL players using XBL players' usernames to steal their data on servers with xbox-auth=off.
player.clear-terrain-on-world-changetrueWhen a player moves between two worlds of the same dimension (e.g. two Overworld worlds), the client keeps the previous world's terrain wherever the new world doesn't send chunks (outside its view area, void worlds, chunks still generating). If true, the player is sent through another dimension and back (two short dimension loading screens) so the client drops it. Plugins can change it per player with NetworkSession::setClearTerrainOnWorldChange().
player.movement-broadcastA player's movement is sent less often to players who are far away from them, which saves a lot of CPU and bandwidth with many players around (every movement otherwise goes to every viewer, every tick). The client smooths the movement of distant players, so this is hard to notice. Viewers within full-rate-distance blocks get every update, up to half-rate-distance every 2nd tick, and beyond that every 4th tick. The final position when a player stops is always sent to everyone. Set full-rate-distance to -1 to send every update to every viewer.
player.movement-broadcast.full-rate-distance24
player.movement-broadcast.half-rate-distance48
YAML
yaml
player:
  #Choose whether to enable player data saving.
  save-player-data: true
  #If true, checks that joining players' Xbox user ID (XUID) match what was previously recorded.
  #This also prevents non-XBL players using XBL players' usernames to steal their data on servers with xbox-auth=off.
  verify-xuid: true
  #When a player moves between two worlds of the same dimension (e.g. two Overworld worlds), the client keeps the
  #previous world's terrain wherever the new world doesn't send chunks (outside its view area, void worlds, chunks still
  #generating). If true, the player is sent through another dimension and back (two short dimension loading screens)
  #so the client drops it. Plugins can change it per player with NetworkSession::setClearTerrainOnWorldChange().
  clear-terrain-on-world-change: true
  #A player's movement is sent less often to players who are far away from them, which saves a lot of CPU and bandwidth
  #with many players around (every movement otherwise goes to every viewer, every tick). The client smooths the
  #movement of distant players, so this is hard to notice. Viewers within full-rate-distance blocks get every update,
  #up to half-rate-distance every 2nd tick, and beyond that every 4th tick. The final position when a player stops is
  #always sent to everyone. Set full-rate-distance to -1 to send every update to every viewer.
  movement-broadcast:
    full-rate-distance: 24
    half-rate-distance: 48

level-settings ​

AjustePor defectoDescripción (en inglés)
level-settings.default-formatleveldbThe default format that worlds will use when created
YAML
yaml
level-settings:
  #The default format that worlds will use when created
  default-format: leveldb

chunk-sending ​

AjustePor defectoDescripción (en inglés)
chunk-sending.per-tick4To change server normal render distance, change view-distance in server.properties. Amount of chunks sent to players per tick
chunk-sending.spawn-radius4Radius of chunks that need to be sent before spawning the player
YAML
yaml
chunk-sending:
  #To change server normal render distance, change view-distance in server.properties.
  #Amount of chunks sent to players per tick
  per-tick: 4
  #Radius of chunks that need to be sent before spawning the player
  spawn-radius: 4

chunk-ticking ​

AjustePor defectoDescripción (en inglés)
chunk-ticking.tick-radius3Radius of chunks around a player in which blocks get random ticks (never more than simulation-distance)
chunk-ticking.simulation-distance4Radius of chunks around a player in which entities are ticked ("simulation distance" of Bedrock worlds; Bedrock Dedicated Server uses 4). Entities further away stay loaded and visible but frozen, as in vanilla. 0 = tick the entities of every loaded chunk (PocketMine-MP before this setting).
chunk-ticking.blocks-per-subchunk-per-tick3Number of blocks inside ticking areas' subchunks that get ticked every tick. Higher values will accelerate events like tree and plant growth, but at a higher performance cost.
chunk-ticking.disable-block-tickingIDs of blocks not to perform random ticking on.
YAML
yaml
chunk-ticking:
  #Radius of chunks around a player in which blocks get random ticks (never more than simulation-distance)
  tick-radius: 3
  #Radius of chunks around a player in which entities are ticked ("simulation distance" of Bedrock worlds; Bedrock
  #Dedicated Server uses 4). Entities further away stay loaded and visible but frozen, as in vanilla. 0 = tick the
  #entities of every loaded chunk (PocketMine-MP before this setting).
  simulation-distance: 4
  #Number of blocks inside ticking areas' subchunks that get ticked every tick. Higher values will accelerate events
  #like tree and plant growth, but at a higher performance cost.
  blocks-per-subchunk-per-tick: 3
  #IDs of blocks not to perform random ticking on.
  disable-block-ticking:
    #- grass
    #- ice
    #- fire

chunk-generation ​

AjustePor defectoDescripción (en inglés)
chunk-generation.population-queue-size32Max. amount of chunks in the waiting queue to be populated
chunk-generation.vanilla-nativeThe "vanilla" world generator computes the terrain shape with a small native program (vanillagen) that the server starts by itself, several times faster than PHP. If it is missing or fails, the PHP implementation is used instead (same worlds, slower).
chunk-generation.vanilla-native.enabledtrue
chunk-generation.vanilla-native.binary""Path of the vanillagen program. Empty = use the one shipped for this platform.
YAML
yaml
chunk-generation:
  #Max. amount of chunks in the waiting queue to be populated
  population-queue-size: 32
  #The "vanilla" world generator computes the terrain shape with a small native program (vanillagen) that the server
  #starts by itself, several times faster than PHP. If it is missing or fails, the PHP implementation is used instead
  #(same worlds, slower).
  vanilla-native:
    enabled: true
    #Path of the vanillagen program. Empty = use the one shipped for this platform.
    binary: ""

ticks-per ​

AjustePor defectoDescripción (en inglés)
ticks-per.autosave6000
YAML
yaml
ticks-per:
  autosave: 6000

redstone ​

AjustePor defectoDescripción (en inglés)
redstone.enabledtrueSet to false to disable redstone power (wire, torches, repeaters, comparators and the blocks they power). Levers, buttons and pressure plates still change state, but nothing reacts to them.
redstone.max-wire-updates-per-tick20000Maximum number of redstone wire blocks recalculated per world per tick. Work above this limit is deferred to the next tick. This protects the server from huge circuits and update storms, at the cost of slowing them down.
YAML
yaml
redstone:
  #Set to false to disable redstone power (wire, torches, repeaters, comparators and the blocks they power).
  #Levers, buttons and pressure plates still change state, but nothing reacts to them.
  enabled: true
  #Maximum number of redstone wire blocks recalculated per world per tick. Work above this limit is deferred to the
  #next tick. This protects the server from huge circuits and update storms, at the cost of slowing them down.
  max-wire-updates-per-tick: 20000

mobs ​

AjustePor defectoDescripción (en inglés)
mobs.enabledtrueSet to false to disable mob AI (mobs stand still) and natural spawning.
mobs.max-ai-updates-per-tick200Maximum number of mobs which may evaluate their goals (wander, look for a target, breed...) per tick, server-wide. Mobs over the limit keep doing what they were doing and think on a later tick.
mobs.max-path-searches-per-tick10Maximum number of path searches (A*) per tick, server-wide. Searches over the limit are retried on the next ticks.
mobs.max-path-nodes400Maximum number of blocks explored by one path search. Higher values find longer paths around obstacles, at a higher CPU cost.
mobs.ignore-plugin-npcstrueMobs never target the NPCs of plugins (a living entity of a plugin class that has any name, stands still for clients or is not saved with the world: shopkeepers, menus, lobby mobs), e.g. zombies do not chase a shop NPC that looks like a villager. Plugins can also decide for each target with EntityTargetEvent (like Paper's EntityTargetEvent). Set to false to let mobs target them.
mobs.movement-broadcastLike player.movement-broadcast, for mobs: viewers within full-rate-distance blocks get every movement update, up to half-rate-distance every 2nd tick, and beyond that every 4th tick. The final position when a mob stops is always sent to everyone. Only what distant clients see changes (smoothness), not what the mobs do. -1 = every update to every viewer.
mobs.movement-broadcast.full-rate-distance24
mobs.movement-broadcast.half-rate-distance48
mobs.spawning.enabledtrueSet to false to stop mobs spawning naturally around players (spawn eggs and plugins still work).
mobs.spawning.modevanilla"vanilla": Bedrock's spawning algorithm with Mojang's spawn rules (every mob in its biomes, light levels, herds, population caps per 9x9 chunks, slime chunks, phantoms...). "legacy": the old simplified spawning of 8 mobs, set up by hostile-interval, passive-interval, hostile-cap and passive-cap below.
mobs.spawning.vanilla-rulestrueDownload Mojang's official spawn rules (Mojang/bedrock-samples, about 270 KB, once, checked against fixed SHA-256 hashes) into <server data>/bedrock-spawn-rules. They are (c) Mojang and not shipped with the server. Until they are available, or if this is false, only the common Overworld mobs spawn (zombie, skeleton, creeper, spider, cow, pig, sheep, chicken) with their vanilla rules.
mobs.spawning.chunk-chance11Chance per tick (out of 2000) that a ticking chunk runs a spawn attempt (vanilla Bedrock: 11). The chunks are those within chunk-ticking.tick-radius of players (Bedrock's simulation distance).
mobs.spawning.max-attempts-per-tick32Maximum number of spawn attempts per tick and world, to bound the cost with many players.
mobs.spawning.global-cap200Maximum number of naturally spawned mobs per world (vanilla Bedrock: 200).
mobs.spawning.count-all-mobs-for-spawningtrueWhether every mob that is not persistent counts towards the population caps: mobs from spawn eggs, spawners and breeding, and the mobs of plugins (e.g. a mob plugin with its own spawning, which then shares the caps instead of doubling the mobs). false = only naturally spawned mobs count (like Paper's count-all-mobs-for-spawning: false). Persistent mobs and plugin NPCs (see mobs.ignore-plugin-npcs) never count, like name-tagged mobs in vanilla.
mobs.spawning.spawn-limitsPopulation caps per 9x9 chunks, per population type (vanilla Bedrock values when -1: animal 4, monster 8 on the surface and 16 underground, ambient 2 underground, water_animal 36, pillager 8). A value replaces both the surface and the underground cap of that type.
mobs.spawning.spawn-limits.animal-1
mobs.spawning.spawn-limits.monster-1
mobs.spawning.spawn-limits.ambient-1
mobs.spawning.spawn-limits.water_animal-1
mobs.spawning.spawn-limits.pillager-1
mobs.spawning.max-distance0Mobs spawn between 24 and this many blocks from the nearest player. 0 = vanilla: 44 with a chunk tick radius of 4 or less (Bedrock simulation distance 4), otherwise up to 128.
mobs.spawning.instant-despawn-distance0Naturally spawned mobs despawn instantly beyond this distance from every player (they also despawn randomly beyond 32 blocks). 0 = vanilla: 44 with a chunk tick radius of 4 or less, otherwise 128 (fish: 40).
mobs.spawning.phantomstruePhantoms spawn above players who have not slept (or died) for 3 days (Bedrock doinsomnia).
mobs.spawning.wandering-traderstrueWandering traders visit players (and their village bells) with two trader llamas.
mobs.spawning.village-catstrueVillages with claimed beds get stray cats (one per 4 beds, at most 5).
mobs.spawning.hostile-interval20Legacy mode only: ticks between spawn attempts for hostile mobs (at night and in dark places) and for passive animals.
mobs.spawning.passive-interval400
mobs.spawning.hostile-cap20Legacy mode only: maximum number of hostile and passive mobs within 64 blocks of each player.
mobs.spawning.passive-cap10
mobs.spawning.patrols.enabledtruePillager patrols: groups of 2-5 pillagers led by a captain carrying the ominous banner, spawned on the surface 24-48 blocks from a player where the light level is 7 or less, in Overworld biomes except mushroom fields.
mobs.spawning.patrols.min-interval12000Ticks between two spawn attempts (vanilla Bedrock: 12000-13200, i.e. 10-11 minutes).
mobs.spawning.patrols.max-interval13200
mobs.spawning.patrols.chance20Chance (percent) that an attempt spawns a patrol (vanilla Bedrock: 20).
mobs.spawning.patrols.min-world-time120000World time (ticks) the world must have reached before patrols spawn (vanilla Bedrock: 120000, i.e. 5 days).
mobs.raids.enabledtrueSet to false to disable raids: Bad Omen no longer turns into Raid Omen in villages.
YAML
yaml
mobs:
  #Set to false to disable mob AI (mobs stand still) and natural spawning.
  enabled: true
  #Maximum number of mobs which may evaluate their goals (wander, look for a target, breed...) per tick, server-wide.
  #Mobs over the limit keep doing what they were doing and think on a later tick.
  max-ai-updates-per-tick: 200
  #Maximum number of path searches (A*) per tick, server-wide. Searches over the limit are retried on the next ticks.
  max-path-searches-per-tick: 10
  #Maximum number of blocks explored by one path search. Higher values find longer paths around obstacles, at a
  #higher CPU cost.
  max-path-nodes: 400
  #Mobs never target the NPCs of plugins (a living entity of a plugin class that has any name, stands still for
  #clients or is not saved with the world: shopkeepers, menus, lobby mobs), e.g. zombies do not chase a shop NPC that
  #looks like a villager. Plugins can also decide for each
  #target with EntityTargetEvent (like Paper's EntityTargetEvent). Set to false to let mobs target them.
  ignore-plugin-npcs: true
  #Like player.movement-broadcast, for mobs: viewers within full-rate-distance blocks get every movement update, up to
  #half-rate-distance every 2nd tick, and beyond that every 4th tick. The final position when a mob stops is always
  #sent to everyone. Only what distant clients see changes (smoothness), not what the mobs do. -1 = every update to
  #every viewer.
  movement-broadcast:
    full-rate-distance: 24
    half-rate-distance: 48
  spawning:
    #Set to false to stop mobs spawning naturally around players (spawn eggs and plugins still work).
    enabled: true
    #"vanilla": Bedrock's spawning algorithm with Mojang's spawn rules (every mob in its biomes, light levels, herds,
    #population caps per 9x9 chunks, slime chunks, phantoms...). "legacy": the old simplified spawning of 8 mobs, set
    #up by hostile-interval, passive-interval, hostile-cap and passive-cap below.
    mode: vanilla
    #Download Mojang's official spawn rules (Mojang/bedrock-samples, about 270 KB, once, checked against fixed
    #SHA-256 hashes) into <server data>/bedrock-spawn-rules. They are (c) Mojang and not shipped with the server.
    #Until they are available, or if this is false, only the common Overworld mobs spawn (zombie, skeleton, creeper,
    #spider, cow, pig, sheep, chicken) with their vanilla rules.
    vanilla-rules: true
    #Chance per tick (out of 2000) that a ticking chunk runs a spawn attempt (vanilla Bedrock: 11). The chunks are
    #those within chunk-ticking.tick-radius of players (Bedrock's simulation distance).
    chunk-chance: 11
    #Maximum number of spawn attempts per tick and world, to bound the cost with many players.
    max-attempts-per-tick: 32
    #Maximum number of naturally spawned mobs per world (vanilla Bedrock: 200).
    global-cap: 200
    #Whether every mob that is not persistent counts towards the population caps: mobs from spawn eggs, spawners and
    #breeding, and the mobs of plugins (e.g. a mob plugin with its own spawning, which then shares the caps instead of
    #doubling the mobs). false = only naturally spawned mobs count (like Paper's count-all-mobs-for-spawning: false).
    #Persistent mobs and plugin NPCs (see mobs.ignore-plugin-npcs) never count, like name-tagged mobs in vanilla.
    count-all-mobs-for-spawning: true
    #Population caps per 9x9 chunks, per population type (vanilla Bedrock values when -1: animal 4, monster 8 on the
    #surface and 16 underground, ambient 2 underground, water_animal 36, pillager 8). A value replaces both the surface
    #and the underground cap of that type.
    spawn-limits:
      animal: -1
      monster: -1
      ambient: -1
      water_animal: -1
      pillager: -1
    #Mobs spawn between 24 and this many blocks from the nearest player. 0 = vanilla: 44 with a chunk tick radius of
    #4 or less (Bedrock simulation distance 4), otherwise up to 128.
    max-distance: 0
    #Naturally spawned mobs despawn instantly beyond this distance from every player (they also despawn randomly
    #beyond 32 blocks). 0 = vanilla: 44 with a chunk tick radius of 4 or less, otherwise 128 (fish: 40).
    instant-despawn-distance: 0
    #Phantoms spawn above players who have not slept (or died) for 3 days (Bedrock doinsomnia).
    phantoms: true
    #Wandering traders visit players (and their village bells) with two trader llamas.
    wandering-traders: true
    #Villages with claimed beds get stray cats (one per 4 beds, at most 5).
    village-cats: true
    #Legacy mode only: ticks between spawn attempts for hostile mobs (at night and in dark places) and for passive
    #animals.
    hostile-interval: 20
    passive-interval: 400
    #Legacy mode only: maximum number of hostile and passive mobs within 64 blocks of each player.
    hostile-cap: 20
    passive-cap: 10
    patrols:
      #Pillager patrols: groups of 2-5 pillagers led by a captain carrying the ominous banner, spawned on the surface
      #24-48 blocks from a player where the light level is 7 or less, in Overworld biomes except mushroom fields.
      enabled: true
      #Ticks between two spawn attempts (vanilla Bedrock: 12000-13200, i.e. 10-11 minutes).
      min-interval: 12000
      max-interval: 13200
      #Chance (percent) that an attempt spawns a patrol (vanilla Bedrock: 20).
      chance: 20
      #World time (ticks) the world must have reached before patrols spawn (vanilla Bedrock: 120000, i.e. 5 days).
      min-world-time: 120000
  raids:
    #Set to false to disable raids: Bad Omen no longer turns into Raid Omen in villages.
    enabled: true

auto-report ​

AjustePor defectoDescripción (en inglés)
auto-report.enabledtrueSend crash reports for processing
auto-report.send-codetrue
auto-report.send-settingstrue
auto-report.send-phpinfofalse
auto-report.use-httpstrue
auto-report.hostcrash.pmmp.io
YAML
yaml
auto-report:
  #Send crash reports for processing
  enabled: true
  send-code: true
  send-settings: true
  send-phpinfo: false
  use-https: true
  host: crash.pmmp.io

anonymous-statistics ​

AjustePor defectoDescripción (en inglés)
anonymous-statistics.enabledfalseSends anonymous statistics for data aggregation, plugin usage tracking TODO: re-enable this when we have a new stats host
anonymous-statistics.hoststats.pocketmine.net
YAML
yaml
anonymous-statistics:
  #Sends anonymous statistics for data aggregation, plugin usage tracking
  enabled: false #TODO: re-enable this when we have a new stats host
  host: stats.pocketmine.net

auto-updater ​

AjustePor defectoDescripción (en inglés)
auto-updater.enabledtrue
auto-updater.on-update.warn-consoletrue
auto-updater.preferred-channelstableCan be development, alpha, beta or stable.
auto-updater.suggest-channelstrueIf using a development version, it will suggest changing the channel
auto-updater.hostupdates.luxurynodes.com
YAML
yaml
auto-updater:
  enabled: true
  on-update:
    warn-console: true
  #Can be development, alpha, beta or stable.
  preferred-channel: stable
  #If using a development version, it will suggest changing the channel
  suggest-channels: true
  host: updates.luxurynodes.com

timings ​

AjustePor defectoDescripción (en inglés)
timings.hosttimings.pmmp.ioChoose the host to use for viewing your timings results.
YAML
yaml
timings:
  #Choose the host to use for viewing your timings results.
  host: timings.pmmp.io

console ​

AjustePor defectoDescripción (en inglés)
console.enable-inputtrueWhether to accept commands via the console. If disabled, anything typed on the console will be ignored. Useful to save resources on headless servers where the console is never used (e.g. hosted server, Docker, etc.)
console.title-ticktrueChoose whether to enable server stats reporting on the console title. NOTE: The title ticker will be disabled regardless if console colours are not enabled.
YAML
yaml
console:
  #Whether to accept commands via the console. If disabled, anything typed on the console will be ignored.
  #Useful to save resources on headless servers where the console is never used (e.g. hosted server, Docker, etc.)
  enable-input: true
  #Choose whether to enable server stats reporting on the console title.
  #NOTE: The title ticker will be disabled regardless if console colours are not enabled.
  title-tick: true

aliases ​

YAML
yaml
aliases:
  ##This section allows you to add, remove or remap command aliases.
  ##A single alias can call one or more other commands (or aliases).
  ##Aliases defined here will override any command aliases declared by plugins or PocketMine-MP itself.

  ##To remove an alias, set it to [], like so (note that prefixed aliases like "pocketmine:stop" will remain and can't
  ##be removed):
  #stop: []

  ##Commands are not removed, only their aliases. You can still refer to a command using its full (prefixed)
  ##name, even if all its aliases are overwritten. The full name is usually something like "pocketmine:commandname" or
  ##"pluginname:commandname".
  #abort: [pocketmine:stop]

  ##To add an alias, list the command(s) that it calls:
  #showtheversion: [version]
  #savestop: [save-all, stop]

  ##To invoke another command with arguments, use $1 to pass the first argument, $2 for the second etc:
  #giveadmin: [op $1] ## `giveadmin alex` -> `op alex`
  #kill: [suicide, say "I tried to kill $1"] ## `kill alex` -> `suicide` + `say "I tried to kill alex"`
  #giverandom: [give $1 $2, say "Someone has just received a $2!"] ## `giverandom alex diamond` -> `give alex diamond` + `say "Someone has just received a diamond!"`

  ##To make arguments mandatory (so that the command fails if they are not provided), use $$, e.g. $$1, $$2:
  #makeadmin: [op $$1] ## `makeadmin alex` -> `op alex`, `makeadmin` with no arguments = error

  ##To pass through a range of arguments, put a - (hyphen) after the index:
  #tpalias: [tp $1-] ## `tpalias 256 70 256` -> `tp 256 70 256` - this passes arguments 1 and everything after it to the `tp` command

  ##To change an existing command alias and make it do something else:
  #tp: [suicide]

worlds ​

YAML
yaml
worlds:
  #These settings will override the generator set in server.properties and allows loading multiple worlds
  #Example:
  #world:
  # seed: 404
  # generator: FLAT
  # preset: 2;bedrock,59xstone,3xdirt,grass;1
  # dimension: overworld #overworld, nether or end; defaults to the generator's (nether -> nether, the_end -> end)

dimensions ​

AjustePor defectoDescripción (en inglés)
dimensions.enabledfalseSet to true to create "<world>_nether" and "<world>_the_end" next to the default world at startup, and to generate the linked Nether/End world of any other world the first time a portal needs it. Portals only work when the linked world exists or can be generated.
YAML
yaml
dimensions:
  #Set to true to create "<world>_nether" and "<world>_the_end" next to the default world at startup, and to
  #generate the linked Nether/End world of any other world the first time a portal needs it.
  #Portals only work when the linked world exists or can be generated.
  enabled: false

creative ​

AjustePor defectoDescripción (en inglés)
creative.education-itemsfalseSet to true to show the Education Edition content in the creative inventory, like a vanilla world with the "Education Edition" option: elements, compounds, chemistry tables, hardened glass, coloured and underwater torches, underwater TNT, heat blocks, ice bombs, bleach, medicine, balloons, glow sticks, sparklers and super fertilizer. The items exist either way (commands, plugins and old worlds can still use them).
YAML
yaml
creative:
  #Set to true to show the Education Edition content in the creative inventory, like a vanilla world with the
  #"Education Edition" option: elements, compounds, chemistry tables, hardened glass, coloured and underwater torches,
  #underwater TNT, heat blocks, ice bombs, bleach, medicine, balloons, glow sticks, sparklers and super fertilizer.
  #The items exist either way (commands, plugins and old worlds can still use them).
  education-items: false

plugins ​

AjustePor defectoDescripción (en inglés)
plugins.legacy-data-dirfalseSetting this to true will cause the legacy structure to be used where plugin data is placed inside the --plugins dir. False will place plugin data under plugin_data under --data. This option exists for backwards compatibility with existing installations.
plugins.crash-on-unhandled-exceptionfalseUncaught exceptions/errors thrown by plugin code (event handlers, tasks, commands, async task completions, form responses...) are logged with the plugin's name and the stack trace, and the server keeps running. Exceptions which can't be blamed on a plugin (core bugs) still crash the server. Set this to true to crash the server on any plugin exception instead (the old PocketMine-MP behaviour).
plugins.disable-after-errors10A plugin which throws this many unhandled exceptions within error-window-seconds is disabled. Set to 0 to never disable plugins automatically.
plugins.error-window-seconds60
YAML
yaml
plugins:
  #Setting this to true will cause the legacy structure to be used where plugin data is placed inside the --plugins dir.
  #False will place plugin data under plugin_data under --data.
  #This option exists for backwards compatibility with existing installations.
  legacy-data-dir: false
  #Uncaught exceptions/errors thrown by plugin code (event handlers, tasks, commands, async task completions,
  #form responses...) are logged with the plugin's name and the stack trace, and the server keeps running.
  #Exceptions which can't be blamed on a plugin (core bugs) still crash the server.
  #Set this to true to crash the server on any plugin exception instead (the old PocketMine-MP behaviour).
  crash-on-unhandled-exception: false
  #A plugin which throws this many unhandled exceptions within error-window-seconds is disabled.
  #Set to 0 to never disable plugins automatically.
  disable-after-errors: 10
  error-window-seconds: 60

VanillaMine es un fork de PocketMine-MP mantenido por Luxury Nodes. Sin relación con el equipo de PMMP ni con Mojang.