Custom Biome
Descripción general
Custom Biome te permite crear tus propios biomas desde el panel web de TypeWriter: colores de hierba, follaje, agua, cielo y niebla, ajustes de nubes y sol, temperatura y precipitación. Un bioma nuevo parte de un bioma base de vanilla, así que los spawns de mobs, las features y otras propiedades se heredan, y solo sobrescribes lo que quieres cambiar.
Un bioma se puede usar de dos maneras. Puedes pintarlo en el mundo, en un radio de bloques, una selección de WorldEdit o una región capturada, y restaurar más tarde los biomas anteriores a partir de una instantánea. O puedes mostrarlo solo a un jugador o a una audiencia, mediante una superposición por jugador: el mundo no se toca y nadie más ve el cambio. Así es como un bosque corrupto puede aparecer solo durante una misión.
Características
- Definiciones de bioma — colores (hierba, follaje, follaje seco, agua, cielo, niebla, niebla del agua, nubes, luz del cielo, amanecer/atardecer), distancias de niebla y nubes, ajustes de sol, luna y estrellas, temperatura y precipitación.
- Preajustes — comparte una paleta entre varios biomas y sobrescribe solo lo que difiere.
- Registro en vivo — los biomas se inyectan en el registro del servidor cuando es posible y se escriben en un datapack generado para que sobrevivan a los reinicios.
- Pintado del mundo — aplica un bioma alrededor de un jugador o sobre una región, con una instantánea opcional para deshacerlo.
- Superposiciones por jugador — muestra un bioma a un jugador o a una audiencia, mediante una acción, una audiencia o una cinemática.
- Eventos de entrada y salida — activa entradas cuando un jugador entra o sale de un bioma.
- Descubrimiento — recuerda qué biomas ha visitado cada jugador y úsalo en facts y misiones.
- Facts, variables y placeholders — lee el bioma actual, sus propiedades y el número de descubrimientos.
- Comandos de operador — lista biomas, inspecciona el bioma bajo un jugador, pinta, refresca y captura una región.
- Compatible con Folia — las escrituras se programan en la región propietaria de cada chunk.
Instalación
- Instala PacketEvents. Las superposiciones y los refrescos de chunks se envían con él; sin él, las superposiciones quedan desactivadas.
- Instala la extensión Quest de TypeWriter desde la pestaña Extensions del panel web (el objetivo la usa).
- Opcional: instala WorldEdit o FastAsyncWorldEdit para pintar la selección que hiciste en el juego.
- Opcional: instala PlaceholderAPI para usar los placeholders que se indican más abajo.
- Coloca el JAR de Custom Biome en
plugins/Typewriter/extensions/y reinicia el servidor.
Las definiciones de bioma se escriben en un datapack llamado typewriter_custom_biomes dentro de la carpeta datapacks del mundo.
Los atributos visuales (distancias de niebla, altura de las nubes, ajustes de sol, luna y estrellas) están marcados en el código fuente para Minecraft 1.21.11 y posteriores. En versiones anteriores solo se aplican los colores y el clima.
Primeros pasos
Crea un bosque púrpura y muéstralo a los jugadores en un paso de misión:
- En el panel web de TypeWriter, abre una página de manifest y añade una entrada Custom Biome Definition.
- Establece
biomeId(minúsculas, guiones bajos, por ejemplocorrupted_forest) y dejanamespacecomotypewriter. EstablecebaseBiomeenminecraft:forest. - Rellena en hexadecimal los colores que quieras cambiar, por ejemplo
grassColor#6a3d9ayfoliageColor#4b2a73. Los campos vacíos heredan del bioma base. - Publica y luego ejecuta
/tw biome listen el juego para comprobar que el bioma está activo. Si aparece como pendiente de reinicio, reinicia el servidor. - En una página de manifest, añade una Biome Overlay Audience, elige la definición en
biomey colócala bajo una audiencia que corresponda a tu paso de misión. El jugador ve el bioma mientras está en la audiencia y el bioma real vuelve cuando la abandona (restoreOnExit). - Para limitarlo a una zona, establece
cornerAycornerB, o colócate en el juego con una selección de WorldEdit y ejecuta/tw biome region <entry>para rellenar las esquinas.
Para cambiar el propio mundo, usa Apply Biome o Paint Biome Region en una secuencia de acciones. Dale un snapshotId al pintado si quieres que Restore Biome pueda deshacerlo.
Crea un Custom Biome Preset para una familia de biomas que compartan el mismo cielo y niebla, y selecciónalo en preset de cada definición. Los valores establecidos en la definición prevalecen sobre el preajuste, y el preajuste prevalece sobre el bioma base.
Cómo funciona
Pintar escribe el bioma en los datos del mundo, por lo que afecta a todos los jugadores y sobrevive a un reinicio. Una superposición solo se envía al cliente del jugador: no se guarda nada y, al quitarla, vuelve el bioma real. Cuando varias superposiciones cubren el mismo chunk, se muestra la aplicada en último lugar y, al quitarla, se revela la anterior.
Los facts, las variables y los placeholders leen por defecto el bioma que el jugador ve (PLAYER_VIEW, superposiciones incluidas). Establece source en REAL_WORLD en facts y variables para leer lo que el mundo contiene realmente.
Configuración
Los datos de ejecución se almacenan en plugins/Typewriter/custombiome/:
| Carpeta | Contenido |
|---|---|
discovery/ | Un archivo JSON por jugador (<uuid>.json) con los biomas que ha visitado. |
snapshots/ | Biomas registrados por Paint Biome Region cuando se establece snapshotId. |
Comandos
El comando raíz es /tw biome, que requiere typewriter.biome. Cada subcomando requiere además su propio permiso.
| Comando | Descripción |
|---|---|
/tw biome | Muestra la lista de comandos. |
/tw biome list | Lista los biomas personalizados e indica si cada uno está activo, pendiente de reinicio o no registrado. |
/tw biome info [player] | Muestra el bioma en el que está un jugador: nombre, ID, si es personalizado, temperatura, precipitación y bioma base. |
/tw biome apply <biome> [radius] | Pinta un bioma alrededor de ti o de un jugador objetivo, dentro de un radio en bloques. |
/tw biome refresh [radius] | Reenvía los datos de bioma (radio de 1 a 16 chunks) de los chunks que esta extensión pintó cerca del jugador. |
/tw biome region <entry> | Copia tu selección de WorldEdit en cornerA y cornerB de una entrada de región; después publica la página. |
Textos editables
Todo lo que imprimen los comandos /tw biome en el juego es un snippet de TypeWriter, así que puedes reformularlo, traducirlo o cambiarle el color sin recompilar nada. Abre plugins/Typewriter/snippets.yml, busca la clave bajo content.custombiome, cambia el valor y ejecuta /tw reload. La extensión registra todos sus snippets con su texto por defecto al iniciarse, así que aparecen en el archivo tras el primer arranque.
Los textos son MiniMessage. Un {name} en un texto se sustituye por el valor indicado en la tabla; un placeholder que omites simplemente no se muestra, y uno que no existe se queda tal cual. Los placeholders de PlaceholderAPI (%...%) también se leen cuando el comando lo ejecuta un jugador. Solo el prefijo de respuesta de Typewriter en las respuestas cortas (Typewriter ») viene del motor y no forma parte de estos snippets, y el registro de la consola del servidor sigue en inglés.
Snippet (bajo content.custombiome.) | Por defecto | Placeholders |
|---|---|---|
command.list.empty | <yellow>No custom biomes registered.</yellow> | ninguno |
command.list.header | <gradient:#00d4ff:#0099ff><b>Custom Biomes ({count})</b></gradient>, con una línea en blanco antes | {count} |
command.list.strategy | <dark_gray>Strategy: {strategy}</dark_gray>, con una línea en blanco después | {strategy} |
command.list.strategy_live | live registry injection (reflection) | ninguno |
command.list.strategy_unsupported | unsupported ({reason}) | {reason} (técnico, en inglés) |
command.list.icon_live, icon_waiting, icon_missing | • en verde, ⚠ en amarillo, ✖ en rojo | ninguno |
command.list.status_live, status_waiting, status_missing | textos al pasar el cursor: Live in the registry, Written to the datapack — needs a restart, Not registered | ninguno |
command.list.entry | una línea por bioma, con texto al pasar el cursor y clic para copiar | {icon}, {status}, {name}, {key}, {temperature}, {downfall} |
command.list.temperature, command.list.downfall | T:{value} y D:{value} en gris | {value} |
command.info.header | Biome Info for {player} | {player} |
command.info.name, id, temperature, downfall, base_biome | Name:, ID:, Temperature:, Downfall:, Base Biome:, seguido del valor | {value} |
command.info.custom_yes, custom_no | Custom: Yes y Custom: No | ninguno |
command.help.title | Custom Biome Commands | ninguno |
command.help.list, info, apply, refresh, region | una línea de ayuda por comando | ninguno |
command.region.no_selection | No WorldEdit selection (or WorldEdit is not installed). | ninguno |
command.region.page_not_found | Could not find the page holding '{entry}'. | {entry} |
command.region.write_failed | Could not write the region: {failures} | {failures} (técnico, en inglés) |
command.region.done | Region of {entry} set to {min} → {max} in {world}. | {entry}, {min}, {max} (como x, y, z), {world} |
command.region.publish_hint | Publish the page for it to take effect. | ninguno |
command.refresh.none | No painted chunks near {player} to refresh. | {player} |
command.refresh.done | Resent biome data for {chunks} painted chunk(s) to {player}. | {chunks}, {player} |
command.apply.unknown | Unknown biome: {biome} | {biome} |
command.apply.unknown_hint | Use /tw biome list to see available custom biomes. | ninguno |
command.apply.nothing | Nothing to paint at that location. | ninguno |
command.apply.done | Painting {biome} over {cells} cell(s) across {chunks} chunk(s). | {biome}, {cells}, {chunks} |
placeholder.unknown | unknown | ninguno |
Los tres snippets de texto al pasar el cursor de /tw biome list van dentro de un argumento MiniMessage entre comillas simples, así que no deben contener una comilla simple.
placeholder.unknown es lo que devuelven %typewriter_temperature%, %typewriter_downfall% y la variable Biome Property para un bioma que no es personalizado. Los true y false que devuelve %typewriter_is_custom% siguen siendo fijos, porque las condiciones los comparan.
Permisos
| Permiso | Concede |
|---|---|
typewriter.biome | Acceso al árbol de comandos /tw biome. |
typewriter.biome.list | /tw biome list |
typewriter.biome.info | /tw biome info |
typewriter.biome.apply | /tw biome apply |
typewriter.biome.refresh | /tw biome refresh |
typewriter.biome.region | /tw biome region |
Placeholders
Placeholders de PlaceholderAPI, servidos por la expansión typewriter. Los placeholders de jugador leen el bioma que se le muestra al jugador.
| Placeholder | Devuelve |
|---|---|
%typewriter_current% o %typewriter_id% | Clave del bioma bajo el jugador, por ejemplo minecraft:plains. |
%typewriter_name% | Nombre legible del bioma. |
%typewriter_key% | Solo la parte de la clave. |
%typewriter_namespace% | Solo la parte del namespace. |
%typewriter_is_custom% | true o false. |
%typewriter_temperature% | Temperatura de un bioma personalizado, unknown en caso contrario. |
%typewriter_downfall% | Precipitación de un bioma personalizado, unknown en caso contrario. |
%typewriter_base% | Bioma base de un bioma personalizado, o la propia clave del bioma. |
%typewriter_count% | Número de biomas personalizados registrados. |
%typewriter_list% | Nombres visibles de los biomas personalizados, separados por comas. |
%typewriter_discovered_count% | Número de biomas que el jugador ha visitado. |
%typewriter_discovered_list% | Claves de los biomas que el jugador ha visitado. |
La extensión responde a los nombres simples indicados arriba (%typewriter_current%, %typewriter_count%, etc.). El comentario de su código fuente menciona un prefijo custombiome_, pero el código solo reconoce los nombres simples.
Entradas
20 entradas, generadas a partir del código fuente de la extensión.
Acciones5
- Apply Biome ActionApply a biome to a location with optional radius
- Paint Biome Region ActionPaint a biome over a region, with an optional snapshot to undo it later
- Player Biome Overlay ActionShow a biome to a single player without changing the world
- Refresh Biome Chunks ActionRefresh biome data for chunks around the player
- Restore Biome ActionRestore biomes previously recorded by a paint snapshot
Eventos2
- Enter Biome EventTriggered when a player enters a biome
- Leave Biome EventTriggered when a player leaves a biome
Objetivos1
- Explore Biome ObjectiveObjective completed by discovering one or more biomes
Hechos4
- Biome Discovery FactHow many biomes the player has discovered, or whether specific ones were found
- Custom Biome Count FactReturns the number of registered custom biomes
- Is in Custom Biome FactReturns 1 if player is in a custom biome, 0 otherwise
- Player Biome FactExpose the player's current biome as a fact value
Audiencias2
- Biome Overlay AudienceShow a biome to the audience without changing the world
- Biome Region AudienceKeep the players standing inside a region defined by two captured corners
Cinemáticas1
- Biome Transition CinematicChange the biome a player sees during a cinematic
Variables3
- Biome Property VariableReturns a property of the player's current biome
- Current Biome VariableReturns the player's current biome name
- Custom Biome List VariableReturns a list of registered custom biomes
Manifiestos2
- Custom Biome DefinitionDefine a custom biome with colors and climate settings
- Custom Biome PresetA reusable set of colors and visual attributes shared by several biomes
Solución de problemas
/tw biome list muestra una señal de advertencia y "needs a restart". El servidor no pudo añadir el bioma a su registro en vivo, por lo que solo existe en el datapack generado. Reinicia el servidor. El motivo se escribe una vez en la consola.
Una acción o un evento no encuentra mi bioma. Los identificadores de bioma son namespace:id, por ejemplo typewriter:corrupted_forest. Consulta /tw biome list para ver la clave exacta. Un identificador desconocido se registra como advertencia (unknown biome '…') y la acción no hace nada.
Un jugador nunca ve la superposición. Las superposiciones necesitan PacketEvents: de lo contrario, la consola muestra PacketEvents unavailable: per-player biome overlays are disabled. Comprueba también que el jugador está en la audiencia, que hay un bioma configurado (una definición personalizada o vanillaBiome) y, en el caso de una región, que ambas esquinas están en un mundo cargado.
Paint Biome Region no hace nada. Con region establecido en WORLDEDIT_SELECTION, el jugador que lo activa necesita una selección de WorldEdit y WorldEdit debe estar instalado; la consola registra has no WorldEdit selection. En caso contrario, usa RADIUS_AROUND_PLAYER.
Restore Biome dice que la instantánea no existe. Las instantáneas solo se registran cuando la acción de pintado tiene un snapshotId, y la restauración debe usar el mismo nombre. Si consume está activado, la instantánea se elimina tras una restauración.