Home›Java›Mods›Realistic Smoke
Realistic Smoke
ModsJava

Realistic Smoke

Java mod listed for Minecraft 1.21. Downloads from the MC Java Mods app on Android.

by Dizabanik · on Modrinth

Server-side smoke and ventilation mechanics inspired by Valheim. Furnaces and campfires fill enclosed spaces with dangerous smoke, making chimneys, open…

⬇ Download on Modrinth

Realistic Smoke

A server-side smoke and ventilation mod inspired by Valheim-style building constraints. It runs entirely on the server, so players do not need a client-side mod installed.

Gameplay

Approximation limits

The simulation focuses on survival building mechanics, using discrete approximations:

Performance and safety

Smoke runs on a numeric grid without spawning entities or custom blocks. The simulation step runs every 10 ticks by default (twice per second at standard 20 TPS).

Particles

The particle engine reads precomputed ceiling and exhaust profiles generated during the simulation pass, checking chunk status and block passability prior to spawning. It verifies block types and active burn states so extinguished or broken sources stop emitting immediately.

Ceiling effects spawn vanilla LARGE_SMOKE particles just below obstructed roof blocks, using wide horizontal dispersion and tight vertical drift to give the appearance of trapped smoke on unmodified clients.

Configuration

The configuration file is created at config/realistic-smoke.json on first run. Any missing keys are populated with defaults.

Field Default Meaning
simulationIntervalTicks 10 Field update period. Higher values are cheaper but slow movement and change emission/dissipation per second.
exposureIntervalTicks 20 Eye-density sampling period; exposure integrates elapsed server ticks.
maxActiveCellsPerWorld 12000 Maximum completed-field smoke pockets per dimension.
maxGeometryCacheCellsPerWorld 24000 Independent geometry-cache limit; column-cache limit is 4x this.
minDensity 0.035 Prune pockets below this concentration after accumulation.
maxDensity 12.0 Maximum completed-field concentration.
furnaceEmission 0.55 Mass emitted per update by furnaces and blast furnaces.
smokerEmission 0.85 Mass emitted per update by smokers.
campfireEmission 1.0 Mass emitted per update by either campfire variant.
baseDissipation 0.018 Fraction of mass lost naturally per update.
outdoorRetention 0.10 Fraction retained for a fully exposed four-column pocket; partial exposure scales the loss.
risingFraction 0.56 Requested upward fraction, scaled by opening area.
lateralFractionWhileRising 0.10 Total lateral coefficient while an upward opening exists.
lateralFractionWhenBlocked 0.48 Total lateral coefficient when upward flow is blocked.
pressureDownFraction 0.04 Downward gradient coefficient above the pressure threshold.
pressureDownThreshold 4.0 Concentration at which downward transport begins.
passabilityCacheSteps 4 Geometry fallback lifetime in simulation steps; block changes invalidate immediately. Zero still allows reuse within one step.
passabilityCacheClearSteps 128 Periodic cache clearing/trimming interval.
particles true Enable cosmetic particles.
particleIntervalTicks 10 Visual update period.
particleBudgetPerWorld 64 Shared spawn-event cap per dimension per visual update.
sourceParticleBudget 16 Maximum source events within the shared budget.
ventParticleBudget 12 Maximum exhaust events within the shared budget.
particleMinDensity 0.20 Minimum concentration for ceiling/exhaust candidates.
particleViewDistance 48.0 Configured proximity filter, also subject to vanilla's normal delivery range.
safeDensity 0.75 Eye concentration at or below which exposure recovers.
exposureGainPerSecond 0.48 Gain per second per concentration unit above safeDensity.
exposureRecoveryPerSecond 0.90 Recovery per second in safe air.
nauseaExposure 4.0 Nausea threshold.
severeExposure 8.0 Blindness threshold.
lethalExposure 14.0 Damage threshold.
baseDamagePerSecond 1.0 Damage rate at the lethal threshold, in health points per second.
maxDamagePerSecond 4.0 Maximum sustained smoke damage rate.

The mod validates numeric inputs on startup, replacing non-finite values with defaults. If the file is unreadable or malformed, the game logs a warning and uses default values in memory without overwriting the broken file on disk. Config writes serialize to a temporary file before replacing the target via an atomic filesystem move.

Status effect durations cover the sampling period with an added buffer to prevent visual flicker between ticks. Unapplied damage calls retry across a short grace window, resetting if exposure drops below the lethal threshold. Smoke damage uses vanilla magic damage, respecting standard potion effects and protective enchantments.

Quick facts

Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.

File checked by MCModsHub

These come from our own check of the pack file, not from the source page.

Explore more