SWATsqad-VikingLove icon

VikingLove

18+. Vikings who skip their pants get a little more realistic, and there is a new way to greet a friend up close. Best discovered in game.

Last updated a month ago
Total downloads 356
Total rating 0 
Categories Mods Client-side Server-side
Dependency string SWATsqad-VikingLove-1.4.3
Dependants 1 other package depends on this package

This mod requires the following mods to function

denikson-BepInExPack_Valheim-5.4.2350 icon
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.2350

README

VikingLove

18+ only. This mod contains adult content. If that is not for you, do not install it.

Everything else is best discovered in game. Short version:

  • Vikings who go without pants get a little more realistic.
  • Walk up to a friend, look at them, press E. Press E again when you are done. Which side you approach from matters.
  • There is also a chat command. Type /jerk and find out.
  • It does not have to be a friend.

Every player needs the mod. The server only needs it if you want the server to decide the settings for everyone, which is optional; see Server settings below.

Install

  • r2modman / Thunderstore Mod Manager: install like any other mod.
  • Manual: unzip into BepInEx/plugins/swats-VikingLove/. Keep the .obj and .wav files next to the DLL.

A config file appears at BepInEx/config/swats.valheim.vikinglove.cfg after the first run. Every key is described inside it.


Spoilers

Stop here if you want the surprise.

.

.

.

.

.

What it actually does

  1. No pants, no secrets. Any player with an empty leg slot shows a low-poly, deliberately exaggerated penis in the game's art style. It uses the player's own skin texture and colour, so it matches whatever you picked at character creation. Put pants on and it disappears.
  2. Make love. Look at another player and press E. They freeze and bend over, you snap in behind them and thrust, a moaning sound plays for everyone nearby, and both of you see "Love is in the air. Your pierce skill is slowly increasing." Both participants gain one level per 100 seconds in the Spears skill while it lasts. Either player presses E to stop. It also stops if someone dies, teleports, walks away, or after 30 seconds. The prompt only appears while your own pants are off. Chains work: if a friend is already busy behind someone, you can get behind the friend, and so on. Only a player whose rear is not yet taken can be chosen. From the front the prompt becomes "Go down on": you kneel and service them instead. The mesh is hidden on both of you while that lasts, since at that range it clips through heads and bodies; the head motion and the sound carry it. Turn that off with HideMeshDuringOral if you would rather see the clipping, with its own sound on top of theirs. Only players can be serviced this way; creatures are always taken from behind, and from up to 6 metres away so you are not standing in reach of their claws with your pants down. The person at the front of a chain can be taken from behind and serviced from the front at the same time. Kneelers cannot be chained. When any session in a group runs its full duration, the whole group finishes together, so late joiners get Rested too.
  3. Creatures. Anything alive can be taken from behind: enemies, deer, your tamed boar. Bosses are excluded. It stops fighting, its health drains over the session (kept at 1 until the end), A full-length session drains half its maximum health and costs you 100 stamina, so it softens a fight rather than winning it for you. Run out of stamina and you stop. It does not die on its own; the config can turn that back on. You line up with the top of its rear legs, or its pelvis, or the lower rear of its body when the rig has neither, and it stretches as far as it needs to in order to connect. Config section Enemies has the switches and a per-second drain cap for boss fights.
  4. Size varies with skin colour. Lightest skin gets 90% of the base size, darkest gets 110%.
  5. Relax emote. With pants off, the relax emote makes the left hand stroke it. The /jerk chat command does the same on demand, during any emote or while moving, speeds up over 10 seconds and ends with the spray. Type it again to cancel early.
  6. Physics. It swings when you run, spin on the spot, jump or land, and keeps wobbling for a second or two afterwards. Purely visual and computed on each machine separately.
  7. Finish line. Let a session run its full 30 seconds and both of you get Rested for 10 minutes, a screen shake, sparkles, a message, and five seconds of spray from both tips. Pressing E early gives nothing.

Custom sound

Every file named moan*.wav next to the DLL is loaded and one is picked at random each time (the receiving partner). Files named oral*.wav do the same for the kneeling partner. Add, remove or replace files freely (8/16/24/32-bit PCM WAV). No rebuild needed.

Shipped sounds: moan_smm.wav (see Credits) and oral_popsicle.wav.

Config

Section Key Default Notes
Genitals Enabled true Automatic when the leg slot is empty
Genitals ShowOnFemaleModels true
Genitals Scale 1.0 0.2 to 3.0
Genitals ForwardOffset / UpOffset / TiltDegrees 0.06 / -0.06 / 20 Position tuning
Genitals UseBodyShader true Set false if it renders black or pink
Genitals FlipWinding false Set true if it looks inside-out
Genitals FlatShading false Faceted instead of smooth
Genitals SizeAtLightestSkin / SizeAtDarkestSkin 0.9 / 1.1 Size by skin colour
Genitals LightestSkinLuminance / DarkestSkinLuminance 1.0 / 0.25 Calibration for the above
Genitals SkinToneOverride (empty) Hex colour to force the base tone
Love Enabled true
Love StartDistance 3.0 Metres
Love CoupleDistance 0.50 Gap behind the partner
Love OralDistance / OralHeadBob / KneelEmote 0.55 / 0.07 / kneel Kneeling partner placement and motion
Enemies Enabled / AllowTamed / AllowBosses true / true / false Who counts
Enemies AnchorHeightFraction 0.35 Fallback anchor height on unnamed rigs
Enemies StartDistance 6 Metres from which a creature can be picked
Enemies DrainPercentOfMaxHealth / DrainCapPerSecond / FinishKills 50 / 0 / false Health drain
Enemies StaminaPerSession 100 Stamina the initiator spends
Love MaxDurationSeconds 30 0 = no limit
Love ThrustRate / ThrustAmplitude 2.2 / 0.13 Per second / metres
Love BendDegrees 70 Partner bend-over angle
Love InitiatorLeanDegrees 12 Initiator forward lean
Love AimDownDegrees 10 Extra downward aim during a session
Love StretchEnabled / StretchMax / StretchOverlap true / 4 / 0.10 Lengthens to reach the partner
Love ReceiverScale 0.4 Receiving partner's mesh size, dangling
Love HideMeshDuringOral true Hide the mesh on both players during oral
Emote StrokeEnabled / StrokeEmote / StrokeRate true / relax / 2.6 Left-hand stroke during the emote
Emote JerkEnabled / JerkSeconds / JerkFinishMessage true / 10 / Phew. The /jerk command
Physics Enabled / Stiffness / Damping true / 45 / 2.2 Spring feel
Physics LandingKickDegrees / RunSwayDegrees / TurnSwayDegrees 35 / 18 / 25 Swing sizes
Physics MaxDegrees 70 Hard limit
Love FinishEnabled / FinishRestedMinutes / FinishMessage true / 10 / Refreshed! Reward for a full-length session
Love RequirePantsDown true Prompt only with your own pants off
Love PartnerYawDegrees -20 Partner turn while pinned, negative = left
Love SoundVolume / SoundRange 1.0 / 30
Love SkillLevelsPerTenSeconds 0.1 0 = off
Love FinishSpraySeconds 5 0 = off
Love SkillName Spears Any SkillType name
Love StartMessage Love is in the air... Center-screen text

Server settings

Install the mod on the server as well and its own config file becomes the authority. Everyone who joins is handed those values and uses them until they disconnect, then their own come back. Nobody's config file is ever written to or lost.

If the server does not run the mod nothing changes: no settings are sent and everyone uses their own file, exactly as before.

Two settings are always personal and never sent, because they are about your own ears: Sound/Volume and Sound/Range. Three more are local because they only matter for fixing rendering on your own machine: UseBodyShader, FlipWinding and FlatShading.

Changing the server's config file takes effect immediately. The mod watches the file, re-reads it when you save, and hands the new values to everyone connected within about a second. No restart of the server or of anybody's game.

Two settings are the exception and need a relog, because the mesh is built from them once when the game starts: FlipWinding and FlatShading. Both are local troubleshooting switches.

vikinglove_reload in the console does the same thing by hand if you ever need it.

Credits

  • Sound: "Screaming loudly at the hardcore gay sex penetration in a hotel" by SexyMaleMuscle on Freesound, https://freesound.org/people/SexyMaleMuscle/sounds/795355/. Licensed under CC BY-NC 4.0. Changes: trimmed to seconds 50 to 90, converted to mono 22.05 kHz WAV, compressed and normalized, fade in and fade out added.
  • Oral sound: oral_popsicle.wav, a popsicle sound effect supplied by the mod author, converted to mono 22.05 kHz, compressed and normalized.
  • Model and textures were generated for this mod.

This mod is free and non-commercial. Do not sell it or bundle it in anything sold.