Skip to content

Autosieve loses later loot-table drops when output slots fill with high-multiplier meshes #36

Description

@StarPowered

Description

The Autosieve appears to lose valid drops from later entries in the sieve loot table when using high-multiplier meshes such as the Aetherium Mesh from Ascendant Technology.

This becomes especially noticeable when sieving Sand.

The Autosieve has 9 output slots, but Sand currently has up to 15 possible output types. With Aetherium Mesh (multiplier: 10, amount_multiplier: 2), many of the early loot entries reach 100% drop chance.

Because the Autosieve processes the loot table sequentially and immediately inserts each successful drop, the first 9 different item types can fill all output slots before later entries such as Clay Ball, Redstone, Certus Quartz, etc. are processed.

The later rolls may technically succeed, but their items cannot be inserted and appear to be lost.

Environment

  • Minecraft Bedrock Dedicated Server
  • UtilityCraft: 3.5.4
  • Ascendant Technology: 0.9.2
  • Mesh: Aetherium Mesh
    • Tier: 8
    • Chance multiplier: 10x
    • Amount multiplier: 2x

Steps to reproduce

  1. Place an Autosieve.
  2. Insert an Aetherium Mesh.
  3. Make sure all 9 output slots are empty.
  4. Insert Sand.
  5. Allow the Autosieve to process Sand.
  6. Compare the resulting items with the Sand sieve loot table.

Actual behavior

The early entries in the Sand loot table fill most or all of the 9 output slots.

For Sand, the loot entries are processed in this order:

  1. Prismarine Shard
  2. Prismarine Crystals
  3. Copper Chunk
  4. Bone Meal
  5. Gunpowder
  6. Glowstone Dust
  7. Blaze Powder
  8. Cactus
  9. Kelp
  10. Clay Ball
  11. Cocoa Beans
  12. Conduit
  13. Redstone
  14. Certus Quartz Crystal
  15. Charged Certus Quartz Crystal

With Aetherium Mesh, most of entries 1-9 have a 100% final drop chance.

This means the inventory is often already full before Clay Ball and Redstone are processed.

In testing, Clay and Redstone were produced much less frequently than their effective drop chances would suggest.

Suspected cause

In autosieve.js, the recipe is processed sequentially:

recipe.forEach(loot => {
    if (tier < (loot.tier ?? 0)) return;
    if (loot.item == "minecraft:flint" && tier >= 7) return;

    if (Math.random() <= loot.chance * multi) {
        ...
        DoriosLib.entity.tryAddItem(machine.entity, {
            item: loot.item,
            amount: ...
        });
    }
});

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions