Files
onion-mc/analysis/client-perf/data/jarscan-report.md
T
logan 611a1a5952 docs: client-perf analysis, bench harness and work journal
Everything the next agent needs to run the Phase 2 optimisation loop on a
machine that can launch the client:

- analysis/client-perf/: LEVERS (ranked levers + corrections), BENCH-MATRIX
  (world, scenes, config IDs, blocks B0-B14 with decision rules),
  PLAYER-TUNING, SPAWN-TUNING, research briefs, the jar scanner and its
  output, observed default configs, and proposed-configs/ (build.py
  generates tiers and bench variants and fails on unknown keys;
  apply_variant.py applies a variant and merges options.txt).
- analysis/client-perf/bench/onion-bench/: bench-world datapack (scene
  teleports, Create grid, mob pen, sound storm, 120 s teleport tour).
- analysis/audit/: the static recipe/dependency audit, including gen_fixes.py,
  which generates the shipped Paxi datapack and was never tracked.
- phase0/: per-machine measurement harness (Steam Deck, 7700K/1060,
  6700K/1080 Ti).
- .pi/journal.md: running work log; read it first.

All of it is packwizignored, so nothing here ships to players.
2026-10-14 18:15:32 -04:00

313 lines
21 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Static client-perf surface scan
Generated by `scripts/jarscan.py` + `scripts/report.py` from the exact jars pinned in `mods/*.pw.toml`.
All numbers are static (what the jar *contains*), not runtime cost. They tell us where cost *can* come from.
- **frame mixins** = mixin classes whose `@Mixin` target is on a per-frame path (LevelRenderer, GameRenderer, entity/item/block-entity renderers, Gui, ParticleEngine, blaze3d, Sodium, Iris, Camera).
- **risky** = `@Overwrite`/`@Redirect` injectors inside those frame mixins (replace vanilla logic; most likely to conflict with Sodium/Iris/ModernFix).
- **frame events** = NeoForge/Architectury/Fabric per-frame event types referenced by the mod’s classes.
- **atlas sprites** = block+item textures in 16×16-sprite equivalents (what lands in `blocks.png-atlas`, mipmapped, in VRAM).
## Pack totals (client-loaded mods)
| metric | value |
| --- | --- |
| client-loaded mods | 209 (server-only: 3) |
| mixin classes (client-loaded) | 3883 |
| frame-path mixin classes | 951 |
| frame-path @Overwrite/@Redirect | 121 |
| mods hooking ≥1 per-frame event | 58 |
| mods hooking client/player/entity tick events | 79 |
| block+item textures | 25277 files, 15.4 Mpx ≈ 60138 16×16 sprites |
| implied blocks atlas (lower bound, + vanilla) | ≥ 4096×4096 ; ×4 B ×1.33 mip ≈ 85 MiB VRAM at the square size |
| animated block/item textures | 312 |
| entity textures | 37.7 Mpx |
| models / blockstates | 69442 / 16361 |
| entity types (lang proxy) | 603 |
| blocks / items (lang proxy) | 15422 / 5178 |
| geckolib geo+animation files | 264 |
| vanilla core-shader overrides | sable, sodium, xaeros-minimap, xaeros-world-map |
| post-effect files | alexs-caves-(unofficial-port)(7), charta(1), citadel-(1.21.1-port)(1), exposure(19), lodestonelib(2), playerrevive(1), shatterbyte-lib(1) |
## Per-frame mixin surface
| mod | side | frame mixins | risky | all mixins | hottest targets |
| --- | --- | ---: | ---: | ---: | --- |
| sable | both | 127 | 29 | 496 | LevelRenderer×23, GameRenderer×12, Camera×5, RenderTarget×4, EntityRenderDispatcher×3, EntityRenderer×3 |
| iris | client | 114 | 28 | 171 | LevelRenderer×11, GlStateManager×7, GameRenderer×4, RenderType×4, BufferBuilder×3, DebugScreenOverlay×3 |
| controlify | client | 84 | 0 | 143 | AbstractSelectionList×4, AbstractContainerScreen×3, AbstractWidget×3, CreativeModeInventoryScreen×3, Gui×3, Screen×3 |
| sodium | client | 48 | 28 | 111 | LevelRenderer×5, ItemRenderer×3, BufferBuilder×2, DebugScreenOverlay×2, RenderChunkRegion×2, RenderSystem×2 |
| entity-model-features | client | 42 | 0 | 64 | CustomHeadLayer×2, EntityModelSet×2, GameRenderer×2, ModelPart$Cube×2, ParrotOnShoulderLayer×2, ArrowRenderer×1 |
| create | both | 30 | 0 | 101 | LevelRenderer×6, GameRenderer×2, HumanoidArmorLayer×2, PoseStack×2, RenderSystem×2, Screen×2 |
| entitytexturefeatures | client | 27 | 0 | 60 | BlockEntityRenderDispatcher×1, BufferBuilder×1, ElytraLayer×1, EndCrystalRenderer×1, EnderDragonRenderer×1, EntityRenderDispatcher×1 |
| subtle-effects | both | 26 | 0 | 118 | ParticleEngine×3, GameRenderer×2, BubbleColumnUpParticle×1, BubbleColumnUpParticle$Provider×1, BubbleParticle×1, BubbleParticle$Provider×1 |
| immediatelyfast | client | 25 | 11 | 39 | GameRenderer×3, DebugScreenOverlay×2, GuiGraphics×2, AbstractContainerScreen×1, BufferUploader×1, ChatScreen×1 |
| modernfix | both | 21 | 4 | 156 | CreateWorldScreen×2, ItemRenderer×2, LivingEntityRenderer×2, ConnectScreen×1, CubeDefinition×1, EnderDragonRenderer×1 |
| create-aeronautics | both | 20 | 0 | 134 | LevelRenderer×5, CreativeModeInventoryScreen×2, AbstractContainerScreen×1, CompassItemPropertyFunction×1, CreateWorldScreen×1, CreateWorldScreen$WorldTab×1 |
| emotecraft | both | 18 | 2 | 29 | LivingEntityRenderer×2, ModelPart×2, PlayerModel×2, Camera×1, CapeLayer×1, ElytraLayer×1 |
| playeranimator | both | 16 | 2 | 17 | LivingEntityRenderer×2, PlayerModel×2, Camera×1, CapeLayer×1, ElytraLayer×1, EntityRenderDispatcher×1 |
| adorable-hamster-pets | both | 12 | 0 | 38 | Gui×2, LivingEntityRenderer×2, AbstractContainerScreen×1, BlockEntityRenderDispatcher×1, EntityRenderDispatcher×1, ItemInHandLayer×1 |
| exposure | both | 12 | 1 | 41 | DebugScreenOverlay×2, AnvilScreen×1, Camera×1, GameRenderer×1, Gui×1, HumanoidModel×1 |
| icys-better-horses | both | 12 | 0 | 56 | AbstractContainerScreen×2, HorseModel×2, LivingEntityRenderer×2, AbstractHorseRenderer×1, Camera×1, GameRenderer×1 |
| moonlight | both | 12 | 0 | 82 | AgeableListModel×1, CartographyTableScreen×1, GameRenderer×1, HumanoidModel×1, ItemInHandRenderer×1, Lighting×1 |
| 3dskinlayers | client | 11 | 0 | 23 | CustomHeadLayer×1, Deadmau5EarsLayer×1, GuiGraphics×1, ModelPart×1, NativeImage×1, PlayerModel×1 |
| alexs-caves-(unofficial-port) | both | 11 | 0 | 61 | HumanoidModel×3, Camera×1, GameRenderer×1, HumanoidArmorLayer×1, ItemFrameRenderer×1, LevelRenderer×1 |
| doggy-talents-next | both | 11 | 0 | 17 | Camera×2, CubeDefinition×1, CubeDeformation×1, Gui×1, LayerDefinition×1, LivingEntityRenderer×1 |
| lambdynamiclights | client | 11 | 0 | 42 | LevelRenderer×3, DebugScreenOverlay×1, EntityRenderer×1, GameRenderer×1, Particle×1, ParticleEngine×1 |
| lodestonelib | both | 10 | 3 | 15 | AbstractContainerScreen×1, CreativeModeInventoryScreen×1, EffectProgram×1, GameRenderer×1, Gui×1, GuiGraphics×1 |
| iceberg | both | 9 | 0 | 22 | GuiGraphics×2, HumanoidArmorLayer×2, TooltipRenderUtil×2, ClientTextTooltip×1, Gui×1, Screen×1 |
| shatterbyte-lib | both | 9 | 1 | 11 | GameRenderer×3, AbstractWidget×2, AbstractContainerScreen×1, Gui×1, ParticleEngine×1, Screen×1 |
| ssrd | both | 9 | 1 | 24 | BlockEntityRenderer×1, EntityRenderDispatcher×1, Frustum×1, GameRenderer×1, LevelRenderer×1, RenderSectionManager×1 |
| what-are-they-up-to | both | 9 | 1 | 11 | Screen×2, GameRenderer×1, Gui×1, NativeImage×1, ParticleEngine×1, PlayerModel×1 |
| xaeros-minimap | both | 9 | 0 | 30 | AbstractButton×1, AgeableListModel×1, EnderDragonRenderer$DragonModel×1, HierarchicalModel×1, ListModel×1, LlamaModel×1 |
| entityculling | client | 8 | 0 | 19 | BlockEntityRenderDispatcher×1, BlockEntityRenderer×1, DebugScreenOverlay×1, EntityRenderer×1, GuiGraphics×1, LevelRenderer×1 |
| fusion-connected-textures | client | 8 | 0 | 33 | EntityModelSet×1, EntityRenderDispatcher×1, EntityRenderer×1, EntityRenderers×1, ItemRenderer×1, RenderChunkRegion×1 |
| sound | client | 8 | 0 | 33 | AbstractContainerScreen×1, ChatComponent×1, ChatScreen×1, CreativeModeInventoryScreen×1, CreativeModeInventoryScreen$ItemPickerMenu×1, EditBox×1 |
| ars-nouveau | both | 7 | 1 | 46 | LevelRenderer×2, AbstractSliderButton×1, ChatComponent×1, EntityRenderer×1, GameRenderer×1, Screen×1 |
| chalk-mod | both | 7 | 0 | 16 | ClientTooltipComponent×2, DebugScreenOverlay×2, AbstractContainerScreen×1, EntityRenderer×1, LevelRenderer×1 |
| distanthorizons | both | 7 | 2 | 43 | GlFramebuffer×2, DebugScreenOverlay×1, FogRenderer×1, LevelRenderer×1, LightTexture×1, OptionsScreen×1 |
| fwa | client | 7 | 1 | 12 | BlockRenderer×2, BlockEntityRenderDispatcher×1, LevelRenderer×1, RenderChunkRegion×1, ShadowRenderer×1, ShulkerBoxRenderer×1 |
| slice-and-dice | both | 7 | 0 | 20 | BufferBuilder×1, GameRenderer×1, ItemRenderer×1, ParticleEngine×1, RenderSystem×1, RenderType×1 |
| artifacts | both | 6 | 0 | 56 | PlayerRenderer×3, GameRenderer×1, HumanoidModel×1, LivingEntityRenderer×1 |
| blueprint | both | 6 | 0 | 36 | Camera×1, ModelPart×1, PlayerRenderer×1, RabbitRenderer×1, SkinCustomizationScreen×1, WorldOpenFlows×1 |
| clientsort | both | 6 | 0 | 15 | AbstractContainerScreen×2, Screen×2, CreativeModeInventoryScreen×1, CreativeModeInventoryScreen$SlotWrapper×1 |
| dungeons_delight | both | 6 | 1 | 29 | Gui×2, AbstractContainerScreen×1, EffectRenderingInventoryScreen×1, HumanoidModel×1, LevelRenderer×1 |
| dynamic-fps | client | 6 | 0 | 10 | DebugScreenOverlay×1, GameRenderer×1, Gui×1, LoadingOverlay×1, ToastComponent×1, Window×1 |
## Per-frame event subscribers
| mod | side | frame events | tick events |
| --- | --- | --- | --- |
| puzzles-lib | both | ComputeFovModifierEvent, CustomizeGuiOverlayEvent, RenderBlockScreenEffectEvent, RenderFrameEvent, RenderGuiEvent, RenderGuiLayerEvent, RenderHandEvent, RenderHighlightEvent, RenderLevelStageEvent, RenderLivingEvent, RenderNameTagEvent, RenderPlayerEvent, RenderTooltipEvent, ViewportEvent | ClientTickEvent, EntityTickEvent, LevelTickEvent, PlayerTickEvent |
| create | both | CustomizeGuiOverlayEvent, RenderArmEvent, RenderFrameEvent, RenderGuiLayerEvent, RenderHandEvent, RenderHighlightEvent, RenderLevelStageEvent, RenderPlayerEvent, RenderTooltipEvent, ViewportEvent | ClientTickEvent, EntityTickEvent, LevelTickEvent, PlayerTickEvent |
| alexs-caves-(unofficial-port) | both | ComputeFovModifierEvent, CustomizeGuiOverlayEvent, RenderBlockScreenEffectEvent, RenderGuiLayerEvent, RenderHandEvent, RenderLevelStageEvent, RenderLivingEvent, RenderNameTagEvent, ViewportEvent | ClientTickEvent, EntityTickEvent, PlayerTickEvent |
| mowzies-mobs | both | ComputeFovModifierEvent, CustomizeGuiOverlayEvent, RenderFrameEvent, RenderGuiLayerEvent, RenderHandEvent, RenderLevelStageEvent, RenderLivingEvent, RenderNameTagEvent, ViewportEvent | EntityTickEvent, LevelTickEvent, PlayerTickEvent |
| the-twilight-forest | both | ComputeFovModifierEvent, CustomizeGuiOverlayEvent, RenderArmEvent, RenderFrameEvent, RenderGuiLayerEvent, RenderHighlightEvent, RenderLevelStageEvent, RenderLivingEvent, ViewportEvent | ClientTickEvent, EntityTickEvent, PlayerTickEvent |
| ars-nouveau | both | RenderFrameEvent, RenderGuiLayerEvent, RenderHandEvent, RenderHighlightEvent, RenderLevelStageEvent, RenderTooltipEvent | ClientTickEvent, LevelTickEvent, PlayerTickEvent |
| balm | both | ComputeFovModifierEvent, GuiDrawEvent, RenderGuiEvent, RenderGuiLayerEvent, RenderHandEvent, RenderHighlightEvent | ClientTickEvent, ClientTickHandler, EntityTickEvent, LevelTickEvent, PlayerTickEvent |
| alexs-mobs(1.21.1) | both | RenderGuiLayerEvent, RenderHandEvent, RenderLevelStageEvent, RenderLivingEvent, ViewportEvent | ClientTickEvent, EntityTickEvent |
| xaeros-minimap | both | CustomizeGuiOverlayEvent, RenderFrameEvent, RenderGuiEvent, RenderGuiLayerEvent, RenderLevelStageEvent | ClientTickEvent, PlayerTickEvent |
| architectury-api | both | ClientGuiEvent, CustomizeGuiOverlayEvent, RenderGuiEvent, RenderTooltipEvent | ClientTickEvent, LevelTickEvent, PlayerTickEvent |
| doggy-talents-next | both | RenderArmEvent, RenderLevelStageEvent, RenderPlayerEvent, ViewportEvent | ClientTickEvent |
| modernfix | both | CustomizeGuiOverlayEvent, RenderFrameEvent, RenderLivingEvent, RenderPlayerEvent | ClientTickEvent |
| adorable-hamster-pets | both | ClientGuiEvent, RenderLevelStageEvent, WorldRenderEvents | ClientTickEvent |
| apotheosis | both | RenderHighlightEvent, RenderLevelStageEvent, RenderTooltipEvent | ClientTickEvent, EntityTickEvent |
| citadel-(1.21.1-port) | both | RenderLevelStageEvent, RenderPlayerEvent, RenderTooltipEvent | ClientTickEvent, EntityTickEvent |
| lodestonelib | both | RenderFrameEvent, RenderLevelStageEvent, ViewportEvent | ClientTickEvent, LevelTickEvent |
| slice-and-dice | both | RenderGuiLayerEvent, RenderLevelStageEvent, RenderTooltipEvent | ClientTickEvent, LevelTickEvent |
| alltheleaks | both | CustomizeGuiOverlayEvent, RenderLivingEvent | ClientTickEvent, EntityTickEvent, LevelTickEvent |
| appleskin | both | CustomizeGuiOverlayEvent, RenderTooltipEvent | ClientTickEvent, EntityTickEvent |
| arsdelight | both | RenderLevelStageEvent, RenderLivingEvent | ClientTickEvent, PlayerTickEvent |
| artifacts | both | RenderArmEvent, RenderLivingEvent | ClientTickEvent, EntityTickEvent |
| barbeques-delight-forge | both | RenderLevelStageEvent, RenderLivingEvent | ClientTickEvent, PlayerTickEvent |
| create-aeronautics | both | RenderGuiEvent, RenderLevelStageEvent | ClientTickEvent, LevelTickEvent |
| creativecore | both | RenderFrameEvent, RenderGuiEvent | ClientTickEvent, LevelTickEvent |
| distanthorizons | both | RenderLevelStageEvent, WorldRenderEvents | |
| exposure | both | RenderGuiEvent, RenderLevelStageEvent | |
| extradelight | both | ComputeFovModifierEvent, ViewportEvent | |
| fruits-delight | both | RenderLevelStageEvent, RenderLivingEvent | ClientTickEvent, PlayerTickEvent |
| jade | both | CustomizeGuiOverlayEvent, RenderGuiEvent | ClientTickEvent |
| modonomicon | both | RenderFrameEvent, RenderLevelStageEvent | ClientTickEvent |
| patchouli | both | RenderFrameEvent, RenderTooltipEvent | ClientTickEvent |
| playerrevive | both | RenderFrameEvent, RenderGuiLayerEvent | ClientTickEvent, PlayerTickEvent |
| sable | both | RenderLevelStageEvent, ViewportEvent | ClientTickEvent |
| sophisticated-core | both | RenderLevelStageEvent, RenderTooltipEvent | ClientTickEvent, LevelTickEvent |
| twilight-delight | both | RenderLevelStageEvent, RenderLivingEvent | ClientTickEvent, PlayerTickEvent |
| akashic-tome | both | RenderGuiLayerEvent | |
| comforts | both | RenderPlayerEvent | ClientTickEvent |
| dynamic-fps | client | RenderGuiEvent | ClientTickEvent |
| ferrite-core | both | RenderLevelStageEvent | |
| ftb-library-forge | both | ClientGuiEvent | ClientTickEvent |
| fwa | client | RenderLevelStageEvent | |
| iceberg | both | RenderTooltipEvent | |
| iris | client | RenderLevelStageEvent | |
| jei | both | RenderTooltipEvent | ClientTickEvent |
| keybind-atlas | client | RenderGuiEvent | |
| legendary-tooltips | client | RenderTooltipEvent | |
| minopp | both | ComputeFovModifierEvent | ClientTickEvent |
| mru | both | HudRenderCallback | |
| music-disc-maker | both | RenderLevelStageEvent | ClientTickEvent |
| quick-skin | both | ClientGuiEvent | ClientTickEvent |
| rechiseled | both | RenderLevelStageEvent | |
| resourceful-lib | both | RenderHighlightEvent | |
| shatterbyte-lib | both | RenderLevelStageEvent | ClientTickEvent |
| sophisticated-backpacks | both | RenderLevelStageEvent | ClientTickEvent, EntityTickEvent, LevelTickEvent |
| sophisticated-storage | both | RenderHighlightEvent | ClientTickEvent, LevelTickEvent |
| subtle-effects | both | RenderLevelStageEvent | ClientTickEvent |
| xaeros-world-map | both | RenderFrameEvent | ClientTickEvent, PlayerTickEvent |
| zume | client | ViewportEvent | |
## Block/item atlas pressure
| mod | side | sprites (16² eq.) | files | animated | % of pack | models | blockstates |
| --- | --- | ---: | ---: | ---: | ---: | ---: | ---: |
| handcrafted | both | 16,359 | 976 | 0 | 27.2 | 12394 | 267 |
| chipped | both | 12,754 | 12299 | 30 | 21.2 | 16832 | 6981 |
| rechiseled | both | 5,680 | 657 | 0 | 9.4 | 13855 | 3627 |
| create | both | 4,012 | 1083 | 4 | 6.7 | 2684 | 643 |
| ars-nouveau | both | 3,778 | 547 | 29 | 6.3 | 870 | 200 |
| too-many-bows | both | 3,322 | 166 | 0 | 5.5 | 150 | 0 |
| extradelight | both | 1,847 | 1847 | 0 | 3.1 | 3759 | 822 |
| adorable-hamster-pets | both | 1,051 | 121 | 0 | 1.7 | 82 | 10 |
| doggy-talents-next | both | 981 | 192 | 0 | 1.6 | 164 | 6 |
| the-twilight-forest | both | 889 | 827 | 44 | 1.5 | 3107 | 523 |
| create-aeronautics | both | 740 | 261 | 1 | 1.2 | 605 | 141 |
| alexs-caves-(unofficial-port) | both | 717 | 711 | 27 | 1.2 | 1284 | 354 |
| macaws-doors | both | 702 | 702 | 0 | 1.2 | 1394 | 246 |
| dungeons_delight | both | 450 | 327 | 17 | 0.7 | 416 | 65 |
| wings-of-fire | both | 417 | 57 | 2 | 0.7 | 53 | 7 |
| alexs-mobs(1.21.1) | both | 410 | 254 | 13 | 0.7 | 438 | 37 |
| tiny-dragons | both | 378 | 9 | 1 | 0.6 | 25 | 3 |
| rustic-delight | both | 363 | 348 | 0 | 0.6 | 423 | 55 |
| sophisticated-storage | both | 349 | 271 | 0 | 0.6 | 299 | 59 |
| farmers-delight | both | 348 | 348 | 2 | 0.6 | 369 | 132 |
| immersive-paintings | both | 341 | 89 | 0 | 0.6 | 4 | 0 |
| fruits-delight | both | 254 | 254 | 0 | 0.4 | 649 | 200 |
| items-displayed-forge | both | 243 | 129 | 0 | 0.4 | 315 | 109 |
| twilight-delight | both | 233 | 221 | 11 | 0.4 | 356 | 95 |
| frights-delight | both | 217 | 172 | 69 | 0.4 | 271 | 43 |
| mowzies-mobs | both | 174 | 70 | 1 | 0.3 | 96 | 9 |
| veggies-delight | both | 170 | 170 | 0 | 0.3 | 178 | 29 |
| exposure | both | 166 | 52 | 1 | 0.3 | 54 | 8 |
| macaws-windows | both | 164 | 164 | 0 | 0.3 | 1887 | 328 |
| arsdelight | both | 159 | 142 | 0 | 0.3 | 165 | 26 |
## Animated atlas textures (uploaded every tick unless culled by Sodium)
| mod | side | animated |
| --- | --- | ---: |
| frights-delight | both | 69 |
| the-twilight-forest | both | 44 |
| chipped | both | 30 |
| ars-nouveau | both | 29 |
| alexs-caves-(unofficial-port) | both | 27 |
| macaws-lights-and-lamps | both | 18 |
| dungeons_delight | both | 17 |
| alexs-mobs(1.21.1) | both | 13 |
| apotheosis | both | 12 |
| twilight-delight | both | 11 |
| moonlight | both | 10 |
| create-enchantment-industry | both | 7 |
| create | both | 4 |
| apothic-enchanting | both | 3 |
| ends-delight | both | 2 |
| farmers-delight | both | 2 |
| macaws-roofs | both | 2 |
| slice-and-dice | both | 2 |
| sophisticated-core | both | 2 |
| wings-of-fire | both | 2 |
## Entity content (renderer + animation load)
| mod | side | entity types | entity tex Mpx | geckolib files |
| --- | --- | ---: | ---: | ---: |
| alexs-mobs(1.21.1) | both | 140 | 7.17 | 0 |
| alexs-caves-(unofficial-port) | both | 92 | 11.45 | 0 |
| the-twilight-forest | both | 80 | 0.95 | 0 |
| ars-nouveau | both | 51 | 0.37 | 132 |
| aquaculture | both | 40 | 0.05 | 0 |
| mowzies-mobs | both | 30 | 0.38 | 38 |
| critters-and-companions | both | 17 | 0.47 | 60 |
| items-displayed-forge | both | 17 | 0.07 | 0 |
| icys-better-horses | both | 16 | 5.37 | 14 |
| fowlplay | both | 14 | 0.09 | 0 |
| friends-and-foes-forge | both | 14 | 0.16 | 0 |
| fishermans-haven | both | 11 | 0.00 | 0 |
| tiny-dragons | both | 10 | 0.00 | 9 |
| create | both | 9 | 0.02 | 0 |
| adorable-hamster-pets | both | 7 | 0.26 | 4 |
| dungeons_delight | both | 7 | 0.05 | 0 |
| create-aeronautics | both | 6 | 0.01 | 0 |
| pet-cemetery | both | 6 | 0.01 | 0 |
| wings-of-fire | both | 6 | 0.00 | 2 |
| exposure | both | 5 | 0.00 | 0 |
| immersive-paintings | both | 4 | 0.00 | 0 |
| blueprint | both | 3 | 0.00 | 0 |
| doggy-talents-next | both | 3 | 10.09 | 0 |
| charta | both | 2 | 0.03 | 0 |
| handcrafted | both | 2 | 0.00 | 0 |
| jade | both | 2 | 0.00 | 0 |
| lootr | both | 2 | 0.00 | 0 |
| too-many-bows | both | 2 | 0.02 | 0 |
| artifacts | both | 1 | 0.10 | 0 |
| farmers-delight | both | 1 | 0.07 | 0 |
## Shader assets
| mod | side | shader files | post effects | core overrides |
| --- | --- | ---: | ---: | ---: |
| lodestonelib | both | 59 | 2 | 0 |
| alexs-caves-(unofficial-port) | both | 38 | 7 | 0 |
| charta | both | 31 | 1 | 0 |
| xaeros-minimap | both | 31 | 0 | 31 |
| xaeros-world-map | both | 31 | 0 | 31 |
| distanthorizons | both | 23 | 0 | 0 |
| exposure | both | 21 | 19 | 0 |
| what-are-they-up-to | both | 16 | 0 | 0 |
| ars-nouveau | both | 9 | 0 | 0 |
| sodium | client | 9 | 0 | 3 |
| blueprint | both | 6 | 0 | 0 |
| moonlight | both | 4 | 0 | 0 |
| playerrevive | both | 4 | 1 | 0 |
| the-twilight-forest | both | 4 | 0 | 0 |
| apotheosis | both | 3 | 0 | 0 |
| citadel-(1.21.1-port) | both | 3 | 1 | 0 |
| create | both | 3 | 0 | 0 |
| sable | both | 3 | 0 | 3 |
| shatterbyte-lib | both | 3 | 1 | 0 |
| ssrd | both | 1 | 0 | 0 |
## Sound payload
| mod | side | ogg MB |
| --- | --- | ---: |
| ambientsounds | client | 85.5 |
| alexs-caves-(unofficial-port) | both | 68.8 |
| mowzies-mobs | both | 33.2 |
| create-aeronautics | both | 26.2 |
| alexs-mobs(1.21.1) | both | 20.3 |
| the-twilight-forest | both | 17.3 |
| adorable-hamster-pets | both | 15.2 |
| sound | client | 7.9 |
| playerrevive | both | 5.1 |
| dungeons_delight | both | 5.1 |
| apothic-enchanting | both | 4.8 |
| doggy-talents-next | both | 4.3 |
| ars-nouveau | both | 4.3 |
| friends-and-foes-forge | both | 3.9 |
| apotheosis | both | 3.9 |
## Jar size
| mod | side | MB |
| --- | --- | ---: |
| ambientsounds | client | 84.8 |
| alexs-caves-(unofficial-port) | both | 74.9 |
| mowzies-mobs | both | 36.0 |
| music-disc-maker | both | 35.0 |
| create-aeronautics | both | 33.1 |
| distanthorizons | both | 28.2 |
| the-twilight-forest | both | 27.2 |
| alexs-mobs(1.21.1) | both | 26.6 |
| adorable-hamster-pets | both | 20.3 |
| ars-nouveau | both | 20.1 |
| create | both | 19.1 |
| chipped | both | 15.0 |
| sable | both | 13.0 |
| when-dungeons-arise | both | 11.8 |
| rechiseled | both | 11.5 |
| doggy-talents-next | both | 11.3 |
| extradelight | both | 11.0 |
| sound | client | 8.7 |
| controlify | client | 8.0 |
| fragmentum | both | 7.8 |
## Resource packs / shader packs
- **better-leaves** (both): atlas sprites 2,469, entity tex 0.00 Mpx, models 3223, blockstates 871, CEM/EMF files 0, shader files 0
- **complementary-reimagined** (both): atlas sprites 0, entity tex 0.00 Mpx, models 0, blockstates 0, CEM/EMF files 0, shader files 0
- **fresh-animations** (both): atlas sprites 0, entity tex 0.65 Mpx, models 0, blockstates 0, CEM/EMF files 240, shader files 0
- **fresh-animations-extensions** (both): atlas sprites 0, entity tex 0.48 Mpx, models 0, blockstates 0, CEM/EMF files 218, shader files 0
- **makeup-ultra-fast-shaders** (both): atlas sprites 0, entity tex 0.00 Mpx, models 0, blockstates 0, CEM/EMF files 0, shader files 0