Skip to content

API and Namespace Index

This index is generated from the matching client and server public API baselines. Use DLLs and adjacent XML documentation from one developer SDK. Server author APIs live under Anomaly.Server.Api; Anomaly.Server.Plugin and Config are the LabAPI entry point and configuration types.

AssemblySupported use
Anomaly.Client.Api.dllPublic API for MelonLoader mods and managed modules.
Anomaly.Shared.dllDirectional message policy, shared DTOs, and items-only catalog contract.
Anomaly.Server.dllLabAPI companion and custom-item API.
Anomaly.Client.dllRuntime implementation; do not reference.
Namespace areaKey public types
CommandsICommand, CommandContext, CommandRegistry
CompatibilitySupportedGameVersionAttribute
Config/PersistenceClientConfig, ClientPersistence, IConfigSource, IPersistenceStore
InputInputKey, InputBindingDefinition, InputRegistry, VirtualInputs
SchedulingScheduler, ScheduledTask
ModdingIAnomalyMod, IModContext, ModManifest, ModDependency, ModDependencyResolver, FeatureHealth
Mod settingsModSettings, ModSettingMetadata, ModSettingCategoryMetadata
NetworkingAnomalyMessaging
Capabilities and motionClientCapabilities, LocalPlayerMotion
ModelsCharacterModels, ItemModels, IModelHook, ModelAttachment, MaterialTint
ResourcesAnomalyResources, AssetEvents.OverrideApplied, AssetEvents.OverrideCleared
LocalizationTr
UI/HUDUiCanvas, UiLayer, LocalHint, LocalBroadcast, Hud, ScreenEffects, Subtitles
FeaturesClient, Player, LocalPlayer, Item, Pickup, Room, Door, AdminToy, and typed wrappers
EventsHandler classes under Anomaly.Client.Api.Events.Handlers

Client.EnrollmentId is nullable session state. It is set by the authenticated server and cleared on disconnect.

StatsEvents publishes Healed, StaminaChanged, and HumeShieldChanged.

Public types available to client plugin authors, grouped by namespace.

Public types: 197 across 18 namespaces.

  • AnomalyResources (class)
  • AssetEvents (class)
  • CommandContext (class)
  • CommandRegistry (class)
  • ICommand (interface)
  • GameVersionCompatibility (class)
  • SupportedGameVersionAttribute (class)
  • ClientConfig (class)
  • IConfigSource (interface)
  • SceneType (enum)
  • AnomalyEventHandler<T1> (delegate)
  • ICancellableEvent (interface)
  • AdminToyAddedEventArgs (class)
  • AdminToyRemovedEventArgs (class)
  • AnnouncerLineScheduledEventArgs (class)
  • AnnouncerLineStartedEventArgs (class)
  • AnomalyMessageReceivedEventArgs (class)
  • AssetOverrideAppliedEventArgs (class)
  • AssetOverrideClearedEventArgs (class)
  • AudioPlayingEventArgs (class)
  • BroadcastShowingEventArgs (class)
  • CameraShakingEventArgs (class)
  • CanvasReadyEventArgs (class)
  • ClientConnectedEventArgs (class)
  • ClientDisconnectedEventArgs (class)
  • ClientReadyEventArgs (class)
  • CurrentItemChangedEventArgs (class)
  • CurrentItemChangingEventArgs (class)
  • EffectDisabledEventArgs (class)
  • EffectEnabledEventArgs (class)
  • EffectIntensityChangedEventArgs (class)
  • ElevatorEventArgs (class)
  • FacilityCameraEventArgs (class)
  • FileTransferCompleteEventArgs (class)
  • FileTransferProgressEventArgs (class)
  • FirearmShotEventArgs (class)
  • GeneratorEngagedEventArgs (class)
  • HintDisplayingEventArgs (class)
  • InventoryChangedEventArgs (class)
  • InventoryUiClosingEventArgs (class)
  • InventoryUiOpeningEventArgs (class)
  • PickupAddedEventArgs (class)
  • PickupRemovedEventArgs (class)
  • PlayerAddedEventArgs (class)
  • PlayerDroppingItemEventArgs (class)
  • PlayerEventArgs (class)
  • PlayerHealedEventArgs (class)
  • PlayerHumeShieldChangedEventArgs (class)
  • PlayerInteractingEventArgs (class)
  • PlayerJumpingEventArgs (class)
  • PlayerNoclipTogglingEventArgs (class)
  • PlayerRemovedEventArgs (class)
  • PlayerRoleChangedEventArgs (class)
  • PlayerShootingEventArgs (class)
  • PlayerSprintingEventArgs (class)
  • PlayerStaminaChangedEventArgs (class)
  • PlayerThrowingEventArgs (class)
  • ProjectileRemovedEventArgs (class)
  • ProjectileSpawnedEventArgs (class)
  • RagdollEventArgs (class)
  • RoundPhaseChangedEventArgs (class)
  • SceneLoadedEventArgs (class)
  • Scp079SwitchingCameraEventArgs (class)
  • TeslaEventArgs (class)
  • VoiceMessageEventArgs (class)
  • VoiceMessageReceivedEventArgs (class)
  • VoiceMessageReceivingEventArgs (class)
  • VoiceMessageSendingEventArgs (class)
  • VoiceMessageSentEventArgs (class)
  • WarheadProgressChangedEventArgs (class)
  • AdminToyEvents (class)
  • AnnouncerEvents (class)
  • AudioEvents (class)
  • CameraEvents (class)
  • ClientEvents (class)
  • EffectEvents (class)
  • ElevatorEvents (class)
  • FacilityCameraEvents (class)
  • FileTransferEvents (class)
  • FirearmEvents (class)
  • GeneratorEvents (class)
  • HudEvents (class)
  • InventoryEvents (class)
  • NetworkMessageEvents (class)
  • PickupEvents (class)
  • PlayerEvents (class)
  • ProjectileEvents (class)
  • RagdollEvents (class)
  • RoleEvents (class)
  • RoundEvents (class)
  • StatsEvents (class)
  • TeslaEvents (class)
  • VoiceEvents (class)
  • WarheadEvents (class)
  • AdminToy (class)
  • Announcer (class)
  • AnnouncerWord (class)
  • BreakableDoor (class)
  • CameraManager (class)
  • CameraShake (class)
  • CharacterModels (class)
  • CheckpointDoor (class)
  • Client (class)
  • ClientCapabilities (class)
  • ClientVisibility (class)
  • Computer (class)
  • Coroutines (class)
  • Decontamination (class)
  • Door (class)
  • Elevator (class)
  • ElevatorDoor (class)
  • FacilityCamera (class)
  • FirearmItem (class)
  • FirearmPickup (class)
  • Generator (class)
  • Hud (class)
  • Hud.Element (enum)
  • IModelHook (interface)
  • Item (class)
  • ItemModels (class)
  • KeycardItem (class)
  • KeycardPickup (class)
  • LightAdminToy (class)
  • LocalBroadcast (class)
  • LocalBroadcast.Flags (enum)
  • LocalHint (class)
  • LocalPlayer (class)
  • LocalPlayerMotion (class)
  • Locker (class)
  • LockerChamberWrapper (class)
  • MotionDiscontinuity (struct)
  • MotionFailure (enum)
  • Paths (class)
  • Pickup (class)
  • Player (class)
  • PlayerAnchor (enum)
  • PlayerAnchors (class)
  • PlayerEffect (class)
  • PlayerEffects (class)
  • PlayerInventory (class)
  • PlayerStat (class)
  • PlayerStatsWrapper (class)
  • PrimitiveAdminToy (class)
  • Projectile (class)
  • Ragdoll (class)
  • Role (class)
  • Room (class)
  • Round (class)
  • Scp330Item (class)
  • Scp330Pickup (class)
  • Scp914 (class)
  • ScreenEffects (class)
  • ShootingTargetAdminToy (class)
  • SpeakerAdminToy (class)
  • Subtitles (class)
  • Tesla (class)
  • ThrowableItem (class)
  • TimedGrenadePickup (class)
  • VisibilityViewpoint (struct)
  • VoiceMessagePacket (class)
  • Warhead (class)
  • WorldObjects (class)
  • InputBindingDefinition (class)
  • InputKey (struct)
  • InputModifiers (enum)
  • InputRegistry (class)
  • VirtualInputs (class)
  • Tr (class)
  • ApiContract (class)
  • FeatureHealth (class)
  • FeatureHealthRecord (class)
  • FeatureHealthStatus (enum)
  • IAnomalyMod (interface)
  • IModContext (interface)
  • ModCapability (enum)
  • ModDependency (class)
  • ModDependencyResolver (class)
  • ModManifest (class)
  • ModManifestValidator (class)
  • ModResolutionResult (class)
  • AnomalyMessaging (class)
  • ClientPersistence (class)
  • IPersistenceStore (interface)
  • MaterialTint (class)
  • ModelAttachment (class)
  • ScheduledTask (class)
  • Scheduler (class)
  • SafeArea (class)
  • UiAnchor (enum)
  • UiAnchorExtensions (class)
  • UiCanvas (class)
  • UiLayer (enum)
  • UiParameterBinder (class)
  • UiPrefabValidator (class)
  • ModSettingCategoryMetadata (class)
  • ModSettingMetadata (class)
  • ModSettings (class)

IAnomalyMessage inherits IDirectionalAnomalyMessage, IAuthPhaseAnomalyMessage, and IBoundedAnomalyMessage. Custom message types derive from AuthenticatedClientToServerMessage or AuthenticatedServerToClientMessage and implement their exact serialized payload bound.

Send custom messages through the client AnomalyMessaging or server ClientMessaging facade. Framework protocol/file DTOs support communication between the runtimes; their initialization and dispatch belong to Anomaly.

Anomaly.Shared.Content contains the canonical wire catalog types used by the client and server: ContentCatalog, CatalogEntry, CatalogBuilder, and ModNamespace. Server companions register CustomItemDefinition values through CustomItems. The authenticated content coordinator offers and activates catalogs on the client.

Public types available to server plugin authors, grouped by namespace.

Public types: 24 across 8 namespaces.

  • Config (class)
  • Plugin (class)
  • AssetOverrides (class)
  • AssetRegistry (class)
  • ContentReadiness (enum)
  • CustomItemDefinition (class)
  • CustomItems (class)
  • ClientEventArgs (class)
  • ClientMessageReceivedEventArgs (class)
  • FacilityLayoutFinalizingEventArgs (class)
  • PlayerMotionAppliedEventArgs (class)
  • ClientEvents (class)
  • MapEvents (class)
  • Announcer (class)
  • Announcer.Word (class)
  • ClientCapabilities (class)
  • MotionDiscontinuity (struct)
  • MotionFailure (enum)
  • PlayerMotion (class)
  • FacilityGlyphs (class)
  • FacilityLayout (class)
  • FacilityRoomPlacement (class)
  • GlyphPairInfo (struct)
  • ClientMessaging (class)

Anomaly.Server.Api.Content provides CustomItemDefinition, CustomItems, and ContentReadiness. Register definitions through CustomItems.Register during your LabAPI plugin’s Enable. Definitions are copied and freeze when first offered; restart the server to change the registered catalog.

Use TryGetItemId, TryGetItemKey, and IsCustomItem to identify custom items in ordinary LabAPI gameplay events. GetPlayerReadiness reports approval and activation for the current player instance. TryGiveItem accepts a LabAPI Player and stable content key, and returns the granted LabAPI Item through its out parameter.

The successful readiness sequence is Unknown, Offered, Approved, Transferring, Transferred, then Activated. Declined and Failed are non-activated outcomes. Only matching activation permits grants. Store stable keys in persistent data; assigned IDs belong to the catalog.

Use ClientMessaging.TrySend or Send for an authenticated message to a LabAPI Player, and SendToAll or SendToAllExcept for broadcasts. ClientEvents exposes Connected, MessageReceived, CapabilitiesChanged, ContentReady, and MotionApplied using LabAPI event handlers. Subscribe during Enable and unsubscribe during Disable. Connected reports initial Anomaly setup; ContentReady reports the exact optional catalog’s activation. Events are not replayed to late subscribers.

ClientCapabilities reads a player’s advertised capabilities. PlayerMotion.TryApply applies an owned position/look/momentum discontinuity; use a stable owner ID, increasing sequence values, and Reset(player, ownerId) for your own cleanup. Normal movement and gameplay events use LabAPI.

AssetRegistry exposes read-only manifest lookup. AssetOverrides applies bounded PNG overrides to existing network objects through generic network-ID methods and LabAPI Player, Room, and Door helpers. Hashes must belong to the advertised manifest and recipients must approve the exact content. Announcer extends vocabulary from approved OGG files; use normal game or LabAPI CASSIE playback.

Use FacilityLayout during LabAPI ServerEvents.MapGenerating to stage room recipes and atlas edits. FacilityGlyphs maps native room names and shapes to atlas colors.

MapEvents.LayoutFinalizing exposes the complete selected LCZ, HCZ, and Entrance layout through FacilityLayoutFinalizingEventArgs. The event includes GenerationId, Seed, and a fixed Rooms collection. Each FacilityRoomPlacement has a fixed zone, atlas coordinate, room name, shape, and original pose. Set Position to an absolute world position, RotationY to absolute world yaw in degrees, or IsRemoved to omit the room and its vanilla contents. Make these assignments synchronously in the event handler before the authenticated snapshot is published. Setters reject changes after the event; Surface generation remains native.

LayoutFinalizing runs for both unchanged and custom layouts. Handlers see earlier handlers’ edits, and later assignments take precedence. Plugins own the resulting route connectivity and replacement content. MapEvents.RecipeApplied observes layout application during native MapGenerated and does not open another editing window. Later native registration stages can still fail and reject that generation.

Load Anomaly before the first facility generation. Loading or replacing the core after a map exists requires a process restart.

See Client API Tour, Server Companion Plugins, Facility Generation, Custom Networking, Custom Items, and Managed Modules.