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.
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.
By SWATsqad
| Date uploaded | a month ago |
| Version | 1.3.0 |
| Download link | SWATsqad-VikingLove-1.3.0.zip |
| Downloads | 52 |
| Dependency string | SWATsqad-VikingLove-1.3.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.2350README
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
/jerkand find out. - It does not have to be a friend.
Every player on the server needs the mod. The dedicated server does not.
Install
- r2modman / Thunderstore Mod Manager: install like any other mod.
- Manual: unzip into
BepInEx/plugins/swats-VikingLove/. Keep the.objand.wavfiles 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
- 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.
- 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, 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.
- 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.
- Size varies with skin colour. Lightest skin gets 90% of the base size, darkest gets 110%.
- Relax emote. With pants off, the relax emote makes the left hand stroke it.
The
/jerkchat 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. - Physics. It sways when you run and bounces when you land.
- 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 |
| Emote | StrokeEnabled / StrokeEmote / StrokeRate | true / relax / 2.6 | Left-hand stroke during the emote |
| Emote | JerkEnabled / JerkSeconds / JerkFinishMessage | true / 10 / Phew. | The /jerk command |
| Bounce | Enabled / Stiffness / Damping | true / 90 / 5 | Spring physics |
| Bounce | LandingGain / RunGain / MaxDegrees | 2.5 / 6 / 40 | Kick strength and swing 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 |
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.