Compatibility
Minecraft: Java Edition
Platforms
Supported environments
Links
Tags
Creators
Details
Overview
When you craft, smelt, take an anvil result, enchant, reel in a catch, or take an item from any menu output slot, the item is stamped. Other mods can stamp extra cases through the API, but a default case is detected. By default, only works with non-stackable items.

An advanced tooltip (i.e. holding shift) shows more information than the name.
Stamps live on the item as a synced data component so the item can be freely moved and dropped, and it still retains its information. Hold shift to see more information. What is shown (and when) is fully configurable.
Player names are colored using their name as a hash so colors are always the same for your name on every server / world. This can be overwritten with a specific color in the settings.
Custom crafting GUIs (like Farmer's Delight cooking pot, other result slots) are stamped when you take the output. No per-mod module is required, but mod support can improve the display.
Things like create's mechanical crafters and other unattended machines do not stamp a player, because nobody took the item from a menu.
Datapack makers
This mod has no datapack folder. Use the server configs for whitelist and blacklist instead.
Each line is an item id or an item tag:
minecraft:diamond_sword
#minecraft:pickaxes
NOTE:
- Blacklist always wins
- If the whitelist has any entries, only those items (minus the blacklist) are stamped
- If the whitelist is empty, every item except the blacklist is stamped, then
trackStackablesmay still skip stackable items
Already stamped items keep their data if you later tighten the lists. Tooltips still hide blacklisted items.
Modding API
Package com.fyxe.ffitemcreationtracker.api.ItemCreationAPI.
Optional<CreationRecord> get(ItemStack stack)
boolean has(ItemStack stack)
boolean tryStamp(ItemStack stack, Player player, CreationSource source)
boolean tryStamp(ItemStack stack, Player player, String sourceId, Map<String, String> extras)
boolean putExtra(ItemStack stack, String key, String value)
void registerSource(String sourceId, String byKey, String nounKey, String nounFirstKey)
void registerExtra(String extraKey, Function<String, Component> formatter)
tryStamp respects the server config (enabled, creative, lists, overwrite). Call it on the logical server. The component is ffitemcreationtracker:creation (CreationRecord): creator name and UUID, game day, epoch millis, source id, dimension, biome, moon phase, extras map.
Use a namespaced source id for custom crafting (mymod:cooking). Register wording in code, or ship lang keys:
tooltip.ffitemcreationtracker.source.mymod.cooking.by
tooltip.ffitemcreationtracker.source.mymod.cooking
tooltip.ffitemcreationtracker.source.mymod.cooking.first
tooltip.ffitemcreationtracker.extra.mymod.note
CreationStampEvent fires on the NeoForge game bus before a stamp is written. Listeners can setSourceId, putExtra, or cancel.
Built-in CreationSource: CRAFTED, SMELTED, ANVIL, SMITHING, ENCHANTED, TRADED, FISHED, UNKNOWN. Anvil and smithing both print as Smithed.
What's with the FF prefix?
It stands for Fyxe's Features! Its a clean way to easily find all of my mods when changing configs or creating packs. Mods that are a part of the "FF" system are usually smaller and unintrusive.
Feedback
If you have any ideas for improvements, questions, or concerns, I am open to communicating through email: FyxeINCFeedback@gmail.com


