_version = 5

[server]
	#
	# Defines the distance the player will receive updates around.
	realTimeUpdateDistanceRadiusInChunks = 256
	#
	# Prefix of the level keys sent to the clients.
	# If the mod is running behind a proxy, each backend should use a unique value.
	# If this value is empty, level key will be based on the server's seed hash.
	levelKeyPrefix = ""
	#
	# Defines the distance allowed to be synchronized around the player. 
	# Should be the same or larger than maxGenerationRequestDistance in most cases.
	maxSyncOnLoadRequestDistance = 4096
	#
	# If true, clients will receive updated LODs when joining or loading new LODs.
	synchronizeOnLoad = true
	#
	# Custom server key used which can be used to always reuse the same LOD data folder,
	# for cases when the server doesn't have a static IP for some reason.
	# If this value is empty, the client itself decides which folder name to use.
	# Requires rejoining the server to apply after changing.
	serverKey = ""
	#
	# Defines the distance allowed to generate around the player.
	maxGenerationRequestDistance = 4096
	#
	# Makes the server send level keys for each world.
	# Disable this if you use alternative ways to send level keys.
	sendLevelKeys = true
	#
	# DO NOT CHANGE UNLESS YOU KNOW WHAT YOU'RE DOING.
	# Autogenerated ID used to prevent multiple independent servers from accidentally
	# writing over each other's LODs when the same serverKey is set on both.
	serverId = 1066521667
	#
	# How many LOD generation requests per second should a client send? 
	# Also limits the number of client requests allowed to stay in the server's queue.
	generationRequestRateLimit = 20
	#
	# How many LOD sync requests per second should a client send? 
	# Also limits the amount of player's requests allowed to stay in the server's queue.
	syncOnLoadRateLimit = 50
	#
	# If true, clients will receive real-time LOD updates for chunks outside the client's render distance.
	enableRealTimeUpdates = true
	#
	# Maximum global speed for uploading LODs to the clients, in KB/s.
	# Value of 0 disables the limit.
	globalBandwidthLimit = 0
	#
	# Maximum per-player speed for uploading LODs to the clients, in KB/s.
	# Value of 0 disables the limit.
	playerBandwidthLimit = 500
	#
	# Enables adaptive transfer speed based on client performance.
	# If true, DH will automatically adjust transfer rate to minimize connection lag.
	# If false, transfer speed will remain fixed.
	enableAdaptiveTransferSpeed = false

	[common.lodBuilding]
		#
		# How should block data be compressed when creating LOD data? 
		# This setting will only affect new or updated LOD data, 
		# any data already generated when this setting is changed will be
		# unaffected until it is modified or re-loaded.
		# 
		# MERGE_SAME_BLOCKS 
		# Every block/biome change is recorded in the database. 
		# This is what DH 2.0 and 2.0.1 all used by default and will store a lot of data. 
		# Expected Compression Ratio: 1.0
		# 
		# VISUALLY_EQUAL 
		# Only visible block/biome changes are recorded in the database. 
		# Hidden blocks (IE ores) are ignored.  
		# Expected Compression Ratio: 0.7
		worldCompression = "VISUALLY_EQUAL"
		#
		# Requires a level restart to apply. 
		# 
		# Setting this to a less strict mode increases DB read/write
		# speed at the cost of potential data loss/corruption if
		# the computer looses power 
		# (unexpected program shutdown should be safe for all options).
		# 
		# FULL 
		# ACID - data will never be lost or corrupted 
		# Slow 
		# At max throughput: ~2k saves per sec, ~70% disk usage 
		# 
		# NORMAL 
		# May not be durable - some data may be lost on power loss, but DB should be safe from corruption 
		# Fast
		# At max throughput: ~14k saves per sec, ~40% disk usage 
		# 
		# OFF 
		# Not consistent - database may be corrupted during power loss 
		# Very Fast
		# At max throughput: ~16k saves per sec, ~6% disk usage
		databaseSyncMode = "NORMAL"
		dataCompression = "Z_STD_BLOCK"
		#
		# Enabling this will drastically speed up chunk processing time
		# if you are CPU limited.
		# Disabling it will drastically speed up chunk processing time
		# if you are disk speed/IO limited.
		# 
		# Normally DH will attempt to skip creating LODs for chunks it's already seen
		# and that haven't changed.
		# 
		# Disabling this option can also fix a rare bug where
		# modified chunks are skipped due to being too similar to
		# their saved hash.
		disableUnchangedChunkCheck = false

	[common.multiThreading]
		#
		# How many threads should be used by Distant Horizons?
		numberOfThreads = 12
		#
		# A value between 1.0 and 0.0 that represents the percentage 
		# of time each thread can run before going idle. 
		# 
		# This can be used to reduce CPU usage if the thread count 
		# is already set to 1 for the given option, or more finely 
		# tune CPU performance.
		threadRunTimeRatio = "1.0"
		#
		# What Java thread priority should DH's primary thread pools run with? 
		# 
		# You probably don't need to change this unless you are also 
		# running C2ME and are seeing thread starvation in either C2ME or DH.
		threadPriority = 5

	[common.logging]
		#
		# If enabled, the mod will log information about the renderer setup, cleanup, and any issues it may encounter. 
		# This can be useful for debugging.
		logRendererEventToFile = "INFO"
		#
		# If enabled, the mod will log information about the world generation process. 
		# This can be useful for debugging.
		logWorldGenEventToFile = "INFO"
		#
		# If enabled, the mod will log information about the renderer OpenGL process. 
		# This can be useful for debugging.
		logRendererGLEventToChat = "ERROR"
		#
		# 
		globalChatMaxLevel = "ERROR"
		#
		# If enabled, the mod will log information about the world generation process. 
		# This can be useful for debugging.
		logWorldGenChunkLoadEventToFile = "INFO"
		#
		# If enabled, the mod will log information about the renderer OpenGL process. 
		# This can be useful for debugging.
		logRendererGLEventToFile = "INFO"
		#
		# If enabled, the mod will log information about network operations. 
		# This can be useful for debugging.
		logNetworkEventToFile = "INFO"
		#
		# If enabled, config changes sent by the server will be logged.
		logConnectionConfigChangesToFile = "WARN"
		#
		# 
		globalFileMaxLevel = "INFO"

		[common.logging.warning]
			#
			# If enabled, a message will be displayed in chat if explicit garbage collection 
			# is disabled. 
			# This is known to cause out-of-memory issues 
			# and is better solved with a concurrent garbage collector.
			showExplicitGcDisabledWarning = false
			#
			# If enabled, a chat message will be displayed when DH has too many chunks 
			# queued for updating.
			showSlowWorldGenSettingWarnings = true
			#
			# If enabled, a chat message will be displayed when DH has too many chunks 
			# queued for updating.
			showUpdateQueueOverloadedChatWarning = false
			#
			# If enabled, a message will be logged if explicit garbage collection 
			# is disabled. 
			# This is known to cause out-of-memory issues 
			# and is better solved with a concurrent garbage collector.
			logExplicitGcDisabledWarning = false
			#
			# If enabled, a chat message will be displayed if Java doesn't have enough 
			# memory allocated to run DH well.
			showLowMemoryWarningOnStartup = true
			#
			# If enabled, a chat message will be displayed when a replay is started 
			# giving some basic information about how DH will function.
			showReplayWarningOnStartup = true
			#
			# If enabled, a chat message will be displayed when a potentially problematic 
			# mod is installed alongside DH.
			showModCompatibilityWarningsOnStartup = false
			#
			# If enabled, a chat message will be displayed if vanilla MC's 
			# render distance is higher than the recommended amount.
			showHighVanillaRenderDistanceWarning = true
			#
			# If enabled, a chat message will be displayed if DH detects 
			# that any pooled objects have been garbage collected.
			showPoolInsufficientMemoryWarning = true
			#
			# If enabled, a message will be logged if the garbage 
			# collector Java is currently using is known 
			# to cause frame stuttering and/or other issues.
			logGarbageCollectorWarning = true
			#
			# If enabled, a chat message will be displayed in chat if the garbage 
			# collector Java is currently using is known 
			# to cause frame stuttering and/or other issues.
			showGarbageCollectorWarning = false

	[common.worldGenerator]
		#
		# How should distant generator progress be displayed? 
		# 
		# OVERLAY: may be the same as CHAT for some Minecraft versions 
		# CHAT 
		# LOG 
		# DISABLED
		showGenerationProgress = "DISABLED"
		#
		# If the SURFACE_THEN_CHUNKS generator plan is 
		# in use, this percentage can be defined to reduce how far the 
		# second high-quality generation pass will go 
		# as a percentage of your total render distance: 
		# -1.0 = Infinity
		# 0.0 = 0%
		# 0.5 = 50%
		# 1.0 = 100%
		# 2.0 = 200%
		# 
		# Does nothing on a dedicated server.
		surfaceRegenMaxDistancePercent = "-1.0"
		#
		# The max radius in chunks around the central point where world generation is allowed. 
		# If this value is set to 0, generation bounds are disabled and the render distance will be used. 
		# 
		# This should only be set if you have a pre-generated world that has a very limited size. 
		# Setting this on a normal MC world will prevent the world generator from filling 
		# out your render distance.
		generationMaxChunkRadius = 0
		#
		# If the Minecraft server thread is taking too long 
		# Distant Horizons will pause world gen to reduce server stuttering/lag.
		limitIfServerUnhealthy = true
		#
		# How often should the distant generator progress be displayed?
		generationProgressDisplayIntervalInSeconds = 2
		#
		# When logging generation progress also include the rate at which chunks 
		# are being generated. 
		# This can be useful for troubleshooting performance.
		generationProgressIncludeChunksPerSecond = true
		#
		# How detailed should LODs be generated outside the vanilla render distance? 
		# 
		# PRE_EXISTING_ONLY 
		# Only create LOD data for already generated chunks. 
		# 
		# FEATURES 
		# Generate everything except structures. 
		# Note: This may cause world generator bugs or instability when paired with certain world generator mods. 
		# 
		# INTERNAL_SERVER 
		# Ask the local server to generate/load each chunk. 
		# This is the most compatible and will generate structures correctly, 
		# but may cause server/simulation lag. 
		# Note: unlike other modes this option DOES save generated chunks to 
		# Minecraft's region files.
		chunkGeneratorMode = "FEATURES"
		#
		# Defines how LODs will be generated 
		# outside the vanilla render distance. 
		# In multiplayer, this may be overridden by the server. 
		# 
		# SURFACE_THEN_CHUNKS 
		# The rough surface will be generated first 
		# then chunks will be generated to fill in 
		# missing features (ie trees and villages). 
		# 
		# Recommended for modded or vanilla worlds. 
		# 
		# SURFACE_ONLY 
		# Only the rough surface will be generated. 
		# Chunk features like trees and villages 
		# won't be generated. 
		# 
		# Recommended for computers that don't have 
		# enough CPU power or RAM space to handle 
		# the chunk generator. 
		# 
		# CHUNKS_ONLY 
		# Slower than either surface options, 
		# but provides more accurate terrain. 
		# 
		# Recommended for custom worlds 
		# where the surface generator would 
		# generate incorrect terrain. 
		# 
		# DISABLED 
		# No distant terrain will be generated.
		generatorPlan = "SURFACE_THEN_CHUNKS"
		#
		# If true and the player/camera is moving quickly 
		# Distant Horizons will pause world gen to improve loading speed 
		# and reduce CPU load.
		pauseIfMovingQuickly = true
		#
		# For how many seconds should instructions for disabling the distant generator progress be displayed? 
		# Setting this to 0 hides the instructional message so the world gen progress is shown immediately when it starts.
		generationProgressDisableMessageDisplayTimeInSeconds = 20
		#
		# The center Z chunk position that the world gen max radius is centered around.
		generationCenterChunkZ = 0
		#
		# The center X chunk position that the world gen max radius is centered around.
		generationCenterChunkX = 0

[client]
	#
	# Should Distant Horizon's config button appear in Minecraft's options screen next to the fov slider?
	showDhOptionsButtonInMinecraftUi = true

		[client.advanced.autoUpdater]
			#
			# If DH should use the nightly (provided by Gitlab), or stable (provided by Modrinth) build. 
			# If [AUTO] is selected DH will update to new stable releases if the current jar is a stable jar 
			# and will update to new nightly builds if the current jar is a nightly jar (IE the version number ends in '-dev').
			updateBranch = "AUTO"
			#
			# Automatically check for updates on game launch?
			enableAutoUpdater = true
			#
			# Should Distant Horizons silently, automatically download and install new versions? 
			# This setting is force disabled on dedicated servers for stability reasons.
			enableSilentUpdates = false

		[client.advanced.debugging]
			#
			# If enabled this will disable (most) vanilla Minecraft rendering. 
			# 
			# NOTE: Do not report any issues when this mode is on! 
			#    This setting is only for fun and debugging. 
			#    Mod compatibility is not guaranteed.
			lodOnlyMode = false
			#
			# What renderer is active? 
			# 
			# DEFAULT: Default lod renderer 
			# DEBUG_TRIANGLE: Debug testing renderer 
			# DISABLED: Disable rendering
			rendererMode = "DEFAULT"
			#
			# If true overlapping quads will be rendered as bright red for easy identification. 
			# If false the quads will be rendered normally.
			showOverlappingQuadErrors = false
			#
			# If true OpenGL Buffer garbage collection will be logged 
			# this also includes the number of live buffers.
			logBufferGarbageCollection = false
			#
			# Should specialized colors/rendering modes be used? 
			# 
			# OFF: LODs will be drawn with their normal colors. 
			# SHOW_DETAIL: LODs' color will be based on their detail level. 
			# SHOW_BLOCK_MATERIAL: LODs' color will be based on their material. 
			# SHOW_OVERLAPPING_QUADS: LODs will be drawn with total white, but overlapping quads will be drawn with red.
			debugRenderingColors = "OFF"
			#
			# Stops vertex colors from being passed. 
			# Useful for debugging shaders
			enableWhiteWorld = false
			#
			# If enabled the LODs will render as wireframe.
			renderWireframe = false
			#
			# If true several keys can be used to toggle debug states. 
			# F6 - enable/disable LOD rendering 
			# F7 - enable/disable LOD only rendering 
			# F8 - cycle through the different debug rendering modes
			enableDebugKeybindings = false

			[client.advanced.debugging.debugWireframe]
				#
				# Render LOD section status?
				showRenderSectionStatus = false
				#
				# Render queued network sync on load tasks?
				showNetworkSyncOnLoadQueue = false
				#
				# Render full data update/lock status?
				showFullDataUpdateStatus = false
				#
				# Render queued world gen tasks?
				showWorldGenQueue = false
				#
				# Render Quad Tree Rendering status?
				showQuadTreeRenderStatus = false
				#
				# If enabled, various wireframes for debugging internal functions will be drawn. 
				# 
				# NOTE: There WILL be performance hit! 
				#    Additionally, only stuff that's loaded after you enable this 
				#    will render their debug wireframes.
				enableRendering = false

			[client.advanced.debugging.openGl]
				#
				# Defines how OpenGL errors are handled. 
				#  Requires rebooting Minecraft to change. 
				# Will catch OpenGL errors thrown by other mods.
				overrideVanillaGLLogger = true
				#
				# Defines how OpenGL errors are handled. 
				# May incorrectly catch OpenGL errors thrown by other mods. 
				# 
				# IGNORE: Do nothing. 
				# LOG: write an error to the log. 
				# LOG_THROW: write to the log and throw an exception. 
				#            Warning: this should only be enabled when debugging the LOD renderer 
				#            as it may break Minecraft's renderer when an exception is thrown.
				glErrorHandlingMode = "IGNORE"
				#
				# If true each Open GL error will only be logged once. 
				# Enabling this may cause some error logs to be missed. 
				# Does nothing if overrideVanillaGLLogger is set to false. 
				#  
				# Generally this can be kept as 'true' to prevent log spam. 
				# However, Please set this to 'false' if a developer needs your log to debug a GL issue.
				onlyLogGlErrorsOnce = true

			[client.advanced.debugging.exampleConfigScreen]
				shortTest = "69"
				mapTest = "{}"
				byteTest = "8"
				longTest = "42069"
				listTest = ["option 1", "option 2", "option 3"]
				boolTest = false
				doubleTest = "420.69"
				floatTest = "0.42069"
				linkableTest = 420
				intTest = 69420
				stringTest = "Test input box"

			[client.advanced.debugging.f3Screen]
				#
				# Shows info about the render thread tasks.
				showRenderThreadTasks = false
				#
				# Shows how many chunks are queued for processing and the max count that can be queued.
				showQueuedChunkUpdateCount = true
				#
				# Shows the memory use and array counts for each DH object pool.
				showSeparatedObjectPools = false
				#
				# Shows the player's LOD position.
				showPlayerPos = true
				#
				# Shows the combined memory use and array counts for all DH pooled objects.
				showCombinedObjectPools = false
				#
				# Defines what internal detail level the player position will be shown as. 
				# Internal detail level means: 6 = 1x1 block, 7 = 2x2 blocks, etc.
				playerPosSectionDetailLevel = 6
				#
				# Only show levels that DH is actively rendering.
				onlyShowRenderingLevels = true
				#
				# Shows info about each thread pool.
				showThreadPools = true
				#
				# Shows what levels are loaded and world gen/rendering info about those levels.
				showLevelStatus = true

			[client.advanced.debugging.positionFinderDebugging]
				positionFinderEnable = false
				positionFinderMinBlockY = -64
				positionFinderZPos = 0
				positionFinderXPos = 0
				positionFinderMaxBlockY = 125
				positionFinderDetailLevel = 6
				positionFinderMarginPercent = "0.0"

		[client.advanced.graphics]
			#
			# Enabling Anti-Aliasing smooths edges and reduces flickering when moving.
			enableAntiAliasing = true
			#
			# Enable Screen Space Ambient Occlusion
			enableSsao = true
			#
			# If true some vanilla graphics settings will be automatically changed 
			# during DH setup to provide a better experience. 
			#  
			# IE disabling vanilla clouds (which render on top of DH LODs), 
			#    and chunk fading (DH already fades MC chunks)
			overrideVanillaGraphicsSettings = true

			[client.advanced.graphics.culling]
				#
				# Determines how far from the camera Distant Horizons will start rendering. 
				# Measured as a percentage of the vanilla render distance.
				# 
				# -1 = auto, overdraw will change based on the vanilla render distance.
				# 
				# Higher values will prevent LODs from rendering behind vanilla blocks at a higher distance,
				# but may cause holes in the world. 
				# Holes are most likely to appear when flying through unloaded terrain. 
				# 
				# Increasing the vanilla render distance increases the effectiveness of this setting.
				overdrawPrevention = "-1.0"
				#
				# Identical to the other frustum culling option
				# only used when a shader mod is present using the DH API
				# and the shadow pass is being rendered.
				# 
				# Disable this if shadows render incorrectly.
				disableShadowPassFrustumCulling = false
				#
				# A comma separated list of block resource locations that will be replaced by water 
				# if they're visible on the water's surface.
				waterSubSurfaceBlockReplacementCsv = "minecraft:kelp,minecraft:tall_seagrass,minecraft:seagrass"
				#
				# A comma separated list of block resource locations that won't be rendered by DH. 
				# Air is always included in this list. 
				# 
				# Note:
				# If you see gaps, or holes you may have to change
				# worldCompression to [MERGE_SAME_BLOCKS] and re-generate the LODs.
				ignoredRenderBlockCsv = "minecraft:barrier,minecraft:structure_void,minecraft:light,minecraft:tripwire,minecraft:brown_mushroom"
				#
				# A comma separated list of block resource locations that will be removed 
				# when on top of water.
				waterSurfaceBlockReplacementCsv = "minecraft:lily_pad"
				#
				# Defines what blocks should be rendered as LODs. 
				# 
				# NONE: Include all blocks in the LODs 
				# NON_COLLIDING: Only render solid blocks in the LODs (tall grass, torches, etc. will be ignored)
				blocksToIgnore = "NON_COLLIDING"
				#
				# If true LODs outside the player's camera 
				# aren't drawn, increasing GPU performance. 
				# 
				# If false 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.
				disableFrustumCulling = false
				#
				# If false all beacons near the camera won't be drawn to prevent vanilla overdraw. 
				# If true all beacons will be rendered. 
				# 
				# Generally this should be left as true. It's main purpose is for debugging
				# beacon updating/rendering.
				disableBeaconDistanceCulling = true
				#
				# Should the blocks underneath avoided blocks gain the color of the avoided block? 
				# 
				# True: a red flower will tint the grass below it red. 
				# False: skipped blocks will not change color of surface below them.
				tintWithAvoidedBlocks = true
				#
				# If enabled caves won't be rendered. 
				# 
				#  Note: for some world types this can cause 
				#  overhangs or walls for floating objects. 
				#  Tweaking the caveCullingHeight, can resolve some 
				#  of those issues.
				enableCaveCulling = true
				#
				# At what Y value should cave culling start? 
				# Lower this value if you get walls for areas with 0 light.
				caveCullingHeight = 60
				#
				# A comma separated list of block resource locations that shouldn't be rendered 
				# if they are in a 0 sky light underground area. 
				# Air is always included in this list. 
				# 
				# Defaults to an empty list since most cave blocks will be automatically ignored due to being: 
				# transparent, non-solid, or liquids, but new blocks can be added here if needed.
				ignoredRenderCaveBlockCsv = ""
				#
				# If set to true the overdraw prevention radius will get closer
				# to the camera when flying/moving quickly.
				# 
				# This helps reduce issues where Minecraft can't load or
				# generate chunks fast enough to keep up with DH.
				reduceOverdrawWithFastMovement = true

			[client.advanced.graphics.texture]
				#
				# A comma separated list of block resource locations 
				# that DH will render their sides using the bottom texture. 
				# Partial matches/incomplete resource locations will also match. 
				# 
				# Example: "minecraft:grass_block,nylium" 
				# 
				# Changes require a restart.
				blocksDontUseSideTextureCsv = "grass_block,mycelium,nylium,dirt_path,grass"
				#
				# The highest detail level number that can render with block textures. 
				# At higher detail levels each LOD covers multiple blocks, 
				# which can essentially make textures smaller than a pixel and therefore invisible. 
				#  
				# Larger numbers texture more distant LODs 
				# but increase memory usage.
				maxTexturedLodDetailLevel = 2
				#
				# If true nearby and zoomed-in LODs will render with their block's 
				# actual texture instead of a single flat color. 
				#  
				# Only applies to high detail LODs where the texture is actually visible, 
				# distant LODs always use flat colors. 
				# Some shader packs nay not have an affect.
				enableTexturedLods = true
				#
				# A comma separated list of block resource locations 
				# that DH won't render textures on. 
				# Partial matches/incomplete resource locations will also match. 
				# 
				# Example: "minecraft:grass_block,nylium" 
				# 
				# Changes require a restart.
				blocksDontRenderTextureCsv = "minecraft:bamboo"
				#
				# A comma separated list of tag names 
				# that DH will render their sides using the bottom texture. 
				# 
				# Example: "grass_blocks,nylium" 
				# 
				# Changes require a restart.
				blockTagsDontUseSideTextureCsv = "grass_blocks,nylium"
				#
				# A comma separated list of block resource locations 
				# that DH will use rasterization to determine 
				# the face textures.
				# 
				# Can be used to fix issues with mods/blocks where
				# a side uses just part of a modeled block's texture. 
				# 
				# Example: "minecraft:beacon" 
				# 
				# Changes require a restart.
				blocksAlwaysRasterizeTextureCsv = "minecraft:beacon"

			[client.advanced.graphics.noiseTexture]
				#
				# Should a noise texture be applied to LODs? 
				# 
				# This is done to simulate textures and make the LODs appear more detailed.
				enableNoiseTexture = true
				#
				# Defines how far should the noise texture render before it fades away. (in blocks) 
				# Set to 0 to disable noise from fading away
				noiseDropoff = 1024
				#
				# How many steps of noise should be applied to LODs?
				noiseSteps = 4
				#
				# How intense should the noise should be?
				noiseIntensity = "0.05"

			[client.advanced.graphics.experimental]
				#
				# A comma separated list of dimension resource locations where DH won't render. 
				# 
				# Example: "minecraft:the_nether,minecraft:the_end"
				# For Minecraft 1.12.2 and older: 
				# Open the F3 screen and copy the dimension_name:ID shown in yellow. Example: "overworld:0"
				# 
				# Note:
				# Some DH settings will be disabled and/or changed to improve 
				# visuals when DH rendering is disabled.
				ignoredDimensionCsv = ""
				#
				# Requires a restart to change. 
				#  
				# Options: 
				# AUTO - changes based on the most likely API for that MC version 
				# OPEN_GL - The Default for MC 1.21.11 and older (supports Iris shaders) 
				# BLAZE_3D - The Default for MC 26.1.2 and newer (supports Vulkan)
				renderingEngine = "AUTO"
				#
				# This is the earth size ratio when applying the curvature shader effect. 
				# Note: Enabling this feature may cause rendering bugs. 
				# 
				# 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.advanced.graphics.genericRendering]
				#
				# A comma separated separated list of dimension resource locations where DH clouds will render.
				# 
				# Example: "minecraft:overworld,minecraft:the_end"
				# 
				# Changes require a world re-load.
				dimensionEnabledCloudRenderingCsv = "minecraft:overworld"
				#
				# If true LOD clouds will be rendered.
				enableCloudRendering = true
				#
				# If true LOD beacon beams will be rendered wider at extreme distances, 
				# making them easier to see. 
				# If false all LOD beacon beams will only ever be 1 block wide.
				expandDistantBeacons = true
				#
				# Sets the maximum height beacons will render up to. 
				# 
				# Requires a world re-load to take affect.
				beaconRenderHeight = 6000
				#
				# If true LOD beacon beams will be rendered.
				enableBeaconRendering = true
				#
				# If true non terrain objects will be rendered by DH. 
				# i.e. beacon beams and clouds.
				enableGenericRendering = true
				#
				# False = DH will render a single layer of clouds, like vanilla Minecraft. 
				# True = DH will render 3 layers of clouds at different heights.
				enableMultiLayerClouds = true

			[client.advanced.graphics.quality]
				#
				# What is the maximum detail LODs can render at? 
				# 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). 
				# 
				# Fastest: CHUNK
				# Fanciest: BLOCK
				maxHorizontalResolution = "BLOCK"
				#
				# If true LODs will fade away as you get closer to them. 
				# If false LODs will cut off abruptly at a set distance from the camera. 
				# This setting is affected by the vanilla overdraw prevention config.
				ditherDhFade = true
				#
				# If true DH will try to use the camera position when 
				# determining LOD quality drop-off. 
				# If false DH will use the player's position. 
				#  
				# Enabling helps free-cam mods render correctly. 
				# Disabling helps multi-camera mods render correctly (ie Immersive Portals or camera mods).
				useCameraPositionForQualityDropOff = true
				#
				# How bright LOD colors are. 
				# 
				# 0 = black 
				# 1 = normal 
				# 2 = near white
				brightnessMultiplier = "1.0"
				#
				# How many detail levels zooming in can increase LOD quality by. 
				# Higher numbers allow stronger zooms to render crisper terrain, 
				# but will increase memory and GPU usage while zoomed in. 
				#  
				# A vanilla spyglass needs 4 detail levels to reach its full quality.
				maxZoomQualityIncrease = 4
				#
				# How should LODs be shaded? 
				# 
				# AUTO: Uses the same side shading as vanilla Minecraft blocks. 
				# ENABLED: Simulates Minecraft's block shading for LODs. 
				#               Can be used to force LOD shading when using some shaders. 
				# DISABLED: All LOD sides will be rendered with the same brightness.
				lodShading = "AUTO"
				#
				# How saturated LOD colors are. 
				# 
				# 0 = black and white 
				# 1 = normal 
				# 2 = very saturated
				saturationMultiplier = "1.0"
				#
				# This indicates how well LODs will represent 
				# overhangs, caves, floating islands, etc. 
				# Higher options will make the world more accurate, butwill increase memory and GPU usage. 
				# 
				# Lowest Quality: HEIGHT_MAP
				# Highest Quality: PIXEL_ART
				verticalQuality = "MEDIUM"
				#
				# The radius of the mod's render distance. (measured in chunks)
				# 
				# Note: this is a best effort number. 
				# The actual render distance may be above or below this number 
				# depending on your other graphic settings.
				lodChunkRenderDistanceRadius = 256
				#
				# How should the sides and bottom of grass block LODs render? 
				# 
				# AS_GRASS: all sides of dirt LOD's render using the top (green) color. 
				# FADE_TO_DIRT: sides fade from grass to dirt. 
				# AS_DIRT: sides render entirely as dirt.
				grassSideRendering = "FADE_TO_DIRT"
				#
				# This indicates how far apart drops in LOD quality are. 
				# 
				# Higher settings will increase the distance between drops 
				# but will increase memory and GPU usage.
				horizontalQuality = "MEDIUM"
				#
				# How should LOD transparency be handled. 
				# 
				# COMPLETE: LODs will render transparent. 
				# DISABLED: LODs will be opaque.
				transparency = "COMPLETE"
				#
				# This is the same as vanilla Biome Blending settings for Lod area. 
				#     Note: anything above '0' will slow down LOD loading time. 
				# 
				#     '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 = 3
				#
				# How should vanilla Minecraft fade into Distant Horizons LODs? 
				# 
				# NONE: Fastest, there will be a pronounced border between DH and MC rendering. 
				# SINGLE_PASS: Fades after MC's transparent pass, opaque blocks underwater won't be faded. 
				# DOUBLE_PASS: Slowest, fades after both MC's opaque and transparent passes, provides the smoothest transition.
				vanillaFadeMode = "DOUBLE_PASS"
				#
				# If true LOD quality will increase when the camera is zoomed in, 
				# IE when using a spyglass or zoom mod. 
				# 
				# Only LODs visible through the camera view are affected. 
				# 
				# When zoomed in LODs will load to the same detail level 
				# they would have if you were close to them.
				increaseQualityWhenZoomedIn = true

			[client.advanced.graphics.fog]
				#
				# Should Minecraft's fog render? 
				# Note: Other mods may conflict with this setting.
				enableVanillaFog = false
				#
				# What is the maximum fog thickness? 
				# 
				# 0.0: No fog. 
				# 1.0: Fully opaque fog.
				farFogMax = "1.0"
				#
				# Determines if fog is drawn on DH LODs.
				enableDhFog = true
				#
				# At what distance should the far fog start? 
				# 
				# 0.0: Fog starts at the player's position. 
				# 1.0: Fog starts at the closest edge of the vanilla render distance. 
				# 1.414: Fog starts at the corner of the vanilla render distance.
				farFogStart = "0.4"
				#
				# What is the minimum fog thickness? 
				# 
				# 0.0: No fog. 
				# 1.0: Fully opaque fog.
				farFogMin = "0.0"
				#
				# What color should fog use? 
				# 
				# USE_WORLD_FOG_COLOR: Use the world's fog color. 
				# USE_SKY_COLOR: Use the sky's color.
				colorMode = "USE_WORLD_FOG_COLOR"
				#
				# How should the fog thickness should be calculated? 
				# 
				# LINEAR: Linear based on distance (will ignore 'density')
				# EXPONENTIAL: 1/(e^(distance*density)) 
				# EXPONENTIAL_SQUARED: 1/(e^((distance*density)^2)
				farFogFalloff = "EXPONENTIAL_SQUARED"
				#
				# Used in conjunction with the Fog Falloff.
				farFogDensity = "2.5"
				#
				# Where should the far fog end? 
				# 
				# 0.0: Fog ends at player's position.
				# 1.0: Fog ends at the closest edge of the vanilla render distance. 
				# 1.414: Fog ends at the corner of the vanilla render distance.
				farFogEnd = "1.0"

				[client.advanced.graphics.fog.heightFog]
					#
					# Where should the height fog start? 
					# 
					# ABOVE_CAMERA: Height fog starts at the camera and goes towards the sky 
					# BELOW_CAMERA: Height fog starts at the camera and goes towards the void 
					# ABOVE_AND_BELOW_CAMERA: Height fog starts from the camera to goes towards both the sky and void 
					# ABOVE_SET_HEIGHT: Height fog starts from a set height and goes towards the sky 
					# BELOW_SET_HEIGHT: Height fog starts from a set height and goes towards the void 
					# ABOVE_AND_BELOW_SET_HEIGHT: Height fog starts from a set height and goes towards both the sky and void
					heightFogDirection = "BELOW_SET_HEIGHT"
					#
					# What is the minimum fog thickness? 
					# 
					# 0.0: No fog. 
					# 1.0: Fully opaque fog.
					heightFogMin = "0.0"
					#
					# If the height fog is calculated around a set height, what is that height position?
					heightFogBaseHeight = "80.0"
					#
					# What is the maximum fog thickness? 
					# 
					# 0.0: No fog. 
					# 1.0: Fully opaque fog.
					heightFogMax = "1.0"
					#
					# How should the height fog thickness should be calculated? 
					# 
					# LINEAR: Linear based on height (will ignore 'density')
					# EXPONENTIAL: 1/(e^(height*density)) 
					# EXPONENTIAL_SQUARED: 1/(e^((height*density)^2)
					heightFogFalloff = "EXPONENTIAL_SQUARED"
					#
					# What is the height fog's density?
					heightFogDensity = "20.0"
					#
					# How should height effect the fog thickness? 
					# Note: height fog is combined with the other fog settings. 
					# 
					# SPHERICAL: Fog is calculated based on camera distance. 
					# CYLINDRICAL: Ignore height, fog is calculated based on horizontal distance. 
					# 
					# MAX: max(heightFog, farFog) 
					# ADDITION: 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
					heightFogMixMode = "SPHERICAL"
					#
					# Should the start of the height fog be offset? 
					# 
					# 0.0: Fog start with no offset.
					# 1.0: Fog start with offset of the entire world's height. (Includes depth)
					heightFogStart = "0.0"
					#
					# Should the end of the height fog be offset? 
					# 
					# 0.0: Fog end with no offset.
					# 1.0: Fog end with offset of the entire world's height. (Include depth)
					heightFogEnd = "0.6"

		[client.advanced.multiplayer]
			#
			# How should multiplayer save folders should be named? 
			# 
			# NAME_ONLY: Example: "Minecraft Server" 
			# IP_ONLY: Example: "192.168.1.40" 
			# NAME_IP: Example: "Minecraft Server IP 192.168.1.40" 
			# NAME_IP_PORT: Example: "Minecraft Server IP 192.168.1.40:25565"NAME_IP_PORT_MC_VERSION: Example: "Minecraft Server IP 192.168.1.40:25565 GameVersion 1.16.5"
			serverFolderNameMode = "NAME_ONLY"
