Modern Industrialization

Modern Industrialization

4M Downloads

Things that ought to be blacklisted from UU replication by default

MuteTiefling opened this issue ยท 10 comments

commented

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

commented

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

commented

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.

commented

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.

commented

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

commented

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.

commented

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

commented

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.

commented

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"

commented

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.

commented

Something else that may be worth mentioning, is it is better to use tag references instead of a massive list of items like this. Functional storage for example really should have a tag for all of its drawers.