_version = 1
# Show the lod button in the options screen next to fov
optionsButton = true

[client]

	[client.graphics]

		[client.graphics.quality]
			# What is the maximum detail fake chunks should be drawn at? 
			# This setting will only affect closer chunks.
			# Higher settings will increase memory and GPU usage. 
			#
			# CHUNK: render 1 LOD for each Chunk. 
			# HALF_CHUNK: render 4 LODs for each Chunk. 
			# FOUR_BLOCKS: render 16 LODs for each Chunk. 
			# TWO_BLOCKS: render 64 LODs for each Chunk. 
			# BLOCK: render 256 LODs for each Chunk (width of one block). 
			#
			# Lowest Quality: CHUNK Highest Quality: BLOCK
			drawResolution = "BLOCK"
			# The radius of the mod's render distance. (measured in chunks) 
			#
			lodChunkRenderDistance = 32
			# This indicates how detailed fake chunks will represent 
			# overhangs, caves, floating islands, ect. 
			# Higher options will make the world more accurate, but will increase memory and GPU usage. 
			#
			# LOW: uses at max 2 columns per position. 
			# MEDIUM: uses at max 4 columns per position. 
			# HIGH: uses at max 8 columns per position. 
			#
			# Lowest Quality: LOW Highest Quality: HIGH
			verticalQuality = "LOW"
			# This indicates how quickly fake chunks decrease in quality the further away they are. 
			# Higher settings will render higher quality fake chunks farther away, 
			# but will increase memory and GPU usage.
			horizontalScale = 12
			# This indicates how quickly fake chunks decrease in quality the further away they are. 
			# Higher settings will render higher quality fake chunks farther away, 
			# but will increase memory and GPU usage.
			horizontalQuality = "MEDIUM"
			# This determines how lod level drop off will be done. 
			#
			# SMOOTH_DROPOFF: 
			#     The lod level is calculated for each point, making the drop off a smooth circle. 
			# PERFORMANCE_FOCUSED: 
			#     One detail level for an entire region. Minimize CPU usage and 
			#     improve terrain refresh delay, especially for high Lod render distance. 
			# AUTO: 
			#     Use SMOOTH_DROPOFF for less then 128 Lod render distance, 
			#     or PERFORMANCE_FOCUSED otherwise. 
			#
			dropoffQuality = "AUTO"
			# This is the same as vanilla Biome Blending settings for Lod area. 
			#     Note that anything other than '0' will greatly effect Lod building time 
			#     and increase triangle count. The cost on chunk generation speed is also 
			#     quite large if set too high.
			#
			#     '0' equals to Vanilla Biome Blending of '1x1' or 'OFF', 
			#     '1' equals to Vanilla Biome Blending of '3x3', 
			#     '2' equals to Vanilla Biome Blending of '5x5'... 
			#
			lodBiomeBlending = 1

		[client.graphics.fogQuality]
			# At what distance should Fog be drawn on the fake chunks? 
			#
			# This setting shouldn't affect performance.
			fogDistance = "FAR"
			# When should fog be drawn? 
			#
			# USE_OPTIFINE_SETTING: Use whatever Fog setting Optifine is using.
			# If Optifine isn't installed this defaults to FOG_ENABLED. 
			# FOG_ENABLED: Never draw fog on the LODs 
			# FOG_DISABLED: Always draw fast fog on the LODs 
			#
			# Disabling fog will improve GPU performance.
			fogDrawMode = "FOG_ENABLED"
			# What color should fog use? 
			#
			# USE_WORLD_FOG_COLOR: Use the world's fog color. 
			# USE_SKY_COLOR: Use the sky's color. 
			#
			# This setting doesn't affect performance.
			fogColorMode = "USE_WORLD_FOG_COLOR"
			# If true disable Minecraft's fog. 
			#
			# Experimental! Mod support is not guarantee.
			disableVanillaFog = false

			[client.graphics.fogQuality.advancedFog]
				# Where should the far fog start? 
				#
				#   '0.0': Fog start at player's position.
				#   '1.0': The fog-start's circle fit just in the lod render distance square.
				# '1.414': The lod render distance square fit just in the fog-start's circle.
				#
				farFogStart = 0.0
				# Where should the far fog end? 
				#
				#   '0.0': Fog end at player's position.
				#   '1.0': The fog-end's circle fit just in the lod render distance square.
				# '1.414': The lod render distance square fit just in the fog-end's circle.
				#
				farFogEnd = 1.0
				# What is the minimum fog thickness? 
				#
				#   '0.0': No fog at all.
				#   '1.0': Fully fog color.
				#
				farFogMin = 0.0
				# What is the maximum fog thickness? 
				#
				#   '0.0': No fog at all.
				#   '1.0': Fully fog color.
				#
				farFogMax = 1.0
				# How the fog thickness should be calculated from distance? 
				#
				# LINEAR: Linear based on distance (will ignore 'density')
				# EXPONENTIAL: 1/(e^(distance*density)) 
				# EXPONENTIAL_SQUARED: 1/(e^((distance*density)^2) 
				#
				farFogType = "EXPONENTIAL_SQUARED"
				# What is the fog density? 
				#
				farFogDensity = 2.5

				[client.graphics.fogQuality.advancedFog.heightFog]
					# How the height should effect the fog thickness combined with the normal function? 
					#
					# BASIC: No special height fog effect. Fog is calculated based on camera distance 
					# IGNORE_HEIGHT: Ignore height completely. Fog is calculated based on horizontal distance 
					# ADDITION: heightFog + farFog 
					# MAX: max(heightFog, farFog) 
					# MULTIPLY: heightFog * farFog 
					# INVERSE_MULTIPLY: 1 - (1-heightFog) * (1-farFog) 
					# LIMITED_ADDITION: farFog + max(farFog, heightFog) 
					# MULTIPLY_ADDITION: farFog + farFog * heightFog 
					# INVERSE_MULTIPLY_ADDITION: farFog + 1 - (1-heightFog) * (1-farFog) 
					# AVERAGE: farFog*0.5 + heightFog*0.5 
					#
					# Note that for 'BASIC' mode and 'IGNORE_HEIGHT' mode, fog settings for height fog has no effect.
					#
					heightFogMixMode = "BASIC"
					# Where should the height fog be located? 
					#
					# ABOVE_CAMERA: Height fog starts from camera to the sky 
					# BELOW_CAMERA: Height fog starts from camera to the void 
					# ABOVE_AND_BELOW_CAMERA: Height fog starts from camera to both the sky and the void 
					# ABOVE_SET_HEIGHT: Height fog starts from a set height to the sky 
					# BELOW_SET_HEIGHT: Height fog starts from a set height to the void 
					# ABOVE_AND_BELOW_SET_HEIGHT: Height fog starts from a set height to both the sky and the void 
					#
					#
					heightFogMode = "ABOVE_AND_BELOW_CAMERA"
					# If the height fog is calculated around a set height, what is that height position? 
					#
					#
					heightFogHeight = 70.0
					# How far the start of height fog should offset? 
					#
					#   '0.0': Fog start with no offset.
					#   '1.0': Fog start with offset of the entire world's height. (Include depth)
					#
					heightFogStart = 0.0
					# How far the end of height fog should offset? 
					#
					#   '0.0': Fog end with no offset.
					#   '1.0': Fog end with offset of the entire world's height. (Include depth)
					#
					heightFogEnd = 1.0
					# What is the minimum fog thickness? 
					#
					#   '0.0': No fog at all.
					#   '1.0': Fully fog color.
					#
					heightFogMin = 0.0
					# What is the maximum fog thickness? 
					#
					#   '0.0': No fog at all.
					#   '1.0': Fully fog color.
					#
					heightFogMax = 1.0
					# How the fog thickness should be calculated from height? 
					#
					# LINEAR: Linear based on height (will ignore 'density')
					# EXPONENTIAL: 1/(e^(height*density)) 
					# EXPONENTIAL_SQUARED: 1/(e^((height*density)^2) 
					#
					heightFogType = "EXPONENTIAL_SQUARED"
					# What is the fog density? 
					#
					heightFogDensity = 2.5

		[client.graphics.advancedGraphics]
			# If false fake chunks behind the player's camera 
			# aren't drawn, increasing GPU performance. 
			#
			# If true all LODs are drawn, even those behind 
			# the player's camera, decreasing GPU performance. 
			#
			# Disable this if you see LODs disappearing at the corners of your vision. 
			#
			disableDirectionalCulling = false
			# How often should LODs be drawn on top of regular chunks? 
			# HALF and ALWAYS will prevent holes in the world, 
			# but may look odd for transparent blocks or in caves. 
			#
			# NEVER: 
			#     LODs won't render on top of vanilla chunks. Use Overdraw offset to change the border offset. 
			# DYNAMIC: 
			#     LODs will render on top of distant vanilla chunks to hide delayed loading. 
			#     Will dynamically decide the border offset based on vanilla render distance. 
			# ALWAYS: 
			#     LODs will render on all vanilla chunks preventing all holes in the world. 
			#
			# This setting shouldn't affect performance. 
			#
			vanillaOverdraw = "DYNAMIC"
			# If on Vanilla Overdraw mode of NEVER, how much should should the border be offset? 
			#
			#  '1': The start of lods will be shifted inwards by 1 chunk, causing 1 chunk of overdraw. 
			# '-1': The start fo lods will be shifted outwards by 1 chunk, causing 1 chunk of gap. 
			#
			# This setting can be used to deal with gaps due to our vanilla rendered chunk 
			#   detection not being perfect. 
			#
			overdrawOffset = 0
			# Will prevent some overdraw issues, but may cause nearby fake chunks to render incorrectly 
			# especially when in/near an ocean. 
			#
			# This setting shouldn't affect performance. 
			#
			useExtendedNearClipPlane = true
			# How bright fake chunk colors are. 
			#
			# 0 = black 
			# 1 = normal 
			# 2 = near white 
			#
			brightnessMultiplier = 1.0
			# How saturated fake chunk colors are. 
			#
			# 0 = black and white 
			# 1 = normal 
			# 2 = very saturated 
			#
			saturationMultiplier = 1.0
			# If enabled caves will be culled 
			#
			# NOTE: This feature is under development and 
			#  it is VERY experimental! Please don't report 
			# any issues related to this feature. 
			#
			# Additional Info: Currently this cull all faces 
			#  with skylight value of 0 in dimensions that 
			#  does not have a ceiling. 
			#
			enableCaveCulling = true
			# At what Y value should cave culling start? 
			#
			caveCullingHeight = 40
			# This is the earth size ratio when applying the curvature shader effect. 
			#
			# NOTE: This feature is just for fun and is VERY experimental! 
			#Please don't report any issues related to this feature. 
			#
			# 0 = flat/disabled 
			# 1 = 1 to 1 (6,371,000 blocks) 
			# 100 = 1 to 100 (63,710 blocks) 
			# 10000 = 1 to 10000 (637.1 blocks) 
			#
			# NOTE: Due to current limitations, the min value is 50 
			# and the max value is 5000. Any values outside this range 
			# will be set to 0(disabled).
			earthCurveRatio = 0

	[client.worldGenerator]
		# Whether to enable Distant chunks generator? 
		#
		# Turning this on allows Distant Horizons to make lods for chunks 
		# that are outside of vanilla view distance. 
		#
		# Note that in server, distant generation is always off. 
		#
		enableDistantGeneration = true
		distanceGenerationMode = "FEATURES"
		# How should block and sky lights be processed for distant generation? 
		#
		# Note that this include already existing chunks since vanilla 
		# does not store sky light values to save file. 
		#
		# FAST: Use height map to fake the light values. 
		# FANCY: Use actaul light engines to generate proper values. 
		#
		# This will effect generation speed, but not the rendering performance.
		lightGenerationMode = "FANCY"
		# In what priority should fake chunks be generated outside the vanilla render distance? 
		#
		# FAR_FIRST 
		# Fake chunks are generated from lowest to highest detail 
		# with a priority for far away regions. 
		# This fills in the world fastest, but you will have large low detail 
		# blocks for a while while the generation happens. 
		#
		# NEAR_FIRST 
		# Fake chunks are generated around the player 
		# in a spiral, similar to vanilla minecraft. 
		# Best used when on a server since we can't generate 
		# fake chunks. 
		#
		# BALANCED 
		# A mix between NEAR_FIRSTandFAR_FIRST. 
		# First prioritise completing nearby highest detail chunks, 
		# then focus on filling in the low detail areas away from the player. 
		#
		# AUTO 
		# Uses BALANCED when on a single player world 
		# and NEAR_FIRST when connected to a server. 
		#
		# This shouldn't affect performance.
		generationPriority = "NEAR_FIRST"
		# When generating fake chunks, what blocks should be ignored? 
		# Ignored blocks don't affect the height of the fake chunk, but might affect the color. 
		# So using BOTH will prevent snow covered blocks from appearing one block too tall, 
		# but will still show the snow's color.
		#
		# NONE: Use all blocks when generating fake chunks 
		# NON_FULL: Only use full blocks when generating fake chunks (ignores slabs, lanterns, torches, tall grass, etc.) 
		# NO_COLLISION: Only use solid blocks when generating fake chunks (ignores tall grass, torches, etc.) 
		# BOTH: Only use full solid blocks when generating fake chunks 
		#
		# This wont't affect performance.
		blocksToAvoid = "BOTH"

	[client.multiplayer]
		# What multiplayer save folders should be named. 
		#
		# AUTO: NAME_IP for LAN connections, NAME_IP_PORT for all others. 
		# NAME_ONLY: Example: "Minecraft Server" 
		# NAME_IP: Example: "Minecraft Server IP 192.168.1.40" 
		# NAME_IP_PORT: Example: "Minecraft Server IP 192.168.1.40:25565" 
		#
		#
		serverFolderNameMode = "AUTO"
		# When matching worlds of the same dimension type the 
		# tested chunks must be at least this percent the same 
		# in order to be considered the same world. 
		#
		# Note: If you use portals to enter a dimension at two 
		# different locations this system may think it is two different worlds. 
		#
		# 1.0 (100%) the chunks must be identical. 
		# 0.5 (50%)  the chunks must be half the same. 
		# 0.0 (0%)   disables multi-dimension support, 
		#            only one world will be used per dimension. 
		#
		#
		multiDimensionRequiredSimilarity = 0.0

	[client.advanced]
		# Due to some demand for playing without vanilla terrains, 
		# we decided to add this mode for fun. 
		#
		# NOTE: Do not report any issues when this mode is on! 
		#   Again, this setting is only for fun, and mod 
		#   compatibility is not guaranteed. 
		#
		#
		lodOnlyMode = false

		[client.advanced.threading]
			# How many threads should be used when generating fake 
			# chunks outside the normal render distance? 
			#
			# If it's less than 1, it will be treated as a percentage 
			# of time single thread can run before going to idle. 
			#
			# If you experience stuttering when generating distant LODs, 
			# decrease  this number. If you want to increase LOD 
			# generation speed, increase this number. 
			#
			# This and the number of buffer builder threads are independent, 
			# so if they add up to more threads than your CPU has cores, 
			# that shouldn't cause an issue. 
			#
			numberOfWorldGenerationThreads = 4.0
			# How many threads are used when building vertex buffers? 
			# (The things sent to your GPU to draw the fake chunks). 
			#
			# If you experience high CPU usage when NOT generating distant 
			# fake chunks, lower this number. A higher number will make fake
			# fake chunks' transition faster when moving around the world. 
			#
			# This and the number of world generator threads are independent, 
			# so if they add up to more threads than your CPU has cores, 
			# that shouldn't cause an issue. 
			#
			# The maximum value is the number of logical processors on your CPU. 
			#
			numberOfBufferBuilderThreads = 2

		[client.advanced.debugging]
			# What renderer is active? 
			#
			# DEFAULT: Default lod renderer 
			# DEBUG: Debug testing renderer 
			# DISABLED: Disable rendering 
			#
			rendererType = "DEFAULT"
			# Should specialized colors/rendering modes be used? 
			#
			# OFF: Fake chunks will be drawn with their normal colors. 
			# SHOW_WIREFRAME: Fake chunks will be drawn as wireframes. 
			# SHOW_DETAIL: Fake chunks color will be based on their detail level. 
			# SHOW_DETAIL_WIREFRAME: Fake chunks color will be based on their detail level, drawn as a wireframe. 
			# SHOW_GENMODE: Fake chunks color will be based on their distant generation mode. 
			# SHOW_GENMODE_WIREFRAME: Fake chunks color will be based on their distant generation mode, drawn as a wireframe. 
			# SHOW_OVERLAPPING_QUADS: Fake chunks will be drawn with total white, but overlapping quads will be drawn with red. 
			# SHOW_OVERLAPPING_QUADS_WIREFRAME: Fake chunks will be drawn with total white, 
			# but overlapping quads will be drawn with red, drawn as a wireframe. 
			#
			debugMode = "OFF"
			# If true the F8 key can be used to cycle through the different debug modes. 
			# and the F6 key can be used to enable and disable LOD rendering.
			enableDebugKeybindings = false

			[client.advanced.debugging.debugSwitch]
				# If enabled, the mod will log information about the world generation process. 
				# This can be useful for debugging. 
				#
				logWorldGenEvent = "LOG_WARNING_TO_CHAT_AND_INFO_TO_FILE"
				# If enabled, the mod will log performance about the world generation process. 
				# This can be useful for debugging. 
				#
				logWorldGenPerformance = "LOG_WARNING_TO_CHAT_AND_FILE"
				# If enabled, the mod will log information about the world generation process. 
				# This can be useful for debugging. 
				#
				logWorldGenLoadEvent = "LOG_WARNING_TO_CHAT_AND_FILE"
				# If enabled, the mod will log information about the LOD generation process. 
				# This can be useful for debugging. 
				#
				logLodBuilderEvent = "LOG_WARNING_TO_CHAT_AND_INFO_TO_FILE"
				# If enabled, the mod will log information about the renderer buffer process. 
				# This can be useful for debugging. 
				#
				logRendererBufferEvent = "LOG_WARNING_TO_CHAT_AND_INFO_TO_FILE"
				# If enabled, the mod will log information about the renderer OpenGL process. 
				# This can be useful for debugging. 
				#
				logRendererGLEvent = "LOG_WARNING_TO_CHAT_AND_INFO_TO_FILE"
				# If enabled, the mod will log information about file read/write operations. 
				# This can be useful for debugging. 
				#
				logFileReadWriteEvent = "LOG_WARNING_TO_CHAT_AND_INFO_TO_FILE"
				# If enabled, the mod will log information about file sub-dimension operations. 
				# This can be useful for debugging. 
				#
				logFileSubDimEvent = "LOG_WARNING_TO_CHAT_AND_INFO_TO_FILE"
				# If enabled, the mod will log information about network operations. 
				# This can be useful for debugging. 
				#
				logNetworkEvent = "LOG_WARNING_TO_CHAT_AND_INFO_TO_FILE"

		[client.advanced.buffers]
			# What method should be used to upload geometry to the GPU? 
			#
			# AUTO: Picks the best option based on the GPU you have. 
			# BUFFER_STORAGE: Default for NVIDIA if OpenGL 4.5 is supported. 
			#                 Fast rendering, no stuttering. 
			# SUB_DATA: Backup option for NVIDIA. 
			#           Fast rendering but may stutter when uploading. 
			# BUFFER_MAPPING: Slow rendering but won't stutter when uploading. Possibly the best option for integrated GPUs. 
			#                Default option for AMD/Intel. 
			#                May end up storing buffers in System memory. 
			#                Fast rendering if in GPU memory, slow if in system memory, 
			#                but won't stutter when uploading.  
			# DATA: Fast rendering but will stutter when uploading. 
			#       Backup option for AMD/Intel. 
			#       Fast rendering but may stutter when uploading. 
			#
			# If you don't see any difference when changing these settings, or the world looks corrupted: 
			# Restart the game to clear the old buffers. 
			#
			gpuUploadMethod = "AUTO"
			# How long should a buffer wait per Megabyte of data uploaded?
			# Helpful resource for frame times: https://fpstoms.com 
			#
			# Longer times may reduce stuttering but will make fake chunks 
			# transition and load slower. Change this to [0] for no timeout.
			#
			# NOTE:
			# Before changing this config, try changing "GPU Upload methods"
			#  and determined the best method for your hardware first. 
			#
			gpuUploadPerMegabyteInMilliseconds = 0
			# How frequently should vertex buffers (geometry) be rebuilt and sent to the GPU? 
			# Higher settings may cause stuttering, but will prevent holes in the world 
			#
			rebuildTimes = "NORMAL"

