promotional bannermobile promotional banner

RpImmersion (RolePlay)

RpImmersion allow you to customize the fog, the weather, add a calendar, and much more!

RpImmersion

RpImmersion is a server and client-side companion mod for RpEssentials, designed for immersive Roleplay servers running Minecraft 1.21.1 on NeoForge. It gives server administrators fine-grained control over the atmosphere experienced by players — fog, camera effects, weather immersion, and a fully custom RP calendar — all configurable in real-time without restarts.

Current version: 0.0.2

Please note that the fog provided by the mod isn't functional with shaders because of technical limitation that I can't handle!


Requirements

Dependency Version Side Required
Minecraft 1.21.1 Both
NeoForge 21.1.219+ Both
RpEssentials 4.1.7+ Both
ImmersiveMessages neoforge-1.21.1:1.0.18 Client ⬜ Optional
TxniLib neoforge-1.21.1-1.0.24 Client ⬜ Optional

ImmersiveMessages and TxniLib are only required on the client if you use weatherMessageMode = IMMERSIVE or scheduleDeathHoursNotifyMode = IMMERSIVE. The server runs fine without them, and clients without them will gracefully fall back to action bar display.


Features

Fog System

Server-controlled fog fully replaces vanilla fog for players when active. Everything is configured in rpimmersion-fog.toml.

  • Named presets — define fog colors (RGB), start/end distances, and fade transition duration. Apply them anywhere.
  • Circular zones — assign a preset to a zone defined by center coordinates and radius. Higher-priority zones win when overlapping.
  • Biome-based fog — automatically apply a preset when a player enters a specific biome. Wildcard support (minecraft:*, *:dark_*).
  • RpEssentials zone overrides — piggyback on zones already defined in RpEssentials's named zone system. No need to redefine coordinates.
  • Day/Night variants — every zone, biome, and global preset supports separate dayPreset and nightPreset. Transitions are animated.
  • Global fog — a fallback preset applied to all players when no zone or biome matches.
  • World border fog — a dedicated high-priority preset activates automatically when a player steps outside the world border. Useful for dramatic boundary effects.
  • Per-player override — staff can instantly set a specific fog for one player via command, overriding all other rules.
  • Smooth transitions — all fog changes ease in and out with a configurable duration. No abrupt jumps.
  • Optimized sync — the server only sends a packet when the fog state actually changes for a player (checked every N ticks, configurable). No network spam.

Weather Immersion

Enhances Minecraft's weather system with atmosphere and control. Configured in rpimmersion-weather.toml.

  • Weather fog integration — CLEAR, RAIN, and THUNDER each map to a fog preset. Applied as a low-priority fallback when no zone or biome fog is active, creating a natural weather atmosphere.
  • Lightning frequency control — multiply or reduce the rate of lightning strikes during thunderstorms. Extra bolts are placed randomly near online players within a configurable radius.
  • Camera shake on lightning — when lightning strikes, nearby players feel a camera shake proportional to their distance from the bolt. Close strike = strong shake, distant strike = subtle shake. The effect uses a smooth decay envelope.
  • Mainstream mod compatibility — shake is applied additively to camera angles (not a replacement), so it stacks cleanly with Sodium, Embeddium, Optifine, Oculus, and any other mod that touches the camera. Never causes conflicts.
  • Client shake override — the server can allow clients to reduce or disable camera shake via their own client config (Options → Mods). The server can also lock it, enforcing the configured intensity for all players.
  • Automatic weather cycle — define a sequence of weather steps (CLEAR → RAIN → THUNDER → CLEAR…) with durations in real-time minutes. The server cycles through them automatically.
  • Narrative messages — when weather changes, a configurable message is broadcast to all players. Supports CHAT, ACTION_BAR, and IMMERSIVE (with ImmersiveMessages) display modes.

RP Calendar

A fully persistent, server-driven roleplay calendar. Configured in rpimmersion-calendar.toml.

  • Completely custom structure — define your own month names, number of months, days per month (uniform or per-month), and optionally day-of-week names.
  • Configurable time ratio — control how fast RP time passes relative to real server time. ticksPerRpMinute × rpMinutesPerHour × rpHoursPerDay gives you full control.
  • Persistent — the current date and pause state are saved in world/data/rpimmersion/calendar.json. The calendar survives server restarts.
  • Pauseable — staff can freeze the calendar in place. The date is still displayed (with a configurable pause indicator), but time stops accumulating.
  • Flexible display — show the date as a HUD overlay, in the action bar, both, or nowhere. The format string accepts any combination of {day}, {dayName}, {month}, {monthName}, {year}, {hour}, {minute} placeholders.
  • Live commands — set the date to any value, advance it by N minutes, pause/resume, or force a sync to all players — all without restarting.

Commands

All commands require staff permission (as defined by RpEssentials).

Fog

Command Description
/rpimmersion fog set global <preset|clear> Apply a fog preset to all players, or clear the global override.
/rpimmersion fog set player <player> <preset|clear> Apply a fog preset to one player specifically.
/rpimmersion fog clear global Remove the global fog override.
/rpimmersion fog clear player <player> Remove the per-player fog override.
/rpimmersion fog list List all loaded fog presets with their parameters.
/rpimmersion fog status Display the current fog state (global override, world border, zone and biome counts).
/rpimmersion fog reload Reload fog config from disk and re-sync all players.

Weather

Command Description
/rpimmersion weather set <CLEAR|RAIN|THUNDER> Force a specific weather state on the server.
/rpimmersion weather status Show the current weather and active fog preset.
/rpimmersion weather reload Reload weather config from disk.

Calendar

Command Description
/rpimmersion calendar status Display the current RP date, time, and pause state.
/rpimmersion calendar pause <true|false> Pause or resume the calendar.
/rpimmersion calendar set <year> <month> <day> [hour] [minute] Set the calendar to a specific date and time.
/rpimmersion calendar advance <minutes> Advance (or rewind if negative) the calendar by N RP minutes.
/rpimmersion calendar reload Force a sync of the current date to all connected players.

Configuration

Three server-side config files are generated automatically under config/rpimmersion/ on first launch. One client-side config is generated in the standard NeoForge client config location.

File Contents
rpimmersion-fog.toml Presets, zones, biomes, RpEssentials overrides, world border fog, day/night settings, optimization
rpimmersion-weather.toml Weather fog mapping, lightning frequency & shake, auto cycle, narrative messages
rpimmersion-calendar.toml Month/day structure, time ratio, start date, display format
rpimmersion-client.toml Client-side shake intensity override, fog disable toggle

All server configs support live reload via /rpimmersion fog reload, /rpimmersion weather reload, and /rpimmersion calendar reload. No server restart required.

Fog Preset Format

# name;red;green;blue;start;end;transitionSeconds
presets = [
    "night_fog;0.05;0.05;0.1;5.0;30.0;3.0",
    "morning_mist;0.7;0.75;0.8;2.0;20.0;5.0",
    "border_void;0.0;0.0;0.0;1.0;8.0;2.0"
]

Fog Zone Format

# zoneName;centerX;centerZ;radius;preset;priority[;dayPreset;nightPreset]
zones = [
    "dark_woods;100;-200;80;cursed_forest;10;morning_mist;night_fog"
]

Weather Fog Format

# weatherType;fogPreset
weatherFogPresets = [
    "RAIN;morning_mist",
    "THUNDER;purge"
]

Calendar Structure Example

monthNames    = ["Janvier", "Février", "Mars", "Avril", "Mai", "Juin",
                 "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"]
daysPerMonth  = [30]   # A single value applies to all months
dayNames      = ["Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi", "Dimanche"]
dateFormat    = "§7{dayName} {day} {monthName}, An {year} — {hour}h{minute}"

Data Storage

File Contents
world/data/rpimmersion/calendar.json Current RP date and pause state

Technical Notes

  • Fog transitions use a fixed start/target interpolation model. The "from" value is captured at the moment a new fog is set, ensuring a clean linear ease-in/out regardless of how many transitions overlap.
  • Camera shake adds delta values to the existing camera angles rather than replacing them, making it additive and fully compatible with Sodium, Embeddium, Optifine, Oculus, and any other rendering mod.
  • No continuous packet spam — fog state is recalculated every N ticks (configurable, default 3 seconds) per player, and a packet is only sent if the resolved state differs from what was last sent.
  • RpEssentials integration uses Java reflection at runtime to read named zones, so the dependency is declared as required in the mod metadata but never hard-linked at compile time beyond isStaff().

The RpImmersion (RolePlay) Team

profile avatar
Owner
  • 3
    Projects
  • 2.1K
    Downloads

More from Finerus

  • RpEssentials (RolePlay) project image

    RpEssentials (RolePlay)

    • 1.6K
    • Mods

    Nickname players, configurable Jobs, Schedule system (for opening/closing), chat formatting, last connection tracker and much more! Read the description to learn more about it

    • 1.6K
    • May 15, 2026
    • Mods
    • +1
  • Projet EN CONSTRUCTION project image

    Projet EN CONSTRUCTION

    • 436
    • Modpacks

    The definitive medieval voice-RP experience, featuring deep magic and witchery, massive world generation, and hundreds of decorative blocks for building immersive settlements.

    • 436
    • March 8, 2026
    • Modpacks
    • +1
  • RpEssentials (RolePlay) project image

    RpEssentials (RolePlay)

    • 1.6K
    • Mods

    Nickname players, configurable Jobs, Schedule system (for opening/closing), chat formatting, last connection tracker and much more! Read the description to learn more about it

    • 1.6K
    • May 15, 2026
    • Mods
    • +1
  • Projet EN CONSTRUCTION project image

    Projet EN CONSTRUCTION

    • 436
    • Modpacks

    The definitive medieval voice-RP experience, featuring deep magic and witchery, massive world generation, and hundreds of decorative blocks for building immersive settlements.

    • 436
    • March 8, 2026
    • Modpacks
    • +1