Skip to main content

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