HomeJavaModsRpImmersion
RpImmersion

RpImmersion

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

Current version: 1.0.0

Note: Server-controlled fog is not applied when a shader pack is active on the client. This is a known limitation of the NeoForge fog event system and cannot be worked around at this time.


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. The server runs without them, and clients without them fall back to action bar display.


Features

Fog System

Server-controlled fog override for players, configured in rpimmersion-fog.toml.


Weather Immersion

Additional weather behavior, configured in rpimmersion-weather.toml.


RP Calendar

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


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 specific player.
/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 status, 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 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 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 and shake, auto cycle, narrative messages, rain effects
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 the corresponding /rpimmersion ... reload command. No server restart required.

Fog Preset Format

# name;red;green;blue;start;end;transitionSeconds[;overrides]
# overrides: TERRAIN, SKY, WATER, LAVA, POWDER_SNOW, ALL (default: TERRAIN)
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;ALL"
]

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]
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

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.

Verified by MCModsHub

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

Explore more