Mods / Arcanum Lib

Tags:
Utility Library HUD UI
Authors:
DreadMob, Flajakay
Side:
Both
Created:
Aug 26th at 12:53 PM
Last modified:
Oct 3rd at 8:14 PM
Downloads:
1161
For testers (for Vintage Story 1.22.1 - 1.22.7):
ArcanumLib.zip  1-click install

Arcanum Lib

A shared utility library for Vintage Story. Provides reusable systems and helpers; no in-game content on its own.

Note. ArcanumLib is a utility library, not a standalone mod. Useful functions are available for any Vintage Story mod, but the API is driven by the Alegacy project set.

What it is

ArcanumLib is a low-level, instance-based shared layer for Vintage Story. Its strongest parts are the HUD/GUI, hologram, status-effect and particle systems — but it also covers persistence, events, actions, scheduling, networking and small utilities. It is the common ground under the Alegacy mods.

Arcanum Lib will keep expanding with new helpers and systems. If you have an idea, a missing utility, or a whole subsystem in mind, suggest it in our Discord — we will implement it.

What it is not

  • It does not add blocks, items, creatures, or gameplay on its own.
  • It is not a high-level framework that writes a mod for you.
  • It is not a guaranteed-stable public SDK.

Capabilities

GUI & HUD

HudPanel, HudDialog, PacketIconHud, TransientOverlay

Holograms

SingleHologramRenderer, AreaHologramRenderer

Particles

ParticleEffectBuilder, ParticleUtils.Colors

Status & Effects

StatusEffectService, IStatusEffect, StatModifierEffect

Persistence

ModDataStore, IModDataStore<T>, versioned JSON, migrations

Events & Actions

EventBusService, ActionRegistryService, ActionExecutorService

Scheduling

DeferredWorkService, GameTimeScheduler

Network

TypedNetworkChannel, ServerBroadcaster

Helpers

ApiExtensions, PositionUtils, CollectibleNameResolver, DamageHelper

Lifecycle

ArcanumRuntime, ArcanumServices, ArcanumLibModSystem

Who should use it

Useful for any Vintage Story mod that needs the listed systems. The defaults and examples are oriented toward the Alegacy mods, so expect the API to move as those projects evolve.

Quick examples

using ArcanumLib.Persistence;

var store = ModDataStore.GetOrCreate<MySaveData>(sapi, "mymod", "state", 1);
store.Data.Counter++;
store.MarkDirty();
using ArcanumLib.Effects;

var svc = ArcanumServices.Get<StatusEffectService>()!;
var effect = new StatModifierEffect("mymod:swiftness", "walkspeed", 1.5f);
svc.Apply(entity, effect, durationMs: 10000, data: null);
using ArcanumLib.Particles;

var p = new ParticleEffectBuilder()
  .Count(8, 16)
  .Color(ParticleUtils.Colors.Fire)
  .Position(pos, 0.5f)
  .VelocityUp(0.2f, 0.6f)
  .Life(0.8f)
  .Gravity(-0.02f)
  .Size(0.25f, 0.1f)
  .Quad()
  .Build();
capi.World.SpawnParticles(p);

How to reference

Add ArcanumLib.dll as a dependency. Ensure ArcanumLibModSystem loads before your mod system, then resolve services through ArcanumServices.Get<T>() or ArcanumRuntime.Current.Services.

Used with

Arcanum Lib is already used by the Alegacy server and the Alegacy Quest Framework mod.

Alegacy Server Alegacy Quest Framework

Documentation

API docs are in the release archive and online at dreadmob.github.io/ArcanumLib.

Mod Version Mod IdentifierFor Game version Downloads Released Changelog Download 1-click mod install*
1.0.0-rc.7 arcanumlib
1.22.1 - 1.22.7
452 Oct 3rd at 8:14 PM ArcanumLib.zip 1-click install

bug fixes

1.0.0-rc.6 arcanumlib
1.22.1 - 1.22.7
15 Oct 3rd at 6:01 PM ArcanumLib.zip 1-click install

UI features and more

1.0.0-rc.5 arcanumlib
1.22.1 - 1.22.7
118 Sep 29th at 4:33 PM Empty ArcanumLib.zip 1-click install
1.0.0-rc.4 arcanumlib
1.22.1 - 1.22.7
162 Sep 21st at 11:14 AM Empty ArcanumLib.zip 1-click install
1.0.0-rc.3 arcanumlib
1.22.1 - 1.22.7
45 Sep 18th at 1:05 PM ArcanumLib.zip 1-click install

UI features (beta)

1.0.0-rc.2 arcanumlib
1.22.1 - 1.22.7
95 Sep 5th at 6:15 PM ArcanumLib.zip 1-click install

Add display cull faces render pass patch

1.0.0-rc.1 arcanumlib
1.22.1 - 1.22.7
274 Aug 26th at 12:58 PM Empty ArcanumLib.zip 1-click install

Disclaimer

By downloading a mod you consent to our Terms of Use.

We tell you this specifically because we want to make sure you are aware that we cannot validate every mod, and you are responsible for any damages you might incur by installing or loading mods.

This prompt will not be shown to you again (for the current browser session) if you proceed.


2 Comments (oldest first | newest first) (threaded | flat)

NeoB, Sep 5th at 8:16 PM

Great work I can't wait to see it in a bunch of mods

DreadMob , Sep 10th at 6:45 AM
@NeoB: Great work I can't wait to see it in a bunch of mods

Thanks! Really appreciate it 🙏