Create

Create

117M Downloads

low tps from contraption

yoblex opened this issue · 16 comments

commented

Description

https://observable.tas.sh/p/zYPIx/chunks

Image Image

Game Log

https://observable.tas.sh/p/zYPIx/chunks

Debug Information

Client Info
Create:
	Mod Version: 6.0.6
	Mod Git Commit: 20ad05b5e525166018d21e88c96986f867c7088f
	Ponder Version: 1.0.56
	NeoForge Version: 21.1.209
	Minecraft Version: 1.21.1

Graphics:
	Flywheel Version: 1.0.4
	Flywheel Backend: flywheel:indirect
	OpenGL Renderer: NVIDIA GeForce RTX 5070/PCIe/SSE2
	OpenGL Version: 4.6.0 NVIDIA 580.88
	Graphics Mode: fancy
	PojavLauncher Detected: false

System Information:
	Operating System: Windows 11 (amd64) version 10.0
	Java Version: 21.0.7, Microsoft
	JVM Flags: 3 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xmx8192m -Xms512m
	Memory: 335757664 bytes (320 MiB) / 2998927360 bytes (2860 MiB) up to 8589934592 bytes (8192 MiB)
	Total Memory: 2673644768 bytes (2549 MiB) / 2998927360 bytes (2860 MiB)
	CPU: AMD Ryzen 5 5600X 6-Core Processor @ 3.70 GHz; 6 cores / 12 threads on 1 socket(s)
	Graphics cards: none

Other Mods:
	Camping: 2.1.1
	KumaAPI: 21.0.7
	Man of Many Planes: 0.2.1+1.21.1
	KubeJS: 2101.7.2-build.295
	Forgified Fabric Renderer API (v1): 3.4.0+acb05a3919
	SuperMartijn642's Config Library: 1.1.8
	Open Parties and Claims: 0.25.6
	GeckoLib 4: 4.8.2
	Player Animator: 2.0.1+1.21.1
	Immersive Aircraft: 1.4.0+1.21.1
	Sophisticated Core: 1.3.87
	Etched: 4.0.0
	Xaero's World Map: 1.39.12
	Controlling: 19.0.5
	Prism: 1.0.11
	ModernFix: 5.24.3+mc1.21.1
	Create Factory Logistics: 1.4.7
	Luminous:Tag: 1.1
	Forgified Fabric BlockView API (v2): 1.0.10+9afaaf8c19
	YUNG's API: 1.21.1-NeoForge-5.1.6
	ReForgedPlay Mod: 0.3
	Iris: 1.8.12-snapshot+mc1.21.1-local
	Create: Integrated Farming: 1.1.1
	Item Obliterator: 2.3.0
	Cool Rain: 1.1.0
	Bookshelf: 21.1.69
	[Let's Do] Vinery: 1.5.1
	Storage Delight: 25.06.24-1.21-neoforge
	Sophisticated Backpacks: 3.25.12
	Create: Numismatics: 1.0.18+neoforge-mc1.21.1
	[Let's Do] Beachparty: 2.1.2
	Pick Up Notifier: 21.1.1
	Balm: 21.0.52
	PrickleMC: 21.1.11
	Immersive Armors: 1.7.5+1.21.1
	CreateBetterFps: 1.1.2
	Melody: 1.0.10
	Just Enough Resources: 1.6.0.17
	Exposure: 1.9.10
	Cloth Config v15 API: 15.0.140
	Better Clouds: 1.7.17+1.21.1-neoforge
	Supplementaries: 1.21-3.4.16
	Konkrete: 1.9.9
	Staaaaaaaaaaaack: 1.21.1-1.7
	Durability Tooltip: 1.1.6
	[Let's Do] BloomingNature: 1.1.3
	Corpse: 1.21.1-1.1.13
	Advancement Plaques: 1.6.8
	Create: Connected: 1.1.6-mc1.21.1
	Friends&Foes - Flowery Mooblooms: 3.0.1
	Better Ping Display: 1.1
	Farmer's Delight: 1.2.9
	Handcrafted: 4.0.3
	Design n' Decor: 2.1.0
	SuperMartijn642's Core Lib: 1.1.18+a
	Resourcefulconfig: 3.0.11
	Bendy lib: 5.1
	Highlighter: 1.1.11
	Model Gap Fix: 1.21-1.10
	Curios API: 9.5.1+1.21.1
	Collective: 8.3
	Replay Mod: 2.6.18
	Searchables: 1.0.2
	[Let's Do] Meadow: 1.4.3
	Better Third Person: 1.9.0
	Resourceful Lib: 3.0.12
	Create Liquid Fuel: 2.1.1-1.21.1
	[Let's Do] HerbalBrews: 1.1.2
	Create Railways Navigator: 1.21.1-beta-0.8.4
	Architectury: 13.0.8
	conditional mixin: 0.6.4
	TRansition: 1.0.3
	Dynamic FPS: 3.9.5
	Forgified Fabric Rendering Data Attachment (v1): 0.3.48+73761d2e19
	Small Ships: 2.0.0-b2.1
	Observable: 5.4.4
	Chat Impressive Animation: 1.4.0+mc1.21.5
	Create Factory Abstractions: 1.4.7
	Luminous Nether: 1.3.1
	Create Slice & Dice: 4.0.1
	Better Advancements: 0.4.3.21
	Create: Bells & Whistles: 0.4.7-1.21.1
	Rhino: 2101.2.7-build.81
	Amendments: 1.21-2.0.8
	Rechiseled: 1.1.6+a
	Iris Flywheel Compat: 2.0.4
	Create: Copycats+: 3.0.2+mc.1.21.1-neoforge
	Create cobblestone: 1.4.6+neoforge-1.21.1-113
	Crawl: 0.14.9
	Just Enough Items: 19.25.0.322
	Veggies Delight: 1.9
	TRender: 1.0.5
	[Let's Do] Furniture: 1.1.1
	Selfexpression: Slim: 1.5
	Create: Dragons Plus: 1.8.0b
	Clumps: 19.0.0.1
	Artifacts: 13.0.7
	Item Borders: 1.2.5
	Rechiseled: Create: 1.0.2+a
	Particular: 1.1.6
	Scholar: 1.1.7
	Resourcify: 1.7.4
	Fusion: 1.2.11+a
	Sodium: 0.6.13+mc1.21.1
	Crate Delight: 25.09.22-1.21-neoforge
	More Delight: 25.07.28a-1.21-neoforge
	Create: Colored: 1.1.3
	Simple Voice Chat API: 2.6.0
	Create: Extra Gauges: 2.0.6
	Golem Overhaul: 1.0.2
	Sophisticated Backpacks Create Integration: 0.1.4
	Friends&Foes: 4.0.10
	Create:Schematic Checker: 0.21.8-6.0
	Selfexpression: 2.22
	Emotecraft: 2.4.12
	Iron Chests: 1.21-neoforge-16.0.7
	EMI: 1.1.22+1.21.1+neoforge
	DragonLib: 1.21.1-2.2.24
	libIPN: 6.5.1
	EnchantmentDescriptions: 21.1.8
	Simple Voice Chat: 1.21.1-2.6.3
	Moonlight Lib: 1.21-2.24.1
	Enderman Overhaul: 2.0.2
	TerraBlender: 4.1.0.8
	Longer Chat History: 1.7
	Forgified Fabric API Base: 0.4.42+d1308ded19
	Mouse Tweaks: 2.26.1
	Titanium: 4.0.40
	Necronomicon: 1.6.0
	Jade: 15.10.3+neoforge
	No Chat Reports: 1.21.1-v2.9.1
	Create: Blocks & Bogies: 1.0.5
	CreativeCore: 2.13.13
	Platform: 1.2.10.2
	Forge Config API Port: 21.1.1
	Create Aquatic Ambitions: 1.21.1-2.0.1
	Kotlin For Forge: 5.9.0
	RottenCreatures: 1.1.2
	Iceberg: 1.3.2
	Legendary Tooltips: 1.5.5
	Xaero's Minimap: 25.2.10
	Create: Sound of Steam: 0.6.4+1.21.1
	Polymorph: 1.1.0+1.21.1
	Leave My Bars Alone: 21.1.2
	EntityCulling: 1.8.2
	Critters and Companions: 1.21.1-2.3.3
	Better Archeology: 1.3.2
	Screenshot to Clipboard: 1.0.10
	FancyMenu: 3.7.0
	KubeJS Create: 2101.3.1-build.8
	ImmediatelyFast: 1.6.6+1.21.1
	[Let's Do] Wilder Nature: 1.1.4
	Concentration: 2.3.0
	Creeper Overhaul: 4.0.6
	Create: Pattern Schematics: 2.0.9
	Ocean's Delight: 1.0.3
	AppleSkin: 3.0.7+mc1.21
	Ferrite Core: 7.0.2
	Lootr: 1.21-1.10.35.91
	YetAnotherConfigLib: 3.7.1+1.21.1-neoforge
	Functional Storage: 1.21.1-1.5.4
	Puzzles Lib: 21.1.38
	Just Zoom: 2.1.0
	BetterF3: 11.0.3
	Immersive Melodies: 0.6.2+1.21.1
	Screenshot Viewer: 1.3.4
	PacketFixer: 3.3.0
	ExpandAbility: 12.0.0
	CosmeticArmorReworked: 1.21.1-v1-neoforge
	Create: Enchantment Industry: 2.2.2b
	create_train_parts: 0.3.0
	Create Crafts & Additions: 1.5.3
Server Info
Create:
	Mod Version: 6.0.6
	Mod Git Commit: 20ad05b5e525166018d21e88c96986f867c7088f
	Ponder Version: 1.0.56
	NeoForge Version: 21.1.209
	Minecraft Version: 1.21.1

System Information:
	Operating System: Linux (amd64) version 6.8.0-86-generic
	Java Version: 21.0.8, Ubuntu
	JVM Flags: 9 total; -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:InitiatingHeapOccupancyPercent=20 -XX:+AlwaysPreTouch -XX:+UseStringDeduplication -XX:G1HeapRegionSize=8M -Xms8G -Xmx32G
	Memory: 10994929184 bytes (10485 MiB) / 27464302592 bytes (26192 MiB) up to 34359738368 bytes (32768 MiB)
	Total Memory: 16637145568 bytes (15866 MiB) / 27464302592 bytes (26192 MiB)
	CPU: QEMU Virtual CPU version 2.5+ @ 2.00 GHz; 30 cores / 30 threads on 1 socket(s)
	Graphics cards: none

Other Mods:
	Camping: 2.1.1
	YUNG's Better Dungeons: 1.21.1-NeoForge-5.1.4
	Man of Many Planes: 0.2.1+1.21.1
	KumaAPI: 21.0.7
	KubeJS: 2101.7.2-build.295
	SuperMartijn642's Config Library: 1.1.8
	YUNG's Better Witch Huts: 1.21.1-NeoForge-4.1.1
	NetherPortalFix: 21.1.1
	Open Parties and Claims: 0.25.6
	GeckoLib 4: 4.8.2
	recipeessentials mod: 4.0
	Player Animator: 2.0.1+1.21.1
	YUNG's Better Ocean Monuments: 1.21.1-NeoForge-4.1.2
	Immersive Aircraft: 1.4.0+1.21.1
	Sophisticated Core: 1.3.87
	Etched: 4.0.0
	Xaero's World Map: 1.39.12
	ModernFix: 5.24.3+mc1.21.1
	Create Factory Logistics: 1.4.7
	Luminous:Tag: 1.1
	YUNG's API: 1.21.1-NeoForge-5.1.6
	Create: Integrated Farming: 1.1.1
	Item Obliterator: 2.3.0
	Bookshelf: 21.1.69
	[Let's Do] Vinery: 1.5.1
	Storage Delight: 25.06.24-1.21-neoforge
	Sophisticated Backpacks: 3.25.12
	Create: Numismatics: 1.0.18+neoforge-mc1.21.1
	whitelist: 0.1-BETA
	[Let's Do] Beachparty: 2.1.2
	Balm: 21.0.52
	PrickleMC: 21.1.11
	Immersive Armors: 1.7.5+1.21.1
	mobspawncontrol: 1.0
	Exposure: 1.9.10
	YUNG's Better Nether Fortresses: 1.21.1-NeoForge-3.1.5
	Cloth Config v15 API: 15.0.140
	Supplementaries: 1.21-3.4.16
	Staaaaaaaaaaaack: 1.21.1-1.7
	Konkrete: 1.9.9
	Create: Oxidized: 0.1.3
	[Let's Do] BloomingNature: 1.1.3
	Corpse: 1.21.1-1.1.13
	Create: Connected: 1.1.6-mc1.21.1
	Friends&Foes - Flowery Mooblooms: 3.0.1
	Farmer's Delight: 1.2.9
	Handcrafted: 4.0.3
	Chunky: 1.4.23
	Amplified Nether: 1.2.11
	Design n' Decor: 2.1.0
	SuperMartijn642's Core Lib: 1.1.18+a
	YUNG's Bridges: 1.21.1-NeoForge-5.1.1
	Resourcefulconfig: 3.0.11
	Bendy lib: 5.1
	spark: 1.10.124
	Curios API: 9.5.1+1.21.1
	HubmcChats: 2025.1.1
	Collective: 8.3
	[Let's Do] Meadow: 1.4.3
	YUNG's Extras: 1.21.1-NeoForge-5.1.1
	YUNG's Better Strongholds: 1.21.1-NeoForge-5.1.3
	Resourceful Lib: 3.0.12
	WorldEdit: 7.3.8+6939-7d32b45
	Create Liquid Fuel: 2.1.1-1.21.1
	[Let's Do] HerbalBrews: 1.1.2
	Create Railways Navigator: 1.21.1-beta-0.8.4
	Architectury: 13.0.8
	AI-Improvements: 0.5.3
	Cupboard mod: 2.9
	conditional mixin: 0.6.4
	YUNG's Better End Island: 1.21.1-NeoForge-3.1.2
	Small Ships: 2.0.0-b2.1
	Observable: 5.4.4
	Create Factory Abstractions: 1.4.7
	YUNG's Better Mineshafts: 1.21.1-NeoForge-5.1.1
	Luminous Nether: 1.3.1
	Create Slice & Dice: 4.0.1
	YUNG's Better Jungle Temples: 1.21.1-NeoForge-3.1.2
	Create: Bells & Whistles: 0.4.7-1.21.1
	Rhino: 2101.2.7-build.77
	Rechiseled: 1.1.6+a
	Amendments: 1.21-2.0.8
	Create: Copycats+: 3.0.2+mc.1.21.1-neoforge
	Create cobblestone: 1.4.6+neoforge-1.21.1-113
	Just Enough Items: 19.25.0.322
	Crawl: 0.14.9
	Veggies Delight: 1.9
	TAB: 5.2.1
	[Let's Do] Furniture: 1.1.1
	Selfexpression: Slim: 1.5
	Create: Dragons Plus: 1.8.0b
	Clumps: 19.0.0.1
	Artifacts: 13.0.7
	Rechiseled: Create: 1.0.2+a
	YUNG's Better Desert Temples: 1.21.1-NeoForge-4.1.5
	Scholar: 1.1.7
	Set World Spawn Point: 3.5
	Terralith: 2.5.8
	Crate Delight: 25.09.22-1.21-neoforge
	LuckPerms: 5.4.150
	More Delight: 25.07.28a-1.21-neoforge
	Create: Colored: 1.1.3
	Simple Voice Chat API: 2.6.0
	Create: Extra Gauges: 2.0.6
	Golem Overhaul: 1.0.2
	Sophisticated Backpacks Create Integration: 0.1.4
	Friends&Foes: 4.0.10
	Create:Schematic Checker: 0.21.8-6.0
	Selfexpression: 2.22
	Emotecraft: 2.4.12
	Iron Chests: 1.21-neoforge-16.0.7
	Smoothchunk mod: 4.1
	DragonLib: 1.21.1-2.2.24
	Simple Voice Chat: 1.21.1-2.6.3
	TerraBlender: 4.1.0.8
	Moonlight Lib: 1.21-2.24.1
	Enderman Overhaul: 2.0.2
	Titanium: 4.0.40
	Necronomicon: 1.6.0
	Jade: 15.10.3+neoforge
	Create: Blocks & Bogies: 1.0.5
	BlueMap: 5.7
	Platform: 1.2.10.2
	Forge Config API Port: 21.1.1
	Create Aquatic Ambitions: 1.21.1-2.0.1
	Kotlin For Forge: 5.9.0
	RottenCreatures: 1.1.2
	Create: Sound of Steam: 0.6.4+1.21.1
	Performant: 17.8
	Polymorph: 1.1.0+1.21.1
	Nullscape: 1.2.13
	Critters and Companions: 1.21.1-2.3.3
	Better Archeology: 1.3.2
	KubeJS Create: 2101.3.1-build.8
	[Let's Do] Wilder Nature: 1.1.4
	Ocean's Delight: 1.0.3
	Creeper Overhaul: 4.0.6
	Create: Pattern Schematics: 2.0.9
	Lootr: 1.21-1.10.35.91
	Ferrite Core: 7.0.2
	YetAnotherConfigLib: 3.7.1+1.21.1-neoforge
	Functional Storage: 1.21.1-1.5.4
	Immersive Melodies: 0.6.2+1.21.1
	PacketFixer: 3.3.0
	CosmeticArmorReworked: 1.21.1-v1-neoforge
	ExpandAbility: 12.0.0
	Create: Enchantment Industry: 2.2.2b
	create_train_parts: 0.3.0
	Create Crafts & Additions: 1.5.3
commented

Okay so as mentioned there really isn't any specific part of Create being (particularly) slow, you just have a lot going on in general.

commented

Please provide a spark report.

commented

2000 μs, while interestingly high, it's far from any TPS drop. You need to reach 50,000 μs to drop from 20 TPS.

commented

@adaliszk At one point the tps dropped to 15

commented

Could you record that with Spark and share that? The one you shared now has nothing really in it beyond the fact that you have about 5000 entities in the world, most of which are items or extra modded mobs that have nothing to do with Create itself.

Image
commented

After restarting, we launched 3 drills, the problem went away, apparently the problem is still in the RAM, thank you, you can close it... I'll go further to figure out what the problem could be

commented
Image
commented

Within your entity tick cycle, Create has pretty much zero contribution:
Image

Within block entities, you have quite a lot of Chute and Threshold switch load. Are your farms using chutes, but they are extremely slow in throughput, so they constantly transfer? If so, I think you should fix that.

Image

All your problems stem from the fact that you load 2000 chunks, which in turn brings a ton of unoptimized processing and a lot of mob logic. Neither of which is really something that Create could solve alone, Minecraft itself is not meant to be loading this much off-screen logic.

commented

To be honest, I didn't know I was uploading so many chunks. Where can I look for restrictions with an average online of 30-50 players?

commented

Okay, lets go over some Server Hosting 101:


I can see you added 30 cores to the VM, but in reality it will never use that much. Minecraft only uses about 3-6 threads total, where the bulk of the logic happens on a single thread.

  • Thread Tweak that can help with I/O, lighting, worldgen, and async tasks such as logging, networking, limited block updates, as it can increase the worker threads, but only those.
  • Lithium can help with a few things like Entity lookups, several Collections and Math operations to worker threads, but that still leaves the core logic on the main thread.
  • Dimensional Threads can split the main thread into several threads, but it is not fully compatible with Create and a lot of other mods that do rely on the fact that there is a tick order and shared memory on the same thread.

So, assigning more than 3-6 cores to a Minecraft server generally wasteful. What you really want is high single core performance, so that the main thread could process the load quicker. Optimization mods such as Lithium can help a lot.


With the loaded chunks, that is governed by any chunk loading methods and the simulation distance. Generally, with more than 10 players, you want the simulation distance to be low, like about 4-6. The default 8, each player would load 289 chunks, while with 4, they would load only 81.

However, with such low simulation range, you would need to rely on really targeted chunk loading for machines that players do want to be running. So you want a chunk loading solution that only loads small, selected areas.


Now, for optimizing Create for many players, your best bet is to discourage expensive behaviours:

  • Disabling contraption breaking entirely as sadly that mechanic is used with many bad designs that have slow or bad collection methods which leaves items on the ground ticking.
  • Bump Vault sizes larger than 20, which usually promotes people to use them even on contraptions as having fewer individual storage blocks helps to have less storage lookups.
  • Promote belts and funnels for transfer by either promoting hypertransfer via pulse clocks, or decreasing the extraction timer to 2 ticks which then makes the throughput rate high enough to finish transferring quickly.
  • Increase stress capacity of more compact methods such as steam engines or windmill bearings, should promote less ticking for generating power.
commented

Mobs ticking takes 30%, while Create entities (contraptions) only contribute 0.42%:

Image

The main Create-related workload is the block entities, which takes 17% of your TPS budget:

Image

Your problem is that you are reaching your hardware's limits around 6000 entities in 2400 chunks:

Image

I don't see much optimization potential here on the Create side; that 17% contribution (8.5/50ms) seems reasonable with 2400 chunks loaded for 20 people.

However, the optimization here would not address your original assumption that contraptions are the lag source, as your Spark clearly shows that multiple mob-expansion mods add extra load to entities and lookups. Lithium and similar mods may help there by offloading the lookups to the worker threads.

commented

Okay, lets go over some Server Hosting 101:


I can see you added 30 cores to the VM, but in reality it will never use that much. Minecraft only uses about 3-6 threads total, where the bulk of the logic happens on a single thread.

  • Thread Tweak that can help with I/O, lighting, worldgen, and async tasks such as logging, networking, limited block updates, as it can increase the worker threads, but only those.
  • Lithium can help with a few things like Entity lookups, several Collections and Math operations to worker threads, but that still leaves the core logic on the main thread.
  • Dimensional Threads can split the main thread into several threads, but it is not fully compatible with Create and a lot of other mods that do rely on the fact that there is a tick order and shared memory on the same thread.

So, assigning more than 3-6 cores to a Minecraft server generally wasteful. What you really want is high single core performance, so that the main thread could process the load quicker. Optimization mods such as Lithium can help a lot.


With the loaded chunks, that is governed by any chunk loading methods and the simulation distance. Generally, with more than 10 players, you want the simulation distance to be low, like about 4-6. The default 8, each player would load 289 chunks, while with 4, they would load only 81.

However, with such low simulation range, you would need to rely on really targeted chunk loading for machines that players do want to be running. So you want a chunk loading solution that only loads small, selected areas.


Now, for optimizing Create for many players, your best bet is to discourage expensive behaviours:

  • Disabling contraption breaking entirely as sadly that mechanic is used with many bad designs that have slow or bad collection methods which leaves items on the ground ticking.
  • Bump Vault sizes larger than 20, which usually promotes people to use them even on contraptions as having fewer individual storage blocks helps to have less storage lookups.
  • Promote belts and funnels for transfer by either promoting hypertransfer via pulse clocks, or decreasing the extraction timer to 2 ticks which then makes the throughput rate high enough to finish transferring quickly.
  • Increase stress capacity of more compact methods such as steam engines or windmill bearings, should promote less ticking for generating power.

unrelated to the issue but do you know of any additional documentation for server hosting 101? ive been running servers for 2 years know and think that i have some stuff left to learn.