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.
| Last updated | a day ago |
| Total downloads | 5 |
| Total rating | 0 |
| Categories | Server-side AI Generated |
| Dependency string | BlackViking-FehuNews-420.0.1 |
| Dependants | 0 other packages depend on this package |
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.2333ValheimModding-Jotunn
Jötunn (/ˈjɔːtʊn/, 'giant'), the Valheim Library was created with the goal of making the lives of mod developers easier. It enables you to create mods for Valheim using an abstracted API so you can focus on the actual content creation.
Preferred version: 2.29.0README
⚔ F O R T E C A · ᚠ · F E H U ⚔
Community • Brotherhood • Persistence Since 1999
Forged by Struggle • United by Brotherhood • Enduring Through Time
Founded in 1999, Forteca is an international gaming community built on loyalty, cooperation, creativity and shared adventures.
We are not a seasonal clan. We are a long-lived fellowship.
🛡 27 Years Strong
🔊 Lore Audio
| 🎧 Forteca Intro | ▶ Play |
| 🥁 The Tenth World | ▶ Play |
| 🎺 Black's War Song | ▶ Play |
| 📯 Forteca Was Forged | ▶ Play |
🌐 Community
🌍 Website • 🛠 Support Us 💬 Discord • 🎮 Steam Group 📺 YouTube • 👑 Valheimians
⚒ Current Projects
⚔ Territories & Clan Warfare 🎯 Bounty System 🛡 Clan Vaults 📜 Clan Reputation System
🏰 Forteca-Fehu Cluster Server 🌍 Multi-Realm Experience👥 Shared Character Progression
📜 Legacy
ᚠᛟᚱᛏᛖᚲᚨ – ᚱᛖᛚᛗᛊ ᛟᚠ ᚠᛖᚺᚢ
Forged in the fires of friendship and bound by the rune of Fehu,
Forteca stands as a timeless fellowship of builders, warriors and dreamers.
Founded by Black Viking in 1999, the community has endured through generations of games, worlds and friendships.
Honor. Loyalty. Brotherhood.
❤️ Support
Forteca is a non-profit gaming community sustained entirely by its members. We are audited monthly.
All support is used to maintain servers, infrastructure, projects and community events.
We are audited monthly.

👑 Leadership & Staff 👑
*Keeping Forteca alive"
|
BlackViking |
Dragteca |
JuliusBlessed |
Yggdra |
Freja |
BlackThunder |
⚔️ Gamers for Gamers — Since 1999
Thanks also to : Dzk, Dreanegade, AzathothR, Dave, Ephemeral, KGvalheim, Blacks7ar, Shawesome, JPValheim
ᚠ ᚢ ᚦ ᚨ ᚱ ᚲ ᚷ ᚹ ᚺ ᚾ ᛁ ᛃ ᛇ ᛈ ᛉ ᛊ ᛏ ᛒ ᛖ ᛗ ᛚ ᛜ ᛞ ᛟ
⚔️ "Eternal we were. Eternal we remain. Eternal we shall be."
|
|
|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
=========================================================================================
FehuNews
FehuNews is a server-side only Valheim BepInEx 5 event, notification, and announcement framework for the Forteca ecosystem.
Clients do not need the mod installed. In-game notifications use Valheim's
vanilla ShowMessage routed RPC, so vanilla clients can display center-screen
messages without FehuNews.
Installation
- Install BepInEx 5 on the Valheim dedicated server.
- Build FehuNews or use the generated DLL.
- Install on the server only:
BepInEx/plugins/FehuNews/FehuNews.dll
Do not install FehuNews on clients unless they are also hosting a game.
Architecture
Event Source
-> FehuEventManager
-> InGameNotificationSink
-> DiscordWebhookSink
-> LoggingSink
-> Anti-Spam
All internal features and external integrations publish FehuEvent objects into
one centralized pipeline. The event manager performs duplicate suppression,
main-thread marshaling, listener notification, in-game delivery, Discord delivery,
and logging.
Supported Events
Server:
- Server Started
- Server Stopping
- World Loaded
- World Saved
Players:
- Player Joined
- Player Left
- First Time Player Joined
- Player Died
Announcements:
- Scheduled Announcement
- Manual Admin Announcement
- Remote Announcement
World:
- New Day Started
- Day Milestones
Bosses:
- Boss Summoned
- Boss Defeated
Future Forteca API events:
- TerritoryCaptured
- TerritoryLost
- ClanCreated
- ClanDisbanded
- ClanWarDeclared
- AchievementUnlocked
- EconomyTransaction
- MarketPurchase
Configuration
Generated at:
BepInEx/config/forteca.fehunews.cfg
Announcement settings:
EnableAnnouncementsAnnouncementIntervalMinutesAnnouncementMessages
Discord settings:
EnableWebhookWebhookUrlEmbedModeWebhookTimeoutSecondsWebhookRetryCount
Discord event toggles:
SendJoinEventsSendLeaveEventsSendDeathEventsSendBossEventsSendDayEventsSendAnnouncementEventsSendRemoteAnnouncementEventsSendServerEvents
In-game message toggles:
EnableJoinMessagesEnableLeaveMessagesEnableDeathMessagesEnableBossMessagesEnableDayMessagesEnableServerMessages
Remote announcement settings:
EnableRemoteAnnouncementsRemoteBindAddressRemotePortRemoteAuthTokenRemoteRateLimitSecondsRemoteMaxMessageLength
Anti-spam settings:
DefaultEventCooldownSecondsPlayerEventCooldownSecondsDeathEventCooldownSecondsBossEventCooldownSecondsSaveEventCooldownSecondsAnnouncementCooldownSecondsEventQueueLimit
World settings:
DayMilestones
Discord Webhooks
FehuNews sends Discord webhooks asynchronously. Delivery is non-blocking, serialized, retry protected, timeout protected, and failure safe. If Discord is offline, Valheim continues running.
Payload modes:
- Plain text
- Viking themed embeds titled
Voice of Odin
Remote Announcements
Remote announcements let trusted automation send announcements without joining the server.
Enable:
[Remote Announcements]
EnableRemoteAnnouncements = true
RemoteBindAddress = 127.0.0.1
RemotePort = 8095
RemoteAuthToken = change-this-long-random-token
RemoteRateLimitSeconds = 5
RemoteMaxMessageLength = 240
Request:
curl -X POST "http://127.0.0.1:8095/announcement" \
-H "Authorization: Bearer change-this-long-random-token" \
-H "Content-Type: application/json" \
-d "{\"message\":\"The market opens in ten minutes.\"}"
The endpoint also accepts plain text bodies. Remote announcements use the same event pipeline, so they display in game, send to Discord, log, and pass duplicate cooldowns.
Production note: keep RemoteBindAddress on 127.0.0.1 and expose it only
through a VPN, firewall rule, or trusted reverse proxy. Binding public interfaces
may require an HTTP URL ACL on Windows.
Admin Commands
Admin-only commands:
fehunews help
fehunews send <message>
fehunews reload
fehunews status
fehunews testwebhook
reload reloads config, resets the scheduled announcement timer, and restarts
the remote announcement listener.
Public API
External Forteca mods can reference FehuNews.dll and publish events without
knowing the internal sinks or delivery details.
using FehuNews.Core;
FehuEventManager.Publish(new FehuEvent(
FehuEventType.TerritoryCaptured,
"Territory Captured",
"Clan Ravenshield captured Black Forest Outpost.",
dedupeKey: "territory-captured:black-forest-outpost",
context: new FehuEventContext(
source: "FortecaTerritories",
actorName: "Ravenshield",
targetName: "Black Forest Outpost")));
Listeners can subscribe:
public sealed class MyListener : IFehuEventListener
{
public void OnFehuEvent(FehuEvent fehuEvent)
{
// Observe FehuNews events.
}
}
FehuEventManager.RegisterListener(new MyListener());
Reliability Notes
Valheim APIs verified during build:
ZNet.StartZNet.WorldSetupZNet.OnDestroyZNet.UpdatePlayerListZNet.SaveWorldCharacter.StartCharacter.OnDeathZRoutedRpc.InvokeRoutedRPCMessageHud.MessageType.CenterEnvMan.GetDay
Player death and boss events depend on the dedicated server executing the
relevant Character lifecycle. They are kept because they compile against and
hook valid Valheim APIs, but they should be watched carefully during public
testing across dedicated-server and hosted-world scenarios.
Boss summoned currently means a boss Character started on the server. It does
not prove an altar summon specifically; another mod spawning a boss can also
trigger it.
Build
Update Directory.Build.props if Valheim is installed elsewhere, then run:
dotnet build -c Release
Output:
bin/Release/net472/FehuNews.dll











