BlackViking-FehuNews icon

FehuNews

News and Announcements for Forteca Fehu Servers

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-5.4.2333 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.2333
ValheimModding-Jotunn-2.29.0 icon
ValheimModding-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.0

README

⚔ 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


⚒ 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."

fehu1 fehu2 fehu3
fehu10 fehu11 fehu12
fehu4 fehu5 fehu6
fehu7 fehu8 fehu9

=========================================================================================

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

  1. Install BepInEx 5 on the Valheim dedicated server.
  2. Build FehuNews or use the generated DLL.
  3. 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:

  • EnableAnnouncements
  • AnnouncementIntervalMinutes
  • AnnouncementMessages

Discord settings:

  • EnableWebhook
  • WebhookUrl
  • EmbedMode
  • WebhookTimeoutSeconds
  • WebhookRetryCount

Discord event toggles:

  • SendJoinEvents
  • SendLeaveEvents
  • SendDeathEvents
  • SendBossEvents
  • SendDayEvents
  • SendAnnouncementEvents
  • SendRemoteAnnouncementEvents
  • SendServerEvents

In-game message toggles:

  • EnableJoinMessages
  • EnableLeaveMessages
  • EnableDeathMessages
  • EnableBossMessages
  • EnableDayMessages
  • EnableServerMessages

Remote announcement settings:

  • EnableRemoteAnnouncements
  • RemoteBindAddress
  • RemotePort
  • RemoteAuthToken
  • RemoteRateLimitSeconds
  • RemoteMaxMessageLength

Anti-spam settings:

  • DefaultEventCooldownSeconds
  • PlayerEventCooldownSeconds
  • DeathEventCooldownSeconds
  • BossEventCooldownSeconds
  • SaveEventCooldownSeconds
  • AnnouncementCooldownSeconds
  • EventQueueLimit

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.Start
  • ZNet.WorldSetup
  • ZNet.OnDestroy
  • ZNet.UpdatePlayerList
  • ZNet.SaveWorld
  • Character.Start
  • Character.OnDeath
  • ZRoutedRpc.InvokeRoutedRPC
  • MessageHud.MessageType.Center
  • EnvMan.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