Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New Tag Convention Datapack #41

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open

New Tag Convention Datapack #41

wants to merge 2 commits into from

Conversation

catter1
Copy link

@catter1 catter1 commented Apr 11, 2024

Background

In the Smithed discord, Misode proposed an idea for the datapack community to come together and agree on a set of tags for us to all use. For behavior tags, we plan to do this just as a datapack community. Fabric and Neoforge each do their own thing, and we do not want to rely on them in the future when datapacks get fully custom items and blocks. Convention tags we will do our best to collaborate with them. The discussion thread can be found here.

This PR is the first step in creating the repository of gameplay/behavior tags.

Current Tags

In 1.20.5, Mojang are adding wolf variants to the game. Since varaints are done with NBT, it is not possible to control which variant spawns in which biomes via the biome JSONs like the other mobs in the game. Rather, they are controlled via wolf_varaint files. Here is an example of the file format of one of the variants.

{
  "angry_texture": "minecraft:entity/wolf/wolf_ashen_angry",
  "biomes": "minecraft:snowy_taiga",
  "tame_texture": "minecraft:entity/wolf/wolf_ashen_tame",
  "wild_texture": "minecraft:entity/wolf/wolf_ashen"
}

Unfortunately, Mojang only uses biome tags for three of the variants (is_jungle, is_savanna, is_badlands), and the other six are hardcoded to a single biome. This is an issue for compatibility between worldgen datapacks/mods that add biomes, and want the Vanilla wolf variants to spawn in their own custom biomes. If multiple datapacks or mods override the file, then only one datapack/mod will have the variants spawn in their biomes. Therefore it is important that we all agree on a tag to use, so we can have compatibility.

The format for these tags have been chosen as #c:has_wolf_variant/[variant]. The devs of Terralith and Regions Unexplored have agreed to this so far. Biomes O' Plenty is currently the only other large worldgen mod that adds biomes and is currently on 1.20.x. They have been contacted, although they seem aloof about the changes. We hope to try again with them later on once they update to 1.20.5+ and start to mess with wolf variants.

Future Plans

More discussion about this can be found in the thread in the Smithed Discord (linked at the beginning of this PR). Here are a couple of other behavior tag conventions that may take place, or are being discussed as a possibility.

  • #c:hide_on_map is used by jacobsjo's Datapack Map and the World Previewer mod to hide technical structures - such as Terralith's zpointers - on minimap-like programs.
  • Some Gamemode4 modules may use tags that could be agreed upon as a standard.
  • This will require more discussion and work, but a while ago there was an attempt to make worldgen datapacks more compatible by making carvers and placed features tag-driven. This of course would not be in the interest of Fabric and Neoforge (as they have their own biome modification APIs), but could be useful for datapack worldgen developers.

Final Notes

This is just the very start of the effort. It should be noted that this PR is not meant for work done to collaborate with Fabric and Neoforge on the common conventional tags. This is instead jsut for our own datapack behavior tags. Feedback and additions are more than welcome.

@misode
Copy link

misode commented Apr 12, 2024

I don't think we should standardize c tags without them being integrated into Neoforge and Fabric's tag convention, that sounds more confusing. I would rather this use the smithed namespace, especially because these are tags affecting vanilla behavior and not just categorizing tags.

Edit: I didn't notice that this was only adding tags, and keeping the wolf variants unaltered. I support this addition under the c namespace. The library should also be called conventional-tags, and we should consider including other useful tags from the agreed tag unification.

@catter1 catter1 changed the title New Behavior Tag Convention Datapack New Tag Convention Datapack Apr 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants