Things that ought to be blacklisted from UU replication by default
MuteTiefling opened this issue ยท 10 comments
ae2 storage cells and likewise from ae2 addons like appmek
'pneumaticcraft:smart_chest' and 'pneumaticcraft:reinforced_chest' which both retain inventory when picked up like a shulker box
Sophisticated Storage chests/barrels/shulkers/backpacks
Functional Storage drawers which retain inventory and can be used to dupe UU matter
Will add more as I find them
Yeah, would be better for sure but I don't think they do. Will double check though.
Would it be feasible to detect anything with fluid/item capabilities and auto add it? Might be easier than this too
Should be possible but not with tags alone. It'd likely need to add to the tag at runtime via code which I'm not sure is very easy/good to do.
Yeah, that's what I mean, detect everything at runtime and just add it to the tag.
Alternatively, since the issue is NBT (or components, whatever), what if the default was to not copy nbt/components, and whitelist things that are allowed. I can think of only a very few things where you'd want to copy that information. For example, Industrial Foregoing's upgrades all use nbt/component data to determine custom tiers.
Would be a shorter list, by far.
You mean whitelist which components get copied? That is a good solution I think. I hope that no mod crashes when an item is produced with default components. (AE2 Facades?)
The original idea behind the replicator was that you'd be able to dupe resources infinitely in most packs. But maybe packdevs don't like that? :D
The original idea behind the replicator was that you'd be able to dupe resources infinitely in most packs. But maybe packdevs don't like that? :D
This isn't the issue so much as the fact that I was spending 100mb UU last night to dupe chests with 36k B of UU in tanks. It's one thing having an energy cost to dupe. It's another to make that energy free for more free duping.
You mean whitelist which components get copied?
Was thinking more along the lines of whitelisting items where you are allowed to copy all components.
So you could add facades to the whitelist and get the data, but chests and things with inventories would just give the item without component data
There's another issue with checking directly against capabilities too, since capabilities are not necessarily tied to an Item, and can be conditionally applied to items based on data or whatever. So it's not guaranteed an item will always have that capability so it makes no sense to tag them like that. Just my two cents.
Allow-listing items to permit NBT copying would be a good solution.
Here's a dump of everything I've found. This is the entire tag as I've set it for e10, so it includes your defaults already.
"#c:shulker_boxes",
"#modern_industrialization:barrels",
"#modern_industrialization:tanks",
"ae2:creative_storage_cell",
"ae2:fluid_storage_cell_16k",
"ae2:fluid_storage_cell_1k",
"ae2:fluid_storage_cell_256k",
"ae2:fluid_storage_cell_4k",
"ae2:fluid_storage_cell_64k",
"ae2:item_storage_cell_16k",
"ae2:item_storage_cell_1k",
"ae2:item_storage_cell_256k",
"ae2:item_storage_cell_4k",
"ae2:item_storage_cell_64k",
"ae2:portable_fluid_cell_16k",
"ae2:portable_fluid_cell_1k",
"ae2:portable_fluid_cell_256k",
"ae2:portable_fluid_cell_4k",
"ae2:portable_fluid_cell_64k",
"ae2:portable_item_cell_16k",
"ae2:portable_item_cell_1k",
"ae2:portable_item_cell_256k",
"ae2:portable_item_cell_4k",
"ae2:portable_item_cell_64k",
"ae2:spatial_storage_cell_128",
"ae2:spatial_storage_cell_16",
"ae2:spatial_storage_cell_2",
"ae2:view_cell",
"appmek:chemical_storage_cell_16k",
"appmek:chemical_storage_cell_1k",
"appmek:chemical_storage_cell_256k",
"appmek:chemical_storage_cell_4k",
"appmek:chemical_storage_cell_64k",
"appmek:portable_chemical_cell_16k",
"appmek:portable_chemical_cell_1k",
"appmek:portable_chemical_cell_256k",
"appmek:portable_chemical_cell_4k",
"appmek:portable_chemical_cell_64k",
"ars_additions:handy_haversack",
"ars_elemental:caster_bag",
"ars_elemental:curio_bag",
"ars_nouveau:mob_jar",
"evilcraft:dark_tank",
"functionalstorage:acacia_1",
"functionalstorage:acacia_2",
"functionalstorage:acacia_4",
"functionalstorage:armory_cabinet",
"functionalstorage:birch_1",
"functionalstorage:birch_2",
"functionalstorage:birch_4",
"functionalstorage:cherry_1",
"functionalstorage:cherry_2",
"functionalstorage:cherry_4",
"functionalstorage:compacting_drawer",
"functionalstorage:compacting_framed_drawer",
"functionalstorage:crimson_1",
"functionalstorage:crimson_2",
"functionalstorage:crimson_4",
"functionalstorage:dark_oak_1",
"functionalstorage:dark_oak_2",
"functionalstorage:dark_oak_4",
"functionalstorage:ender_drawer",
"functionalstorage:fluid_1",
"functionalstorage:fluid_2",
"functionalstorage:fluid_4",
"functionalstorage:framed_1",
"functionalstorage:framed_2",
"functionalstorage:framed_4",
"functionalstorage:framed_simple_compacting_drawer",
"functionalstorage:jungle_1",
"functionalstorage:jungle_2",
"functionalstorage:jungle_4",
"functionalstorage:mangrove_1",
"functionalstorage:mangrove_2",
"functionalstorage:mangrove_4",
"functionalstorage:oak_1",
"functionalstorage:oak_2",
"functionalstorage:oak_4",
"functionalstorage:simple_compacting_drawer",
"functionalstorage:spruce_1",
"functionalstorage:spruce_2",
"functionalstorage:spruce_4",
"functionalstorage:warped_1",
"functionalstorage:warped_2",
"functionalstorage:warped_4",
"mekanism:advanced_bin",
"mekanism:advanced_chemical_tank",
"mekanism:advanced_fluid_tank",
"mekanism:basic_bin",
"mekanism:basic_chemical_tank",
"mekanism:basic_fluid_tank",
"mekanism:cardboard_box",
"mekanism:creative_bin",
"mekanism:creative_chemical_tank",
"mekanism:creative_fluid_tank",
"mekanism:elite_bin",
"mekanism:elite_chemical_tank",
"mekanism:elite_fluid_tank",
"mekanism:personal_barrel",
"mekanism:personal_chest",
"mekanism:qio_drive_array",
"mekanism:qio_drive_base",
"mekanism:qio_drive_hyper_dense",
"mekanism:qio_drive_supermassive",
"mekanism:qio_drive_time_dilating",
"mekanism:ultimate_bin",
"mekanism:ultimate_chemical_tank",
"mekanism:ultimate_fluid_tank",
"minecraft:bundle",
"modern_industrialization:portable_storage_unit",
"occultism:satchel",
"occultism:soul_gem",
"occultism:soul_shard",
"occultism:storage_controller",
"pneumaticcraft:collector_drone",
"pneumaticcraft:drone",
"pneumaticcraft:drone_interface",
"pneumaticcraft:etching_tank",
"pneumaticcraft:guard_drone",
"pneumaticcraft:harvesting_drone",
"pneumaticcraft:huge_tank",
"pneumaticcraft:large_tank",
"pneumaticcraft:logistics_drone",
"pneumaticcraft:medium_tank",
"pneumaticcraft:reinforced_chest",
"pneumaticcraft:small_tank",
"pneumaticcraft:smart_chest",
"shrink:shrink_bottle",
"sophisticatedbackpacks:backpack",
"sophisticatedbackpacks:copper_backpack",
"sophisticatedbackpacks:diamond_backpack",
"sophisticatedbackpacks:gold_backpack",
"sophisticatedbackpacks:iron_backpack",
"sophisticatedbackpacks:netherite_backpack",
"sophisticatedstorage:barrel",
"sophisticatedstorage:chest",
"sophisticatedstorage:copper_barrel",
"sophisticatedstorage:copper_chest",
"sophisticatedstorage:copper_shulker_box",
"sophisticatedstorage:diamond_barrel",
"sophisticatedstorage:diamond_chest",
"sophisticatedstorage:diamond_shulker_box",
"sophisticatedstorage:gold_barrel",
"sophisticatedstorage:gold_chest",
"sophisticatedstorage:gold_shulker_box",
"sophisticatedstorage:iron_barrel",
"sophisticatedstorage:iron_chest",
"sophisticatedstorage:iron_shulker_box",
"sophisticatedstorage:limited_barrel_1",
"sophisticatedstorage:limited_barrel_2",
"sophisticatedstorage:limited_barrel_3",
"sophisticatedstorage:limited_barrel_4",
"sophisticatedstorage:limited_copper_barrel_1",
"sophisticatedstorage:limited_copper_barrel_2",
"sophisticatedstorage:limited_copper_barrel_3",
"sophisticatedstorage:limited_copper_barrel_4",
"sophisticatedstorage:limited_diamond_barrel_1",
"sophisticatedstorage:limited_diamond_barrel_2",
"sophisticatedstorage:limited_diamond_barrel_3",
"sophisticatedstorage:limited_diamond_barrel_4",
"sophisticatedstorage:limited_gold_barrel_1",
"sophisticatedstorage:limited_gold_barrel_2",
"sophisticatedstorage:limited_gold_barrel_3",
"sophisticatedstorage:limited_gold_barrel_4",
"sophisticatedstorage:limited_iron_barrel_1",
"sophisticatedstorage:limited_iron_barrel_2",
"sophisticatedstorage:limited_iron_barrel_3",
"sophisticatedstorage:limited_iron_barrel_4",
"sophisticatedstorage:limited_netherite_barrel_1",
"sophisticatedstorage:limited_netherite_barrel_2",
"sophisticatedstorage:limited_netherite_barrel_3",
"sophisticatedstorage:limited_netherite_barrel_4",
"sophisticatedstorage:netherite_barrel",
"sophisticatedstorage:netherite_chest",
"sophisticatedstorage:netherite_shulker_box",
"sophisticatedstorage:shulker_box",
"the_bumblezone:bee_cannon",
"the_bumblezone:buzzing_briefcase",
"the_bumblezone:honey_cocoon"
Make sure required is set to false for each tag added, or else the tag will fail to load if one of these tags do not exist.