Skip to content

Configuration Parameters

diggydwarff edited this page Oct 30, 2026 · 1 revision

Configuration guide and examples

Wiki home · RC1

Choose the right file, understand the modes, then apply one of the practical examples. Use the separate settings reference for individual keys.

Contents

Where files live

Go to Mods → Create: Deep Diving → Config. Choose Client settings for local display/audio, or World settings for gameplay. The editor validates values and supports Undo, Reset and saving. Follow its notices when a reload or restart is required.

World settings are editable in a loaded local singleplayer world before it is opened to LAN. The editor disables them while connected to a remote server or while the local world is published to LAN. Even an operator changes a dedicated server's rules through its server files rather than this client screen. Client settings remain local to each player.

Which file?

File Owner and scope
config/deepdiving-client.toml Each player's local HUD, condition effects, audio, particles and lamps
config/deepdiving-server.toml Default server-rule file on the tested NeoForge 21.1.238 build; also applies to integrated singleplayer servers unless overridden
<world>/serverconfig/deepdiving-server.toml If this file already exists, it overrides the global file for that dedicated-server world
saves/<world>/serverconfig/deepdiving-server.toml Equivalent override for a singleplayer save
defaultconfigs/deepdiving-server.toml Optional template copied when a missing config is first created; changing it does not rewrite existing files

Check for a world override first. On tested NeoForge 21.1.238, an existing world serverconfig file wins; otherwise the global config file is used. Older loader builds can use the world folder as their normal server-config location, so use the file actually generated by your loader and check its startup log when unsure. A global server file can be shared by multiple singleplayer worlds.

For manual server edits, stop the server, back up the current file, edit the active global file or world override and restart. For client edits, close the game or use the in-game editor so an open configuration screen cannot overwrite the change.

Updates preserve existing values. A newer JAR adding more forgiving defaults does not automatically replace an older world's saved ascent or pressure settings.

TOML layout

The complete settings reference lists every setting with its exact TOML key, new-world default, valid range and effect. true enables a switch; false disables it. Quoted mode names such as "STANDARD" are enums, not arbitrary text. Numeric ranges are accepted input bounds, not recommendations.

Keys written as lamp.range belong inside [lamp] as range = 16.0. Root keys such as difficulty belong before the first [section] header. Once a TOML section starts, later bare keys belong to it until another section begins. Reuse existing headers; do not paste a second [lamp] or [sediment] section into the same file.

The same section name can exist in different files: server [sediment] controls shared disturbance rules, while client [sediment] controls local rendering. Copying a valid key into the wrong file does not make it an effective setting.

The complete settings reference covers 128 settings: 60 server and 68 client. Examples are merge snippets, not complete replacement files. Change one family of settings at a time and check the computer during a shallow test dive.

Difficulty modes

Mode Condition-severity factor Managed gas-use factor Intended feel
ARCADE 0.45× 0.65× More forgiving condition accumulation and longer gas duration
STANDARD 1.00× 1.00× Default balance
HARDCORE 1.60× 1.00× Stronger condition/injury progression; gas demand stays at Standard's factor

The severity factor participates in hypoxia loss, excess-oxygen toxicity accumulation, narcosis, decompression stress and several pressure-injury calculations. It is not a universal damage multiplier. Use damageMultiplier for damage amounts.

These presets do not change pressure curves, oxygen/nitrogen thresholds, cylinder capacities, pressure ratings, tissue time or ascent grace. Arcade still has decompression and equipment limits; Hardcore does not secretly change every setting. Server configuration is separate from Minecraft's Peaceful/Easy/Normal/Hard difficulty.

Gas-use example

For a Deep Diving cylinder:

mB per simulated second = gasPerSecondAtSurface × ambient pressure × mode gas factor

At 40 blocks under the default LINEAR curve, pressure is 5 atm. Standard/Hardcore use 8 × 5 = 40 mB/s; Arcade uses 8 × 5 × 0.65 = 26 mB/s. A full 12,000 mB Advanced cylinder therefore gives 300 seconds versus about 462 seconds at that constant pressure, before allowing for the route or reserve gas. Create backtank consumption uses Create air units instead of cylinder mB.

Pressure and surface modes

Choose how world depth becomes pressure, then set independent equipment protection thresholds.

Depth is not world Y

Depth is the water surface minus the diver's eye Y, clamped to zero. With a fixed surface at Y=60, eyes at Y=20 mean depth 40. Feet Y and world build height are not the input. Dry air is treated separately from submerged depth.

LINEAR mode

pressure = 1 + depth / blocksPerAtmosphere

LINEAR is the default. With 10 blocks/atm, 40 blocks gives 5 atm and 200 blocks gives 21 atm. Increasing blocksPerAtmosphere makes the same depth less pressurized. referenceOceanDepth, referencePressure and pressureCurveExponent do not affect LINEAR.

REFERENCE mode

pressure = 1 + (referencePressure − 1) × (depth / referenceOceanDepth)^pressureCurveExponent

Set a known ocean depth and the pressure you want there. The reference point is not a floor or a cap: deeper water continues the curve, up to the model's 1,000 atm cap. An exponent above 1 is gentler in the shallow portion than a straight curve with the same endpoints, then steepens with depth. Below 1 does the reverse.

For referenceOceanDepth = 200, referencePressure = 21:

Depth Default LINEAR, 10 blocks/atm REFERENCE exponent 1 REFERENCE exponent 1.35
0 blocks 1.00 atm 1.00 atm 1.00 atm
10 blocks 2.00 atm 2.00 atm 1.35 atm
30 blocks 4.00 atm 4.00 atm 2.54 atm
40 blocks 5.00 atm 5.00 atm 3.28 atm
100 blocks 11.00 atm 11.00 atm 8.85 atm
200 blocks 21.00 atm 21.00 atm 21.00 atm

The same endpoint does not imply the same pressure at intermediate depths. Changing this curve changes gas use, oxygen/nitrogen exposure, equipment depth equivalents and decompression guidance together.

Pressure-curve settings

LOCAL_WATER versus FIXED

Use LOCAL_WATER for normal oceans, lakes and differing local surface heights. It searches loaded water columns, can look through a solid roof toward water above, stops at air and never force-loads chunks.

Use FIXED when a flooded dimension or a custom roofed ocean needs one deliberate reference surface. It does not add water to the world or change terrain. Check the actual water level before choosing the number; the default 63 is not guaranteed to match a custom world.

Per-dimension profiles

Each string contains exactly six fields, separated by |:

dimension ID | mode | scale | reference atm | exponent | AUTO or surface Y
Field Meaning
Dimension ID Actual registry ID, for example minecraft:overworld
Mode LINEAR or REFERENCE
Scale Blocks per additional atm in LINEAR; reference depth in REFERENCE
Reference atm Used by REFERENCE; still required and validated in LINEAR
Exponent Used by REFERENCE; still required and validated in LINEAR
Surface AUTO for local-water detection, or a fixed integer world-Y coordinate

Valid override scales are greater than 0 and at most 65,536; reference pressure must be greater than 1 and at most 1,000; exponent is 0.25–4. The entry parser accepts an integer surface Y. Use a sensible value within the dimension's intended world coordinates.

dimensionPressureProfiles = [
  "minecraft:overworld|REFERENCE|200|21|1.35|60",
  "minecraft:the_end|LINEAR|20|21|1|AUTO"
]

This example assumes an intended Overworld water surface at Y=60. It maps 200 blocks below that surface to 21 atm. The End entry only changes pressure where a player actually is underwater; it does not create an ocean. A profile overrides that dimension's whole curve and surface choice. AUTO selects local detection even if the global mode is FIXED. If a dimension appears more than once, the last matching entry wins; dimensions absent from the list use global settings.

Equipment protection ratings

Ratings are absolute atm, including the surface atmosphere. Under default LINEAR settings, a rating's depth equivalent is (rating − 1) × 10, not rating × 10. A spare carried in inventory does not upgrade worn protection. Gas suitability remains an independent limit.

Sudden compression and extreme exposure

Ordinary over-rating injury can accumulate while staying too deep. Sudden compression additionally checks a positive pressure increase between valid simulation samples (normally one second apart). Shock requires both exceeding the worn rating and reaching pressureShockDelta.

Catastrophic exposure requires an active shock, the configured catastrophic pressure jump, and the configured excess above rating. All belong to the equipment-pressure path; disabling that path or deferring it to another pressure owner suppresses them here. Setting suddenPressureInjury = false prevents shock and therefore this catastrophic event, even if its switch remains true.

Ascent and tissue time

Use ascent grace for small movements, decompressionRate for shorter stops, and tissueRate only when changing loading too.

Rapid ascent: three checks together

The rapid-ascent monitor requires an upward speed above the threshold, enough consecutive time at that speed, and enough total rise in that same streak. Standard defaults are 2.5 blocks/s, 3 seconds and 4 blocks. Slowing, stopping or descending resets the streak. The simulation normally samples once per second.

This monitor does not grant permission to cross a decompression ceiling. A brief upward movement can be within ascent grace and still put the diver above an already-required stop.

Explicit V hold is assistance at a chosen position, not automatic decompression navigation. It requires submerged, managed breathing gear and a computer, and it cannot enable while flying/riding/fall-flying/blacked out or above a required stop. Passive fins resting is separate. There is no RC1 config slider for passive-bob amplitude or the stale-target safeguard.

Tissue time versus off-gassing

At tissueRate = 1.0 and decompressionRate = 6.0, gas uptake uses normal tissue time and qualifying release is accelerated sixfold. Raising tissueRate to 2 also doubles uptake, so it is the wrong first adjustment if the only goal is shorter stops. Raising decompressionRate cannot make a deeply submerged diver release gas when the current mixture/pressure still favors loading.

Stop depths are rounded to three-block steps. Stop spacing and the four-compartment model are fixed mechanics in RC1, not additional TOML modes. Forecasts change with current depth, supply and mixture; a displayed countdown is not a universal fixed stop duration.

Oxygen reserve and mixture thresholds

Minimum/maximum oxygen limits compare oxygen partial pressure, not the cylinder's percentage alone. Air at 5 atm has 0.21 × 5 = 1.05 atm oxygen; Nitrox 32 at the same pressure has 1.6 atm and exceeds the default upper limit. Narcosis compares nitrogen partial pressure. Helium helps reduce nitrogen exposure, while equipment limits and decompression remain.

oxygenRecoveryPerSecond restores the computer's oxygen-reserve resource. It is not an oxygen-toxicity recovery slider. Toxicity and decompression-stress recovery have fixed parts of their model; not every internal rate has a config key.

Client display and effects

Client choices change local presentation, not server gas use, conditions or damage. Their exact keys and defaults are in the settings reference.

Choice Options and effect
HUD layout compactHud = true for the concise panel; false restores the expanded layout
HUD size SMALL 75%, NORMAL 100%, LARGE 125%, EXTRA_LARGE 150%; independent of Minecraft GUI scale
Reduced motion reducedMotion = true uses steadier cues and suppresses camera sway/animated distortion
Condition shader quality LOW uses fewer blur samples and omits color separation; HIGH uses the fuller filter
Shader-pack fallback Uses condition overlays when the post-process cannot run with an external pack; separate from lamp shader lighting
Lamp color WARM and COOL are built-in tints; CUSTOM uses the decimal RGB customColor value
Reduced lamp effects One shorter-range contribution, crisp shadows and no volumetric ray marching

Breathing audio, computer alarms, environmental ambience and underwater sound filtering have separate switches/volumes. Disabling acoustics.soundFiltering leaves breathing/exhaust available when another sound mod owns muffling. Exhaust must also be permitted by the server's breathingBubbles switch.

Particle budgets are layered: local ambience and sediment caps also share underwaterParticles.combinedLimit. Minecraft's particle setting reduces effective budgets further. Exhaust bubbles and other mods' particles are outside that shared cap. Client sediment rendering and server seabed-disturbance rules are separate; their [sediment] sections belong to different files.

Lamp illumination is separate from physiology/condition shaders. Turning visual symptoms off does not cure a condition, remove a stop or grant unlimited gas.

Practical examples

Choose a goal, merge the relevant snippet into the correct file, and check the result in a shallow test dive.

Smaller computer HUD

Client file, root: compact layout at 75%. Choose NORMAL for 100%.

showHud = true
compactHud = true
hudSize = "SMALL"
hudX = 8
hudY = 8

This changes only the HUD. The full computer keeps its detailed pages and the server rules stay unchanged.

Gentler diving without changing pressure

Server file, root: Arcade lowers condition severity and managed gas demand while keeping your pressure curve and ascent settings.

difficulty = "ARCADE"

It still has oxygen/nitrogen limits, equipment ratings and decompression. If only stops are too long, use the next example instead.

Adopt RC1 ascent grace and shorter stops

Server file, root: useful when an old world retained earlier, stricter values.

maximumAscentBlocksPerSecond = 2.5
ascentWarningGraceSeconds = 3.0
ascentWarningMinimumRise = 4.0
tissueRate = 1.0
decompressionRate = 6.0

The rapid-ascent monitor permits brief adjustments but not crossing an existing ceiling. Off-gassing is accelerated where the current gas/pressure allows it; uptake stays at the normal tissueRate.

Custom 200-block ocean with a known surface

Server file, root: this global profile assumes the intended water surface is Y=60. At depth 200, the pressure is 21 atm; exponent 1.35 makes the shallow portion gentler than a straight curve with the same reference endpoint.

pressureMode = "REFERENCE"
referenceOceanDepth = 200.0
referencePressure = 21.0
pressureCurveExponent = 1.35
surfaceMode = "FIXED"
fixedSurfaceY = 60

Without overrides, this global choice applies to every dimension. Choose LOCAL_WATER if you need local lake/ocean surfaces rather than one deliberate reference height.

Apply that ocean profile only to the Overworld

Server file, root: merge into the existing list, keeping other dimensions' entries. This profile supersedes global pressure/surface values for the Overworld only.

dimensionPressureProfiles = [
  "minecraft:overworld|REFERENCE|200|21|1.35|60"
]

Use AUTO in the last field to measure the local water surface instead. Keep all six fields. The last duplicate dimension entry wins.

Less motion and simpler condition effects

Client file: put the first keys at the root; merge the later keys into [shaders].

reducedMotion = true
cameraSway = false
effectIntensity = 0.7

[shaders]
quality = "LOW"
shaderPackFallback = true
overlayFallback = true

Warnings and server conditions still apply. This does not change the quality of an external Iris pack.

Let another sound mod own underwater muffling

Client file, [acoustics]: keep breathing and exhaust but disable Deep Diving's transmission filter.

[acoustics]
soundFiltering = false
equipmentBreathing = true
exhaustBubbles = true

The server must also permit breathingBubbles for the exhaust to appear. This does not turn off the other mod's filter.

Lower-cost lights and particles

Client file: merge each block into its existing section.

[lamp]
reducedEffects = true
nearbyLightLimit = 0
maximumShadowedLights = 1

[ambience]
particleLimit = 24
particleDensity = 0.35

[sediment]
particleLimit = 80
spawnAttemptsPerTick = 4

[underwaterParticles]
combinedLimit = 96

These are starting values, not measured FPS guarantees. Client particle caps do not change shared seabed-disturbance rules, and exhaust bubbles have their own controls.

Keep mining sediment, remove swimming plumes

Server file, [sediment]:

[sediment]
enabled = true
mining = true
bottomMovement = false

Do not paste these keys into the client sediment section; that section controls local rendering instead.

Use a custom cool lamp tint

Client file, [lamp]: pale blue RGB C8E9FF expressed as decimal.

[lamp]
color = "CUSTOM"
customColor = 13167103

Selecting COOL uses the same built-in tint without needing the custom value. The inventory texture is unaffected.

Check your change

  1. Save through the editor, or restart after a manual world-file edit.
  2. Confirm the active world and dimension match the configuration you edited.
  3. In shallow water, check depth/pressure on the computer and the current cylinder's tooltip limits.
  4. Test the intended change without changing another setting family at the same time.
  5. If a value appears ignored, check its file, TOML section, saved-world values and any dimension override before raising it further.

Back to wiki home

Clone this wiki locally