DeadworksPluginBase
Optional base class for plugins. Provides direct access to ITimer via a Timer property without needing interface casts or using aliases.
public abstract class DeadworksPluginBase : IDeadworksPlugin
Namespace: DeadworksManaged.Api
Inherits / implements: IDeadworksPlugin
Source: DeadworksPluginBase.cs#L7
Properties
DeadworksPluginBase.Name
Display name of the plugin.
Signature
public abstract string Name { get; }
Source: DeadworksPluginBase.cs#L9
DeadworksPluginBase.Timer
Per-plugin timer service.
Signature
protected ITimer Timer { get; }
Source: DeadworksPluginBase.cs#L20
DeadworksPluginBase.ContentAddons
Content addons this plugin needs connecting clients to download.
Signature
public virtual IReadOnlyList<string> ContentAddons { get; }
Source: DeadworksPluginBase.cs#L23
Methods
DeadworksPluginBase.OnLoad()
Called when the plugin is loaded or hot-reloaded.
Signature
public virtual void OnLoad(bool isReload)
Source: DeadworksPluginBase.cs#L15
DeadworksPluginBase.OnUnload()
Called when the plugin is unloaded. Clean up hooks and timers here.
Signature
public virtual void OnUnload()
Source: DeadworksPluginBase.cs#L17
DeadworksPluginBase.OnPrecacheResources()
Called during map load to precache resources (particles, models, etc). Use Precache.AddResource to register resources.
Signature
public virtual void OnPrecacheResources()
Source: DeadworksPluginBase.cs#L26
DeadworksPluginBase.OnStartupServer()
Called when the server starts up (new map load).
Signature
public virtual void OnStartupServer()
Source: DeadworksPluginBase.cs#L28
DeadworksPluginBase.OnGameFrame()
Called every server frame.
Signature
public virtual void OnGameFrame(bool simulating, bool firstTick, bool lastTick)
Source: DeadworksPluginBase.cs#L30
DeadworksPluginBase.OnTakeDamage()
Called when an entity takes damage. Return Stop to block the damage from being applied.
Signature
public virtual HookResult OnTakeDamage(TakeDamageEvent args)
Source: DeadworksPluginBase.cs#L32
DeadworksPluginBase.OnModifyCurrency()
Called when a player's currency is about to be modified. Return Stop to block the currency change.
Signature
public virtual HookResult OnModifyCurrency(ModifyCurrencyEvent args)
Source: DeadworksPluginBase.cs#L34
DeadworksPluginBase.OnChatMessage()
Called when a player sends a chat message. Return Stop to block the message from being processed further.
Signature
public virtual HookResult OnChatMessage(ChatMessage message)
Source: DeadworksPluginBase.cs#L36
DeadworksPluginBase.OnClientConCommand()
Called when a client sends a console command (e.g. selecthero, changeteam, respawn). Return Stop to block the command from being processed by the engine.
Signature
public virtual HookResult OnClientConCommand(ClientConCommandEvent args)
Source: DeadworksPluginBase.cs#L38
DeadworksPluginBase.OnClientConnect()
Called when a client is connecting. Return false to reject the connection. All plugins see the event regardless of any individual result.
Signature
public virtual bool OnClientConnect(ClientConnectEvent args)
Source: DeadworksPluginBase.cs#L40
DeadworksPluginBase.OnClientPutInServer()
Called when a client is put into the server (initial connection).
Signature
public virtual void OnClientPutInServer(ClientPutInServerEvent args)
Source: DeadworksPluginBase.cs#L42
DeadworksPluginBase.OnClientFullConnect()
Called when a client is fully in game: when they join, and again each time they finish loading into a new map. Bots included.
Signature
public virtual void OnClientFullConnect(ClientFullConnectEvent args)
Source: DeadworksPluginBase.cs#L44
DeadworksPluginBase.OnClientDisconnecting()
Called as a client starts disconnecting, while their controller and hero are still intact. A bot's hero is deleted right after this, so this is the place to hand it to someone else. OnClientDisconnect follows.
Signature
public virtual void OnClientDisconnecting(ClientDisconnectedEvent args)
Source: DeadworksPluginBase.cs#L46
DeadworksPluginBase.OnClientDisconnect()
Called after a client has disconnected. A player's controller and hero stay on the server for when they reconnect; a bot's hero is already gone.
Signature
public virtual void OnClientDisconnect(ClientDisconnectedEvent args)
Source: DeadworksPluginBase.cs#L48
DeadworksPluginBase.OnEntityCreated()
Called when an entity is created.
Signature
public virtual void OnEntityCreated(EntityCreatedEvent args)
Source: DeadworksPluginBase.cs#L50
DeadworksPluginBase.OnEntitySpawned()
Called when an entity has been fully spawned.
Signature
public virtual void OnEntitySpawned(EntitySpawnedEvent args)
Source: DeadworksPluginBase.cs#L52
DeadworksPluginBase.OnEntityDeleted()
Called when an entity is deleted.
Signature
public virtual void OnEntityDeleted(EntityDeletedEvent args)
Source: DeadworksPluginBase.cs#L54
DeadworksPluginBase.OnEntityStartTouch()
Called when an entity starts touching another entity (trigger zone entry, collision).
Signature
public virtual void OnEntityStartTouch(EntityTouchEvent args)
Source: DeadworksPluginBase.cs#L56
DeadworksPluginBase.OnEntityEndTouch()
Called when an entity stops touching another entity.
Signature
public virtual void OnEntityEndTouch(EntityTouchEvent args)
Source: DeadworksPluginBase.cs#L58
DeadworksPluginBase.OnModifierEvent()
Called when a modifier event fires (damage taken, ability cast, modifier gained/lost, ...). Observe-only.
Signature
public virtual void OnModifierEvent(ModifierEvent args)
Source: DeadworksPluginBase.cs#L60
DeadworksPluginBase.OnAbilityAttempt()
Called each think tick before ability execution. Set AbilityAttemptEvent.BlockedButtons to prevent specific abilities/items from being cast.
Signature
public virtual void OnAbilityAttempt(AbilityAttemptEvent args)
Source: DeadworksPluginBase.cs#L62
DeadworksPluginBase.OnNpcSelectSchedule()
Called when an NPC picks its next schedule. Set NpcSelectScheduleEvent.Override to replace it.
Signature
public virtual void OnNpcSelectSchedule(NpcSelectScheduleEvent args)
Source: DeadworksPluginBase.cs#L64
DeadworksPluginBase.OnProcessUsercmds()
Called when a player's usercmds are being processed.
Signature
public virtual void OnProcessUsercmds(ProcessUsercmdsEvent args)
Source: DeadworksPluginBase.cs#L65
DeadworksPluginBase.OnAddModifier()
Called when a modifier is about to be applied to an entity. Return Stop to block the modifier from being applied.
Signature
public virtual HookResult OnAddModifier(AddModifierEvent args)
Source: DeadworksPluginBase.cs#L67
DeadworksPluginBase.OnConfigReloaded()
Called after the plugin's config has been reloaded via dw_reloadconfig.
Signature
public virtual void OnConfigReloaded()
Source: DeadworksPluginBase.cs#L69
DeadworksPluginBase.OnCheckTransmit()
Called per-player each tick after the engine builds the default transmit list. Use CheckTransmitEvent.Hide to prevent entities from being networked to this player.
Signature
public virtual void OnCheckTransmit(CheckTransmitEvent args)
Source: DeadworksPluginBase.cs#L71
DeadworksPluginBase.OnPawnHeroInitialized()
Called whenever a pawn's hero abilities and modifiers have just been (re)populated server-side.
Signature
public virtual void OnPawnHeroInitialized(CCitadelPlayerPawn pawn)
Source: DeadworksPluginBase.cs#L73
DeadworksPluginBase.OnGameStateChanged()
Called after a CCitadelGameRules::ChangeGameState transition completes, whether the engine or a plugin (via GameRules.ChangeGameState) started it.
Signature
public virtual void OnGameStateChanged(EGameState newState)
Source: DeadworksPluginBase.cs#L75
DeadworksPluginBase.OnGameStateChanging()
Called before an engine-driven CCitadelGameRules::ChangeGameState transition is allowed to proceed. Return false to veto it. If multiple plugins implement this, any plugin returning false vetoes the transition. Transitions started by a plugin through GameRules.ChangeGameState are not vetoable. Default: allow.
Signature
public virtual bool OnGameStateChanging(EGameState currentState, EGameState newState)
Source: DeadworksPluginBase.cs#L77
DeadworksPluginBase.OnClientAuthorized()
Called once per connection when Steam confirms who a player is, usually a few seconds after they connect. Until then they only have the default role. Not called for a player who turns out to be banned: they are kicked instead.
Signature
public virtual void OnClientAuthorized(ClientAuthorizedEvent args)
Source: DeadworksPluginBase.cs#L79
DeadworksPluginBase.OnPermissionsChanged()
Called after permissions change: a reload (steamId64 is null, meaning everyone), a grant or revoke for one player, or Steam validating a player, when their own roles replace default. Use it to refresh anything that depends on who can do what, such as admin menus.
Signature
public virtual void OnPermissionsChanged(ulong? steamId64)
Source: DeadworksPluginBase.cs#L81
DeadworksPluginBase.OnPenaltyAdded()
Called after a ban, gag or mute is added, by any plugin, or found when penalties are reloaded (added by hand, or by another server sharing the store).
Signature
public virtual void OnPenaltyAdded(Penalty penalty)
Source: DeadworksPluginBase.cs#L83
DeadworksPluginBase.OnPenaltyRemoved()
Called after a penalty ends: lifted, replaced by a newer one, or run out. The penalty passed is the ended one. When a reload finds a penalty lifted elsewhere, Penalty.RemovedUtc is set, but who lifted it may be unknown.
Signature
public virtual void OnPenaltyRemoved(Penalty penalty)
Source: DeadworksPluginBase.cs#L85
DeadworksPluginBase.OnAdminAction()
Called for every action written to the admin log, e.g. to forward it to Discord.
Signature
public virtual void OnAdminAction(AdminLogEntry entry)
Source: DeadworksPluginBase.cs#L87