What are you searching for?

Hísëa
Hísëa

Hísëa

Adds configurable fog-generating blocks for atmosphere and detail

download 206.3K Downloads · favorite 13 Followers · Updated 9 months ago
Decoration Fabric 1.20.1

Versions

inventory_2
Hísëa Client 1.0.2

1.0.2 · 9 months ago · 10.68 MB

Release download
Fabric 1.20.1
inventory_2
Hísëa Client 1.0.1

1.0.1 · 9 months ago · 10.68 MB

Release download
Fabric 1.20.1
inventory_2
Hísëa Client 1.0.0

1.0.0 · 9 months ago · 10.72 MB

Release download
Fabric 1.20.1

Gallery

About

Hísëa (Quenya for 'misty') is a mod developed for the ArdaCraft project. It adds fog-generating blocks which are invisible to the user unless they hold the block in their hand. These blocks do not have collision, meaning that players can add interesting details to their builds like waterfall mist, steam from hot baths, and fog without interfering with exploration or immersion.

Various aspects of the fog generated by these blocks can be configured with ctrl+right click:

The config screen

More detailed instructions can be found below.

Hísëa Instructions

Intensity (0-50%)

Explanation: Controls how thick the mist appears. Higher values create denser, more visible mist. At maximum values, the mist becomes very noticeable and creates a thick fog effect.

Code wise: Scales the number and size of particles generated. Internally stored as a float (0.0-5.0) where:

  • Each 10% in UI = 1.0 in code
  • Affects both particle scale and spawn rate
  • Influences particle lifetime calculation

Velocity (0-200%)

Explanation: Determines how fast the mist particles move. Low values create still, hanging mist. Higher values create flowing, drifting mist that moves more dramatically through the space.

Code wise: Stored as a float (0.0-2.0) and directly multiplied with the motion values:

 .setMotion(
      velocityMultiplier == 0 ? 0 : (world.getRandom().nextFloat() * 0.01f) * Math.signum(offsetX) * velocityMultiplier,
      velocityMultiplier == 0 ? 0 : (world.getRandom().nextFloat() * 0.005f) * velocityMultiplier, // Slower vertical
      velocityMultiplier == 0 ? 0 : (world.getRandom().nextFloat() * 0.01f) * Math.signum(offsetZ) * velocityMultiplier
  )

Lifetime (5-30 seconds)

Explanation: Controls how long mist particles remain visible before fading away. Longer lifetimes create a more persistent mist effect, while shorter lifetimes create a more ephemeral, wispy effect.

Code wise: Stored as ticks (100-600) where:

  • Each second = 20 ticks (Minecraft runs at 20 ticks per second)
  • Directly used in the particle builder:
.setLifetime(lifetime)

Color (RGB)

Explanation: Sets the color of the mist particles. Can be used to create atmospheric effects like colored fog, magical mist, toxic clouds, steam with different temperatures, etc.

Code wise: Stored as a standard RGB integer (0x000000 to 0xFFFFFF):

  .setColorData(ColorParticleData.create(particleColor).build())

Transparency (0-100%)

Explanation: Controls how see-through the mist appears. Lower values make translucent, ghostly mist that barely obscures the view. Higher values create more opaque mist that can hide elements behind it.

Code-wise: Stored as a float (0.0-1.0) and used in transparency gradient calculation:

  .setTransparencyData(
      GenericParticleData.create(0.001f, 0.7f * customTransparency, 0f)
      .setEasing(Easing.EXPO_OUT, Easing.SINE_OUT)
      .build()
  )

This creates a smooth fade-in/fade-out effect with the peak visibility controlled by this setting.

Radius (1-100 blocks)

Explanation: Determines how far the mist spreads from the source block. Larger radius creates fog that covers more area, while smaller radius creates concentrated clouds.

Code wise: Stored as an integer and used to scale particle position offsets:

  double radiusScale = customRadius / 3.0; // Scale factor where 3 is the default radius
  double scaledOffsetX = offsetX * radiusScale;
  double scaledOffsetZ = offsetZ * radiusScale;

Enabled (On/Off)

Explanation: Simple toggle to turn mist emission on or off without removing the block. Useful for temporarily disabling effects or switching between different scenes.

Code wise: Stored as a boolean and checked before spawning any particles:

  if (cachedEnabled != null && !cachedEnabled) {
      // Block has been disabled by the user
      return;
  }

Technical Implementation Notes

  • Client-Server Sync: All settings are stored on the server in the block entity and synced to connected clients
  • Persistence: Settings are saved to the world's NBT data for restoration after server restarts
  • Efficiency: Particles use visibility checks and optimizations to minimize performance impact
  • Last Used Settings: The mod remembers your last used settings when placing new blocks

The mod was developed for ArdaCraft by Divined (.divined on Discord). Many thanks to the devs of Effective for their assistance.

Project icon credit to kameh.space on Instagram.

person
Fornad
Mod Author
open_in_new View on Modrinth
Categories
Compatibility
Client: Unknown Server: Unknown
gavel MIT

Conversation

What are your thoughts?

Related projects

Decoration Optimization
Iris Shaders
Iris Shaders

by coderbot

A modern shader pack loader for Minecraft intended to be compatible with existing OptiFine shader packs

download 90.8M
favorite 23,800
Decoration Utility
[ETF] Entity Texture Features
[ETF] Entity Texture Features

by Traben

Emissive, Random & Custom texture support for entities in resourcepacks just like Optifine but for Fabric

download 57.4M
favorite 8,584
Decoration Mobs Utility
[EMF] Entity Model Features
[EMF] Entity Model Features

by Traben

EMF is an, OptiFine format, Custom Entity Model replacement mod available for Fabric and Forge.

download 54.2M
favorite 8,141
Adventure Decoration
Not Enough Animations
Not Enough Animations

by tr7zw

Bringing first-person animations to the third-person

download 48.7M
favorite 7,685
lock Cookie consent

SkinMC uses cookies to provide functionality and features.