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.
Assemblies
Section titled “Assemblies”| Assembly | Supported use |
|---|---|
| Anomaly.Client.Api.dll | Public API for MelonLoader mods and managed modules. |
| Anomaly.Shared.dll | Directional message policy, shared DTOs, and items-only catalog contract. |
| Anomaly.Server.dll | LabAPI companion and custom-item API. |
| Anomaly.Client.dll | Runtime implementation; do not reference. |
Client API highlights
Section titled “Client API highlights”| Namespace area | Key public types |
|---|---|
| Commands | ICommand, CommandContext, CommandRegistry |
| Compatibility | SupportedGameVersionAttribute |
| Config/Persistence | ClientConfig, ClientPersistence, IConfigSource, IPersistenceStore |
| Input | InputKey, InputBindingDefinition, InputRegistry, VirtualInputs |
| Scheduling | Scheduler, ScheduledTask |
| Modding | IAnomalyMod, IModContext, ModManifest, ModDependency, ModDependencyResolver, FeatureHealth |
| Mod settings | ModSettings, ModSettingMetadata, ModSettingCategoryMetadata |
| Networking | AnomalyMessaging |
| Capabilities and motion | ClientCapabilities, LocalPlayerMotion |
| Models | CharacterModels, ItemModels, IModelHook, ModelAttachment, MaterialTint |
| Resources | AnomalyResources, AssetEvents.OverrideApplied, AssetEvents.OverrideCleared |
| Localization | Tr |
| UI/HUD | UiCanvas, UiLayer, LocalHint, LocalBroadcast, Hud, ScreenEffects, Subtitles |
| Features | Client, Player, LocalPlayer, Item, Pickup, Room, Door, AdminToy, and typed wrappers |
| Events | Handler 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.
Complete client API namespace index
Section titled “Complete client API namespace index”Public types available to client plugin authors, grouped by namespace.
Public types: 197 across 18 namespaces.
Anomaly.Client.Api.Assets
Section titled “Anomaly.Client.Api.Assets”AnomalyResources(class)AssetEvents(class)
Anomaly.Client.Api.Commands
Section titled “Anomaly.Client.Api.Commands”CommandContext(class)CommandRegistry(class)ICommand(interface)
Anomaly.Client.Api.Compatibility
Section titled “Anomaly.Client.Api.Compatibility”GameVersionCompatibility(class)SupportedGameVersionAttribute(class)
Anomaly.Client.Api.Config
Section titled “Anomaly.Client.Api.Config”ClientConfig(class)IConfigSource(interface)
Anomaly.Client.Api.Enum
Section titled “Anomaly.Client.Api.Enum”SceneType(enum)
Anomaly.Client.Api.Events
Section titled “Anomaly.Client.Api.Events”AnomalyEventHandler<T1>(delegate)ICancellableEvent(interface)
Anomaly.Client.Api.Events.Args
Section titled “Anomaly.Client.Api.Events.Args”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)
Anomaly.Client.Api.Events.Handlers
Section titled “Anomaly.Client.Api.Events.Handlers”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)
Anomaly.Client.Api.Features
Section titled “Anomaly.Client.Api.Features”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)
Anomaly.Client.Api.Input
Section titled “Anomaly.Client.Api.Input”InputBindingDefinition(class)InputKey(struct)InputModifiers(enum)InputRegistry(class)VirtualInputs(class)
Anomaly.Client.Api.Localization
Section titled “Anomaly.Client.Api.Localization”Tr(class)
Anomaly.Client.Api.Modding
Section titled “Anomaly.Client.Api.Modding”ApiContract(class)FeatureHealth(class)FeatureHealthRecord(class)FeatureHealthStatus(enum)IAnomalyMod(interface)IModContext(interface)ModCapability(enum)ModDependency(class)ModDependencyResolver(class)ModManifest(class)ModManifestValidator(class)ModResolutionResult(class)
Anomaly.Client.Api.Networking
Section titled “Anomaly.Client.Api.Networking”AnomalyMessaging(class)
Anomaly.Client.Api.Persistence
Section titled “Anomaly.Client.Api.Persistence”ClientPersistence(class)IPersistenceStore(interface)
Anomaly.Client.Api.Rendering
Section titled “Anomaly.Client.Api.Rendering”MaterialTint(class)ModelAttachment(class)
Anomaly.Client.Api.Scheduling
Section titled “Anomaly.Client.Api.Scheduling”ScheduledTask(class)Scheduler(class)
Anomaly.Client.Api.UI
Section titled “Anomaly.Client.Api.UI”SafeArea(class)UiAnchor(enum)UiAnchorExtensions(class)UiCanvas(class)UiLayer(enum)UiParameterBinder(class)UiPrefabValidator(class)
Anomaly.Client.Api.UI.ModSettings
Section titled “Anomaly.Client.Api.UI.ModSettings”ModSettingCategoryMetadata(class)ModSettingMetadata(class)ModSettings(class)
Shared networking
Section titled “Shared networking”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.
Shared content contract
Section titled “Shared content contract”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.
Complete server API namespace index
Section titled “Complete server API namespace index”Public types available to server plugin authors, grouped by namespace.
Public types: 24 across 8 namespaces.
Anomaly.Server
Section titled “Anomaly.Server”Config(class)Plugin(class)
Anomaly.Server.Api.Assets
Section titled “Anomaly.Server.Api.Assets”AssetOverrides(class)AssetRegistry(class)
Anomaly.Server.Api.Content
Section titled “Anomaly.Server.Api.Content”ContentReadiness(enum)CustomItemDefinition(class)CustomItems(class)
Anomaly.Server.Api.Events.Arguments
Section titled “Anomaly.Server.Api.Events.Arguments”ClientEventArgs(class)ClientMessageReceivedEventArgs(class)FacilityLayoutFinalizingEventArgs(class)PlayerMotionAppliedEventArgs(class)
Anomaly.Server.Api.Events.Handlers
Section titled “Anomaly.Server.Api.Events.Handlers”ClientEvents(class)MapEvents(class)
Anomaly.Server.Api.Features
Section titled “Anomaly.Server.Api.Features”Announcer(class)Announcer.Word(class)ClientCapabilities(class)MotionDiscontinuity(struct)MotionFailure(enum)PlayerMotion(class)
Anomaly.Server.Api.Map
Section titled “Anomaly.Server.Api.Map”FacilityGlyphs(class)FacilityLayout(class)FacilityRoomPlacement(class)GlyphPairInfo(struct)
Anomaly.Server.Api.Networking
Section titled “Anomaly.Server.Api.Networking”ClientMessaging(class)
Server content
Section titled “Server content”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.
Server integration
Section titled “Server integration”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.
Facility generation
Section titled “Facility generation”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.