Repository navigation
Configuration Parameters
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.
- Where files live
- Difficulty modes
- Pressure and surface modes
- Ascent and tissue time
- Client display and effects
- Practical examples
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.
| 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.
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.
| 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.
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.
Choose how world depth becomes pressure, then set independent equipment protection thresholds.
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.
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.
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.
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.
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.
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.
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.
Use ascent grace for small movements, decompressionRate for shorter stops, and tissueRate only when changing loading too.
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.
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.
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 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.
Choose a goal, merge the relevant snippet into the correct file, and check the result in a shallow test dive.
Client file, root: compact layout at 75%. Choose NORMAL for 100%.
showHud = true
compactHud = true
hudSize = "SMALL"
hudX = 8
hudY = 8This changes only the HUD. The full computer keeps its detailed pages and the server rules stay unchanged.
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.
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.0The 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.
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 = 60Without overrides, this global choice applies to every dimension. Choose LOCAL_WATER if you need local lake/ocean surfaces rather than one deliberate reference height.
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.
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 = trueWarnings and server conditions still apply. This does not change the quality of an external Iris pack.
Client file, [acoustics]: keep breathing and exhaust but disable Deep Diving's transmission filter.
[acoustics]
soundFiltering = false
equipmentBreathing = true
exhaustBubbles = trueThe server must also permit breathingBubbles for the exhaust to appear. This does not turn off the other mod's filter.
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 = 96These are starting values, not measured FPS guarantees. Client particle caps do not change shared seabed-disturbance rules, and exhaust bubbles have their own controls.
Server file, [sediment]:
[sediment]
enabled = true
mining = true
bottomMovement = falseDo not paste these keys into the client sediment section; that section controls local rendering instead.
Client file, [lamp]: pale blue RGB C8E9FF expressed as decimal.
[lamp]
color = "CUSTOM"
customColor = 13167103Selecting COOL uses the same built-in tint without needing the custom value. The inventory texture is unaffected.
- Save through the editor, or restart after a manual world-file edit.
- Confirm the active world and dimension match the configuration you edited.
- In shallow water, check depth/pressure on the computer and the current cylinder's tooltip limits.
- Test the intended change without changing another setting family at the same time.
- If a value appears ignored, check its file, TOML section, saved-world values and any dimension override before raising it further.