RpImmersion (RolePlay)

Quick rating

RpImmersion (RolePlay)

No reviews yet

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

QoL & Tweaks
Mod Loaders
NeoForge
Minecraft

Community voices

Reviews

Versions
Loading versions…
Match includes

Click once to include, again to exclude, again to clear

Rating Any
Any 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0
Min
Max
Play Status
Reviews
Time Played
hrs+
Verified developers only
Has developer response
List view
Grid view
Compact view
Sort by
Date
Rating
Helpful
Unhelpful
Edited
Sort ascending
Delete this review?

This removes your review from the project. You can write a new review after.

Review submitted for moderation

Your review has been sent to moderators, who will check that it meets our guidelines before it appears publicly.

No reviews yet. Be the first to review this project!

Get it on

Available Platforms

Compatibility

Supported Environments

Where It Runs
Client and Server

Must be installed on both the client and the server.

About

Project Details

Type
Mod
License
All Rights Reserved
Latest Version
rpimmersion-1.0.0.jar
Authors
CurseForge
Modrinth

For authors

Embed Badge

If you're the author of this project, you can embed a live badge anywhere that supports HTML or Markdown. It updates automatically whenever ratings change.

Custom banner text
ModDex rating badge preview

Use HTML for any page that supports it, or Markdown for README files and Markdown-based descriptions.

Identifiers

Platform IDs

CurseForge ID
Modrinth ID

Resources

External Links

Source Issues Wiki Discord

About

Description

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().

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.

  • Named presets: define fog color (RGB), start/end distances, and fade transition duration.
  • Circular zones: assign a preset to a zone defined by center coordinates and radius. Higher-priority zones take precedence when overlapping.
  • Biome-based fog: apply a preset when a player enters a specific biome. Wildcard patterns are supported (minecraft:*, *:dark_*).
  • RpEssentials zone overrides: apply fog to zones already defined in RpEssentials, without redefining coordinates.
  • Day/Night variants: zones, biomes, and the global preset each support separate dayPreset and nightPreset, with animated transitions between them.
  • Global fog: a fallback preset applied when no zone or biome rule matches.
  • World border fog: a dedicated preset that activates when a player steps outside the world border.
  • Per-player override: staff can assign a specific fog to one player via command, taking precedence over all other rules.
  • Smooth transitions: fog changes interpolate over a configurable duration.
  • Optimized sync: the server checks each player's fog state every N ticks (configurable) and only sends a packet when the resolved state has changed.

Weather Immersion

Additional weather behavior, 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.
  • Lightning frequency control: increase or decrease the rate of lightning strikes during thunderstorms. Extra bolts are placed near online players within a configurable radius.
  • Camera shake on lightning: nearby players receive a camera shake proportional to their distance from a lightning strike. The effect fades over a configurable duration.
  • Camera shake compatibility: the shake is applied additively to existing camera angles, so it does not conflict with other mods that modify camera behavior.
  • Client shake override: optionally allow clients to reduce or disable camera shake via their own client config. The server can also enforce a fixed intensity for all players.
  • Automatic weather cycle: define a sequence of weather steps with durations in real-time minutes. The server cycles through them automatically.
  • Narrative messages: broadcast a configurable message when weather changes. Supports CHAT, ACTION_BAR, and IMMERSIVE (requires ImmersiveMessages) display modes.
  • Rain effects: apply potion effects to players caught in rain or thunderstorms, with optional sky-exposure checks.

RP Calendar

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

  • 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 advances relative to server ticks. ticksPerRpMinute, rpMinutesPerHour, and rpHoursPerDay can each be set independently. A Minecraft-day-sync mode is also available, advancing the calendar by one RP day per Minecraft day cycle.
  • Persistent: the current date and pause state are saved to world/data/rpimmersion/calendar.json and survive server restarts.
  • Pauseable: staff can freeze the calendar. The date continues to be displayed (with a configurable suffix) but time stops accumulating.
  • Flexible display: show the date as a HUD overlay, in the action bar, both, or nowhere. The format string supports {day}, {dayName}, {month}, {monthName}, {year}, {hour}, and {minute} placeholders.
  • RpEssentials schedule integration: the calendar can automatically pause when the RpEssentials server schedule is closed, and resume when it opens.
  • Live commands: set the date, advance it by N RP minutes, pause/resume, or force a sync to all players, 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 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

  • Fog transitions use a fixed start/target interpolation model. The "from" value is captured at the moment a new fog is applied, ensuring a consistent ease-in/out regardless of overlapping transitions.
  • Camera shake adds delta values to existing camera angles rather than replacing them, making it compatible with mods that also modify camera behavior.
  • Fog state is recalculated every N ticks per player (configurable, default 3 seconds). A packet is only sent when the resolved state differs from the last sent value.
  • RpEssentials integration uses Java reflection at runtime to read named zones. The dependency is declared as required in the mod metadata but is never hard-linked at compile time beyond the isStaff() permission check.

Screenshots

Gallery

This project has no gallery images yet.

Versions

Files

Relations

Project Relations

More like this

Similar Mods

Suggestions use data such as tags, dependencies, dependents, descriptions, titles, and more to rank how much they overlap with this mod.

On ModDex

Community snapshot

0
Ratings
0
Followers
0
In stacks

By the numbers

Statistics

<1,000
Total Downloads
CurseForge
<1,000
Modrinth
<1,000
Last Updated
CurseForge
Modrinth
Created
CurseForge
Modrinth
Last synced
When ModDex last fetched this project from CurseForge or Modrinth. Every project is re-checked on a schedule, and any project that ships a new file is synced automatically within hours of the release.
New file updates sync automatically
How syncing works