From 4b0caaac71128b69ca4ed23ea0759f9e6e1eddab Mon Sep 17 00:00:00 2001 From: Jika Date: Sun, 21 Sep 2025 21:10:11 +0200 Subject: [PATCH] Distant horizon headlights and qol/perf --- config/DistantHorizons.toml | 790 +++++++++++++++++ config/smoothchunk.json | 10 + kubejs/server_scripts/headlight/recipes.js | 24 + kubejs/server_scripts/headlight/tags.js | 14 + kubejs/server_scripts/main_server_script.js | 2 + pakku-lock.json | 935 +++++++++++++++++++- pakku.json | 7 +- 7 files changed, 1779 insertions(+), 3 deletions(-) create mode 100644 config/DistantHorizons.toml create mode 100644 config/smoothchunk.json create mode 100644 kubejs/server_scripts/headlight/recipes.js create mode 100644 kubejs/server_scripts/headlight/tags.js diff --git a/config/DistantHorizons.toml b/config/DistantHorizons.toml new file mode 100644 index 000000000..e3ce85159 --- /dev/null +++ b/config/DistantHorizons.toml @@ -0,0 +1,790 @@ +_version = 3 + +[server] + # + # Defines the Z-coordinate of the central point for generation boundaries, in blocks. + generationBoundsZ = 0 + # + # 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 + # + # Defines the distance allowed to generate around the player. + maxGenerationRequestDistance = 4096 + # + # Defines the X-coordinate of the central point for generation boundaries, in blocks. + generationBoundsX = 0 + # + # Makes the server send level keys for each world. + # Disable this if you use alternative ways to send level keys. + sendLevelKeys = true + # + # 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 + # + # Defines the radius around the central point within which generation is allowed, in blocks. + # If this value is set to 0, generation bounds are disabled. + generationBoundsRadius = 0 + # + # Maximum speed for uploading LODs to the clients, in KB/s. + # Value of 0 disables the limit. + maxDataTransferSpeed = 500 + # + # If true, clients will receive real-time LOD updates for chunks outside the client's render distance. + enableRealTimeUpdates = true + + [server.experimental] + # + # When enabled on the client, this allows loading lower detail levels as needed to speed up terrain generation. + # This must also be enabled on the server; otherwise, it will have no effect. + # For better performance when switching LOD detail levels, enabling [upsampleLowerDetailLodsToFillHoles] is recommended. + enableNSizedGeneration = false + +[common] + + [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" + # + # When DH pulls in pre-existing chunks it will attempt to + # run any missing world generation steps; for example: + # if a chunk has the status SURFACE, DH will skip BIOMES + # and SURFACE, but will run FEATURES. + # + # However if for some reason the chunks are malformed + # or there's some other issue that causes the status + # to be incorrect that can either cause world gen + # lock-ups and/or crashes. + # If either of those happen try setting this to True. + assumePreExistingChunksAreFinished = false + # + # If true LOD generation for pre-existing chunks will attempt to pull the lighting data + # saved in Minecraft's Region files. + # If false DH will pull in chunks without lighting and re-light them. + # + # Setting this to true will result in faster LOD generation + # for already generated worlds, but is broken by most lighting mods. + # + # Set this to false if LODs are black. + pullLightingForPregeneratedChunks = false + # + # What algorithm should be used to compress new 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 needs to be re-written to the database. + # + # UNCOMPRESSED + # Should only be used for testing, is worse in every way vs [LZ4]. + # Expected Compression Ratio: 1.0 + # Estimated average DTO read speed: 1.64 milliseconds + # Estimated average DTO write speed: 12.44 milliseconds + # + # LZ4 + # A good option if you're CPU limited and have plenty of hard drive space. + # Expected Compression Ratio: 0.36 + # Estimated average DTO read speed: 1.85 ms + # Estimated average DTO write speed: 9.46 ms + # + # LZMA2 + # Slow but very good compression. + # Expected Compression Ratio: 0.14 + # Estimated average DTO read speed: 11.89 ms + # Estimated average DTO write speed: 192.01 ms + dataCompression = "LZMA2" + # + # Enabling this will drastically increase chunk processing time + # and you may need to increase your CPU load to handle it. + # + # Normally DH will attempt to skip creating LODs for chunks it's already seen + # and that haven't changed. + # + # However sometimes that logic incorrectly prevents LODs from being updated. + # Disabling this check may fix issues where LODs aren't updated after + # blocks have been changed. + disableUnchangedChunkCheck = false + # + # True: Recalculate chunk height maps before chunks can be used by DH. + # This can fix problems with worlds created by World Painter or + # other external tools where the heightmap format may be incorrect. + # False: Assume any height maps handled by Minecraft are correct. + # + # Fastest: False + # Most Compatible: True + recalculateChunkHeightmaps = false + + [common.lodBuilding.experimental] + # + # When active DH will attempt to fill missing LOD data + # with any data that is present in the tree, preventing holes when moving + # when a N-sized generator (or server) is active. + # + # This is only used when N-sized world generation is available + # and/or when on a server where [generateOnlyInHighestDetail] is false. + # + # Experimental: + # Enabling this option will increase CPU and harddrive use + # and may cause rendering bugs. + upsampleLowerDetailLodsToFillHoles = false + + [common.multiThreading] + # + # How many threads should be used by Distant Horizons? + numberOfThreads = 8 + # + # 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" + + [common.logging] + # + # If enabled, the mod will log information about the renderer OpenGL process. + # This can be useful for debugging. + logRendererGLEvent = "LOG_ERROR_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_ERROR_TO_CHAT_AND_INFO_TO_FILE" + # + # If enabled, the mod will log information about network operations. + # This can be useful for debugging. + logNetworkEvent = "LOG_ERROR_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_ERROR_TO_CHAT_AND_INFO_TO_FILE" + # + # If enabled, the mod will log information about the world generation process. + # This can be useful for debugging. + logWorldGenEvent = "LOG_ERROR_TO_CHAT_AND_INFO_TO_FILE" + # + # If enabled, the mod will log information about the world generation process. + # This can be useful for debugging. + logWorldGenLoadEvent = "LOG_ERROR_TO_CHAT_AND_INFO_TO_FILE" + + [common.logging.warning] + # + # If enabled, a chat message will be displayed when DH has too many chunks + # queued for updating. + showUpdateQueueOverloadedChatWarning = 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 = true + # + # 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 + + [common.worldGenerator] + # + # How detailed should LODs be generated outside the vanilla render distance? + # + # PRE_EXISTING_ONLY + # Only create LOD data for already generated chunks. + # + # + # SURFACE + # Generate the world surface, + # this does NOT include trees, + # or structures. + # + # FEATURES + # Generate everything except structures. + # WARNING: 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. + distantGeneratorMode = "PRE_EXISTING_ONLY" + # + # How should distant generator progress be displayed? + # + # OVERLAY: may be the same as CHAT for some Minecraft versions + # CHAT + # LOG + # DISABLED + showGenerationProgress = "OVERLAY" + # + # How often should the distant generator progress be displayed? + generationProgressDisplayIntervalInSeconds = 2 + # + # 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 + # + # Should Distant Horizons slowly generate LODs + # outside the vanilla render distance? + # Depending on the generator mode, this will import existing chunks + # and/or generating missing chunks. + enableDistantGeneration = false + +[client] + # + # Should Distant Horizon's config button appear in Minecraft's options screen next to the fov slider? + showDhOptionsButtonInMinecraftUi = true + + [client.advanced] + + [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 = false + # + # 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 + # + # Stops vertex colors from being passed. + # Useful for debugging shaders + enableWhiteWorld = false + # + # What renderer is active? + # + # DEFAULT: Default lod renderer + # DEBUG: Debug testing renderer + # DISABLED: Disable rendering + rendererMode = "DEFAULT" + # + # If enabled the LODs will render as wireframe. + renderWireframe = false + # + # 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 + # + # If true overlapping quads will be rendered as bright red for easy identification. + # If false the quads will be rendered normally. + showOverlappingQuadErrors = 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. + debugRendering = "OFF" + # + # If true OpenGL Buffer garbage collection will be logged + # this also includes the number of live buffers. + logBufferGarbageCollection = 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 + # + # A white box will be drawn when an LOD starts rendering + # and a purple box when an LOD stops rendering. + # + # This can be used to debug Quad Tree holes. + showRenderSectionToggling = 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.f3Screen] + # + # Shows how many chunks are queud 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 info about each thread pool. + 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 + # + # 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.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" + # + # Massively reduces FPS. + # Should only be used if mysterious EXCEPTION_ACCESS_VIOLATION crashes are happening in DH's rendering code for troubleshooting. + validateBufferIdsBeforeRendering = false + # + # 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.graphics] + + [client.advanced.graphics.culling] + # + # 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 + # + # Determines how far from the camera Distant Horizons will start rendering. + # Measured as a percentage of the vanilla render distance. + # + # 0 = 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 = "0.0" + # + # 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 + # + # 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 + # + # 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. + # Requires a restart to change. + ignoredRenderCaveBlockCsv = "minecraft:glow_lichen,minecraft:rail,minecraft:water,minecraft:lava,minecraft:bubble_column,minecraft:cave_vines_plant,minecraft:vine,minecraft:cave_vines,minecraft:short_grass,minecraft:tall_grass,minecraft:small_dripleaf,minecraft:big_dripleaf,minecraft:big_dripleaf_stem,minecraft:sculk_vein" + # + # A comma separated list of block resource locations that won't be rendered by DH. + # Air is always included in this list. + # Requires a restart to change. + ignoredRenderBlockCsv = "minecraft:barrier,minecraft:structure_void,minecraft:light,minecraft:tripwire,minecraft:brown_mushroom" + # + # 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 + + [client.advanced.graphics.ssao] + # + # Determines how many points in space are sampled for the occlusion test. + # Higher numbers will improve quality and reduce banding, but will increase GPU load. + sampleCount = 6 + # + # Determines how dark the Screen Space Ambient Occlusion effect will be. + strength = "0.2" + # + # The radius, measured in pixels, that blurring is calculated for the SSAO. + # Higher numbers will reduce banding at the cost of GPU performance. + blurRadius = 2 + # + # Increasing the value can reduce banding at the cost of reducing the strength of the effect. + bias = "0.02" + # + # Determines how dark the occlusion shadows can be. + # 0 = totally black at the corners + # 1 = no shadow + minLight = "0.25" + # + # Enable Screen Space Ambient Occlusion + enableSsao = true + # + # Determines the radius Screen Space Ambient Occlusion is applied, measured in blocks. + radius = "4.0" + + [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 = "5.0" + + [client.advanced.graphics.experimental] + # + # 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] + # + # If true LOD clouds will be rendered. + enableCloudRendering = true + # + # Sets the maximum height at which beacons will render.This will only affect new beacons coming into LOD render distance.Beacons currently visible in LOD chunks will not be affected. + beaconRenderHeight = 6000 + # + # If true LOD beacon beams will be rendered. + enableBeaconRendering = true + # + # If true non terrain objects will be rendered in DH's terrain. + # This includes beacon beams and clouds. + enableGenericRendering = true + # + # Can be disabled to use much slower but more compatible direct rendering. + # Disabling this can be used to fix some crashes on Mac. + enableInstancedRendering = true + + [client.advanced.graphics.quality] + # + # What is the maximum detail LODs should be drawn 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). + # + # Lowest Quality: CHUNK + # Highest Quality: 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 + # + # How bright LOD colors are. + # + # 0 = black + # 1 = normal + # 2 = near white + brightnessMultiplier = "1.0" + # + # 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: EXTREME + verticalQuality = "MEDIUM" + # + # What blocks shouldn't be rendered as LODs? + # + # NONE: Represent all blocks in the LODs + # NON_COLLIDING: Only represent solid blocks in the LODs (tall grass, torches, etc. won't count for a LOD's height) + blocksToIgnore = "NON_COLLIDING" + # + # The radius of the mod's render distance. (measured in chunks) + lodChunkRenderDistanceRadius = 256 + # + # What the value should vanilla Minecraft's texture LodBias be? + # If set to 0 the mod wont overwrite vanilla's default (which so happens to also be 0) + lodBias = "0.0" + # + # 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" + # + # 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 + # + # This indicates how quickly LODs 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" + # + # How should LOD transparency be handled. + # + # COMPLETE: LODs will render transparent. + # FAKE: LODs will be opaque, but shaded to match the blocks underneath. + # DISABLED: LODs will be opaque. + transparency = "COMPLETE" + # + # 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" + + [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" + diff --git a/config/smoothchunk.json b/config/smoothchunk.json new file mode 100644 index 000000000..d9a2d386a --- /dev/null +++ b/config/smoothchunk.json @@ -0,0 +1,10 @@ +{ + "chunkSaveDelay": { + "desc:": "Delay before a chunk is saved to disk, default: 300 seconds", + "chunkSaveDelay": 300 + }, + "debugLogging": { + "desc:": "Enables debug logging of how many chunks got saved in a tick. default: false", + "debugLogging": false + } +} \ No newline at end of file diff --git a/kubejs/server_scripts/headlight/recipes.js b/kubejs/server_scripts/headlight/recipes.js new file mode 100644 index 000000000..4536816f2 --- /dev/null +++ b/kubejs/server_scripts/headlight/recipes.js @@ -0,0 +1,24 @@ +// priority: 0 +"use strict"; + +// Headlight: replace default recipe and add TFG-specific one +/** + * @param {Internal.RecipesEventJS} event + */ +const registerHeadlightRecipes = (event) => { + // Remove default Headlight recipe (as done in Gravitas²) + event.remove({ id: "headlight:headlight" }) + + // Add shaped recipe aligned with Gravitas², using TFG ID namespace + event.shaped("headlight:headlight", [ + " I ", + "LPL", + "S S" + ], { + I: "minecraft:item_frame", + L: "#forge:leather", + P: "tfc:wool_cloth", + S: "minecraft:string" + }).id("tfg:headlight/headlight") +} + diff --git a/kubejs/server_scripts/headlight/tags.js b/kubejs/server_scripts/headlight/tags.js new file mode 100644 index 000000000..4cb3cbcd7 --- /dev/null +++ b/kubejs/server_scripts/headlight/tags.js @@ -0,0 +1,14 @@ +// priority: 0 +"use strict"; + +// Headlight integration: define which items count as lights +// Adds TFC torches to Headlight's lights tag so they emit handheld light +/** + * @param {Internal.TagsItemEventJS} event + */ +const registerHeadlightItemTags = (event) => { + event.add("headlight:lights", [ + "tfc:torch" + ]) +} + diff --git a/kubejs/server_scripts/main_server_script.js b/kubejs/server_scripts/main_server_script.js index b6fd12238..a43d62c32 100644 --- a/kubejs/server_scripts/main_server_script.js +++ b/kubejs/server_scripts/main_server_script.js @@ -41,6 +41,7 @@ ServerEvents.tags('item', event => { registerModernMarkingsItemTags(event) registerMoreRedItemTags(event) registerHotOrNotItemTags(event) + registerHeadlightItemTags(event) registerPrimitiveCreaturesItemTags(event) registerRailWaysItemTags(event) registerRnrItemTags(event) @@ -241,6 +242,7 @@ ServerEvents.recipes(event => { registerGreateRecipes(event) registerGTCEURecipes(event); registerHandGliderRecipes(event) + registerHeadlightRecipes(event) registerHotOrNotRecipes(event) registerImmersiveAircraftRecipes(event) registerMacawsForTFCRecipes(event) diff --git a/pakku-lock.json b/pakku-lock.json index 9f68d26c9..1782e0a5c 100644 --- a/pakku-lock.json +++ b/pakku-lock.json @@ -3102,6 +3102,67 @@ } ] }, + { + "pakku_id": "BU3ok6GAelScm3WD", + "type": "MOD", + "side": "BOTH", + "slug": { + "curseforge": "clumps", + "modrinth": "clumps" + }, + "name": { + "curseforge": "Clumps", + "modrinth": "Clumps" + }, + "id": { + "curseforge": "256717", + "modrinth": "Wnxd13zP" + }, + "files": [ + { + "type": "curseforge", + "file_name": "Clumps-forge-1.20.1-12.0.0.4.jar", + "mc_versions": [ + "1.20.1" + ], + "loaders": [ + "forge" + ], + "release_type": "release", + "url": "https://edge.forgecdn.net/files/5278/538/Clumps-forge-1.20.1-12.0.0.4.jar", + "id": "5278538", + "parent_id": "256717", + "hashes": { + "sha1": "97cc669f68dbe812cb77cc3631339334fc28b877", + "md5": "c9efc71827df6ab51e8dd0e40c3d4975" + }, + "required_dependencies": [], + "size": 20299, + "date_published": "2024-04-21T05:04:02.807Z" + }, + { + "type": "modrinth", + "file_name": "Clumps-forge-1.20.1-12.0.0.4.jar", + "mc_versions": [ + "1.20.1" + ], + "loaders": [ + "forge" + ], + "release_type": "release", + "url": "https://cdn.modrinth.com/data/Wnxd13zP/versions/nAHGB5ls/Clumps-forge-1.20.1-12.0.0.4.jar", + "id": "nAHGB5ls", + "parent_id": "Wnxd13zP", + "hashes": { + "sha512": "ffd8ff2438e9f9d260d3926ccdd0cccc4772c6f99f29715690aed4f6e97a76035f3aeaa78168e2a458bc4cccf521e97ebdb6e0b61c819facb04af9ebb3638383", + "sha1": "8809c7aa6c71389e9c59abfe5def52c1cb8d4f1c" + }, + "required_dependencies": [], + "size": 20300, + "date_published": "2024-04-21T05:04:09.708311Z" + } + ] + }, { "pakku_id": "fYzrRo2M24y3MX3e", "type": "MOD", @@ -4847,6 +4908,43 @@ } ] }, + { + "pakku_id": "bhDvfgaQYfIpHmhg", + "type": "MOD", + "slug": { + "curseforge": "cupboard" + }, + "name": { + "curseforge": "Cupboard" + }, + "id": { + "curseforge": "326652" + }, + "files": [ + { + "type": "curseforge", + "file_name": "cupboard-1.20.1-2.7.jar", + "mc_versions": [ + "1.20.1" + ], + "loaders": [ + "neoforge", + "forge" + ], + "release_type": "release", + "url": "https://edge.forgecdn.net/files/5470/32/cupboard-1.20.1-2.7.jar", + "id": "5470032", + "parent_id": "326652", + "hashes": { + "sha1": "204bc8aa83e8a685f64311b72d55505ab2eca867", + "md5": "3620912474f47bf58d1fe5bfe133763a" + }, + "required_dependencies": [], + "size": 25983, + "date_published": "2024-06-24T20:50:03.140Z" + } + ] + }, { "pakku_id": "0DMPJ1AWW6qfYubI", "type": "MOD", @@ -5278,6 +5376,69 @@ } ] }, + { + "pakku_id": "UJ2oKRKYWwRJwKcM", + "type": "MOD", + "side": "BOTH", + "slug": { + "modrinth": "distanthorizons", + "curseforge": "distant-horizons" + }, + "name": { + "modrinth": "Distant Horizons", + "curseforge": "Distant Horizons: A Level of Detail mod" + }, + "id": { + "modrinth": "uCdwusMi", + "curseforge": "508933" + }, + "files": [ + { + "type": "modrinth", + "file_name": "DistantHorizons-2.3.4-b-1.20.1-fabric-forge.jar", + "mc_versions": [ + "1.20.1" + ], + "loaders": [ + "fabric", + "forge" + ], + "release_type": "beta", + "url": "https://cdn.modrinth.com/data/uCdwusMi/versions/MhxUKxWI/DistantHorizons-2.3.4-b-1.20.1-fabric-forge.jar", + "id": "MhxUKxWI", + "parent_id": "uCdwusMi", + "hashes": { + "sha512": "85bb5245abb723cee7c10ae471e811266a66e5f78bd4a09a35bf45e64d463d244989c6e4d301c2b97b896e7513d75fc8000460148554a245f6e630bdf9a68c45", + "sha1": "fcbb4a39846af6d5cd41bc98405031f2010eef90" + }, + "required_dependencies": [], + "size": 17926585, + "date_published": "2025-07-20T13:27:54.291517Z" + }, + { + "type": "curseforge", + "file_name": "DistantHorizons-2.3.4-b-1.20.1-fabric-forge.jar", + "mc_versions": [ + "1.20.1" + ], + "loaders": [ + "fabric", + "forge" + ], + "release_type": "beta", + "url": "https://edge.forgecdn.net/files/6791/186/DistantHorizons-2.3.4-b-1.20.1-fabric-forge.jar", + "id": "6791186", + "parent_id": "508933", + "hashes": { + "sha1": "fcbb4a39846af6d5cd41bc98405031f2010eef90", + "md5": "a1400fe73ebdbd4f2900604435174924" + }, + "required_dependencies": [], + "size": 17926585, + "date_published": "2025-07-20T13:36:46.100Z" + } + ] + }, { "pakku_id": "lv9zy1yqw8z5AIQb", "type": "MOD", @@ -7768,6 +7929,69 @@ } ] }, + { + "pakku_id": "PHnfvnEoXXzwdOb3", + "type": "MOD", + "side": "BOTH", + "slug": { + "curseforge": "headlight", + "modrinth": "headlight" + }, + "name": { + "curseforge": "Headlight", + "modrinth": "Headlight" + }, + "id": { + "curseforge": "1190219", + "modrinth": "94Jn0x9e" + }, + "files": [ + { + "type": "curseforge", + "file_name": "Headlight-1.20.1-1.0.3.jar", + "mc_versions": [ + "1.20.1" + ], + "loaders": [ + "neoforge", + "forge" + ], + "release_type": "release", + "url": "https://edge.forgecdn.net/files/6277/231/Headlight-1.20.1-1.0.3.jar", + "id": "6277231", + "parent_id": "1190219", + "hashes": { + "sha1": "9e844f71c6a4c98a896aefae6ec4481d5c3a4eda", + "md5": "cd3dca93ad5e831ab70d0598e28be369" + }, + "required_dependencies": [], + "size": 63791, + "date_published": "2025-03-07T23:47:50.090Z" + }, + { + "type": "modrinth", + "file_name": "Headlight-1.20.1-1.0.3.jar", + "mc_versions": [ + "1.20.1" + ], + "loaders": [ + "forge", + "neoforge" + ], + "release_type": "release", + "url": "https://cdn.modrinth.com/data/94Jn0x9e/versions/3ywgNbsV/Headlight-1.20.1-1.0.3.jar", + "id": "3ywgNbsV", + "parent_id": "94Jn0x9e", + "hashes": { + "sha512": "647bf76e454144d280f6841d6c6788ceea725b1aec4d1aa8501cd66a619a6138d4826dea74711c603ccfa0be9a38e3ed8e0d86d70404d77a5e049c437e0f2446", + "sha1": "9ab03ca9c77f5dfe3bb96c68f31053bfb64a4c74" + }, + "required_dependencies": [], + "size": 63791, + "date_published": "2025-03-07T23:48:02.673476Z" + } + ] + }, { "pakku_id": "tc7AIGQtKog7l0AS", "type": "MOD", @@ -12086,6 +12310,43 @@ } ] }, + { + "pakku_id": "eHzZHVu5ddrqh12m", + "type": "MOD", + "slug": { + "curseforge": "smooth-chunk-save" + }, + "name": { + "curseforge": "Server Performance - Smooth Chunk Save[Forge/Fabric]" + }, + "id": { + "curseforge": "582327" + }, + "files": [ + { + "type": "curseforge", + "file_name": "smoothchunk-1.20.1-4.1.jar", + "mc_versions": [ + "1.20.1" + ], + "loaders": [ + "neoforge", + "forge" + ], + "release_type": "release", + "url": "https://edge.forgecdn.net/files/6296/598/smoothchunk-1.20.1-4.1.jar", + "id": "6296598", + "parent_id": "582327", + "hashes": { + "sha1": "3e142e4a2e12db1c9a3777879cc021aff49da088", + "md5": "66c9037777d4cafe6d5464f6eff5d8e2" + }, + "required_dependencies": [], + "size": 14249, + "date_published": "2025-03-12T16:39:35.327Z" + } + ] + }, { "pakku_id": "pLkDut7s59n6uQin", "type": "MOD", @@ -13183,7 +13444,7 @@ "64uacGcEw697jVGs" ], "type": "MOD", - "side": "BOTH", + "side": "CLIENT", "slug": { "curseforge": "tfc-caelum", "modrinth": "tfc-caelum" @@ -15354,6 +15615,678 @@ } ] }, + { + "pakku_id": "K2IomIwLAYiJAm1W", + "type": "MOD", + "side": "CLIENT", + "slug": { + "curseforge": "zume", + "modrinth": "zume" + }, + "name": { + "curseforge": "Zume", + "modrinth": "Zume" + }, + "id": { + "curseforge": "927564", + "modrinth": "o6qsdrrQ" + }, + "files": [ + { + "type": "curseforge", + "file_name": "zume-1.1.4.jar", + "mc_versions": [ + "1.20.2", + "1.20.5", + "1.20.2-Snapshot", + "1.20.5-Snapshot", + "1.20.3-Snapshot", + "1.20.3", + "1.20.1", + "1.20", + "1.20.6", + "1.20.4", + "1.20-Snapshot" + ], + "loaders": [ + "fabric", + "neoforge", + "forge" + ], + "release_type": "release", + "url": "https://edge.forgecdn.net/files/5861/244/zume-1.1.4.jar", + "id": "5861244", + "parent_id": "927564", + "hashes": { + "sha1": "e38c66e88e30625475fca7fbf89b11d7d5ba1030", + "md5": "facef56d678a6a85c036440e69a2753c" + }, + "required_dependencies": [], + "size": 97235, + "date_published": "2024-10-30T21:45:06.903Z" + }, + { + "type": "modrinth", + "file_name": "zume-1.1.4.jar", + "mc_versions": [ + "b1.7.3", + "1.6.4", + "13w38a", + "13w38b", + "13w38c", + "13w39a", + "13w39b", + "13w41a", + "13w41b", + "13w42a", + "13w42b", + "13w43a", + "1.7", + "1.7.1", + "1.7.2", + "13w47a", + "13w47b", + "13w47c", + "13w47d", + "13w47e", + "13w48a", + "13w48b", + "13w49a", + "1.7.3", + "1.7.4", + "14w02a", + "14w02b", + "14w02c", + "14w03a", + "14w03b", + "14w04a", + "14w04b", + "14w05a", + "14w05b", + "14w06a", + "14w06b", + "14w07a", + "1.7.5", + "14w08a", + "14w10a", + "14w10b", + "14w10c", + "1.7.6-pre1", + "1.7.6-pre2", + "14w11a", + "1.7.6", + "1.7.7", + "1.7.8", + "1.7.9", + "14w11b", + "14w17a", + "14w18a", + "14w18b", + "14w19a", + "1.7.10-pre1", + "1.7.10-pre2", + "1.7.10-pre3", + "1.7.10-pre4", + "1.7.10", + "14w20a", + "14w20b", + "14w21a", + "14w21b", + "14w25a", + "14w25b", + "14w26a", + "14w26b", + "14w26c", + "14w27a", + "14w27b", + "14w28a", + "14w28b", + "14w29a", + "14w29b", + "14w30a", + "14w30b", + "14w30c", + "14w31a", + "14w32a", + "14w32b", + "14w32c", + "14w32d", + "14w33a", + "14w33b", + "14w33c", + "14w34a", + "14w34b", + "14w34c", + "14w34d", + "1.8-pre1", + "1.8-pre2", + "1.8-pre3", + "1.8", + "1.8.1-pre1", + "1.8.1-pre2", + "1.8.1-pre3", + "1.8.1-pre4", + "1.8.1-pre5", + "1.8.1", + "1.8.2-pre1", + "1.8.2-pre2", + "1.8.2-pre3", + "1.8.2-pre4", + "1.8.2-pre5", + "1.8.2-pre6", + "1.8.2-pre7", + "1.8.2", + "1.8.3", + "15w14a", + "1.8.4", + "1.8.5", + "1.8.6", + "1.8.7", + "1.8.8", + "15w31a", + "15w31b", + "15w31c", + "15w32a", + "15w32b", + "15w32c", + "15w33a", + "15w33b", + "15w33c", + "15w34a", + "15w34b", + "15w34c", + "15w34d", + "15w35a", + "15w35b", + "15w35c", + "15w35d", + "15w35e", + "15w36a", + "15w36b", + "15w36c", + "15w36d", + "15w37a", + "15w38a", + "15w38b", + "15w39a", + "15w39b", + "15w39c", + "15w40a", + "15w40b", + "15w41a", + "15w41b", + "15w42a", + "15w43a", + "15w43b", + "15w43c", + "15w44a", + "15w44b", + "15w45a", + "15w46a", + "15w47a", + "15w47b", + "15w47c", + "15w49a", + "1.8.9", + "15w49b", + "15w50a", + "15w51a", + "15w51b", + "16w02a", + "16w03a", + "16w04a", + "16w05a", + "16w05b", + "16w06a", + "16w07a", + "16w07b", + "1.9-pre1", + "1.9-pre2", + "1.9-pre3", + "1.9-pre4", + "1.9", + "1.9.1-pre1", + "1.9.1-pre2", + "1.9.1-pre3", + "1.9.1", + "1.9.2", + "1.RV-Pre1", + "16w14a", + "16w15a", + "16w15b", + "1.9.3-pre1", + "1.9.3-pre2", + "1.9.3-pre3", + "1.9.3", + "1.9.4", + "16w20a", + "16w21a", + "16w21b", + "1.10-pre1", + "1.10-pre2", + "1.10", + "1.10.1", + "1.10.2", + "16w32a", + "16w32b", + "16w33a", + "16w35a", + "16w36a", + "16w38a", + "16w39a", + "16w39b", + "16w39c", + "16w40a", + "16w41a", + "16w42a", + "16w43a", + "16w44a", + "1.11-pre1", + "1.11", + "16w50a", + "1.11.1", + "1.11.2", + "17w06a", + "17w13a", + "17w13b", + "17w14a", + "17w15a", + "17w16a", + "17w16b", + "17w17a", + "17w17b", + "17w18a", + "17w18b", + "1.12-pre1", + "1.12-pre2", + "1.12-pre3", + "1.12-pre4", + "1.12-pre5", + "1.12-pre6", + "1.12-pre7", + "1.12", + "17w31a", + "1.12.1-pre1", + "1.12.1", + "1.12.2-pre1", + "1.12.2-pre2", + "1.12.2", + "1.14.4", + "19w34a", + "19w35a", + "19w36a", + "19w37a", + "19w38a", + "19w38b", + "19w39a", + "19w40a", + "19w41a", + "19w42a", + "19w44a", + "19w45a", + "19w45b", + "19w46a", + "19w46b", + "1.15-pre1", + "1.15-pre2", + "1.15-pre3", + "1.15-pre4", + "1.15-pre5", + "1.15-pre6", + "1.15-pre7", + "1.15", + "1.15.1-pre1", + "1.15.1", + "1.15.2-pre1", + "1.15.2-pre2", + "1.15.2", + "20w06a", + "20w07a", + "20w08a", + "20w09a", + "20w10a", + "20w11a", + "20w12a", + "20w13a", + "20w13b", + "20w14infinite", + "20w14a", + "20w15a", + "20w16a", + "20w17a", + "20w18a", + "20w19a", + "20w20a", + "20w20b", + "20w21a", + "20w22a", + "1.16-pre1", + "1.16-pre2", + "1.16-pre3", + "1.16-pre4", + "1.16-pre5", + "1.16-pre6", + "1.16-pre7", + "1.16-pre8", + "1.16-rc1", + "1.16", + "1.16.1", + "20w27a", + "20w28a", + "20w29a", + "20w30a", + "1.16.2-pre1", + "1.16.2-pre2", + "1.16.2-pre3", + "1.16.2-rc1", + "1.16.2-rc2", + "1.16.2", + "1.16.3-rc1", + "1.16.3", + "1.16.4-pre1", + "1.16.4-pre2", + "1.16.4-rc1", + "1.16.4", + "20w45a", + "20w46a", + "20w48a", + "20w49a", + "20w51a", + "1.16.5-rc1", + "1.16.5", + "21w03a", + "21w05a", + "21w05b", + "21w06a", + "21w07a", + "21w08a", + "21w08b", + "21w10a", + "21w11a", + "21w13a", + "21w14a", + "21w15a", + "21w16a", + "21w17a", + "21w18a", + "21w19a", + "21w20a", + "1.17-pre1", + "1.17-pre2", + "1.17-pre3", + "1.17-pre4", + "1.17-pre5", + "1.17-rc1", + "1.17-rc2", + "1.17", + "1.17.1-pre1", + "1.17.1-pre2", + "1.17.1-pre3", + "1.17.1-rc1", + "1.17.1-rc2", + "1.17.1", + "21w37a", + "21w38a", + "21w39a", + "21w40a", + "21w41a", + "21w42a", + "21w43a", + "21w44a", + "1.18-pre1", + "1.18-pre2", + "1.18-pre3", + "1.18-pre4", + "1.18-pre5", + "1.18-pre6", + "1.18-pre7", + "1.18-pre8", + "1.18-rc1", + "1.18-rc2", + "1.18-rc3", + "1.18-rc4", + "1.18", + "1.18.1-pre1", + "1.18.1-rc1", + "1.18.1-rc2", + "1.18.1-rc3", + "1.18.1", + "22w03a", + "22w05a", + "22w06a", + "22w07a", + "1.18.2-pre1", + "1.18.2-pre2", + "1.18.2-pre3", + "1.18.2-rc1", + "1.18.2", + "22w11a", + "22w12a", + "22w13a", + "22w13oneblockatatime", + "22w14a", + "22w15a", + "22w16a", + "22w16b", + "22w17a", + "22w18a", + "22w19a", + "1.19-pre1", + "1.19-pre2", + "1.19-pre3", + "1.19-pre4", + "1.19-pre5", + "1.19-rc1", + "1.19-rc2", + "1.19", + "22w24a", + "1.19.1-pre1", + "1.19.1-rc1", + "1.19.1-pre2", + "1.19.1-pre3", + "1.19.1-pre4", + "1.19.1-pre5", + "1.19.1-pre6", + "1.19.1-rc2", + "1.19.1-rc3", + "1.19.1", + "1.19.2-rc1", + "1.19.2-rc2", + "1.19.2", + "22w42a", + "22w43a", + "22w44a", + "22w45a", + "22w46a", + "1.19.3-pre1", + "1.19.3-pre2", + "1.19.3-pre3", + "1.19.3-rc1", + "1.19.3-rc2", + "1.19.3-rc3", + "1.19.3", + "23w03a", + "23w04a", + "23w05a", + "23w06a", + "23w07a", + "1.19.4-pre1", + "1.19.4-pre2", + "1.19.4-pre3", + "1.19.4-pre4", + "1.19.4-rc1", + "1.19.4-rc2", + "1.19.4-rc3", + "1.19.4", + "23w12a", + "23w13a", + "23w13a_or_b", + "23w14a", + "23w16a", + "23w17a", + "23w18a", + "1.20-pre1", + "1.20-pre2", + "1.20-pre3", + "1.20-pre4", + "1.20-pre5", + "1.20-pre6", + "1.20-pre7", + "1.20-rc1", + "1.20", + "1.20.1-rc1", + "1.20.1", + "23w31a", + "23w32a", + "23w33a", + "23w35a", + "1.20.2-pre1", + "1.20.2-pre2", + "1.20.2-pre3", + "1.20.2-pre4", + "1.20.2-rc1", + "1.20.2-rc2", + "1.20.2", + "23w40a", + "23w41a", + "23w42a", + "23w43a", + "23w43b", + "23w44a", + "23w45a", + "23w46a", + "1.20.3-pre1", + "1.20.3-pre2", + "1.20.3-pre3", + "1.20.3-pre4", + "1.20.3-rc1", + "1.20.3", + "1.20.4-rc1", + "1.20.4", + "23w51a", + "23w51b", + "24w03a", + "24w03b", + "24w04a", + "24w05a", + "24w05b", + "24w06a", + "24w07a", + "24w09a", + "24w10a", + "24w11a", + "24w12a", + "24w13a", + "24w14potato", + "24w14a", + "1.20.5-pre1", + "1.20.5-pre2", + "1.20.5-pre3", + "1.20.5-pre4", + "1.20.5-rc1", + "1.20.5-rc2", + "1.20.5-rc3", + "1.20.5", + "1.20.6-rc1", + "1.20.6", + "24w18a", + "24w19a", + "24w19b", + "24w20a", + "24w21a", + "24w21b", + "1.21-pre1", + "1.21-pre2", + "1.21-pre3", + "1.21-pre4", + "1.21-rc1", + "1.21", + "1.21.1-rc1", + "1.21.1", + "24w33a", + "24w34a", + "24w35a", + "24w36a", + "24w37a", + "24w38a", + "24w39a", + "24w40a", + "1.21.2-pre1", + "1.21.2-pre2", + "1.21.2-pre3", + "1.21.2-pre4", + "1.21.2-pre5", + "1.21.2-rc1", + "1.21.2-rc2", + "1.21.2", + "1.21.3", + "24w44a", + "24w45a", + "24w46a", + "1.21.4-pre1", + "1.21.4-pre2", + "1.21.4-pre3", + "1.21.4-rc1", + "1.21.4-rc2", + "1.21.4-rc3", + "1.21.4", + "25w02a", + "25w03a", + "25w04a", + "25w05a", + "25w06a", + "25w07a", + "25w08a", + "25w09a", + "25w09b", + "25w10a", + "1.21.5-pre1", + "1.21.5-pre2", + "1.21.5-pre3", + "1.21.5-rc1", + "1.21.5-rc2", + "1.21.5", + "25w14craftmine", + "25w15a", + "25w16a", + "25w17a", + "25w18a", + "25w19a", + "25w20a", + "25w21a", + "1.21.6-pre1", + "1.21.6-pre2", + "1.21.6-pre3", + "1.21.6-pre4", + "1.21.6-rc1", + "1.21.6", + "1.21.7-rc1", + "1.21.7-rc2", + "1.21.7", + "1.21.8-rc1", + "1.21.8", + "25w31a", + "25w32a" + ], + "loaders": [ + "fabric", + "forge", + "neoforge" + ], + "release_type": "release", + "url": "https://cdn.modrinth.com/data/o6qsdrrQ/versions/5J6WsndO/zume-1.1.4.jar", + "id": "5J6WsndO", + "parent_id": "o6qsdrrQ", + "hashes": { + "sha512": "a8d922294ff8633a1e8872e9cedc1a125027692906c6ee1a828aaf517f7774d0f494dc8879f53a90fe7200b3c46890a725f83d2f2aa3aa4aa59d1bdd4c3dae12", + "sha1": "e38c66e88e30625475fca7fbf89b11d7d5ba1030" + }, + "required_dependencies": [], + "size": 97235, + "date_published": "2024-10-30T21:45:07.837775Z" + } + ] + }, { "pakku_id": "GXyDUWkiW0nLPTdo", "type": "MOD", diff --git a/pakku.json b/pakku.json index e143b2843..cd477921c 100644 --- a/pakku.json +++ b/pakku.json @@ -289,8 +289,11 @@ "side": "CLIENT", "export": false }, - "tfc-caelum":{ - "side": "CLIENT" + "tfc-caelum": { + "side": "CLIENT" + }, + "distant-horizon": { + "side": "CLIENT" } } }