Schematicannon can "print" any item(s) for free in certain containers.
CynicalBusiness opened this issue · 7 comments
Description
Little afraid to post this issue public but I was asked to post it on behalf of our server's team.
Certain blocks which contain single-slot "display" inventories (we were able to confirm this with the likes of Minecraft's Hanging Signs with Amendments installed and the Farmer's Delight Hanging Canvas Signs and Baskets) will "print" their display items when placed by a Schematicannon. This item can then be removed from the container by the offending player for a free item.
On our server, we have already observed players successfully spawning in:
- Picked up minecart contraptions with Creative tanks/motors/etc.
- Shulker boxes of items, be they "late game op" (stacks of netherite blocks) or just straight illegal (barriers, command blocks, dragon spawn eggs, creative tools/blocks)
- Weapons/items with errant enchantments of level 255
The only effective mitigation, as far as I can tell, is to disable uploading schematics altogether.
I can provide an offending schematic if need be (GitHub won't let me attach .nbt
files to issues), but the ones we took from players contain a single Hanging Sign (i.e. minecraft:oak_hanging_sign
) with the offending item slotted in, and one block for the sign to hang from.
I suspect this has some pertinence to #6754?
Game Log
Debug Information
Client Info
Create:
Mod Version: 0.5.1h
Forge Version: 47.2.20
Minecraft Version: 1.20.1
Graphics:
Flywheel Version: 0.6.11-13
Flywheel Backend: INSTANCING
OpenGL Renderer: Intel(R) Iris(R) Xe Graphics
OpenGL Version: 4.6.0 - Build 31.0.101.4502
Graphics Mode: options.graphics.fancy
System Information:
Operating System: Windows 11 (amd64) version 10.0
Java Version: 17.0.2, Oracle Corporation
JVM Flags: 9 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xmx4G -Xms4G -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=32M
Memory: 1277642632 bytes (1218 MiB) / 4294967296 bytes (4096 MiB) up to 4294967296 bytes (4096 MiB)
Total Memory: 25688252416 bytes (24488 MiB) / 34132516864 bytes (32538 MiB)
CPU: 11th Gen Intel(R) Core(TM) i7-11370H @ 3.30GHz @ 3.30 GHz; 4 cores / 8 threads on 1 socket(s)
Graphics card #0: DisplayLink USB Device (DisplayLink (0x17e9)); 0.00 MB of VRAM
Graphics card #1: DisplayLink USB Device (DisplayLink (0x17e9)); 0.00 MB of VRAM
Graphics card #2: Intel(R) Iris(R) Xe Graphics (Intel Corporation (0x8086)); 1024.00 MB of VRAM
Graphics card #3: NVIDIA GeForce GTX 1650 (NVIDIA (0x10de)); 4095.00 MB of VRAM
Other Mods:
Saturn: 0.1.3
Rubidium Dynamic Lights: 1.20.1_v1.6.0
Easy NPC: 4.5.1
Academy Core: 1.0.1
KumaAPI: 20.1.8
KubeJS: 2001.6.5-build.14
create: things and misc: 1.0.0
Wandering Bags: 2.0.7
FTB Essentials: 2001.2.2
SuperMartijn642's Config Library: 1.1.8
Global Packs: 1.16.2_forge
Satin Forge: 1.20.1+1.15.0-SNAPSHOT
Create Deco: 2.0.2-1.20.1-forge
recipeessentials mod: 1.20.1-3.6
Bagus Cosmetic: 1.20.1-0.2.5
Client Reset Packet: 0.0.6
Nether's Exoticism: 1.2.8
Architect's Palette: 1.3.6.1
Connectivity Mod: 1.20.1-5.6
Gpu memory leak fix: 1.20.1-1.8
Rubidium (Embeddium): 0.7.1
PVP Flagging: 1.20.1-1.0.0
Etched: 3.0.2
More MobGriefing Options: 2.0.4
Controlling: 12.0.2
REI Plugin Compatibilities: 12.0.93
Create: Central Kitchen: 1.3.12
Bagus Lib: 1.20.1-5.2.2
MixinExtras: 0.2.0
Building But Better: 1.20.1-1.0.1
Item Obliterator: 2.3.0
Roughly Enough Resources: 2.9.0
Create: Dragon Lib: 1.4.3
Balm: 7.3.6
Create: Steam 'n' Rails: 1.6.4+forge-mc1.20.1
Melody: 1.0.2
Chat Heads: 0.12.9
Cloth Config v10 API: 11.1.118
Create Tab Fix: 1.0.0+forge-1.20.1
FTB Teams: 2001.3.0
Supplementaries: 1.20-2.8.17
Emojiful: 4.2.0
Konkrete: 1.8.0
Embeddium: 0.3.31+mc1.20.1
Corpse: 1.20.1-1.0.12
Farmer's Delight: 1.20.1-1.2.4
Entity Model Features: 2.1.3
Create: Framed: 1.4.5.1
Entity Texture Features: 6.1.3
FTB XMod Compat: 2.1.1
Ender's Delight: 1.0.3
Blur (Forge): 3.1.1
FTB Ranks: 2001.1.3
CMDCam: 2.1.1
SuperMartijn642's Core Lib: 1.1.17+a
Bobby Reforged: 5.0.0
spark: 1.10.53
Dimension Access Manager: 3.1.0
Curios API: 5.9.1+1.20.1
Supplementaries Squared: 1.20-1.1.14
Oculus: 1.7.0
My Nether's Delight: 1.20.1-1.7.5
Searchables: 1.0.3
Create: Gravity: 1.2.0
Better Third Person: 1.9.0
Chunk Pregenerator: 1.20-4.4.4
You Shall Not Spawn: 2.0.1
WorldEdit: 7.2.15+6463-5ca4dff
Create Railways Navigator: 1.20.1-0.5.5
Architectury: 9.2.14
Cupboard utilities: 1.20.1-2.7
Framework: 0.7.8
Jade Addons: 5.3.1+forge
Krypton Reforged: 0.2.3
Tom's Simple Storage Mod: 1.6.8
Fast Leaf Decay: 32
WaterFrames: 2.0.14
PlayerRevive: 2.0.26
Rhino: 2001.2.3-build.6
JourneyMap Integration: 1.20.1-0.14-48
FTB Library: 2001.2.4
Connectible Chains: 1.0.0
Amendments: 1.20-1.2.8
WaterMedia: 2.0.69
Oculus Flywheel Compat: 1.1.1
Create: Copycats+: 2.1.2+mc.1.20.1-forge
Create Optical Mod: 0.1.1
Roughly Enough Items (JEI Stub): 15.9999
Simple RPC: 3.3.2
PonderJS: 1.4.0
Journeymap: 5.10.1
Modlist Snooper: 1.1
Call of Yucatán: 1.0.12
CraterLib: 2.0.2
Create Confectionery: 1.1.0
Create: Vintage Improvements: 1.20.1-0.1.5.1
Plonk: 10.0.5
Quests Additions: 1.4.3a
What Are They Up To: 1.20.1-1.1.3
FTB Chunks: 2001.3.1
Create: Train Perspective: 0.6.1+mc1.20.1
Drippy Loading Screen: 3.0.1
Sons of Sins: 2.1.6
Smoothchunk mod: 1.20.1-3.6
Simple Backups: 1.20.1-3.1.6
DragonLib: 1.20.1-2.1.14
Simple Voice Chat: 1.20.1-2.5.20
Moonlight Library: 1.20-2.12.9
Mouse Tweaks: 2.25.1
Necronomicon: 1.4.2
FTB Quests: 2001.4.8
Mysterious Mountain Lib: 1.4.7-1.20.1
MixinSquared: 0.1.1
No Chat Reports: 1.20.1-v2.2.2
Jade: 11.11.1+forge
Another Furniture: 1.20.1-3.0.1
CreativeCore: 2.11.33
e4mc: 4.0.1
Roughly Enough Items (REI): 12.1.750
Kotlin For Forge: 4.11.0
NotEnoughAnimations: 1.7.4
Create Stuff & Additions: 2.0.4.
Canary: 0.3.3
FancyMenu: 3.2.3
CoroUtil: 1.20.1-1.3.7
Create: Pattern Schematics: 1.1.10+forge-1.20.1
AppleSkin: 2.5.1+mc1.20.1
Lootr: 0.7.34.85
Ferrite Core: 6.0.1
Create Track Map: 1.4
Create Academy Cosmetics: 1.0.3
CosmeticArmorReworked: 1.20.1-v1a
Valhelsia Core: 1.1.2
Create Enchantment Industry: 1.2.9.d
Ender Mail: 1.20.1-1.2.9
Default Options: 18.0.1
Carbon Config Library: 1.20-1.2.6
Server Info
Create:
Mod Version: 0.5.1h
Forge Version: 47.2.20
Minecraft Version: 1.20.1
System Information:
Operating System: Windows 11 (amd64) version 10.0
Java Version: 17.0.2, Oracle Corporation
JVM Flags: 9 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xmx4G -Xms4G -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=32M
Memory: 1277642632 bytes (1218 MiB) / 4294967296 bytes (4096 MiB) up to 4294967296 bytes (4096 MiB)
Total Memory: 25688252416 bytes (24488 MiB) / 34132516864 bytes (32538 MiB)
CPU: 11th Gen Intel(R) Core(TM) i7-11370H @ 3.30GHz @ 3.30 GHz; 4 cores / 8 threads on 1 socket(s)
Graphics card #0: DisplayLink USB Device (DisplayLink (0x17e9)); 0.00 MB of VRAM
Graphics card #1: DisplayLink USB Device (DisplayLink (0x17e9)); 0.00 MB of VRAM
Graphics card #2: Intel(R) Iris(R) Xe Graphics (Intel Corporation (0x8086)); 1024.00 MB of VRAM
Graphics card #3: NVIDIA GeForce GTX 1650 (NVIDIA (0x10de)); 4095.00 MB of VRAM
Other Mods:
Saturn: 0.1.3
Rubidium Dynamic Lights: 1.20.1_v1.6.0
Easy NPC: 4.5.1
Academy Core: 1.0.1
KumaAPI: 20.1.8
KubeJS: 2001.6.5-build.14
create: things and misc: 1.0.0
Wandering Bags: 2.0.7
FTB Essentials: 2001.2.2
SuperMartijn642's Config Library: 1.1.8
Global Packs: 1.16.2_forge
Satin Forge: 1.20.1+1.15.0-SNAPSHOT
Create Deco: 2.0.2-1.20.1-forge
recipeessentials mod: 1.20.1-3.6
Bagus Cosmetic: 1.20.1-0.2.5
Client Reset Packet: 0.0.6
Nether's Exoticism: 1.2.8
Architect's Palette: 1.3.6.1
Connectivity Mod: 1.20.1-5.6
Gpu memory leak fix: 1.20.1-1.8
Rubidium (Embeddium): 0.7.1
PVP Flagging: 1.20.1-1.0.0
Etched: 3.0.2
More MobGriefing Options: 2.0.4
Controlling: 12.0.2
REI Plugin Compatibilities: 12.0.93
Create: Central Kitchen: 1.3.12
Bagus Lib: 1.20.1-5.2.2
MixinExtras: 0.2.0
Building But Better: 1.20.1-1.0.1
Item Obliterator: 2.3.0
Roughly Enough Resources: 2.9.0
Create: Dragon Lib: 1.4.3
Balm: 7.3.6
Create: Steam 'n' Rails: 1.6.4+forge-mc1.20.1
Melody: 1.0.2
Chat Heads: 0.12.9
Cloth Config v10 API: 11.1.118
Create Tab Fix: 1.0.0+forge-1.20.1
FTB Teams: 2001.3.0
Supplementaries: 1.20-2.8.17
Emojiful: 4.2.0
Konkrete: 1.8.0
Embeddium: 0.3.31+mc1.20.1
Corpse: 1.20.1-1.0.12
Farmer's Delight: 1.20.1-1.2.4
Entity Model Features: 2.1.3
Create: Framed: 1.4.5.1
Entity Texture Features: 6.1.3
FTB XMod Compat: 2.1.1
Ender's Delight: 1.0.3
Blur (Forge): 3.1.1
FTB Ranks: 2001.1.3
CMDCam: 2.1.1
SuperMartijn642's Core Lib: 1.1.17+a
Bobby Reforged: 5.0.0
spark: 1.10.53
Dimension Access Manager: 3.1.0
Curios API: 5.9.1+1.20.1
Supplementaries Squared: 1.20-1.1.14
Oculus: 1.7.0
My Nether's Delight: 1.20.1-1.7.5
Searchables: 1.0.3
Create: Gravity: 1.2.0
Better Third Person: 1.9.0
Chunk Pregenerator: 1.20-4.4.4
You Shall Not Spawn: 2.0.1
WorldEdit: 7.2.15+6463-5ca4dff
Create Railways Navigator: 1.20.1-0.5.5
Architectury: 9.2.14
Cupboard utilities: 1.20.1-2.7
Framework: 0.7.8
Jade Addons: 5.3.1+forge
Krypton Reforged: 0.2.3
Tom's Simple Storage Mod: 1.6.8
Fast Leaf Decay: 32
WaterFrames: 2.0.14
PlayerRevive: 2.0.26
Rhino: 2001.2.3-build.6
JourneyMap Integration: 1.20.1-0.14-48
FTB Library: 2001.2.4
Connectible Chains: 1.0.0
Amendments: 1.20-1.2.8
WaterMedia: 2.0.69
Oculus Flywheel Compat: 1.1.1
Create: Copycats+: 2.1.2+mc.1.20.1-forge
Create Optical Mod: 0.1.1
Roughly Enough Items (JEI Stub): 15.9999
Simple RPC: 3.3.2
PonderJS: 1.4.0
Journeymap: 5.10.1
Modlist Snooper: 1.1
Call of Yucatán: 1.0.12
CraterLib: 2.0.2
Create Confectionery: 1.1.0
Create: Vintage Improvements: 1.20.1-0.1.5.1
Plonk: 10.0.5
Quests Additions: 1.4.3a
What Are They Up To: 1.20.1-1.1.3
FTB Chunks: 2001.3.1
Create: Train Perspective: 0.6.1+mc1.20.1
Drippy Loading Screen: 3.0.1
Sons of Sins: 2.1.6
Smoothchunk mod: 1.20.1-3.6
Simple Backups: 1.20.1-3.1.6
DragonLib: 1.20.1-2.1.14
Simple Voice Chat: 1.20.1-2.5.20
Moonlight Library: 1.20-2.12.9
Mouse Tweaks: 2.25.1
Necronomicon: 1.4.2
FTB Quests: 2001.4.8
Mysterious Mountain Lib: 1.4.7-1.20.1
MixinSquared: 0.1.1
No Chat Reports: 1.20.1-v2.2.2
Jade: 11.11.1+forge
Another Furniture: 1.20.1-3.0.1
CreativeCore: 2.11.33
e4mc: 4.0.1
Roughly Enough Items (REI): 12.1.750
Kotlin For Forge: 4.11.0
NotEnoughAnimations: 1.7.4
Create Stuff & Additions: 2.0.4.
Canary: 0.3.3
FancyMenu: 3.2.3
CoroUtil: 1.20.1-1.3.7
Create: Pattern Schematics: 1.1.10+forge-1.20.1
AppleSkin: 2.5.1+mc1.20.1
Lootr: 0.7.34.85
Ferrite Core: 6.0.1
Create Track Map: 1.4
Create Academy Cosmetics: 1.0.3
CosmeticArmorReworked: 1.20.1-v1a
Valhelsia Core: 1.1.2
Create Enchantment Industry: 1.2.9.d
Ender Mail: 1.20.1-1.2.9
Default Options: 18.0.1
Carbon Config Library: 1.20-1.2.6
Can't reproduce this with FD baskets (I can't attach display items; it opens an inventory. Also the block isn't tagged create:safe_nbt so shouldn't be getting contents printed). Might be some third mod.
Amendments does indeed add nbt data to hanging signs: https://github.com/MehVahdJukaar/amendments/blob/da6b5acc3d9fb03f2acba9179a4e32068de44138/common/src/main/java/net/mehvahdjukaar/amendments/common/tile/HangingSignTileExtension.java#L84-L89
which isn't trimmed (because ideally you keep the innocuous data they also add) by Create's nbt processor for signs.
This might be an issue in my mod pattern schematics, since it changes base function of the schematicannon, although ill have to look into why this would be happening regardless
The Amendments part with the hanging signs I've actually reproduced with just Create, that's why I specifically mention not being able to reproduce the FD basket part (I don't see how to get single display items in those and they're not tagged to retain nbt)
Some additional info and a work-around we devised for now:
As far as I can tell, the main issue is that Amendments tacks on additional NBT, which Create blindly copies over (probably with the goal of bringing over sign text). Specifically, this is controlled by #create:safe_nbt
of which #minecraft:all_signs
is a part of.
Our work-around for now has been to pull signs off that tag, so now they print blank, which is not ideal, but at least they don't print free stuff anymore. Once learning of this, we tested everything else on this tag and were able to reproduce the whole item-spawning-in thing with Create: Deco's colored Placards. As for the baskets, we stopped being able to reproduce it after taking signs off the tag list, so I blame a mod compatibility issue there.
However, base Create's Placards are on that list, too, and don't magically manifest items. Do they have special handling that could be somehow expanded upon?
Some additional info and a work-around we devised for now:
As far as I can tell, the main issue is that Amendments tacks on additional NBT, which Create blindly copies over (probably with the goal of bringing over sign text). Specifically, this is controlled by
#create:safe_nbt
of which#minecraft:all_signs
is a part of.Our work-around for now has been to pull signs off that tag, so now they print blank, which is not ideal, but at least they don't print free stuff anymore. Once learning of this, we tested everything else on this tag and were able to reproduce the whole item-spawning-in thing with Create: Deco's colored Placards. As for the baskets, we stopped being able to reproduce it after taking signs off the tag list, so I blame a mod compatibility issue there.
However, base Create's Placards are on that list, too, and don't magically manifest items. Do they have special handling that could be somehow expanded upon?
They have special handling, deco needs to extend that handling to their own pacards.
As for the signs, amendments shouldn't be adding nbt onto existing blocks but there isn't really a better option, so special casing will need to be done for that so it isn't copied over
They have special handling, deco needs to extend that handling to their own pacards.
As for the signs, amendments shouldn't be adding nbt onto existing blocks but there isn't really a better option, so special casing will need to be done for that so it isn't copied over
Gotcha.
Is this something that'd be up to the Deco and Amendments authors, or is this within Create?
To me, spawning in items is a big enough problem to at least consider the two as "soft" incompatibilities (or however Create reports work-around-able mod conflicts, if at all), at it only affects multiplayer and probably only public multiplayer at that.
They have special handling, deco needs to extend that handling to their own pacards.
As for the signs, amendments shouldn't be adding nbt onto existing blocks but there isn't really a better option, so special casing will need to be done for that so it isn't copied overGotcha.
Is this something that'd be up to the Deco and Amendments authors, or is this within Create?
To me, spawning in items is a big enough problem to at least consider the two as "soft" incompatibilities (or however Create reports work-around-able mod conflicts, if at all), at it only affects multiplayer and probably only public multiplayer at that.
For Deco they'd have to fix that, for amendments we'll handle it