#Cross-loader common tags convention
1 messages · Page 3 of 1
Cake is going under foods/edible_when_placed tag
So it isn’t just cakes and stuff. Any food that is placeable before eating. Farmer delight has many of those that aren’t cakes
(Also pumpkin pie exist and isn’t placeable and is eaten in hand)
yeah i guess grouping pies and grouping cakes wont be needed as i dont see a use case even tho many mods add similar items and blocks
If you find more mods trying to make and use a ropes/chain tag, Lmk. I’ll spend time at some point to find who is trying to make the rope and ropes tags that the sheet shows
Comforts adds the item tag forge:rope to use in one of its recipes.
the argument was that item tags are kind of by definition a diversified group. "fishes" is "salmon, cod, tropical fish, pufferfish", "meats" is "pork, beef, mutton, chicken"
shrug I can see it both ways tbh
i don't personally care strongly either way, just pointing that out since that is why some people wanted that
Well it’s fishes now cause minecraft:fishes exist and having fish alongside that is too inconsistent for me
we incidentally might benefit from, as part of a food API whenever that happens, a way to identify the associated food properties and how many servings the item/block is [something that tags alone can't do, but i know there's been talk about a food API in the past]
My findings on who are trying to do rope and chain tags on fabric and forge:
@copper aurora is there a reason you don't have a rope item tag usage for your recipes that uses rope? Wondering as you do have block tag for ropes
mostly cuz safety sets and ropes can be converted back and forth
and using a tag there would "convert" modded ropes into FD rope
just fyi, you'll want to switch to forge:ropes for now to work with supplementaries
You’ll probably want to add your ropes to forge:ropes too so at the very least, the other mods can use your ropes
Block and item tag
are we distinguishing between "place and then collect a portion with a knife or bowl" vs "place and then eat by clicking"?
Place in world and eat in world
Like cake and farmer delight meals stuff
The collect portion is not edible in world. That’s creating new items that you later eat
are food tags intended to use the culinary or botanical definition of their name? (e.g. if there was a berry tag would a modded strawberry use the tag)
Culinary. The Javadoc will tell you that
Berries are separate from fruits because there’s a ridiculous ton of berry foods that it is more useful to separate from fruits
Cherry would be fruit tho. Even culinary says fruit for it due to pit in center. Stone fruit
i'd say culinary because the recipe for fruit salad should not accept tomatoes 😛
plus if we go by the scientific definition almost nothing is actually a nut, we need some tag to put peanuts and walnuts and cashews in [none of which are either nuts or the same kind of thing as each other]
maybe a block tag of c:in_world_edible would be good too. Or c:placed_edible to be similar to item tag. thoughts?
Or forgo block tag for this. Not sure if people need something to tell if block in world is edible like cake
i know of a few mods that add in-world placeable foods but you have to interact with them using something like a bowl to get the actual food item from them
so it might work but i think it's probably not worth it
Those wouldn’t be in the tag as those blocks are not being eaten. They are giving you items that you later eat. The new items is what would be food tagged and all
The block tag would be for blocks that you directly eat in world like cake.
how about a edible/harmful tag for food that's technically edible but harmful/dangerous to eat
probably
how about suspicious stew? can have any effect including harmful
anything that does harm to you in some way when you eat it, for example uncooked elder berries, pufferfish, a magic plant from another dimension that turns your guts inside out when when you eat it
not sure, suspicious stew is strange
Is chorus fruit harmful 
some could argue rotten flesh hunger isn't "harmful" is the problem. harm imply damage imo. like poison or something
rotten flesh causes hunger which can cause starvation which causes damage
how about a food that gives levitation? You fly up, lose effect, fall and take damage
is that a harmful food? or a tactical food that you use to get to higher places?
i think that depends on the length of the effect, if it gives you a few seconds of levitation its probably tactical, if it gives you a minute of levitation its probably harmful
now we are reaching arbitrary lines
and that can be an issue for this tag
if people cant understand what is harmful or not, the tag will start to get entries that not everyone agrees with from each mod and can cause weird conflicts
maybe the tag could be edible/toxic or edible/poisonous, it would be the same in most of the non-edge cases, and it would avoid a lot of the edge cases
That's still got a lot of edge cases
It just seems too wishy-washy to me in terms of what goes in it
why not use the mod effect category for that effect? And tag them with all of the applying effects?
Mob Effects are already categorized for beneficial, harmful and neutral
it could also be foods that directly damage you without effects. or a food that deletes your armor
edge case galore
Every categorization system will end up with edge cases
This one is especially problematic is the issue
There can be a foods/poisonous for spider eye and poisonous potato but that excludes rotten flesh. It is more clear it is for poisonous foods. But I can’t think of any category that includes all three items without also including a ton of questionable items as well
Isn't hunger supposed to represent food poisoning?
wouldnt that be better represented by poison or nausea?
food that makes you hungerier seems like just zombie magic thingy
making you just as hungry as zombies
I guess? I always thought poison as actual venom
Hunger as food poisoning
And nausea as what you get when you spin too fast
venum and poison are different. Venomous is toxins that are injected like a snake bite. Poison are toxins you ingest or touch or whatnot. Hence why it is Poisonous Potato and not Venomous Potato. The Spider eye is poisonous and not venomous because you eat it.
pufferfish
There's pufferfish?
You eat pufferfish in game and you get nausea
Welcome to English and distinctions in the language I'm not acquainted to lol
I wasn't even aware that pufferfish existed nor that you could eat them
(Though I do play devils advocate to try and make sure suggestions are strong enough to be added)
I guess rotten flesh hunger feels more of a debuff than harm in a way.
The issue is that it really gets iffy fast when stuff like chorus fruit is considered
And in general, "harmful" is an iffy category, and "poisonous" is well defined only so long as you mean specifically the poison effect and nothing else and then it's not a very useful category
how about instead of having a tag for food with negative effects, we add a tag for "food with mob effect", leaving it up to mods to decipher whether it is harmful or not via the mob effect(assuming that is available from the Item)
chorus is not harmful and not beneficial
Do you mean mob effect or generic "does something besides filling hunger"? As those are two different things
good point, hadn't thought that far 
Chorus fruit once again rears it's ugly head
That said, I think stuff should be based on usage. What's the actual case where folks want a tag for this and what's the expected behavior of a tag in that case, and can we go from there? And if nobody wants to use this tag it shouldn't be included, but if people do want it lets collect the details from the intended use
Exclude poisonous potatoes from vegetable food tag by doing ingredient exclusion of poisonous food tag in a recipe?
Either that or I remove poisonous potato from vegetable tag
I don't think posionous potatos and spider eyes should go in food tags, even though they are edible
They do restore hunger a bit and were in the c:foods tag that fabric already have now
In code, if you check food property, they have one so by minecraft, it is food
if all you care about is whether or not an item restores some hunger, you can just check their food value.
Even wiki says it is food
I don't agree with that, at best they should be considered "edible"
I'd say I wouldn't put it in the vegetable category. The javadocs says the vegetable tag is based on culinary category. Poisonous potatoes, culinarily, are inedible
So they can go in the food tag, based on the food attribute, but I wouldn't put them in the vegetable tag as that's meant for recipes
I think this logic should apply to all "foods" categories, being edible doesn't equal being food IMO
Everything is edible, you might not survive the first time eating it
even minecraft puts spider eyes in the food creative tab
if you don't mark it as food, it confuses people because mc says it is food
The food tag is meant to represent the player being able to eat it, from my understanding, in a way that can be used in places where tags are required and you can't check the item food attribute
(To Telepathic)
Yeah, I'm with you on it being food, but the poisonous potato shouldn't be a vegetable in my mind
Yeah I can remove it from the vegatable tag and just keep it in c:foods.
Because that one is specifically based on culinary category
current setup. (fabric view cause it is cleaner and easier to share than neoforge's datagen code)
Dicey on the golden/enchanted stuff in the vegetable/fruit tags, especially if the poisonous stuff isn't, but I don't know if there's a good solution there
can we get a cake tag? there are a lot of mods that add cakes (as a block&item tag)
can add a c:foods/golden and you ingredient exclude if you wont want golden
EDIBLE_WHEN_PLACED_FOODS is for cake and other items that places blocks that you then eat
was asking earlier if a block tag should exist for that
yeah, but cakes are not just in world eadible foods, they are a somewhat special imo, and yeah, placed foods is something I would also want a tag for
you'll have to explain what case is needed for cake tag that c:foods/edible_when_placed doesn't cover for the item tag
probably way too complicated, but how about edible/harmful defined as ```[only gives effects, hunger, and, saturation when eaten and, [the total of f(effect) for each negative effect it gives is greater than the total of f(effect) for each positive effect it gives]]
or
[does something that reduces one or more of your resources without giving a equivalent amount of one or more resources* back on average]
when eaten
*resource defined as [anything you can have that you can spend, lose, or gain in some way that does not match the definition of harmful], items.
if something is the direct opposite of a resource and, not a resource it is considered to be a negative amount of that resource
**calculating equivalence between different resources would be difficult in some cases, if no simple way of converting between amounts of two resources exists its assumed that they can never be equal,
when converting between effects and health a potion effect is equal to the health regeneration it would regenerate over its length if it was regeneration,
hunger and saturation are considered equal to the health they would eventually regenerate,
items have greater than infinite value when lost and no value when gained,
death is equal to the loss of a infinite amount of hearts
***f(effect) = effect.level * effect.length```
(negative effect referring to harmful effects, because that's how minecraft.wiki refers to the categories of effects)
there's probably a better word than resource, but i can't think of it
in vanilla resources would be your health, items, armor points, effects, etc
this would hopefully solve a lot of the edge cases, solutions to the previously listed edge cases: food that deletes your armor: infinite loss of resources and thus harmful. chorus fruit: only effects position, position is not a resource, not harmful. food that gives levitation: always gives levitation, which is negative, and nothing else, harmful. rotten flesh: harmful, out of characters
(sorry for the wall of text)
i think you missed the point
a datapacker, modder, and players are going to see c:foods/harmful. Only modders looking at the modloader's class directly will see the javadoc for what goes in the tag.
the issue is everyone else who looks at the tag name will be hevaily confused and start putting items that doesn't belong in it into the tag
that's the issue.
c:foods/harmful is too vague and open-ended when viewed alone compared to all the other tags
also, I aint reading all that and running calculations on my items just to determine if it goes in a tag
and no one else will do so either
it has to quick to understand and quick to decide if my item goes in it or not
c:foods/poisonous works because it is clear it is about foods that are toxic and gives poison. Or could do c:foods/food_poisoning if we want to take the risk of expanding it to include foods that people feel would give food poisoning irl like rotten flesh and nausea foods.
i'd say food_poisoning
let's leave the math for worldgen. Tags should be intuitive except in very rare cases
probably not enough cases so that a tag is really needed
Same, since you get it from raw chicken as well
would food_poisoning include a bowl of soup containing billions of microscopic needles?
is a medical waste disposal box a soup
probably more a stew
bigger question is why you marked your soap with needles as edible
lets focus more on things people are likely to add lol
i misread soup as soap
if your food does something that can be interpeted as food poisoning, put it in there. And be realistic on what you would expect from the tag lol
no a bomb that you eat is not food poisoning
Is the Forbidden Cheese food poisoning?
That’s food death
Instant death
Anyway, back to topic as we beat this food poisoning to death.
Is a golden tag something needed. Or block tag for placed edibles needed
Supplementaries soap is edible and very harmful ☠️
If we are still looking for a name what about has_negative_side_effect
Negative side effect is problematic as it is too vague and we get into issue of is chorus consider negative or levitation foods negative and so forth
What does your soap do when eaten
Oh it gives poison. Put it in food poisoning tag
Yeah makes sense.
I'm pretty sure the vanilla food API already lets you query if food gives an effect, though idk if it works for suspicious stew
Sure but if you have a recipe for say toxic soup and you want food poisoning items in it, the tag helps here. Or spawn poisonous foods in decaying structures for fun or something idk
But yes in code you should be able to get the exact effects somehow
but gunpowder is a toxin, and the metals bombs are made of are usually also toxic, so you would still get poisoned from the bomb fragments in your mouth if you managed to swallow them, so the bomb should have the food poisoning tag.
or if the bomb is made from lead you wouldn't even need to swallow
you could also not ignite the bomb and slowly scrape off bits of the metal using your teeth for food poisoning from the metal
now that i think about it food/poisonous is probably better than food/food_poisoning,
it solves the bombs and magic cheese as google defines poisonous as
"(of a substance or plant) causing or capable of causing death or illness if taken into the bory.", the forbidden cheese kills you when ingested, so its technically poisonous,
the bomb is probably made from multiple poisonous substances, so its technically poisonous
and repeating the word food in food/food_poisoning sounds a bit weird when you read it a lot
Plat was joking about the cheese
however the cheese is still a concern, as a mod may add forbidden cheese
if the modder makes it so that eating a bomb grants poison, then it is food poisoning and goes in tag. If the modder makes bomb explode when eaten, that is not food poisoning.
you dont call someone getting blown up by a bomb an illness. You call that an injury or death
food poisoning is illness
yes, the explosion ripping your head off isn't a illness, but if you somehow survived you'd eventually end up with heavy metal poisoning(assuming the bomb is made from heavy metals)
ok let me know whan a modder implements that lol
i think we hit fringe edge cases with food poisoning tag so that means it is solid. More solid than foods/harmful. Rather roll with it for now and see how modders handle it.
In general the phrase "food poisoning" refers to foodborne illness or bacterial toxins rather than poison in general. And, it may be worth considering, rotten flesh and raw chicken inflict the hunger effect rather than poison
i'd say rotten flesh and raw chicken would count as poisonous
Since it's half related to tags, any news on the situation of https://github.com/neoforged/NeoForge/pull/59 ? Is it scheduled after this bunch of tag migration or are there problems with it?
Depends on what @uneven nova wants to do with that and depends on if those tags are functionality tied to some code or not
hm?
Damage type tags are more code-tied than most tags
I don't think there is anything blocking #59 though, it just needs to be rebased
yeah if functional tied, those tags would exist under neoforge namespace and not the c namespace and so, not related to my unifying tag pr
Oh, I understood it as all forge tags becoming c
Only convention tags
is that not all the tags that forge has atm?
Not quite
Enchanting fuel I think?
Maybe one or two others
Well, enchanting fuel is deprecated for now until any sort of fallback tags are implemented so maybe?
functional vs utility
Worldgen stones - not sure that's functional, I'd consider it a convention tag. Unless neoforge is patching in behavior based on that in which case I
at whatever is going on there
I'd consider worldgen tags convention and not functional because the functionality is not patched in via code but it is used in datapacks
It’s patched in
right here
Hence why i moved it from forge:stone to neoforge:worldgen/stones
cc: @primal quarry ^
I'll edit javadoc to mention where it is patched in
yayyy
not sure if sarcastic yay
what's wrong with base_stone_overworld that necessitates that?
No idea
I... okay. But weird but alright
But I didn’t want to make the decision to yeet a functional tag
Yeah no, that's fair, that's a different issue than what you're doing
If neoforge team yeets the forge:stone tag now, I can remove it from my pr
What I think happened is forge had forge:stone first. Patched it in so features replaced it. Then Mc came with its own stone worldgen tag. But forge decided to replace that tag in the feature instead of removing their own tag
Could’ve been an optional forge:stone tag entry put into vanilla’s worldgen stone tag and then the forge tag removed
Yeah seems funky to patch when including the tag in the vanilla one is possible
Or maybe the patch should just be yeeted and the functional tag turned into a normal conventional tag
I'd yeet the patch but yeah, it's a whole different issue
(i asked in #neoforge-github for more info already)
With all the documentation happening via comments I think it would be beneficial for NeoForge & Fabric to consider incorporating a comment field within the JSON of tag files.
This would provide clarity for modpack makers and regular users by allowing them to understand the purpose of datapack tags directly from the comment, eliminating the need to rely on source code comments or some wiki.
Issue is raw json by default doesn’t allow for comments. You can do // comments since Mc is lenient mode parsing (actually not sure if tags are parsed lenient). However in many editors, that // will be marked as an error.
I had to add this entry to make GitHub stop marking my //comments in red for my structure tutorial mod
https://github.com/TelepathicGrunt/StructureTutorialMod/blob/3c143e5a8298c4eebff26efc9c006a2750a58b2c/.gitattributes#L1
Also, datagen doesn’t allow comments either
Sorry I didn't literally mean code comments but more like a valid json field called comment
So the datagen would have to be created in a different pr for comments first before tag pr can even have them
Ngl, I hate that workaround a ton 
It’s very ugly
I used to do that for my structure tutorial mod and was too much
https://github.com/TelepathicGrunt/StructureTutorialMod/blob/54f4f2d4af6aac4b53298ccdda360d522aed7dc7/src/main/resources/data/structure_tutorial/worldgen/template_pool/run_down_house/start_pool.json
You can make an issue report to Neoforge and fabric repo asking for them to look into comments for json files and to develop the datagen for them. As it cannot be set by hand since the datagen will wipe out any hand-made work on the json files
Yeah you're right it would need to be part of datagen.
But honestly I don't need it. So I don't think I will open a issue for that any time soon 🙃
I mostly mentioned it for the sake of accessibility for non-mod-dev people.
ok your right the first example is a nightmare
pluralizing to mean many different types now. I reached fluids and oof
honeys 
feels so wrong but do it I must for consistency
but this would be the same as saying minecraft:waters



or maybe fluid is special and is more about saying the type than saying multiple types?
the vanilla water tag should not have a pluralised translated name because it is for behaviour and not recipes
not in forge/neo
water/lava tag behavior was removed for FluidTypes to work
So in forge/neo, the fluid tags are turned into normal conventional-ish tags
question is does the fabric side patch that out too?
nope
they have their own c:water and c:lava tag for people who want to tag their fluid without side effects
well then we can't use the vanilla tag for 2 different things
c tag should be for convention, vanilla for behavior, even if in forge that behavior does nothing
I'd say yes
why do we need such specific stew tags?
was asked for by knightminer saying several mods had stew fluids
is there one for all stews too?
Soup carts go brrr
Basically, you need a very specific tag because though it exists in vanilla, the fluid doesn't, and mods want to be able to consume each other's fluids of it
CONSUME SOUP
Side note,
forge:dusts/prismarine
I don't want to just delete a tag but this is just wildly specific and I can't find any usage of this. Maybe this should just be deleted
or maybe I am looking in wrong places
What even goes on that?
dust like redstone dust or glowstone dust like items
crushed and grinded down prismarine shards/crystals I guess
wait, forge adds prismarine shards to it...
https://github.com/MinecraftForge/MinecraftForge/blob/1.19.x/src/generated/resources/data/forge/tags/items/dusts/prismarine.json
what the hip hoppity heck is this
shard != dust

Okay so... um... yeah, yeet that
If I were a modder I'd expect that to have, like, actual prismarine dust in it
And it screws over any modder who does happen to add that
Because now they have no tag for stuff
Maybe a dedicated prismarine shard tag or something? I don't know, seems pretty niche
I cant find anyone actually adding to that tag so it's entirely unused anyway for tagging stuff.
I'd say keep the tag, but remove the item?
Just in case there is some random person using it
People can add to tags neoforge doesn't add
if they make a prismarine dust, they cna make their own c:dusts/primsarine tag
oh right, I was just thinking Tags.Items.DUSTS_PRISMARINE 🙃
cause otherwise, this tag doesn't even have any usage right not. If someone was adding an item to the tag I could find,t hen yeah it has use
Eh, not really worth it if the convention is established by other stuff
Yeah, you're right
Erm, okay. That's at least more sensible
I've had a long day today, my brain isn't 100% there 🤣
but all the usages I can find reading the tag can just take prismarine shard directly
Not sure WTF that dust tag is doing
Honestly, I don't think prismarine should be in a tag anyway
The gem tag containing effectively a pile of crystals instead of a single gem feels a little bit strange personally, but still better than the dust one
Since IIRC you only get prismarine crystals from guardians/elder guardians; as far as I'm aware all of the other gems come from ores
gem tag doesnt define where the gem comes from. Just that it is a gem
same way not every ingot is from smelting
oh im missing red nether bricks. Unless we want to split bricks into their own c:bricks tag
True, but ender pearls are not classed as gems despite being basically a gemstone in the same way that real pearls are
any objections to this? If later you complain after PR is merged but never spoke up now to voice opposition, that's on you lol
It seems fine to me; I remember a few mods that add different types of water so I can see that being the same for lava and milk
Not 100% sure about the soups and stews (I'm guessing they're stew/suspicious,... and soup/beetroot?) but I suppose they work
Those ones are super necessary as since vanilla doesn't have a fluid, different mods can end up adding the same sort of fluid for those
She is asking about foldering them
Ah, yeah
Yeah, my thought would be to folder them based on how ingots are setup
Not sure I'd folder them honestly
bricks/bricks lol
Unless there's a root folder tag grouping all the subfolders
And then you'd have to figure out how to handle soup vs stews and we're back to that whole issue
I know a bunch of food mods add different type of soups and stews, so fluids for those would make sense too
Hooonestly, I'm fine with just calling a soup a stew
that exact discussion came up a while back
if it's for the sake of having a single parent folder
bricks/normal bricks/nether bricks:red_nether
In this case, I feel like stews/beetroot would be confusing
¯_(ツ)_/¯
But not that big of a deal either way as long as the tags exist
Clay brick perhaps?
inb4 someone makes a brick of just unbaked clay
Hmm, fair
Honestly bricks/brick seems fine in my mind. It's accurate if nothing else
"Ah yes, this brick is made of brick"
this is from the TFC+ wiki but IIRC it's also in "base" TFC itself
stews are soups. So the 4 soup/stews would be under c:soups/ like how the food tags are setup now
sounds good to me
i don't mind which one you choose as long as they're consistent 😅
I was just thinking that there were more items named stew in vanilla
oh wait there is no red nether brick. Just the block form.
only difference between Nether Brick and Nether Bricks is an s
not sure if keeping _stews or not is desired
hot take but I think fluid tags should be singular
I see 3 pots of soup I say that's a lot of soup, I see 14 apples I say that's a lot of apples
that's the argument that we been having with foods.
a noun can be plural without the s if uncountable. But the s is added when talking about many different types of the noun.
in terms of vanilla, they have minecraft:fishes and more uses of s/es for meaning more than oen type instead of the uncountable plural form tags.
but ngl the plural type fluid tags do feel wrong but consistency. Unless fluid tags gets exempted from this types distinction
we do already diverge from vanilla tangibly so I don't think convention tags need to be completely beholdent, but they do use singular fluids
I'm truthfully coming at it from the EMI perspective where seeing "fishes" makes me go "sure" and seeing "waters" would make me raise an eyebrow
I'd say that an overarching soups/stews tag to contain all of those would be justified, but mushroom stew should just be mushroom stew
since it's only one logical type of fluid, just registered by multiple mods because forge doesn't register it
you talking fluid or item tag
fluid tag
as an extension
i'd expect "honeys" to include various special honeys like the starry honey from resourceful bees, "honey" to include only fluids that represent the contents of a vanilla honey bottle item
I'm not sure folderizing the fluid tags makes sense tbh. When a mod checks fluid tags, they are looking for a specific kind of fluid. i can't see what behavior they would need a general soups tag for.
a mod making fluid crafting recipes for soups and stews?
what fluids are allowed in a 'soup pot' tank? idk, i do think tags representing multiple kinds of fluid are a valid concept in general
'molten metals' would be another obvious example, there's dozens of those in tcon
so 1. soup/mushroom
or 2. soup/mushroom_stew
or just 3. soup alongside mushroom_stew
i think alongside is fine, we don't need an elaborate folder structure...
shrug, i think consistency is better for tags which describe an "is-a" relationship
you two, fight it out lol. Imma eat lunch
except on the other hand, molten_metals/iron could be useful because some mods infer relationships between tags based on sharing the same name [i haven't seen anything that does so for molten metals, but e.g. industrial foregoing has a machine to process ores/X into dusts/X]
one thought i had was a mod using something like create mixers to make fluid-based soup crafting, where you put in a bunch of items to craft soups in multiple steps
i can see the folder structure being potentially useful in that case
Tags name different kinds of things, not different things - and in English that means always making it plural
I'd argue fluids should be the same
"honeys" or "waters" or "lavas" is correct because it's different kinds of water, not just a bunch of water
If I have, I don't know, salt water and swamp water and sugar water, I have multiple waters
It's the same reason for stones instead of stone
yeah and with lavas too you could have silicate lavas, felsic lavas and so on
(they have different flowing characteristics and solidify into different types of rocks, and they're all a little bit intertwined)
Exactly. With any of these the whole point of a tag is that it holds multiple types of stuff
I encourage you to go to the fabric discord/fabric unify tag pr and ask for plural fluid tags there. I have a feeling it's not going to go well to ask them to do c:waters/c:lavas. or maybe I'm wrong and they want that.
I'm taking a break for now
i put this on the gh repo Neoforge#274 but it was suggested on another discord i say it in here. armor and tool convention should match all the other material forms (form/type), armors/slot/material tools/type/material. eg, armors/leggings/leather, tools/pickaxes/iron.
but the armor and tool tags arent material based
they are about the categories. Not materials
if you are asking for materials for these tags, there's multiple problems.
- nested folders would be an uphill battle. Took a bit to get fabric folks onboard with folder in first place. nest folders would be an uphill battle for both loaders.
- i don't see the benefit.
like, leggings/iron tag doesn't relaly help as you would just check for iron leggings directly since that would just only hold iron leggings anyway. Chains is different
makes more sense to have tags on the types like leggings type itself.
curious tho, is there a reason you thought these tags were material based?
i actually was looking at the wrong repo when i thought they were material based. however i think they should be material based
and at least back when we had oredict, plenty of mods added their own variations of leggingsIron, or whatever. one of mine for example adds its own variation of leather armor
er no i was right, i dont think i said they are presently material based? sorry its freezing here having trouble thinking
maybe my memory is wrong but i swear we used to have slotMaterial oredicts in base forge
hrm. looked at old forge src appears we did not have those in base forge. maybe it was in gregtech or something, i played that a lot back then
anyway. the actual use case i have is my mod adds a set of leather-type armor that can be used directly as an alternative for leather armor, including in recipes. without tags, the only way to ensure it works for all recipes is hackily modifying the recipemanager
i would also settle for armors/form/armormaterial as opposed to literal material
which may also be more useful
for ex, a recipe requires an iron-level axe
that seems rather oddly specific
how many mods add recipes that would want to use an iron-level axe? is that the harvest level specifically, or how do you chose what level to put a tool in?
If armor, you use ArmorMaterial in code to get the material
that doesn't help me with vanilla or mod-added recipes
and making my item compatible with them
I’m gonna be honest
This doesn’t sound like tag convention
This is going onto functional tags
Because if you mark an tool as iron level by tag, you would expect said tag to make it act iron level
But that’s not what happens
I don’t have the code in front of me but I’m sure you define the tool’s strength in code somewhere
So you would need to unhook that and make it tag based for the tag to make sense. Otherwise you get people putting tools made of iron into the tag but not actually iron level harvest ability
Thus breaking your use case
This is an entirely separate can of worms that unifying tag pr shouldn’t touch
well hold on. we have storage_blocks/gold
i'm not talking about controling behavior
Doesn’t matter
leggings/iron tag doesn't relaly help as you would just check for iron leggings directly since that would just only hold iron leggings anyway
how is storage blocks any different?
pickaxe/iron item tag sounds like pickaxes that would work with minecraft:mineables/pickaxe_iron block tag
Storage blocks is just categorizing blocks made of a specific ingredient and can be reversed back to that ingredient
It has no functionality tied to it.
This pickaxe iron is far too close to the mineable tags and would confused people
And lies to people about the tier level
Because the tags aren’t the tier levels
Ok mineables doesn’t state tier just pickaxe. I know somewhere mentions tier levels but I still prefer no tags for tiers since the tags doesn’t control the tiers. I’ll let other say their thoughts about it but I prefer that be done outside the tag convention pr in its own pr (not made by me)
tier is defined when creatign the item ie new PickaxeItem(Tiers.IRON...
likewise armor
I think "elemental" damage type tags could be useful and 1.19.4 already introduced like 3 elemental tags (is_fire, is_freezing, is_lightning).
That way mods could make their mobs weak or immune against specific damage types.
Look at @uneven nova’s damage type pr
There’s tags in there that will have some functionality attached to it so it’s going to be under neoforge namespace
Unless shadow is fine with some damage type tags being duplicated into c namespace but his pr only reads the neoforge namespaced ones
I asked in fabric discord and no replies about common damage type. Vanilla's seems to be good enough and there's no burning desire for more. Sorry
how about a incorporeal or non-material tag for items and blocks that are not made of matter
sounds wildly niche
like cloud blocks?
that seems incredibly mod-specific
what vanilla items would even go there?
IMO, it makes no sense to have a standard definition for a tag for which vanilla doesn't have items, unless it's extremely common for mods to add those items
yeah I don't know
experience is likely not made of matter so bottles of enchanting would probably count
but the bottle is glass
in any case
"probably"
do you have a use case for this?
or are you just thinking possible tags that you don't actually care about?
a bottle of tomato sauce is still food, even though the bottle isn't
irl, I'd argue not -- it contains food but isn't just "food"
but in mc we have cases of things that are in containers and are food (like stew), so I have to accept that the container doesn't matter and the tags are the content
Point is, intangible or non-matter tag has no use or likely too niche
Can’t see mods or pack makers actually using it for anything
and for the use case if a mod adds a particle accelerator it problaly shouldn't accept a item that isn't even made from matter as that would break physics
a machine that breaks down items into the quarks making up their atoms shouldn't accept items not made from matter
a machine reacting reacting antimatter with items to produce energy shouldn't accept items not made from matter as they couldn't react with the antimatter
How many of said mods actually exist right now and would like said tag
"what's matter" is... just so iffy with vanilla stuff that that's something those mods would have to figure out anyways
Cause, like, I don't think it's the place of neoforge/fabric/whatever to dictate that "experience is not matter" - if some mod decides that it is and that makes sense - given that MC doesn't really have any sort of actual information about what experience is?
forge has always tried to dictate what should matter for devs/players
neoforge hasn't been much better in my experience
it's hardly a departure
but I do agree this seems insanely niche
to the point where I can't even think of one mod that might use it
which then just raises the question of why it should be neoforge's responsibility
lol not again
oh I'm not allowed to give opinions relevant to the topic of conversation now?
well shit
tslat, i don't want shitflinging or hostility here
it's specifically relevant and in response to luke's statement
it's a direct response to him
this is the tag channel and i want this space to be calm
Eh, that wasn't really hostile, and it was relevant in terms of trying to avoid a problematic historic precedent
^
the fact that I can't even talk calmly, in direct response to someone's specific statement without being harassed
maybe some introspection is warranted
Though all things considered I think we're all in agreement about this point in regard to the issue at hand
personally a tag for non-material or incorporeal is something I could totally see myself using, and I've definitely seen a handful of mods with ghostly/phantasm items that might fit
do you... have a specific use case you need this for? or is it just a what if type thing?
The question is really what vanilla stuff would unambigously go into it. If there isn't anything, it's hard to set a convention
if phantoms are spirits/ghosts or manifeststions of the players nightmares/insomnia than phantom membranes
bottles o' enchanting as it wouldn't make much sense for XP to be made out of matter
vanilla is a bit difficult as its lore is intentionally ambigous and this tag kind of depends on a item/block's lore
I don’t agree
Phantoms are made of matter
See the problem here
We can’t agree
Taggers wont agree
And more problems will arise from said tag than it would solve
Let the modders talk to each other and they themselves roll out their own tag for things they agree on
IMO phantoms are made of end-stuff, same as endermen and the end dragon
it doesn't necessarily match up with the ingame mechanics but that's my brain-lore
No game mechanic and it's impossible to make a crafting convention for it
I mean even if its possible
If its just gonna be a topic of debate its not common enough to include
hey I just noticed, forge 1.20.1 is scrombling tag order
is that one of lex's weirdo 0 second review PRs or is neo also doing that
that's about trying to get fabric and neo tags to be the same
as in, same filenames
if neo's not doing it then no concerns, if neo is doing it I think it should stop to be similar to fabric and also better suit the goal
and same contents
so your concern is that tag order may be different between fabric and neo?
in vanilla and fabric, tags have meaningful order
oak planks are always first, oak logs are always first, etc
on some 1.20.1 version of forge, they're randomly scrambled inconsistently every launch
neo 47.1.81 vs forge 47.2.0
it seems like latest 1.20.1 neo does not have the scrombling and I'm not sure how to quickly test on 1.20.2 so I'll just assume it's not a problem but uh, don't pull in whatever lexforge did recently
tag order was fixed recently
and if someone ports something that was done first over there, we would review it with the same scrutiny as something done without prior use there
in neoforge 20.2, neoforge 20.1, and in lexforge 20.1
then my worries were for naught
and yeah, just because something happens in lexforge but not neo, doesn't mean lex did something to cause it
it can also mean a fix was applied on neo but not (yet) forge
someone had to break it at some point in forge
then it broke during the 1.19.3/.4/1.20/.1 development cycle
it was broken in 47.1.36, on 2023-07-19
actually it looks to be caused by a commit authored specifically by lex on that day
looks like it was a simple mistake
ImmutableSet preserves insertion order, but HashSet does not, so when making tags mutable again, they inadvertently lost the order
which doesn't matter to 99% of people
but it's fixed now
so this thread can return to its intended topic :P
hello, just passing by to ask if there would be utility in providing an item tag which item viewers and the like can use for a "hide this item by default" (for things which are items out of necessity, but shouldn't be viewed through item viewers)
This already exists
And yeah we can provide it since it's supposed to be standard, IMO

I think it's c:hidden_from_recipe_viewers on Fabric
@static scroll does EMI check any tag for hiding items?
@rough edge @flat knoll same for JEI and REI. Do they check any tag for what items to hide? I just want to double check that all recipe viewers are currently checking the same specific tag or not
tbh i didnt even know this tag existed, until just now
thought to hide an ingredient had to go through each mods api and blacklist it
having this be a common convention tag, would be real handy
mods wouldnt need a soft dependency on each recipe viewer mod just to hide an ingredient
looks at EMI code
consolodateTags 
me too
also looks like REI only checks the tag for block/item/fluid ingredients
while the others check against what ever registry type the ingredient is associated with
dont know how useful this information is though
guess common convention can provide keys for those 3 common types
others types you gotta make the TagKey yourself
common common convention tags 
(the first common being the 'type', like 'item', 'block', 'fluid')
I 99% play forge, so it's not surprising
EMI does a lot of tag stuff, don't worry about it :)
shouldn't that be consolidate?
I dunno, I'm not an english teachur
okay that message was a typo but it's contextually funny
recipe viewer hidden tag added now. PR updated for 1.20.4 now
https://github.com/neoforged/NeoForge/pull/135
c:air tag. Yay or nah? Mods would have to explicitly check for the tag tho.
Currently, if you mark you block as isAir in code, your block gets replaced by Air if the entire chunk section is made of any isAir blocks. Thus isAir is not safe for mods to used for custom air blocks.
The alternative to the tag is to patch Mc to only mark the chunk section as Air only if all blocks are Air instead of checking isAir. Which would make using isAir safe again for modded use
a better question I think is, does it make sense to have an air block that is expected to be preserved? if you flag it as air, shouldn't it be assumed to be replaceable with a different air?
as opposite to a breathable, replaceable block with no collision but special purpose.
IMO, a tag makes more sense for this, but (and I expect others to disagree with this) I don't think it should be an air tag.
that said, I don't think something like c:gases/breathable or c:airlike is discoverable enough, so if it has to be c:air, while I don't like it, it is still a better option than intentionally breaking the "if all blocks are air, make the chunk section empty and discard the arrays"
Think of modded air like Argon air that is supposed to act like air in all cases except is smothers fire next to it and can't be replaced by fire. Or Windy Air that pushes entities but otherwise, is replaceable by anything else.
The problem with vanilla is, if you set say an entire chunk section with your air and have isAir true, vanilla will assume that all positions in the chunk is vanilla Air and return only that air instead of your block. That's a bug imo as if you set an entire chunk section with Cave Air, you don't get back Cave Air when checking later.
Yeah
Which is fine
Practically speaking
None of the examples that you mentioned need support for the "full subchunk" mechanic
So I would argue that this should be considered in two different approaches:
- What does c:air get us, functionality wise?
mods can replace their isAir checks in code with a tag check. How long it takes for mods to make that switch would have to be seen
- Patch the subchunk logic seperately
But what does this get you?
From a consumer of the isAir check currently()
You could reasonably assume that isAir() == c:air
Could you not?
Like what any other tag do? Lets other mods know they have an actual air-intended block and can do their behaviors for it
I would argue the other way around
I would potentially argue the other way around
Instead of introducing c:air
We should add a method isDefault()
Which then is checked in the subchunk
Because that is the only exceptional behaviour
For reference in LevelChunkSection
And in LevelChunk, it then checks the hasOnlyAir method and if true, returns AIR
Wouldn't it make more sence to just swap the isAir check with .is(Blocks.AIR) and keep hasOnlyAir which now means vanilla Air like it should be? Adding isEmpty and patching all the hasOnlyAir calls to isEmpty would be a significantly bigger patch
Does vanilla have more than one isAir block? Because if so suddenly this change has a change in how vanilla chunk sections behave and quite possibly a (minor) performance impact. Something something cave air in large underground caves?
Air, cave air and void air.
Wonder if that may be worth a bug report to vanilla? May be a viable report if e.g. some datapack could use different types of air for some sort of logic but then that doesn't work in The End void or whatever since it's not saved I guess?
Cave air is only in ravines and certain vanilla structures. No area large enough of entirely Cave Air so you would not get any performance impact realistically.
Alright, fair enough. Where's void air used?
Ah, stuff that's out of range
Is cave air not used in, well, caves?
for positions outside would build height. Top of nether iirc. Might be replaced by AIR due to vanilla's logic
Noise caves do not place Cave Air
only carvers do. And ravine is the only carver left in overworld
Huh, funky
Let's check the nether ceiling bit, cause that would be a real issue if you made this change and those chunk sections started taking up more memory, cause there's a lot of them. But otherwise, seems like it would be minor enough that you could go with patching the isAir check to use some new method instead
nether roof is turned into air
it replaced void air. Might as well just patch the void air calls to just be AIR lmao
actually, void air started after 256
so 128 to 256 in nether is already air
Iirc cave air is also used for cave structures that want to place air
Yeah, mineshafts for sure
I saw it once during a palette corruption
Or well
On a screenshare
To avoid weird edge cases we haven't thought of, can we:
- add a new method for whether or not a block is replaceable by air to compress chunks
- make chunk sections use that
- make the vanilla cave/void air blocks have that property
effort!
Yeah but I don't want to discover down the road that someone was filling massive areas with cave air for some weird datapack use or whatever, that they expected to get recompressed later but never did...
why dont they just use regular air then?
There's just too many potential edge cases when changing vanilla behavior
No clue, it was a made up example. My point is that we shouldn't make assumptions about how people use this vanilla behavior
that's what I dont get. If it always goes from desire block -> Air, then any use case you had for the desired block is lost.
I don't like the idea of changing Vanilla behavior
For the tag, I think c:gas would be better than c:air
what do i do, IBlockExtension/IBlockStateExtension? Trying to remmeber where stuff is
Yes, but they may be placing large amounts of it anyways (why does cave air currently exist?)
Changing vanilla behavior is iffy
cave air used to be a way to know if in caves
then cave overhaul came in and added noise caves with Air
so anyone still looking for cave air is now broken
The former i think? Though honestly I'm still in favor of a tag over changing this behavior around, but that requires getting mods to use the tag instead of the check which is iffy so... no clean solutions I guess
Those mean different things in terms of what people tend to think of when they think of it
method added now
No idea how I would even PR this to Fabric given they don't do extensions iirc
They have some
Add something to FabricBlockSettings or whatever it's called and store in the the block properties?
Though this whole solution is a more invasive change than they might like, so no clue, you'd have to see
Is that tracked on mojira? Seems like something they might care about
best I can find
looks good enough imo 
Tbh you could just do this solution
Issues/PRs to neo for Vanilla issues generally should have a link to the jira report which is what Shadow was basically asking for
in this case, we are not fixing the vanilla blocks so no bug was fixed within vanilla itself. Just making it safe for modded
yeah, but once the vanilla bug is fixed, the patch might not be needed anymore
I'm surprised it wasn't just closed as "works as intended" tbh
I get why mods might want to have custom air
but for vanilla purposes there is no reason not to erase the cave/void air, when they serve no purpose and doing so makes saves smaller (sometimes, slightly)
How do you reference jira links in patches. Just #232360 ?
// Neo: Fix MC-232360 for modded blocks or whatever
check out the parrot spawner issue report
Yep
you want to have space turn off parrot spawning by filling with cave air? nope. Too much space and it becomes air and parrots spawn
ew, now that seems like a bug
wait, uppercase or lowercase neo?
NEO, NEo, NeO, nEO, Neo, nEo, neO, neo
It really does not matter
Pick one that you like
The only real convention is that if it is something like a TODO
Then the comment needs to start with //TODO
So that the IDEs can detect it
I'd say there's enough precedent of it being Neo to keep doing that
Seems reasonable
found one that is different case, and it's NEO :P
just gotta have a random non air block in each chunk section 
do light blocks have a 0 light level option?
at that point, just use a structure void 
those have hitboxes tho
^
ah, right
and that's the one which I wrote 
pr a fix!
Whole ass pr to adjust casing in a comment
Totally will fly
make two prs, one for the E and one for the O 
What about a block and item tag for infested blocks (Tele should know why
)?
There hasn’t been any other request for the infested blocks so I’m assuming people are doing instanceof checks instead?
That's fair, yeah, and should be sufficient for my use case as well. Never mind me then 😄
https://github.com/VazkiiMods/Botania/issues/4502
c:workbenches?
are workbenches only crafting tables? Would stonecutter or loom count?
I thnk its only crafting tables (source: https://minecraft.wiki/w/Workbench redirects to https://minecraft.wiki/w/Crafting_Table)
based on other google results workbench and crafting table are commonly interchangeable
should it then just be called c:crafting_tables to reduce confusion?
yeah, being more explicit is good
To recap some discussion from fabric:
there will be a crafting_tables and furnaces and campfires tag as there’s many mods with variations of these. Some want to expand this to include loom, enchanting table, grindstone, smithing table, etc.
Issue is there’s so many of these blocks that we would prefer to stick them under a parent tag or two for organization. No mention of workbench or workstation as those gets confused with villager job sites
some ideas:
c:crafting_based/
c:burning_based/
c:enchanting_based/
Loom would be under crafting. You craft new banners. Grindstone under enchanting maybe as it removes enchantments
Or are we over complicating this
Vanilla tags can be viewed here. They already covered anvil: https://github.com/misode/mcmeta/tree/data-json/data/minecraft/tags
I wouldn't do subgroups just one group for all
if there's doubt I'm also happy to have less tags
Wdym? Just c:crafting_tables c:furnaces and no folder?
I think c:crafting/crafting_tables, c:crafting/furnaces, etc.
I wouldn't say crafting
At most tools or machines or something else in English
A furnace arguably doesn't craft
It smelts
If just one folder, what name should it be then? That’s the tricky part lol
c:crafting_tables etc sounds good to me
machinery?
if I don't see the physical animation, it's not by hand /j
It uses crafting recipes though
Though arguably those can just be called "recipes"
recipe_machinery maybe?
Wouldn’t cover loom or grindstone or enchanting table. But maybe those are fine to ignore
Just only furnace and crafting table tags as those have the most modded variety
if there weren't the possible confusion with villagers I'd say workstation
workstations_but_not_villagers
but some of those are also villager workstations (smokers, blast furnaces, smithing tables)
what about crafting_stations
Furnace?
c:recipe_based/
And anything not recipe based would have to be handled by mods on a case by case basis as not many people are going to make loom variants or enchanting table variants and stuff
menus_that_arent_containers /j
eh, no
has_recipes
the crafting table isn't a container either
That's my point
It's not a container
But it has a menu
recipe_blocks maybe?
has_recipes sounds good to me
Unless someone reads that as if the block itself has a recipe rather than it processes recipes
but the furnace is a container but should be in the same grouped tag
True
i think the main use of a crafting table tag is in recipes that craft something using a crafting table, and for things like 'crafting table that's made of an alternate material or specific wood type' and maybe things like the tinker's crafting station.
there's a similar case for mods that add furnaces made of different types of stone... tags that might contain more than one vanilla block seem less useful, though. Even campfires.
[a campfire tag might be useful if some mod wanted to make separate campfire blocks crafted with charcoal vs coal, or with specific log types, though. That would not include the soul campfire.]
[well, the soul campfire is actually something i can see being a contentious issue, considering it executes the same vanilla recipes but at least one prominent mod, create, treats it as being different]
I think that crafting tables, furnaces, campfires and so on are different enough that they should have different tags with no common parent. If I want a crafting table, regardless of material, I don't want a furnace, and I imagine most other modders would have the same view.
agh, ping T_T
To clarify, I definitely think we should have something like c:crafting_tables and c:furnaces but we should hold off on something like c:crafting_stations/crafting_table or c:crafting_stations/furnace until somebody gives a compelling use case for multiple mods to have it (rather than just a mymod:crafting_stations containing c:crafting_tables and so on)
was just gonna do c:has_recipes/ and only add furance and crafting table by default
you'd need to add smoker, blast furnace, campfire and stonecutter too as they also use the recipe system
i'll leave those out as there's not enough modded variants that i can find of them
mods can add to the folder too if they need to
....eh, that doesn't quite feel right either. What people want is usually crafting tables, not 'anything that can execute a crafting recipe' [including, for example, the crafty crate itself]
fight silk over it
the folder is to mainly just group furnace and crafting table together somewhere
like the use case here is 'biomes of plenty registers a whateverwood crafting table and crafts it instead of the vanilla one when you use four whateverwood planks'
recipe_workstations/
any potential confusion with villager workstations/jobsites?
recipe_workstations/ or player_workstations/ works tbh. Nice suggestion. I just need to decide which to go with later
player_workstations/ if you also have villager_workstations/
the unify pr has c:villager_job_sites tag (not folder)
i guess it comes down to how much room to leave other mods to add on their own to the folder.
If you view that the folder should only hold recipe processing blocks, recipe_workstations/
If you view the folder should allow other mods to add tags for like loom or something, player_workstations/
#2
done. Now waiting until 1.21...
Guess there doesn't need to be armor tags anymore
I imagine the enchantment tags are for enchantment targets
There’s non enchanting item tags
minecraft:head_armors
Or maybe not. The snapshot page only lists enchantable
There are
They're in the code
E.g.
huh is there a tag to include both helmets and pumpkins, mob heads, etc?
actually using tags to define equippability would make sense in the long run given vanilla's general trend to using tags for more stuff, but it also means attribute modifiers would have to be redesigned
not really? they'd just need to check that tag instead of the EquipmentSlot checks they currently use
hmm are golems a worthy entity type tag? Are they very common in mods?
you know what I'd like to see is a tag for global base worldgen blocks
I run into this a bunch
for things that I want to only affect "natural" blocks but not at worldgen, and I don't wanna have to like.. try get each 'base_stone_x' tag
basically a global 'base_stone' or something
like I can't check base_stone_x for a dim I don't know exists at compiletime
what specifically is your use case? Most people only add features to specific dimensions they are targeting because doing any can be disastrous as they ahve no idea how the dimension is setup (void terrain, cave dimension, mining dimension, water world, overworld like, floating islands, etc...
Me adds heads
Mojang: nope skulls
wanting to generate an ore block dynamically in a dim without knowing what the dim is?
Wanting to make a 3x3 pickaxe that only affects natural stone blocks, but make it compatible with other dims
A mob with an ability that impacts the terrain but you only want it to affect the natural terrain, etc
With all of these you'd probably still want it to be dimension specific. Like, some blocks might be a base_stone in one dimension but not in the other.
Like, just because some mod added a dimension that is mostly made of concrete doesn't mean a mob should suddenly start interacting with concrete in the overworld.
^
You can still add the mod compat tags per dimension and hold it in your mod. Little more work but can be a map of dimension key to a TagKey and use that for getting which tag to check or something.
Combining all the base stone tags into one is going to have cross dimension side effects
Bumblezone is going to make you see honeycombs as terrain blocks in overworld
I guess having some way to get a base_stone tag for any dimension would make sense. I would have proposed doing that by name (i.e. <dimension_namespace>:base_stone_<dimension_name>), if vanilla wouldn't immediately break that by calling it minecraft:base_stone_nether and not minecraft:base_stone_the_nether.
why mojang? most of them are called head xD
any head eventually becomes a skull if you wait long enough
mummies be like:
every head has a skull, not every skull has a head 
Cabbage

challenge accepted, gonna make a cabbage plant that drops cabbage skulls
Is there like a head (disambiguation) page on Wikipedia we can check
The head is the part of an animal or human that usually includes the brain, eyes, ears, nose, and mouth.
Head or Heads may also refer to:
Human head
That caught me off guard lol
I made a proof of concept for what a common tag definition repo might look like
@cobalt moon @real ravine FYI
hmm, there are 2 backend, does it directly allow generating to .json files, as needed in a datapack?
That could be a good backend to make
I still think the backend code should live in the repo of each project.
Yeah, maybe just have the raw datapack backend built-in or something
modloader specific code makes sense to live in the modloader repo so they can handle it and tweak it more for their stuff/api/helpers etc
that is fine, the question is then of course how to depend on the common code - JSON isn't the worst option
i mean what common code would there be if each loader generates their own classes?
if each loader generates classes in their own mappings, own structure, using their own apis, in their own package, and with different field names there's no common code
instead of having common code there should really just be a spec paper
(that's why i don't see the point in bothering but w/e)
I mean, it's Java
So it could just be classpath()ed and called in a task
Could even be made to generate into the generated code directory
Common repo generates the json of all tags and lang. Forge and neoforge has a special task like genData that reaches out and copies in the generated files and sticks it into the modloader's datagen folder?
Also you were talking about golems? I think that might be a builtin tag now
Ok maybe not
The reason why I generate code is because we want modders to be able to reference the tags via ConventionalXxxTags on fabric and Tags on neoforge
Could modloaders generate the Tags code files from the tag jsons? as part of a special gradle task
And because it enforces that all the registry entry references are valid as well
Not from the datapack tag files, no, since you'd lose comments
Parchment???
Minecraft does allow comments in most json files (including tags).
i dont think its possible (or at least easy) to re-parse those into source tho ,for generated code
If you just put them at the top of the files (which would be the most reasonable place to put them anyways), I don't think it would be too hard?
if you use vanilla tag loading? so youd have to re-find the files?
since those comments are a side effect of lenient json parsing, right?
so get discarded as junk?
the idea would be the common repo just sends the tags and comments in whatever format to modloaders and modloaders generate the code from that
binary for all we care
Yeah, it doesn't have to be in Vanilla's json tag format
If the format isn't vanilla tag json files, then there should also be a modloader independent way to generate those vanilla tag json files (with comments ideally), for datapack use.
Yeah, datagen code could be generated from those files (or the data could be generated directly)
If people have been constantly removing shulker boxes from chests, maybe it should be a separate tag not in the c:chests tag?
are shulker chests themselves crafted with chests based on the tag 
the person mispelled. They meant shulker box
ah. 
shulker boxes really shouldn't be in a chests tag
hmm nvm. they meant ender chest
chests and shulker boxes could be in an item_containers tag, but shulker boxes shouldn't be in the chests tag because they are intrinsically different things
the recipes are using wrong tag then. Should be using wooden chest tag
oh ender chests is less clear
I assume there's no way currently to allow iron chests, but not ender chests
c:inorganic_chests
There's mods in 1.12.2 that is adding shulker boxes to chest ore dict wtf
This mod created to fix it doesn't know what caused it either lol
https://www.curseforge.com/minecraft/customization/shulker-oredict-removal
Oh no
It's the major cause of it in 1.12 afaik
People not understanding what that specific config value in Bookshelf does, so don't know to disable it 
The comment on it isn't clear
Likely the packs this where meant for just have Bookshelf installed
I wonder if any other mods also add it to oredict
@lunar pond you better not be adding shulker boxes to the chest tags in newer Mc version lol. Otherwise imma make a bug report to you!
Also just realised the 1.11.2 version of that code doesn't have a config value to disable it. 
If a config is made and no one is around to see it, does it exist?
Glad to see this is resurfacing again lol
It wasn't just Bookshelf doing it back then, I actually added it after seeing several others do the same, but I guess Bookshelf is probably the most widely used of those mods these days lol

Hopefully this doesn’t carry to tags. There’s a shulker box tag that can be used instead of chests
we've had the chest discussion before [i didn't know shulker boxes were in it, but ender chests have the same problem, as do certain modded things like the mek personal chest]
people don't want to use the wooden chest tag because of various other edge cases of cheap chests [stone chests from whatever mod stoneblock uses, quark mushroom chests] but they do want something that only encompasses cheap chests that are just a chest and nothing else [iron chest wouldn't fit either]
iirc a similar issue with glass was what led to the awkwardly named 'silica glass' tag
IMHO
[to exclude both tinted glass and various modded stuff like ethereal/glowing/reinforced glass]
we shouldn't worry about those edge cases
c:standard_chests_that_people_would_likely_use_in_crafting_recipes
people can have a "cheap_chests" tag in THEIR mod, that includes wooden by default
and modpack authors can add other tags to it
i mean, ultimately the problem is you want basically everything that uses a chest - including the hopper recipe - to use such a tag for crafting
[and, yeah, maybe it's not that big a deal in most modpacks to need to farm some wood to make vanilla chests for crafting, but you could say the same for almost any tag that we change recipes to use]
There’s ingredients where you can exclude enderchests tag from chests tag in recipes
Yeah but that's really cursed
but that's its entire point. It was added specifically for the case where you have a tag but only want some of its entries
if documentation is an issue, someone should make a neoforge doc page on it that can be given to people that ask how to use it in json/datagen
mek personal chests / barrels are especially a problem with using a chest tag in a recipe because they can store items
what about containers/filled and containers/empty
Just use chests/wooden for recipes
that'll work
Nah we removed them from the item tag, they are still in the block tag. Too many people were having issues
The problem with that is that there's arguably chests that should be usable in most recipes but shouldn't be 'wooden'.
as I said.
[10:45]gigaherz: people can have a "cheap_chests" tag in THEIR mod, that includes wooden by default
[10:45]gigaherz: and modpack authors can add other tags to it
we don't have to cover every imaginable corner case
"what chests are appropriate for recipes for crafting things such as hoppers" is not exactly a corner case
if we're not going to do it we might as well leave it as vanilla chest only
add a basic_chests or simple_chests, then
cos "chests_that_you_might_potentially_want_to_use_for_crafting_stuff_like_hoppers" is a bit too specific IMO ;P
I think fixing things data side is just kicking the can down the road. If mods moved to a new tag that has both cheap and expensive chests, the moment you try to autocraft a recipe that uses those tags you're in the same situation.
Maybe chests/cheap tag then?
that's as bad as glass/silicate 
I feel like the solution here is to not have situations where grabby autocrafty things can greedily pull the wrong block, not make weirdly specific tags that every recipe has to use explicitly
I really don't think using "cheap" is a good qualifier
case in point of something that causes the problem and what can be done to prevent the problem from existing, I have this crafting gui where you select a recipe and then it eats ingredients from your inventory when you pick up the result from the result slot
now, if one of the recipes used the chest tag for an ingredient, and you have chests and shulker boxes in your inventory, it might eat a shulker box. That's bad!
so what I want to do to improve this is, to put a 3x3 crafting grid where you can drop or shift-click ingredients to, like a regular crafting table or furnace or whatever
maybe as you add ingredients it filters the recipes on the left
and you still have to select a recipe, because clearly some recipes have the same ingredients
but once you've selected your recipe AND the explicit ingredients, then you can craft the result
this wouldn't require explictly using a dumb tag like chests/normal in my recipes, and it prevents shulker boxes from being eaten by accident
for factory automation setups with automatic crafting, you have a similar problem, but generally as a user you just want to make sure you're not dropping shulker boxes in the chest intake or whatever
That's just not how autocrafting works
It's much easier to make mods use the proper tags 😉
chests is a proper tag
chests/normal is stupid
if something is asking for a chest tag and eating shulker boxes from the player's backpack, that's the mod's fault. I need to change my mod.
If something is asking for a chest tag and eating shulker boxes from the player's dump stash, that's the user's fault, they shouldn't put shulker boxes in the input chest for their factory
maybe shulker box is a bad example because shulker boxes probably shouldn't be being tagged as chests in the first place
glass vs glass/silicate vs reactor glass is the usual example
Shulker boxes aren’t in chest tag
I'd say just don't put the ender chest in the chest tag
If it's meant to be used for crafting
well if the snapshot is the first for 1.21 then we should get this ready for neoforge and fabric
@cobalt moon (srry if ping bothers) since the 1.20.5-pre1 release, we might have to consider adding a tools tag as well as it is removed and replaced with breaks_decorated_pots
im guessing tools was removed because of the component
nope, removed because it was only used in decorated pots
so they essentially renamed it
i dont see the component at least
the tools component was added couple snapshots ago iirc
so might not appear in the 20.5-pre snowblower diffs
DataComponents.TOOL
? There are dedicated c tool tags which means the pr must have a parent c:tools tag that contains all the sub folder entries
But otherwise, check for data component if looking for tools
yh i just realised
The c:tools tag in pr already is only for recipes
sorry for bothering
It’s alright. Though it is a good idea to check the pr itself for if a tag already exist
I need to go through it later and remove any that vanilla added now
i believe recipes can check for existence of a component and maybe also the value but unsure on that last one
so i would still say check for the tool component
at least i know loot tables have a bunch of data component lookups and modifier stuff
feel like the tag is mute now that the component exists tbh
Pack makers
ok? pack makers can have their recipes/loot tables check if an item has the tool component, rather than tag
component imo should be preferred over the tag
Easier to add to a tag for a recipe change than to mess with some sort of or condition check between a component and another item. Unless splitting it into multiple recipe files
What if there’s a recipe that takes tools but pack maker want it to match a non-tool? That’s where or condition comes in
And anyway, the c:tools cannot be removed because it’s the parent tag of all the c:tools/
No that’s not what I said
Tools component OR minecraft:sticks as an example
Whatever. Forget it. Tired rn
Can't check components in recipe inputs
you cant? oh i thought you could, my mistake then if thats the case
Prerelease already sigh. Stuff like meats is going to need to be removed from c in favor of mc’s
feeling better rn. So this shouldnt be too bad since the unify PRs are for 1.21 so there's time for 1.20.5 to settle and see how things goes.
Heads up, 1.20.5 might be seen as a bigger breaking change than 1.21. Fabric might be willing to have unify in 1.20.5
More details to come if this is the path towards the weekend
Btw what happened to Tech's codegen thing? Will something be done with that? Like publishing some kind of tags file that's used in a Gradle task on both Neo and Fabric to generate code
You would have to ask @spring crane
I think some kind of unified repo that's used to generate stuff could be a good idea
Question to neo maintainers, what branch should I merge to my tag branch to have 1.20.5 codebase?
Just maybe not that one
port/24w14a if you're impatient
otherwise wait for the pre branch 😛
shouldn't really matter
Alright. I'll work on fabric side first and then neo after in case branch is ready then. Needed the 1.20.5 codebase for referencing the new vanilla tags in the code
👍
Fabric PR updated now
https://github.com/FabricMC/fabric/pull/3310
Why is it c:is_the_end but c:is_nether? That seems inconsistent.
Aren't the dimension IDs the_end and nether? Or is that just a Bukkit thing?
in vanilla its minecraft:the_end, minecraft:the_nether, and minecraft:overworld. I think the tags should either have no the at all, or follow the dimension ids.
Ah, you just changed the in to is and kept the rest? Yeah, since it changes name anyways, I think would make sense to be consistent, since then it also establishes a standard naming scheme for modded dimensions. (or maybe they should be in their own namespace anyways?)
there's no way to dynamically find the modded dimension tags anyway
so modders would just make their own tag under their own namespace. People who want the tag would have to explicitly grab it anyway
Why? ${dimension_namespace}:is_${dimension_path} would work if documented properly? But that's beside the point, if the tags are renamed anyways, then they might as well be renamed to something consistent, so they are slightly easier to find. 🤷♂️
example: bumblezone my mod. The dimension is The Bumblezone. My biome tag is the_bumblezone:the_bumblezone. I really hate the_bumblezone:bumblezone for my dimension as it is not Bumblezone. It's The Bumblezone.
you wont get people to consistently keep or omit the the part
Well, you certainly won't if the convention tag does it for one vanilla dimension but not the other...
That was corrected. But again, people would be explicitly grabbing the biome tags for the modded dimension. And it would be pointless anyway
since you can just grab the dimension itself in the mod and go to the biome provider and call possibleBiomes to get all the biomes in that dimension
Well that depends on where you use it, but doesn't really matter, just noticed the inconsistency in regard to the vanilla biomes.
those are vanilla tags now aren't they™️
yep
what?
Make it optional. The mace tag is only present with experiments on
1.20.5 unify PR is ready for review
https://github.com/neoforged/NeoForge/pull/135
@spring crane How should I contact the neoforge maintainers to make sure they are on board with moving up the unify PR to 1.20.5?
<@&1128776937410670663> are you on board? let's vote
can't you make a poll
i don't know and i don't care 😛
wait, no, if we make it a poll, we can't see who voted and can't restrict it to Maintainers
for the record, what's your vote
👍 but I doubt it will matter
(I said it because you also have the thumbs-down -- just for avoidance of doubt)
shall we coordinate with the Fabric folk before/immediately after merging
i see merge conflicts
I spoke to @real ravine and he was on board for 1.20.5 merge due to how giant a breaking change 1.20.5 is and how likely that 1.21 would not be breaking
that's cause 1.20.5 branch is not in 1.20.x yet
fair enough
Once it is, the conflicts will yeet
Yes, totally happy to do it, ideally this weekend if possible. If it becomes a rush then maybe hold off, want to make sure its done right
i think people are just gonna click the reacts on tech's comment than use the poll lol
You can see who voted on a poll
I'm a full supporter of this change.
why would you use a discord poll
it's fun to click the big buttons!
why would you not
exactly
there's 0 benefits over standard votes that's the funniest thing 😛
let's all remind ourselves of that mod name vote in #maintenance-talk where people got confused about what emoji to use because of ordering, whereas polls are clear?
also sorry to break it to you, but polls are now standard votes 😛
also polls can either be multi option or single option, you can't vote both yes and no and then ruin it
and the author can cast their vote
so there's your >0 benefits
having single answer polls that the author can themselves vote properly seems like a clear enough advantage to me
it is, tech is just afraid of change
you go make issue report to Neo to yeet patch!