# BadOptimizations configuration
# Toggle and configure optimizations here.
# *All* of these require restarts.

# Whether we should cancel updating the lightmap if not needed.
enable_lightmap_caching: true
# How much the in-game time must change in ticks (default tick rate = 1/20th of a second)
# for the lightmap to update.
# Higher values will result in less frequent updates
# to block lighting, but slightly better performance.
# Values below 2 will disable the optimization.
# Has no effect in Minecraft 1.21.11+ as lightmap caching no longer directly uses time.
lightmap_time_change_needed_for_update: 80

# Whether the sky's color should be cached unless you're on a biome border.
# Has no effect in Minecraft 1.21.11+ as the sky color was made data-driven.
enable_sky_color_caching: true
# How much the in-game time must change in ticks for the sky color to
# be recalculated when not between biome borders. Higher values will result in
# the sky updating less frequently, but slightly better performance.
# Values below 2 will all have the same effect.
skycolor_time_change_needed_for_update: 3

# Whether we should avoid calling debug renderers
# if there are no debug entries to render or process.
enable_debug_renderer_disable_if_not_needed: true

#
# Micro optimizations
#

# Whether we should avoid calling the particle manager
# and its calculations if there are no particles.
enable_particle_manager_optimization: true
# Whether we should avoid calling the toast manager if there are no toasts.
enable_toast_optimizations: true
# Whether the result of getSkyAngle should be cached
# for the entire frame during rendering.
enable_sky_angle_caching_in_worldrenderer: true
# Whether entity renderers should be stored directly in EntityType instead of a HashMap.
# If your entity-adding mod crashes with BadOptimizations, try disabling this first.
enable_entity_renderer_caching: true
# Whether block entity renderers should be stored in BlockEntityType instead of a HashMap.
enable_block_entity_renderer_caching: true
# Whether entity flags should be cached instead of calling DataTracker.
# Also removes the unnecessary thread lock in DataTracker.
# Unneeded with Lithium. Has no effect in Minecraft 1.20.5+.
enable_entity_flag_caching: true
# Whether we should avoid calling FOV calculations
# if the FOV effect scale is zero.
enable_remove_redundant_fov_calculations: false
# Don't tick the tutorial if the game is not in demo mode.
enable_remove_tutorial_if_not_demo: true

#
# Other
#

# Whether BadOptimizations <version> should be added onto
# the left text of the F3 menu.
# In 1.21.9+, enabling this puts it into the F3 customizer screen.
show_f3_text: false

# Some config options will be force-disabled if certain mods are present
# due to incompatibilities (e.g. entity rendering caching
# is disabled w/ Twilight Forest / BedrockSkinUtility / SkinShuffle).
# However, if you still want to use the optimizations, you can override it
# by setting this to true. Beware of crashes. And Herobrine.
ignore_mod_incompatibilities: false

# Some mods add hooks that add extra conditions to lightmap/skycolor caching.
# Set this to true to ignore loading them. Enabling may cause issues with
# lighting mods and is not recommended.
ignore_mod_cache_hooks: false

# Whether to log the entire config into console when booting up.
# If you plan on reporting an issue, please keep this on.
log_config: false

# Do not change this
config_version: 6
