BlueBeard.Core
0.1.0-ci.24
dotnet add package BlueBeard.Core --version 0.1.0-ci.24
NuGet\Install-Package BlueBeard.Core -Version 0.1.0-ci.24
<PackageReference Include="BlueBeard.Core" Version="0.1.0-ci.24" />
<PackageVersion Include="BlueBeard.Core" Version="0.1.0-ci.24" />
<PackageReference Include="BlueBeard.Core" />
paket add BlueBeard.Core --version 0.1.0-ci.24
#r "nuget: BlueBeard.Core, 0.1.0-ci.24"
#:package BlueBeard.Core@0.1.0-ci.24
#addin nuget:?package=BlueBeard.Core&version=0.1.0-ci.24&prerelease
#tool nuget:?package=BlueBeard.Core&version=0.1.0-ci.24&prerelease
BlueBeard.Core
Shared foundation library for all BlueBeard plugins. Provides configuration management, common helpers, and the IManager lifecycle interface.
Installation
Add a project reference:
<ProjectReference Include="..\BlueBeard.Core\BlueBeard.Core.csproj" />
IManager
Standard lifecycle interface for all managers:
public interface IManager
{
void Load();
void Unload();
}
ConfigManager
XML-based configuration system with automatic validation and migration. New properties added to a config class are automatically populated with defaults on next load. Removed properties are cleaned up on save.
Setup
using BlueBeard.Core.Configs;
// In your plugin's Load():
var configManager = new ConfigManager();
configManager.Initialize(Directory); // RocketPlugin.Directory
configManager.LoadConfig<MyConfig>();
Defining a Config
using BlueBeard.Core.Configs;
public class MyConfig : IConfig
{
public ushort SpawnEffectId { get; set; }
public float CooldownSeconds { get; set; }
public int MaxPlayers { get; set; }
public void LoadDefaults()
{
SpawnEffectId = 1234;
CooldownSeconds = 30f;
MaxPlayers = 10;
}
}
Reading and Reloading
// Read a loaded config:
var config = configManager.GetConfig<MyConfig>();
// Hot-reload from disk:
var updated = configManager.ReloadConfig<MyConfig>();
Configs are saved as {TypeName}.configuration.xml inside a Configs/ subfolder of the plugin directory.
Helpers
ThreadHelper
Bridge between background threads and Unity's main thread:
using BlueBeard.Core.Helpers;
// Run work off the main thread:
ThreadHelper.RunAsynchronously(() =>
{
var data = LoadExpensiveData();
// Return to main thread to use Unturned APIs:
ThreadHelper.RunSynchronously(() =>
{
UnturnedChat.Say(player, $"Loaded {data.Count} items");
});
});
// Async/await version:
ThreadHelper.RunAsynchronously(async () =>
{
var data = await db.Table<MyEntity>().QueryAsync();
ThreadHelper.RunSynchronously(() => ProcessOnMainThread(data));
});
MessageHelper
Thread-safe chat messaging (automatically dispatches to main thread):
using BlueBeard.Core.Helpers;
// Safe to call from any thread:
MessageHelper.Say(player, "Hello!", Color.green);
MessageHelper.Say("Server broadcast", Color.yellow);
SurfaceHelper
Snap a world position down to the terrain/structure surface:
using BlueBeard.Core.Helpers;
var groundPos = SurfaceHelper.SnapPositionToSurface(targetPosition);
// Optionally pass a custom layer mask:
var groundOnly = SurfaceHelper.SnapPositionToSurface(pos, RayMasks.GROUND);
BarricadeHelper
Extract barricade info from a raycast hit and change barricade ownership:
using BlueBeard.Core.Helpers;
if (BarricadeHelper.TryGetBarricadeFromHit(hitTransform, out var info))
{
Logger.Log($"Hit barricade: {info.AssetName} (ID: {info.AssetId})");
}
BarricadeHelper.ChangeBarricadeOwner(transform, newOwnerSteamId, groupId);
CommandDocGenerator
Auto-generate markdown documentation for all CommandBase commands in your plugin:
using BlueBeard.Core.Helpers;
// In your plugin's Load() or OnLevelLoaded():
CommandDocGenerator.Generate(Directory);
// Writes one .md file per command to {pluginDirectory}/Commands/
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET Framework | net481 is compatible. |
-
.NETFramework 4.8.1
- No dependencies.
NuGet packages (12)
Showing the top 5 NuGet packages that depend on BlueBeard.Core:
| Package | Downloads |
|---|---|
|
BlueBeard.Database
Lightweight MySQL ORM for Unturned plugins. Attribute-based entity mapping, LINQ-to-SQL expressions, and automatic schema sync. |
|
|
BlueBeard.Zones
Advanced zone management for Unturned. Trigger colliders, persistent storage, 26 enforcement flags, block lists, and CLI administration. |
|
|
BlueBeard.Holograms
Proximity-based hologram system for Unturned. Pooled UI overlays, per-player state, and dynamic metadata. |
|
|
BlueBeard.UI
Full-screen UI framework for Unturned. Hierarchical screens and dialogs with automatic event routing and per-player state. |
|
|
BlueBeard.Effects
Managed effect emitter system for Unturned. Spatial patterns, audience targeting, and automatic lifecycle management. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.0-ci.24 | 137 | 7/4/2026 |
| 0.1.0-ci.23 | 137 | 6/25/2026 |
| 0.1.0-ci.22 | 174 | 5/8/2026 |
| 0.1.0-ci.19 | 109 | 5/7/2026 |
| 0.1.0-ci.18 | 99 | 5/7/2026 |
| 0.1.0-ci.17 | 116 | 5/3/2026 |
| 0.1.0-ci.16 | 113 | 5/3/2026 |
| 0.1.0-ci.15 | 84 | 4/13/2026 |
| 0.1.0-ci.14 | 88 | 4/12/2026 |
| 0.1.0-ci.13 | 77 | 4/12/2026 |
| 0.1.0-ci.12 | 81 | 4/12/2026 |
| 0.1.0-ci.11 | 87 | 4/12/2026 |
| 0.1.0-ci.10 | 80 | 4/11/2026 |
| 0.1.0-ci.9 | 73 | 4/7/2026 |
| 0.1.0-ci.8 | 75 | 4/7/2026 |
| 0.1.0-ci.7 | 76 | 4/7/2026 |
| 0.1.0-ci.6 | 86 | 3/14/2026 |
| 0.1.0-ci.5 | 132 | 2/22/2026 |