Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
ShieldBubble
Configurable shield generator radius (meters). Changes both the math and the visual dome effect.
By Dr0PeR
| Date uploaded | 2 weeks ago |
| Version | 1.1.0 |
| Download link | Dr0PeR-ShieldBubble-1.1.0.zip |
| Downloads | 73 |
| Dependency string | Dr0PeR-ShieldBubble-1.1.0 |
This mod requires the following mods to function
denikson-BepInExPack_Valheim
BepInEx pack for Valheim. Preconfigured with the correct entry point for mods and preferred defaults for the community.
Preferred version: 5.4.2333README
Shield Bubble
What it does
A Valheim mod (BepInEx 5) that pins the shield generator radius to a fixed value in
meters, set in a config file (BepInEx/config/dr0per.shieldbubble.cfg). In vanilla 1.0 the
radius scales with fuel (empty shield ≈ 10 m → full ≈ 30 m); this mod locks it to whatever
value you choose.
The fixed value is applied consistently to the radius math and to both visual layers (the dome and the image effect), so what you see always grows or shrinks together with the real radius — no manual tweaking of anything graphical.
Requirements
- Valheim 1.0+.
- BepInEx 5 for Valheim. The standard Thunderstore pack
(
denikson-BepInExPack_Valheim) works; the AzumattDev/BepInExv5-ltsfork is also compatible. Install the pack like a standard BepInEx 5: unzip it into the game folder → launch the game.
Installation
- Download the mod (zip) from Thunderstore.
- Copy
ShieldBubble.dllinto theBepInEx/plugins/folder. - Launch the game;
BepInEx/config/dr0per.shieldbubble.cfgis created with the default value (Radius = 30).
Multiplayer / Dedicated server
- The SERVER's config wins. In multiplayer, the server applies its own config to all connected clients, and a live config change on the server reaches the clients in < 1 s, with no restarts.
- The mod is REQUIRED on the server AND on every client. (A dedicated server with its own BepInEx install works the same way: it is the one that holds the config and enforces it on the clients.)
- Enforcement: if the server has
Enabled = true, a client without the mod is disconnected after ~10 s; the server leaves a warning in its log with the player's name. - If the server has
Enabled = false, there is no enforcement and no config sync: each machine just uses its own local config. - Singleplayer uses that machine's local config.
- The reference cfg is the SERVER's (
BepInEx/config/dr0per.shieldbubble.cfgon the server machine): editing a client's config in multiplayer does not affect its shield (the server's value wins).
Configuration
BepInEx/config/dr0per.shieldbubble.cfg:
[Shield]
# Shield generator radius in meters (1-500).
Radius = 30
# Enable the mod.
Enabled = true
Reference values: vanilla 10 (empty)–30 (full); 5 = tiny, 30 = vanilla max, 100 = "castle", 500 = huge (for large radii the distance at which the effect is visible is extended automatically, so the dome can be seen from far away).
- Fuel still controls ON/OFF, color and particles; as long as there is fuel, the radius is the fixed configured value.
- Live editing: save the
.cfgand the change applies in < 1 s, with the dome growing or shrinking in front of you.
Notes & limitations
- The radius is fixed as long as there is fuel: it does not interpolate between 10 and 30 the way fuel does in vanilla; the configured value is applied from the first frame with fuel.
- At 0 fuel the shield is off (radius 0), just like in vanilla.
- Disabling live (
Enabled = false) keeps the last applied radius until the shield disappears and comes back; to return to the vanilla scale (10–30 depending on fuel), reload the world. - If Valve renames an internal field in a future version, the mod detects it, logs a warning, and stays inactive — no game crash.
Credits
- BepInEx — BepInEx team, MIT license.
- 0Harmony / HarmonyX — patching engine (bundled with BepInEx 5).
CHANGELOG
Changelog
Kept in sync with the Changelog section of README.md. Thunderstore stores it
as its own field (it is read from CHANGELOG.md inside the package zip), which is what feeds
the package's Changelog tab and the "what's new" text in mod managers.
1.1.1
- The server no longer re-sends the config on a timer. It used to push it to every connected client every 10 s, changed or not; a client now receives it once when it joins and the server speaks again only when its own config actually changes (delivered with a short 3-packet retry, then silence). A server with an untouched config now sends nothing at all, and its log stops repeating itself.
- A client that misses its first config push recovers in about 1 s instead of up to 10 s.
- Live config changes still reach clients in under a second; nothing else about the sync changed, and 1.1.0 clients keep working against a 1.1.1 server (same protocol).
1.1.0
- Multiplayer sync fixed on dedicated servers: clients now really do receive the server's config, and the "mod required" check actually runs. The handshake used to travel on the player character's network channel, which the game silently drops when that character is outside the server's simulation distance — the normal case on a dedicated server, so clients kept their own local radius and no client was ever checked. It now runs on the game's peer-level RPC channel (the one the game uses to spawn objects), which does not depend on the character being nearby.
- Enforcement: with
Enabled = truea client without the mod is disconnected after ~10 s and the server log names the player; withEnabled = falsethere is neither sync nor enforcement. - Rejoining after a dropped connection no longer gets a legitimate client kicked.
- Step-by-step logging on both sides, so a sync issue can be read directly from the logs.
1.0.0
- First release: pins the shield generator radius to a fixed value in meters (
Shield/Radius, 1–500 m), withShield/Enabledto switch the mod on and off. - The value is applied to the radius math and to both visual layers (dome mesh scale plus the image effect's draw distance), so the dome you see always matches the real radius.
- Live editing: save the
.cfgand the change applies in under a second, the dome growing or shrinking in place — no world reload. - Fuel keeps controlling on/off, colour and particles; at 0 fuel the shield is off, as in vanilla.
- Introduced the server-authoritative config and the "mod required on clients" rule, both of which were finished and fixed in 1.1.0.
Note: an internal 1.0.1 build existed during development (build/test tooling and package icon only, no behaviour change); it was never published and its number was folded back into 1.0.0.