-
Notifications
You must be signed in to change notification settings - Fork 5
Configuration File
The configuration file makes use of the Java properties format. If the configuration file does not exist during game start-up, a blank file with a comment will be created.
The configuration file defines overrides for the available options, and as such, a blank file is perfectly normal! It simply means that you'd like to use all the default values.
Each category below includes a list of options which can be changed by the user. Due to the nature of the mod, configuration options require a game restart to take effect.
Before editing the configuration file, take a backup of your minecraft worlds! All configuration options are simple key-value pairs. In other words, you first specify the option's name, followed by the desired value, like so:
mixin.ai.pathing=false
mixin.gen.biome_noise_cache=false
(default: true
)
Mob AI optimizations
(default: false
)
Event-based system for tracking nearby entities.
Requirements:
mixin.util.entity_section_position=true
mixin.util.accessors=true
(default: true
)
A number of AI goals which query for nearby entities in the world every tick will use the event-based
system for tracking nearby entities. In other words, instead of entities constantly polling to see if
other entities are nearby, they will instead be notified only occasionally when such an entity enters
their range.
(default: true
)
A faster code path is used for determining what kind of path-finding node type is associated with a
given block. Additionally, a faster chunk cache will be used for accessing blocks while evaluating
paths.
Requirements:
mixin.util.chunk_access=true
(default: true
)
Implements a faster POI search
(default: true
)
Portal search uses the faster POI search and optimized loaded state caching
(default: true
)
Mob Tasks which search for POIs use the optimized POI search
(default: true
)
Avoids unnecessary raid bar updates and optimizes expensive leader banner operations
(default: true
)
Avoid unnecessary secondary POI searches of non-farmer villagers
(default: true
)
Various AI task optimizations
(default: true
)
Keep track of running and runnable tasks to speed up task launching checks
(default: true
)
Keep track of AI memory changes to skip checking AI task memory prerequisites
(default: true
)
Replace Stream code of AI tasks with more traditional iteration.
(default: true
)
Patches that reduce memory allocations
(default: true
)
Improve the BlockState withTable lookup by using a custom table implementation.
(default: true
)
Random block ticking uses fewer block position allocations, thereby reducing the object allocation rate.
(default: true
)
Reuse large chunk lists
(default: true
)
Composters will reuse the available slot arrays that are requested by hoppers
(default: true
)
Reduce stream code usage when getting the passengers of an entity
(default: true
)
Entity trackers use a fastutil set for storing players instead of an IdentityHashSet
(default: true
)
Avoid Enum#values()
array copy in frequently called code
(default: true
)
Avoid Enum#values()
array copy in frequently called code
(default: true
)
Avoid Enum#values()
array copy in frequently called code
(default: true
)
Avoid Enum#values()
array copy in frequently called code
(default: true
)
Avoid Enum#values()
array copy in frequently called code
(default: true
)
Remove lambda allocation in frequently called block blast resistance calculation in explosion code
(default: true
)
NBT tags use a fastutil hashmap instead of a standard HashMap
(default: true
)
Optimizations related to blocks
(default: true
)
FluidStates store directly whether they are empty
(default: false
)
Reduces hopper lag using caching, notification systems and BlockEntity sleeping
Requirements:
mixin.util.entity_movement_tracking=true
mixin.util.block_entity_retrieval=true
mixin.util.inventory_change_listening=true
mixin.util.item_stack_tracking=true
(default: false
)
Send updates to hoppers when adding inventory block entities to chunks when world edit is loaded. Fixes the issue of hoppers not noticing when inventories are placed using worldedit without any block updates.
Requirements:
mixin.util.block_entity_retrieval=true
(default: true
)
Moving blocks and retracting pistons avoid calculating their VoxelShapes by reusing previously created VoxelShapes.
(default: true
)
Redstone wire power calculations avoid duplicate block accesses
(default: true
)
BlockNeighborGroups used in fluid code cache their hashcode
(default: true
)
Various world chunk optimizations
(default: true
)
Allow grouping entity classes for faster entity access, e.g. boats and shulkers
Requirements:
mixin.util.accessors=true
(default: true
)
Remove debug checks in block access code
(default: true
)
Skip bounds validation when accessing blocks
(default: true
)
Replaces the vanilla hash palette with an optimized variant
(default: true
)
Optimizes chunk palette compaction when serializing chunks
(default: true
)
Replaces streams with imperative approach.
(default: true
)
Replaces streams with imperative approach, separated to fix incompatibility between Canary and ServerCore.
(default: true
)
Various collection optimizations
(default: true
)
Uses fastutil hashmaps for entity attributes
(default: true
)
Uses fastutil hashmaps for BlockEntity tickers
(default: true
)
Uses fastutil hashmaps for AI memories and sensors
(default: true
)
Uses fastutil hashmaps for type specific entity lists
(default: true
)
The expensive check to see if a TypeFilterableList can be filtered by a specific class is only made when a new list for that type needs to be created
(default: true
)
Copy entity hashmap instead of duplicating the list using iteration
(default: true
)
Use ReferenceArraySet instead of HashSet to store the fluids the entity is currently submerged in.
(default: true
)
Uses fastutil hashmaps for gamerules
(default: true
)
Uses fastutil hashsets for goals in the AI goal selector
(default: true
)
Uses custom hashset/list combination for faster mob spawn checks
(default: true
)
Various entity optimizations
(default: true
)
Various entity collision optimizations
(default: true
)
Skips being pushed by fluids when the nearby chunk sections do not contain this fluid
Requirements:
mixin.util.block_tracking=true
mixin.experimental.entity.block_caching.fluid_pushing=false
(default: true
)
Uses faster block access for block collisions and delayed entity access with grouped boat/shulker for entity collisions when available
Requirements:
mixin.util.block_tracking=true
mixin.util.chunk_access=true
(default: true
)
Entity movement uses optimized block access and optimized and delayed entity access
Requirements:
mixin.util.chunk_access=true
(default: true
)
In chunks with many mobs in ladders a separate list of pushable entities for cramming tests is used
Requirements:
mixin.chunk.entity_class_groups=true
(default: true
)
Various entity data tracker optimizations
(default: true
)
Remove unnecessary locking when accessing the data tracker
(default: true
)
Data trackers use a custom optimized entry map
(default: true
)
Skip repeatedly writing to the data tracker that an entity is not flying
(default: true
)
Skip hand swinging speed and animation calculations when the hand of an entity is not swinging
(default: true
)
Skip checking whether an entity is inside powder snow for movement speed slowdown when it is not freezing
(default: true
)
Access entities faster when accessing a relatively small number of entity sections
(default: true
)
Hopper minecarts search for item entities faster by combining multiple item entity searches. Also eliminates duplicated item entity pickup attempts
(default: true
)
Block updates skip notifying mobs that won't react to the block update anyways
(default: true
)
Accesses entities of the correct type directly instead of accessing all nearby entities and filtering them afterwards
(default: true
)
Skips repeated checks whether the equipment of an entity changed. Instead equipment updates are detected
(default: false
)
Various experimental optimizations
(default: true
)
Only check positions with expiring tickets during ticket expiration. Can cause reordering of chunk unloading when unloading more than approximately two billion chunks at once.
(default: true
)
Experimental entity optimizations
(default: true
)
Use block listening system to allow skipping stuff in entity code
Requirements:
mixin.util.block_tracking.block_listening=true
(default: true
)
Use the block listening system to skip supporting block search (used for honey block pushing, velocity modifiers like soulsand, etc)
Requirements:
mixin.util.block_tracking.block_listening=true
(default: true
)
Use the block listening system to skip block touching (like cactus touching).
Requirements:
mixin.util.block_tracking.block_listening=true
(default: true
)
Skip searching for fire or lava in the burn time countdown logic when they are not on fire and the result does not make a difference. Also use the block listening system to cache whether the entity is touching fire or lava.
(default: true
)
Use the block listening system to cache entity fluid interaction when not touching fluid currents.
Requirements:
mixin.util.block_tracking.block_listening=true
(default: true
)
Use the block listening system to cache the entity suffocation check.
Requirements:
mixin.util.block_tracking.block_listening=true
(default: true
)
Optimize item entity merging by categorizing item entities by item type and only attempting to merge with the same type. Categorizing by stack size allows skipping merge attempts of full item entities or two more than half full item entities.
Requirements:
mixin.util.accessors=true
mixin.experimental.util.item_entity_by_type=true
mixin.util.item_stack_tracking=true
(default: true
)
Experimental optimizations to spawning conditions. Reorders the iteration over entities to match the chunks and chunk sections, reducing the number of cache misses.
(default: true
)
Allow retrieving item entities grouped by item type and count from the world.
Requirements:
mixin.util.accessors=true
mixin.util.item_stack_tracking=true
(default: true
)
Various world generation optimizations
(default: false
)
World generator settings cache the sea level. Disabled by default due to startup crash.
(default: true
)
An optimized chunk cache is used for world population features which avoids array indirection and complex logic
(default: true
)
Various math optimizations
(default: true
)
Avoids indirection and inlines several functions
(default: true
)
Avoid indirection and inline several functions in Direction, Axis and Box code
(default: true
)
Reduces the sine table size to reduce memory usage and increase access speed
(default: true
)
Avoid indirection when accessing the profiler
(default: true
)
Various VoxelShape optimizations
(default: true
)
Use a faster collection for the full cube test cache
(default: true
)
VoxelShape collisions use a faster intersection test for cuboid shapes
(default: true
)
VoxelShapes store position arrays for their shape instead of recalculating the positions
(default: true
)
Merging and intersecting VoxelShapes is optimized using faster position list merging
(default: true
)
Specialized VoxelShape implementations are used for cuboid and empty shapes. Collisions with those shapes are optimized using a cuboid specific implementation
(default: true
)
Various utilities for other mixins
(default: true
)
Allow accessing certain fields and functions that are normally inaccessible
(default: true
)
Allows access to existing BlockEntities without creating new ones
(default: true
)
Chunk sections count certain blocks inside them and provide a method to quickly check whether a chunk contains any of these blocks
(default: true
)
Chunk sections can notify registered listeners about certain blocks being placed or broken
(default: true
)
Access chunks of worlds, chunk caches and chunk regions directly.
(default: true
)
System to notify subscribers of certain entity sections about position changes of certain entity types.
Requirements:
mixin.util.entity_section_position=true
(default: true
)
Entity sections store their position
(default: true
)
Certain BlockEntity Inventories emit updates to their listeners when their stack list is changed or the inventory becomes invalid
(default: true
)
BlockEntity Inventories update their listeners when a comparator is placed near them
Requirements:
mixin.util.block_entity_retrieval=true
(default: true
)
ItemStacks notify subscribers about changes to their count.
(default: true
)
World border changes are sent to listeners such as BlockEntities
(default: true
)
Various world related optimizations
(default: true
)
Various BlockEntity ticking optimizations
(default: true
)
Allows BlockEntities to sleep, meaning they are no longer ticked until woken up, e.g. by updates to their inventory or block state
(default: true
)
BlockEntity sleeping for inactive brewing stands
(default: true
)
BlockEntity sleeping for inactive campfires
(default: true
)
BlockEntity sleeping for inactive lit campfires
(default: true
)
BlockEntity sleeping for inactive unlit campfires
(default: true
)
BlockEntity sleeping for inactive furnaces
(default: true
)
BlockEntity sleeping for locked hoppers
(default: true
)
BlockEntity sleeping for closed shulker boxes
(default: false
)
BlockEntity ticking caches whether the BlockEntity can exist in the BlockState at the same location
(default: true
)
Avoids repeatedly testing whether the BlockEntity is inside the world border by caching the test result and listening for world border changes
Requirements:
mixin.util.world_border_listener=true
(default: true
)
Several changes to the chunk manager to speed up chunk access
(default: true
)
Improves the chunk ticket sets by speeding up the removal of chunk tickets
(default: true
)
Various optimizations to chunk ticking
(default: true
)
Access FluidState through already known BlockState instead of accessing the world again.
(default: true
)
The four vanilla heightmaps are updated using a combined block search instead of searching blocks separately.
(default: true
)
Various improvements to explosions, e.g. not accessing blocks along an explosion ray multiple times
(default: true
)
Faster block and fluid access due to inlining and reduced method size
(default: true
)
Reduces indirection by inlining world height access methods
(default: true
)
Removes the 1024 entry biome temperature cache hash map because the cache seems to be slow and rarely hit.
(default: true
)
Use faster tick collections and pack scheduled ticks into integers for easier tick comparisons