# Configuration file

00_modules {
    # Replaces the minecraft profiler with fully custom logic (used in the Shift+F3 pie chart)
    # Also check the profiler config category!
    # FPS impact: Slightly faster profiler
    # [default: true]
    B:ADVANCED_PROFILER=true

    # Improves the performance of the minecraft sky mesh.
    # Also fixes the weird white lines that some OptiFine shaderpacks get with huge render distances.
    # FPS impact: Negligible gain
    # [default: true]
    B:SKY_MESH_OPTIMIZATION=true

    # Dropped and held items are re-rendered every frame, generating a lot of
    # unnecessary CPU load because of the very inefficient way the rendering is done.
    # With this enabled, FalseTweaks will cache pre-rendered versions of items into RenderLists
    # (same things that chunks use) to minimize the amount of work done by the cpu for every single item.
    # FPS impact: Decent improvement with lots of items on ground
    # [default: true]
    B:ITEM_RENDER_LISTS=true

    # Beacons also have an optimization using renderlists. If you spot any issues related to beacons,
    # you can toggle said optimization here.
    # FPS impact: Tiny improvement near beacons
    # [default: true]
    B:BEACON_OPTIMIZATION=true

    # Improves the mipmap system of minecraft with 2 things:
    # 1. Every tiny texture is upscaled to at least 16x16 to allow for 4 mipmap levels, even if a mod has a texture smaller than 16x16.
    # 2. Replaces the mipmap generation with a multithreaded system, which scales with the number of cores in your system.
    # FPS impact: none, but resource pack reload times (and startup time) are cut down by a lot
    # [default: true]
    B:MIPMAP_FIX=true

    # Enable/Disable texture optimizations. This includes:
    # - Multithreaded animated textures
    # - Faster texture atlas packing during startup
    # FPS impact: Reduced stuttering in heavily modded packs
    # [default: true]
    B:TEXTURE_OPTIMIZATIONS=false

    # Enable/Disable item voxelization. This fixes a huge amount of item render issues, but is still
    # an experimental feature.
    # Also includes the 3D rails.
    # [default: true]
    B:VOXELIZER=false

    # Makes translucent geometry of chunks render slightly closer to the camera. (experimental)
    # This reduces Z-Fighting on blocks which have overlapping opaque and translucent geometry,
    # at the cost of far away geometry sometimes rendering on top of opaque geometry. (>100~ blocks)
    # FPS impact: Unknown
    # [default: false]
    B:BLOCK_LAYER_TRANSPARENCY_FIX=false

    # Enables the Triangulator module. This also includes the ambient occlusion and smooth lighting fix,along with the block crack fix.
    # If you want to use those fixes without having triangulated meshes, set the ENABLE_QUAD_TRIANGULATION
    # property to false in the triangulator category.
    # FPS impact: Small performance decrease, but smooth lighting will look way better.
    # [default: true]
    B:TRIANGULATOR=false

    # Enable an optimized, BSP-tree based vertex sorting algorithm for transparent blocks.
    # FPS impact: A little bit less stuttering when moving around with a lot of stained glass-like blocks around
    # [default: true]
    B:BSP_SORTING=true

    # Optimizes the way forge scans the classpath during launch.
    # Not compatible with some badly-written mods.
    # FPS impact: None, but makes startup a bit faster
    # [default: true]
    B:STARTUP_OPTIMIZATIONS=false

    # Transparent tile entities (beacons, for instance) might render behind other tile entities that are
    # actually BEHIND the transparent part. Sorting the tile entities before rendering fixes this bug.
    # FPS impact: Slight decrease
    # [default: false]
    B:TE_TRANSPARENCY_FIX=false

    # Enables the 1.8-style occlusion culling originally developed by CoFHTweaks.
    # Not compatible with ArchaicFix's occlusion tweaks.
    # COMPATIBLE WITH OPTIFINE AND SHADERS
    # FPS impact: Potentially huge gains, much faster chunk rendering
    # [default: true]
    B:OCCLUSION_TWEAKS=false

    # Enables multi-threaded chunk updating. It only works if OCCLUSION_TWEAKS is turned on.
    # Not compatible with quad triangulation (automatically disables it if you turn this on)
    # COMPATIBLE WITH OPTIFINE AND SHADERS
    # FPS impact: Depends on your CPU, but should be pretty good on modern CPUs
    # [default: true]
    B:THREADED_CHUNK_UPDATES=false

    # 3D particles (experimental)
    # FPS impact: Unknown
    # [default: false]
    B:CUBIC_PARTICLES=false
    S:MEMORY_LEAK_FIX=Disable
}


general {
    B:AAAA_DEPRECATED_AAAA=true
    D:BLOCK_CRACK_FIX_EPSILON=5.0E-4
    B:ENABLE_BEACON_OPTIMIZATION=true
    B:ENABLE_ITEM_RENDERLISTS=true
    B:ENABLE_QUAD_TRIANGULATION=true
    B:FIX_BLOCK_CRACK=true
    I:ITEM_RENDERLIST_BUFFER_MAX_SIZE=256
    S:MEMORY_LEAK_FIX=Auto
    I:MEMORY_LEAK_FIX_CACHE_SIZE_TARGET=1024
    B:RENDER_HOOK_COMPAT_MODE=true
    B:TE_TRANSPARENCY_FIX=true
}


item_render_lists {
    # The total amount of renderlists FalseTweaks may allocate for optimized item rendering.
    # When the limit is exceeded, the render list that was used the longest time ago gets released.
    # Bigger buffer sizes use more VRAM, but also get a higher average performance.
    # 256 should be good enough for most modded games, and going above 1024 is not recommended unless
    # you have a lot of VRAM.
    # (Only useful if you have ITEM_RENDERLISTS turned on)
    # FPS impact: zero when tuned right
    # [range: 64 ~ 2147483647, default: 256]
    I:MAX_BUFFER_SIZE=256
}


memory_leak_fix {
    I:CACHE_SIZE_TARGET=1024
}


modules {
    B:ITEM_VOXELIZER=true
    B:STARTUP_OPTIMIZATIONS=true
    B:TEXTURE_OPTIMIZATIONS=false
}


occlusion {
    # Makes sure that the clipping helper is only initialized once per frame.
    # Saves a bunch of opengl data retrieval calls and some matrix math, but might lead of weird/broken
    # culling behaviour, so this is disabled by default.
    # DO NOT REPORT BUGS IF YOU TURNED THIS ON!
    # [default: false]
    B:AGGRESSIVE_CLIPPING_HELPER_OPTIMIZATIONS=false

    # The occlusion caller uses a dynamic allocation for renderlists.
    # You can set this to any value above zero, but setting it too high will eat a bit more VRAM. 4096 is
    # a decent safe point.
    # FPS impact: zero when tuned right
    # [range: 0 ~ 2147483647, default: 4096]
    I:CACHE_SIZE_TARGET=4096

    # Similar to OptiFine's "Dynamic Updates" feature, where chunks load faster when you don't move the player at all.
    # This deadline is in FPS.
    # 0 to disable
    # [range: 0 ~ 1000, default: 60]
    I:DYNAMIC_CHUNK_UPDATES_DEADLINE=60

    # Changes the maximum render distance.
    # NOTE: things might get extremely laggy above 32 without serverside performance mods!
    # 
    # [range: 16 ~ 64, default: 32]
    I:RENDER_DISTANCE=32
}


profiler {
    # Enable this to dump the profiler data to a file when the F3 profiler is closed.
    # [default: false]
    B:DUMP_ON_CLOSE=true
}


threading {
    # Changes the enableThreadedChunkUpdates option to never wait for chunk updates.
    # Improves framerate when blocks are placed or destroyed, at the cost of introducing visual delay.
    # This is analogous to 1.18's 'Chunk Builder' option, false meaning 'Fully Blocking', and true meaning 'Threaded'.
    # [default: false]
    B:DISABLE_BLOCKING_CHUNK_UPDATES=false

    # The maximum amount of queued chunk updates per thread.
    # Set this higher if you have a CPU with powerful cores.
    # [range: 1 ~ 256, default: 32]
    I:UPDATE_QUEUE_SIZE_PER_THREAD=16

    # The number of threads to use for chunk building.
    # The default is 0, which is half of your system threads.
    # If you have a lot of cores increasing this may be beneficial.
    # The value of 0 will set it to half of your total system threads (unaware of P/E cores on modern intel cpus!)
    # [range: 0 ~ 2147483647, default: 0]
    I:CHUNK_UPDATE_THREADS=4
}


translucent_block_layers_fix {
    # The "epsilon" value used when shifting translucent block geometry closer to the camera.
    # Values too low will cause near blocks to suffer from Z-Fighting,
    # values too high will cause translucent geometry to leak through far away blocks.
    # Advanced setting.
    # FPS impact: Unknown
    # [range: 0.0 ~ 0.1, default: 0.001]
    D:TRANSLUCENT_BLOCK_LAYERS_FIX_EPSILON=0.001
}


triangulator {
    # Block corners and edges between chunks might have "cracks" in them. This option fixes it.
    # FPS impact: None
    # [default: true]
    B:FIX_BLOCK_CRACK=true

    # The "epsilon" value for the block crack fix inside chunks. Set this a bit higher if you can
    # still see light leaking between solid blocks in dark areas.
    # Advanced setting.
    # FPS impact: None
    # [range: 0.0 ~ 0.005, default: 5.0E-4]
    D:BLOCK_CRACK_FIX_EPSILON=5.0E-4

    # Try setting this to true if the game crashes with a mixin conflict inside RenderBlocks.
    # FPS impact: Minor decrease
    # [default: false]
    B:RENDER_HOOK_COMPAT_MODE=true

    # Used to toggle the namesake feature of this mod: quad triangulation.
    # If you turn this off, the triangulation will not execute, but you will still have the AO and the
    # smooth lighting fixes.
    # Triangulation fixes an issue with incorrectly-aligned quads causing a minor visual bug, however,
    # on weaker systems, it may noticeably decrease render performance (integrated graphics).
    # By sacrificing a bit of visual quality, you might get back a few extra FPS depending on your system.
    # FPS impact: System-dependent. Intel iGPUs struggle when this is enabled.
    # [default: false]
    B:ENABLE_QUAD_TRIANGULATION=false

    # Block classes that have bugs when rendering with the crack fix can be put here to avoid manipulating them
    # .
    # [fixed length: no, max length: 256]
    # [max string length: 256, default: "["net.minecraft.block.BlockCauldron", "net.minecraft.block.BlockStairs"]"]
    S:BLOCK_CRACK_FIX_BLACKLIST <
        net.minecraft.block.BlockCauldron
        net.minecraft.block.BlockStairs
     >
}


voxelizer {
    # Classes to disable voxelization for. Used to fix issues with certain items.
    # This is an instanceof check, so superclasses are also checked.
    # Needs a game restart to apply changes (cached for performance).
    # [fixed length: no, max length: 256]
    # [max string length: 256, default: "["cofh.lib.render.IFluidOverlayItem"]"]
    S:CLASS_EXCLUSION_LIST <
        cofh.lib.render.IFluidOverlayItem
     >

    # The thickness of the 3D rails. Doesn't require game restart. 1 is vanilla thickness.
    # FPS impact: basically none
    # [range: -1.7976931348623157E308 ~ 1.7976931348623157E308, default: 1.0]
    D:RAIL_THICKNESS=1.0

    # Makes rails 3-dimensional. Doesn't require game restart.
    # FPS impact: basically none
    # [default: true]
    B:RAILS_3D=false

    # You can use this property to fix any incorrectly detected overlays.
    # Syntax: texture_name=layer, where layer is the multiplier.
    # The default behaviour is that if the texture name ends with _overlay, its layer is set to 1,
    # This can be used to override that.
    # For reference: layer 0 is regular rendering, layer 1 is on top layer 0, layer 2 is on top of layer 1, etc.
    # Also supports negatives, but going below -1 is undefined behaviour. (-1 is used for the liquid inside potions by default)
    # [fixed length: no, max length: 256]
    # [max string length: 256, default: "["potion_overlay=-1"]"]
    S:FORCED_LAYERS <
        potion_overlay=-1
     >

    # The merging strategy preset to use for the voxelized mesh optimization.
    # Set this higher if you have a strong cpu and weak gpu, and set this lower if you have a weak cpu and strong gpu.
    # FPS impact: Depends on setup.
    # [default: Best_2, possible values: [Fast_1, Unoptimized_0, Best_2]]
    S:MESH_OPTIMIZATION_STRATEGY_PRESET=Best_2

    # Extremely verbose debug logging. This will spam your log.
    # Only useful on resource pack reloads.
    # [default: false]
    B:VERBOSE_LOG=false

    # If set to true, the mesh compiler will print out detailed information when textures are compiled
    # into meshes.
    # [default: false]
    B:DEBUG_MESH_COMPILATION=false

    # Item textures to disable voxelization for. Used to fix issues with certain items.
    # This is a PREFIX check, so you can also just specify a mod ID, and all items from it will skip getting voxelized.
    # Needs a game restart to apply changes (cached for performance).
    # Syntax: modid:texturename
    # [fixed length: no, max length: 256]
    # [max string length: 256, default: "["avaritia:infinity"]"]
    S:EXCLUSION_LIST <
        avaritia:infinity
     >
}


