Completes the uMod mirror beyond the Rust hook table, and adds agent/ — the same facts in TSV/JSONL at ~46% of the tokens. New prose: - OXIDE_API.md: the 19 developer pages under umod.org/documentation/api/ — plugin structure, hooks, commands, IPlayer, permissions, config, data files, database, localization, timers, web requests, dependencies, integration, preprocessor directives, security, style guide, CI, review. This is the framework our plugin is a guest in, where HOOKS.md is what the game says. - OPERATING.md: the 6 operator pages — installing Oxide on a server, then installing, configuring and permissioning plugins. New machine-readable set (agent/): - hooks.tsv 477 rows, ~31% of HOOKS.md - items.tsv 678 rows, ~80% of DEFINITIONS.md's item table - skins.tsv 104 rows covering 2,590 skins, ~77% - api.jsonl 150 code examples, ~47% of the two prose docs Generated in the same pass as the markdown, so the two cannot drift. HOOKS.md gains the universal-hook split: 34 of the 477 are uMod's own Covalence hooks, raised identically on every game uMod supports. Verified against /documentation/games/universal in the same capture - all 34 are in the Rust set and the Rust page adds none of its own, so the overlap is exact. The distinction is architectural: a universal hook is the portable part of the surface. Two things worth recording from building it: - The first skins.tsv was one row per skin and came out 11% LARGER than the markdown it replaces. Grouping it one row per item is what made it a saving. The token win is real for prose (3.2x on hooks) and small for tables that were already dense - agent/README.md says so plainly rather than claiming a flat number. - Signature extraction by brace depth silently captured body lines (a nested '}' in OnUserConnected's example ended the block early). It now matches on the hook's own name; all 477 rows verified to carry a real signature. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016wDDVXWMDz82WqE1i969r4
9320 lines
251 KiB
Markdown
9320 lines
251 KiB
Markdown
# Rust Oxide/uMod hook reference
|
|
|
|
Every hook the uMod Rust game extension raises — **477 hooks across 20 categories** — with its
|
|
description, its return contract and the C# signature to declare in a plugin.
|
|
|
|
> **Scraped verbatim from [`umod.org/documentation/games/rust`](https://umod.org/documentation/games/rust) on 2026-09-15.**
|
|
> This is a *mirror for reference*, not a specification we own: uMod is upstream and wins any
|
|
> disagreement. See [`README.md`](README.md) for what it is for and how to refresh it.
|
|
|
|
---
|
|
|
|
## How to read an entry
|
|
|
|
Each hook gives three things:
|
|
|
|
- **What it is called for** — the game moment that raises it.
|
|
- **Return behaviour** — the hook's contract, and the only part that is load-bearing. Oxide
|
|
reads the value your method returns and one of four things is true:
|
|
|
|
| Contract | Meaning |
|
|
|---|---|
|
|
| *No return behavior* | The hook is a **notification**. Return `void`; nothing you return is read. |
|
|
| *Returning a non-null value overrides default behavior* | The hook is a **veto with a payload**. Declare it `object`; return `null` to let the game proceed, anything else (conventionally `true`/`false`) to cancel the default action. |
|
|
| *Returning true or false overrides default behavior* | A **veto**. Declare it `object`; return `null` to abstain — returning `false` is *not* the same as abstaining. |
|
|
| *Returning a string will kick…* (and similar) | The returned value is **consumed as data**, not just as a veto. |
|
|
|
|
- **Signature** — the exact method to declare. Oxide binds hooks **by name and arity**, by
|
|
reflection, at runtime: there is no interface to implement and no compile-time check. A typo in
|
|
the name, or the wrong parameter types, means the method is silently never called.
|
|
|
|
> **Two cautions that apply to the whole table.** (1) Never return a non-`null` value from a hook
|
|
> whose contract is *no return behavior* — on some hooks Oxide will still treat it as a veto.
|
|
> (2) When several plugins hook the same veto, **the first non-`null` return wins** and the
|
|
> remaining plugins are not consulted; abstain with `null` unless you mean to decide.
|
|
|
|
---
|
|
|
|
<a id="universal-hooks"></a>
|
|
|
|
## Universal hooks
|
|
|
|
**34 of the 477 hooks below are not Rust's** — they are uMod's own *universal* (Covalence) hooks,
|
|
which uMod raises identically on every game it supports. They are listed on the Rust page because
|
|
they fire on Rust too, and every one of them is reproduced here. The distinction matters to us:
|
|
**a universal hook is the portable part of the surface** — code written against it would carry to
|
|
any other uMod-supported game, where a Rust-specific hook would not.
|
|
|
|
They are marked **U** in the alphabetical index. The full set:
|
|
|
|
- **Player** — [`CanUserLogin`](#canuserlogin), [`OnUserApproved`](#onuserapproved), [`OnUserBanned`](#onuserbanned), [`OnUserChat`](#onuserchat), [`OnUserCommand`](#onusercommand), [`OnUserConnected`](#onuserconnected), [`OnUserDisconnected`](#onuserdisconnected), [`OnUserGroupAdded`](#onusergroupadded), [`OnUserGroupRemoved`](#onusergroupremoved), [`OnUserKicked`](#onuserkicked), [`OnUserNameUpdated`](#onusernameupdated), [`OnUserPermissionGranted`](#onuserpermissiongranted), [`OnUserPermissionRevoked`](#onuserpermissionrevoked), [`OnUserRespawn`](#onuserrespawn), [`OnUserRespawned`](#onuserrespawned), [`OnUserUnbanned`](#onuserunbanned)
|
|
- **Server** — [`Init`](#init), [`OnFrame`](#onframe), [`OnPluginLoaded`](#onpluginloaded), [`OnPluginUnloaded`](#onpluginunloaded), [`OnServerInitialized`](#onserverinitialized), [`OnServerSave`](#onserversave)
|
|
- **Plugin** — [`LoadDefaultConfig`](#loaddefaultconfig), [`LoadDefaultMessages`](#loaddefaultmessages), [`Loaded`](#loaded), [`Unload`](#unload)
|
|
- **Permission** — [`OnGroupCreated`](#ongroupcreated), [`OnGroupDeleted`](#ongroupdeleted), [`OnGroupParentSet`](#ongroupparentset), [`OnGroupPermissionGranted`](#ongrouppermissiongranted), [`OnGroupPermissionRevoked`](#ongrouppermissionrevoked), [`OnGroupRankSet`](#ongrouprankset), [`OnGroupTitleSet`](#ongrouptitleset), [`OnPermissionRegistered`](#onpermissionregistered)
|
|
|
|
> Source: <https://umod.org/documentation/games/universal>. Verified against that page on the
|
|
> same capture — all 34 appear in the Rust set, and the Rust page adds no universal hook of its
|
|
> own, so this list is exactly the intersection.
|
|
|
|
---
|
|
|
|
## Categories
|
|
|
|
| Category | Hooks | What it covers |
|
|
|---|---:|---|
|
|
| [Server](#server-hooks) | 17 | Process lifecycle, the tick/frame loop, save and restart, RCON and console commands. |
|
|
| [Player](#player-hooks) | 138 | Everything a connected human does: connect, chat, command, craft, loot, build, die, respawn. The largest surface alongside Entity. |
|
|
| [Entity](#entity-hooks) | 140 | The generic `BaseEntity` graph — spawn, kill, damage, mount, loot, flags. Anything in the world that is not specifically an item. |
|
|
| [Item](#item-hooks) | 43 | Item stacks and containers: add, remove, split, stack, move, repair, research, craft, use. |
|
|
| [Resource](#resource-hooks) | 12 | Gathering and node dispensers — ore, trees, corpses, collectibles, quarries. |
|
|
| [Structure](#structure-hooks) | 15 | Building blocks: placement, upgrade, demolish, rotate, stability, doors and locks. |
|
|
| [Terrain](#terrain-hooks) | 1 | Terrain/map topology. |
|
|
| [Vending](#vending-hooks) | 16 | Vending machines and the shop/trade flow, including the marketplace and drone deliveries. |
|
|
| [Weapon](#weapon-hooks) | 16 | Firing, reloading, throwing, melee swings, projectile and trap behaviour. |
|
|
| [Vehicle](#vehicle-hooks) | 22 | Boats, cars, horses, helicopters, trains, submarines — fuel, engines, mounting, pushing. |
|
|
| [Team](#team-hooks) | 12 | Rust's built-in team/party system: create, invite, join, leave, promote, disband. |
|
|
| [World](#world-hooks) | 1 | World-level generation events. |
|
|
| [Fishing](#fishing-hooks) | 4 | The fishing minigame. |
|
|
| [Electronic](#electronic-hooks) | 2 | The electricity graph. |
|
|
| [Clan](#clan-hooks) | 7 | The first-party clan system (distinct from Team). |
|
|
| [Plugin](#plugin-hooks) | 4 | Plugin lifecycle inside Oxide itself — `Loaded`, `Unload`, and compilation. |
|
|
| [Sign](#sign-hooks) | 3 | Sign painting, updating and locking. |
|
|
| [TechTree](#techtree-hooks) | 4 | Tech tree node unlocks and their prerequisites. |
|
|
| [Phone](#phone-hooks) | 12 | In-game telephones: dialling, answering, voicemail, directory. |
|
|
| [Permission](#permission-hooks) | 8 | uMod's own permission/group system (Covalence) — grants, revokes, group membership. |
|
|
| **Total** | **477** | |
|
|
|
|
---
|
|
|
|
## Alphabetical index
|
|
|
|
**U** marks one of the **34 universal hooks** — see [Universal hooks](#universal-hooks) below.
|
|
|
|
| Hook | Category | U | Returns |
|
|
|---|---|:-:|---|
|
|
| [`CanAcceptItem`](#canacceptitem) | Item | | Returning CanAcceptResult value overrides default behavior |
|
|
| [`CanAdministerVending`](#canadministervending) | Vending | | Returning true or false overrides default behavior |
|
|
| [`CanAffordToPlace`](#canaffordtoplace) | Player | | Returning true or false overrides default behavior |
|
|
| [`CanAffordUpgrade`](#canaffordupgrade) | Player | | Returning true or false overrides default behavior |
|
|
| [`CanAssignBed`](#canassignbed) | Player | | Returning a non-null value overrides default behavior |
|
|
| [`CanBeTargeted`](#canbetargeted) | Player | | Returning true or false overrides default behavior |
|
|
| [`CanBeWounded`](#canbewounded) | Player | | Returning true or false overrides default behavior |
|
|
| [`CanBradleyApcTarget`](#canbradleyapctarget) | Entity | | Returning true or false overrides default behavior |
|
|
| [`CanBuild`](#canbuild) | Player | | Returning a non-null value overrides default behavior |
|
|
| [`CanBypassQueue`](#canbypassqueue) | Player | | Returning true will bypass the queue, returning nothing will by def… |
|
|
| [`CanCatchFish`](#cancatchfish) | Fishing | | Returning true or false overrides default behavior |
|
|
| [`CanChangeCode`](#canchangecode) | Player | | Returning a non-null value overrides default behavior |
|
|
| [`CanChangeGrade`](#canchangegrade) | Player | | Returning true or false overrides default behavior |
|
|
| [`CanCheckFuel`](#cancheckfuel) | Vehicle | | Returning true or false overrides default behavior |
|
|
| [`CanClientLogin`](#canclientlogin) | Player | | Returning a string will use the string as the error message |
|
|
| [`CanCombineDroppedItem`](#cancombinedroppeditem) | Item | | Returning a non-null value overwrites command arguments |
|
|
| [`CanCraft`](#cancraft) | Player | | Returning true or false overrides default behavior |
|
|
| [`CanCreateWorldProjectile`](#cancreateworldprojectile) | Weapon | | Returning a non-null value overrides default behavior |
|
|
| [`CanDemolish`](#candemolish) | Player | | Returning true or false overrides default behavior |
|
|
| [`CanDeployItem`](#candeployitem) | Player | | Returning a non-null value cancels default behavior |
|
|
| [`CanDismountEntity`](#candismountentity) | Player | | Returning a non-null value overrides default behavior |
|
|
| [`CanDropActiveItem`](#candropactiveitem) | Item | | Returning true or false overrides default behavior |
|
|
| [`CanEntityBeHostile`](#canentitybehostile) | Entity | | Returning a non-null value overrides default behavior |
|
|
| [`CanEquipItem`](#canequipitem) | Player | | Returning true or false overrides default behavior |
|
|
| [`CanExplosiveStick`](#canexplosivestick) | Weapon | | Returning a non-null value overwrites the default behavior |
|
|
| [`CanHackCrate`](#canhackcrate) | Player | | Returning a non-null value overrides default behavior |
|
|
| [`CanHelicopterDropCrate`](#canhelicopterdropcrate) | Entity | | Returning true or false overrides default behavior |
|
|
| [`CanHelicopterStrafe`](#canhelicopterstrafe) | Entity | | Returning true or false overrides default behavior |
|
|
| [`CanHelicopterStrafeTarget`](#canhelicopterstrafetarget) | Entity | | Returning true or false overrides default behavior |
|
|
| [`CanHelicopterTarget`](#canhelicoptertarget) | Entity | | Returning true or false overrides default behavior |
|
|
| [`CanHelicopterUseNapalm`](#canhelicopterusenapalm) | Entity | | Returning true or false overrides default behavior |
|
|
| [`CanHideStash`](#canhidestash) | Player | | Returning a non-null value overrides default behavior |
|
|
| [`CanLock`](#canlock) | Player | | Returning a non-null value cancels default behavior |
|
|
| [`CanLockerAcceptItem`](#canlockeracceptitem) | Entity | | Returning true or false overrides default behavior |
|
|
| [`CanLootEntity`](#canlootentity) | Player | | Returning a non-null value overrides default behavior |
|
|
| [`CanLootPlayer`](#canlootplayer) | Player | | Returning true or false overrides default behavior |
|
|
| [`CanMountEntity`](#canmountentity) | Player | | Returning a non-null value overrides default behavior |
|
|
| [`CanMoveItem`](#canmoveitem) | Item | | Returning a non-null value overrides default behavior |
|
|
| [`CanNetworkTo`](#cannetworkto) | Entity | | Returning true or false overrides default behavior |
|
|
| [`CanNpcAttack`](#cannpcattack) | Entity | | Returning true or false overrides default behavior |
|
|
| [`CanNpcEat`](#cannpceat) | Entity | | Returning true or false overrides default behavior |
|
|
| [`CanPickupEntity`](#canpickupentity) | Player | | Returning true or false overrides default behavior |
|
|
| [`CanPickupLock`](#canpickuplock) | Player | | Returning true or false overrides default behavior |
|
|
| [`CanPushBoat`](#canpushboat) | Player | | Returning a non-null value cancels default behavior |
|
|
| [`CanReceiveCall`](#canreceivecall) | Phone | | Returning true or false overrides default behavior |
|
|
| [`CanRecycle`](#canrecycle) | Entity | | Returning true or false overrides default behavior |
|
|
| [`CanRenameBed`](#canrenamebed) | Player | | Returning a non-null value overrides default behavior |
|
|
| [`CanResearchItem`](#canresearchitem) | Player | | Returning a non-null value overrides default behavior |
|
|
| [`CanSamSiteShoot`](#cansamsiteshoot) | Entity | | Returning a non-null value cancels default behavior |
|
|
| [`CanSeeStash`](#canseestash) | Player | | Returning a non-null value overrides default behavior |
|
|
| [`CanSetBedPublic`](#cansetbedpublic) | Player | | Returning a non-null value overrides default behavior |
|
|
| [`CanSetRelationship`](#cansetrelationship) | Player | | Returning true or false overrides default behavior |
|
|
| [`CanSpectateTarget`](#canspectatetarget) | Player | | Returning a non-null value cancels default behavior |
|
|
| [`CanStackItem`](#canstackitem) | Item | | Returning true or false overrides default behavior |
|
|
| [`CanSwapToSeat`](#canswaptoseat) | Entity | | Returning true or false overrides default behavior |
|
|
| [`CanTakeCutting`](#cantakecutting) | Resource | | Returning a non-null value cancels default behavior |
|
|
| [`CanUnlock`](#canunlock) | Player | | Returning a non-null value overrides default behavior |
|
|
| [`CanUnlockTechTreeNode`](#canunlocktechtreenode) | TechTree | | Returning true or false overrides default behavior |
|
|
| [`CanUnlockTechTreeNodePath`](#canunlocktechtreenodepath) | TechTree | | Returning true or false overrides default behavior |
|
|
| [`CanUpdateSign`](#canupdatesign) | Player | | Returning true or false overrides default behavior |
|
|
| [`CanUseFuel`](#canusefuel) | Vehicle | | Returning true or false overrides default behavior |
|
|
| [`CanUseGesture`](#canusegesture) | Player | | Returning true or false overrides default behavior |
|
|
| [`CanUseHelicopter`](#canusehelicopter) | Vehicle | | Returning a non-null value cancels default behavior |
|
|
| [`CanUseLockedEntity`](#canuselockedentity) | Player | | Returning true or false overrides default behavior |
|
|
| [`CanUseMailbox`](#canusemailbox) | Player | | Returning true or false overrides default behavior |
|
|
| [`CanUserLogin`](#canuserlogin) | Player | U | Returning a string will kick the user with this reason. Returning a… |
|
|
| [`CanUseUI`](#canuseui) | Player | | Returning a non-null value overrides default behavior |
|
|
| [`CanUseVending`](#canusevending) | Vending | | Returning true or false overrides default behavior |
|
|
| [`CanUseWires`](#canusewires) | Player | | Returning a non-null value overrides default behavior |
|
|
| [`CanVendingAcceptItem`](#canvendingacceptitem) | Vending | | Returning true or false overrides default behavior |
|
|
| [`CanWearItem`](#canwearitem) | Player | | Returning a non-null value overrides default behavior |
|
|
| [`Init`](#init) | Server | U | — |
|
|
| [`LoadDefaultConfig`](#loaddefaultconfig) | Plugin | U | — |
|
|
| [`LoadDefaultMessages`](#loaddefaultmessages) | Plugin | U | — |
|
|
| [`Loaded`](#loaded) | Plugin | U | — |
|
|
| [`OnActiveItemChange`](#onactiveitemchange) | Player | | Returning a non-null value cancels default behavior |
|
|
| [`OnActiveItemChanged`](#onactiveitemchanged) | Player | | — |
|
|
| [`OnAddVendingOffer`](#onaddvendingoffer) | Vending | | — |
|
|
| [`OnAirdrop`](#onairdrop) | Entity | | — |
|
|
| [`OnAmmoSwitch`](#onammoswitch) | Weapon | | Returning a non-null value overrides default behavior |
|
|
| [`OnAmmoUnload`](#onammounload) | Weapon | | Returning a non-null value cancels default behavior |
|
|
| [`OnAnalysisComplete`](#onanalysiscomplete) | Player | | — |
|
|
| [`OnBackpackDrop`](#onbackpackdrop) | Item | | Return non-null to override default behaviour. |
|
|
| [`OnBigWheelLoss`](#onbigwheelloss) | Entity | | — |
|
|
| [`OnBigWheelWin`](#onbigwheelwin) | Entity | | Returning non-null value overrides default behaviour. |
|
|
| [`OnBoatPathGenerate`](#onboatpathgenerate) | Vehicle | | Returning a List<Vector3> overrides default behavior |
|
|
| [`OnBonusItemDrop`](#onbonusitemdrop) | Item | | Returning a non-null value overrides default behavior |
|
|
| [`OnBonusItemDropped`](#onbonusitemdropped) | Item | | — |
|
|
| [`OnBookmarkAdd`](#onbookmarkadd) | Entity | | Returning a non-null value overrides default behavior |
|
|
| [`OnBookmarkControl`](#onbookmarkcontrol) | Entity | | Returning a non-null value overrides default behavior |
|
|
| [`OnBookmarkControlEnd`](#onbookmarkcontrolend) | Entity | | Returning a non-null value overrides default behavior |
|
|
| [`OnBookmarkControlEnded`](#onbookmarkcontrolended) | Entity | | — |
|
|
| [`OnBookmarkControlStarted`](#onbookmarkcontrolstarted) | Entity | | — |
|
|
| [`OnBookmarkDelete`](#onbookmarkdelete) | Entity | | Returning a non-null value overrides default behavior |
|
|
| [`OnBookmarkInput`](#onbookmarkinput) | Entity | | Returning a non-null value overrides default behavior |
|
|
| [`OnBookmarksSendControl`](#onbookmarkssendcontrol) | Entity | | Returning a non-null value overrides default behavior |
|
|
| [`OnBradleyApcHunt`](#onbradleyapchunt) | Entity | | Returning a non-null value overrides default behavior |
|
|
| [`OnBradleyApcInitialize`](#onbradleyapcinitialize) | Entity | | Returning a non-null value overrides default behavior |
|
|
| [`OnBradleyApcPatrol`](#onbradleyapcpatrol) | Entity | | Returning a non-null value overrides default behavior |
|
|
| [`OnBroadcastCommand`](#onbroadcastcommand) | Player | | Returning a non-null value overwrites command arguments |
|
|
| [`OnBuildingPrivilege`](#onbuildingprivilege) | Entity | | Returning BuildingPrivlidge value overrides default behavior |
|
|
| [`OnBuildingSplit`](#onbuildingsplit) | Structure | | — |
|
|
| [`OnButtonPress`](#onbuttonpress) | Entity | | Returning a non-null value cancels default behavior |
|
|
| [`OnBuyVendingItem`](#onbuyvendingitem) | Vending | | Returning a non-null value overrides default behavior |
|
|
| [`OnCardSwipe`](#oncardswipe) | Item | | Returning a non-null value cancels default behavior |
|
|
| [`OnCargoPlaneSignaled`](#oncargoplanesignaled) | Entity | | — |
|
|
| [`OnCCTVDirectionChange`](#oncctvdirectionchange) | Entity | | Returning a non-null value cancels default behavior |
|
|
| [`OnCentralizedBanCheck`](#oncentralizedbancheck) | Player | | Returning a non-null value cancels default behavior |
|
|
| [`OnClanColorChanged`](#onclancolorchanged) | Clan | | — |
|
|
| [`OnClanCreated`](#onclancreated) | Clan | | — |
|
|
| [`OnClanDisbanded`](#onclandisbanded) | Clan | | — |
|
|
| [`OnClanLogoChanged`](#onclanlogochanged) | Clan | | — |
|
|
| [`OnClanMemberAdded`](#onclanmemberadded) | Clan | | — |
|
|
| [`OnClanMemberKicked`](#onclanmemberkicked) | Clan | | — |
|
|
| [`OnClanMemberLeft`](#onclanmemberleft) | Clan | | — |
|
|
| [`OnClientAuth`](#onclientauth) | Player | | — |
|
|
| [`OnClientCommand`](#onclientcommand) | Player | | Returning a non-null value overrides default behavior |
|
|
| [`OnCodeEntered`](#oncodeentered) | Structure | | Returning a non-null value overrides default behavior |
|
|
| [`OnCollectiblePickup`](#oncollectiblepickup) | Resource | | Returning a non-null value overrides default behavior |
|
|
| [`OnConstructionPlace`](#onconstructionplace) | Structure | | Returning a non-null value overrides default behavior |
|
|
| [`OnContainerDropItems`](#oncontainerdropitems) | Entity | | Returning a non-null value overrides default behavior |
|
|
| [`OnCorpsePopulate`](#oncorpsepopulate) | Player | | Returning a BaseCorpse overrides default behavior |
|
|
| [`OnCounterModeToggle`](#oncountermodetoggle) | Entity | | Returning a non-null value overrides default behavior |
|
|
| [`OnCounterTargetChange`](#oncountertargetchange) | Entity | | Returning a non-null value overrides default behavior |
|
|
| [`OnCrateDropped`](#oncratedropped) | Entity | | — |
|
|
| [`OnCrateHack`](#oncratehack) | Entity | | — |
|
|
| [`OnCrateHackEnd`](#oncratehackend) | Entity | | — |
|
|
| [`OnCrateLanded`](#oncratelanded) | Entity | | — |
|
|
| [`OnCupboardAuthorize`](#oncupboardauthorize) | Structure | | Returning a non-null value overrides default behavior |
|
|
| [`OnCupboardClearList`](#oncupboardclearlist) | Structure | | Returning a non-null value overrides default behavior |
|
|
| [`OnCupboardDeauthorize`](#oncupboarddeauthorize) | Structure | | Returning a non-null value overrides default behavior |
|
|
| [`OnDefaultItemsReceive`](#ondefaultitemsreceive) | Player | | Returning a non-null value overrides default behavior |
|
|
| [`OnDefaultItemsReceived`](#ondefaultitemsreceived) | Player | | Returning a non-null value overrides default behavior |
|
|
| [`OnDeleteVendingOffer`](#ondeletevendingoffer) | Vending | | — |
|
|
| [`OnDemoRecordingStart`](#ondemorecordingstart) | Player | | Returning a non-null value overrides default behavior |
|
|
| [`OnDemoRecordingStarted`](#ondemorecordingstarted) | Player | | — |
|
|
| [`OnDemoRecordingStop`](#ondemorecordingstop) | Player | | Returning a non-null value overrides default behavior |
|
|
| [`OnDemoRecordingStopped`](#ondemorecordingstopped) | Player | | — |
|
|
| [`OnDestroyUI`](#ondestroyui) | Player | | — |
|
|
| [`OnDieselEngineToggle`](#ondieselenginetoggle) | Entity | | Returning a non-null value cancels default behavior |
|
|
| [`OnDieselEngineToggled`](#ondieselenginetoggled) | Entity | | — |
|
|
| [`OnDispenserBonus`](#ondispenserbonus) | Resource | | Returning an Item replaces the existing Item |
|
|
| [`OnDispenserGather`](#ondispensergather) | Resource | | Returning a non-null value overrides default behavior |
|
|
| [`OnDoorClosed`](#ondoorclosed) | Structure | | — |
|
|
| [`OnDoorKnocked`](#ondoorknocked) | Structure | | — |
|
|
| [`OnDoorOpened`](#ondooropened) | Structure | | — |
|
|
| [`OnElevatorButtonPress`](#onelevatorbuttonpress) | Entity | | Returning a non-null value overrides default behavior |
|
|
| [`OnElevatorCall`](#onelevatorcall) | Entity | | Returning a non-null value overrides default behavior |
|
|
| [`OnElevatorMove`](#onelevatormove) | Entity | | Returning a non-null value overrides default behavior |
|
|
| [`OnEngineLoadoutRefresh`](#onengineloadoutrefresh) | Entity | | Returning a non-null value overrides default behaviour |
|
|
| [`OnEngineStart`](#onenginestart) | Vehicle | | Returning a non-null value overrides default behavior |
|
|
| [`OnEngineStarted`](#onenginestarted) | Vehicle | | — |
|
|
| [`OnEngineStatsRefresh`](#onenginestatsrefresh) | Vehicle | | Returning a non-null value overrides default behavior |
|
|
| [`OnEngineStatsRefreshed`](#onenginestatsrefreshed) | Vehicle | | — |
|
|
| [`OnEngineStop`](#onenginestop) | Vehicle | | Returning a non-null value overrides default behavior |
|
|
| [`OnEngineStopped`](#onenginestopped) | Vehicle | | — |
|
|
| [`OnEntityBuilt`](#onentitybuilt) | Structure | | — |
|
|
| [`OnEntityControl`](#onentitycontrol) | Entity | | Returning true or false overrides default behavior |
|
|
| [`OnEntityDeath`](#onentitydeath) | Entity | | — |
|
|
| [`OnEntityDestroy`](#onentitydestroy) | Entity | | Returning a non-null value overrides default behavior |
|
|
| [`OnEntityDismounted`](#onentitydismounted) | Entity | | — |
|
|
| [`OnEntityEnter`](#onentityenter) | Entity | | — |
|
|
| [`OnEntityFlagsNetworkUpdate`](#onentityflagsnetworkupdate) | Entity | | Returning a non-null value overrides default behavior |
|
|
| [`OnEntityGroundMissing`](#onentitygroundmissing) | Entity | | Returning a non-null value overrides default behavior |
|
|
| [`OnEntityKill`](#onentitykill) | Entity | | Returning a non-null value overrides default behavior |
|
|
| [`OnEntityLeave`](#onentityleave) | Entity | | — |
|
|
| [`OnEntityMarkHostile`](#onentitymarkhostile) | Entity | | Returning a non-null value cancels default behavior |
|
|
| [`OnEntityMounted`](#onentitymounted) | Entity | | — |
|
|
| [`OnEntitySaved`](#onentitysaved) | Entity | | — |
|
|
| [`OnEntitySnapshot`](#onentitysnapshot) | Entity | | Returning a non-null value overrides default behavior |
|
|
| [`OnEntitySpawned`](#onentityspawned) | Entity | | — |
|
|
| [`OnEntityStabilityCheck`](#onentitystabilitycheck) | Entity | | Returning a non-null value cancels default behavior |
|
|
| [`OnEntityTakeDamage`](#onentitytakedamage) | Entity | | |
|
|
| [`OnExcavatorGather`](#onexcavatorgather) | Entity | | Returning a non-null value cancels default behavior |
|
|
| [`OnExcavatorMiningToggled`](#onexcavatorminingtoggled) | Entity | | — |
|
|
| [`OnExcavatorResourceSet`](#onexcavatorresourceset) | Entity | | Returning a non-null value cancels default behavior |
|
|
| [`OnExcavatorSuppliesRequest`](#onexcavatorsuppliesrequest) | Electronic | | Returning non-null overrides default behaviour. |
|
|
| [`OnExcavatorSuppliesRequested`](#onexcavatorsuppliesrequested) | Electronic | | |
|
|
| [`OnExperimentEnd`](#onexperimentend) | Player | | Returning a non-null value overrides defualt behaviour. |
|
|
| [`OnExperimentEnded`](#onexperimentended) | Player | | — |
|
|
| [`OnExperimentStart`](#onexperimentstart) | Player | | Returning a non-null value overrides default behavior |
|
|
| [`OnExperimentStarted`](#onexperimentstarted) | Player | | — |
|
|
| [`OnExplosiveDropped`](#onexplosivedropped) | Weapon | | — |
|
|
| [`OnExplosiveDud`](#onexplosivedud) | Weapon | | Returning a non-null value cancels default behavior |
|
|
| [`OnExplosiveFuseSet`](#onexplosivefuseset) | Weapon | | Returning a non-null value overwrites fuse length |
|
|
| [`OnExplosiveThrown`](#onexplosivethrown) | Weapon | | — |
|
|
| [`OnFindBurnable`](#onfindburnable) | Item | | Returning an Item overrides default behavior |
|
|
| [`OnFindSpawnPoint`](#onfindspawnpoint) | Player | | Return a BasePlayer.SpawnPoint object to use that spawnpoint |
|
|
| [`OnFireBallDamage`](#onfireballdamage) | Entity | | — |
|
|
| [`OnFireBallSpread`](#onfireballspread) | Entity | | — |
|
|
| [`OnFishCatch`](#onfishcatch) | Fishing | | Returning a non-null value overrides default behavior |
|
|
| [`OnFishCaught`](#onfishcaught) | Fishing | | — |
|
|
| [`OnFishingStopped`](#onfishingstopped) | Fishing | | — |
|
|
| [`OnFlameExplosion`](#onflameexplosion) | Entity | | — |
|
|
| [`OnFlameThrowerBurn`](#onflamethrowerburn) | Weapon | | — |
|
|
| [`OnFrame`](#onframe) | Server | U | — |
|
|
| [`OnFuelAmountCheck`](#onfuelamountcheck) | Vehicle | | Returning a numeric value (int) overrides the default value |
|
|
| [`OnFuelCheck`](#onfuelcheck) | Vehicle | | Returning true or false overrides default behavior |
|
|
| [`OnFuelConsume`](#onfuelconsume) | Item | | Returning a non-null value overrides default behavior |
|
|
| [`OnFuelConsumed`](#onfuelconsumed) | Item | | — |
|
|
| [`OnFuelItemCheck`](#onfuelitemcheck) | Vehicle | | Returning an Item overrides default behavior |
|
|
| [`OnGiveSoldItem`](#ongivesolditem) | Vending | | Returning a non-null value cancels default behavior |
|
|
| [`OnGroupCreated`](#ongroupcreated) | Permission | U | — |
|
|
| [`OnGroupDeleted`](#ongroupdeleted) | Permission | U | — |
|
|
| [`OnGroupParentSet`](#ongroupparentset) | Permission | U | — |
|
|
| [`OnGroupPermissionGranted`](#ongrouppermissiongranted) | Permission | U | — |
|
|
| [`OnGroupPermissionRevoked`](#ongrouppermissionrevoked) | Permission | U | — |
|
|
| [`OnGroupRankSet`](#ongrouprankset) | Permission | U | — |
|
|
| [`OnGroupTitleSet`](#ongrouptitleset) | Permission | U | — |
|
|
| [`OnGrowableGather`](#ongrowablegather) | Resource | | Returning a non-null value overrides default behavior |
|
|
| [`OnGrowableGathered`](#ongrowablegathered) | Resource | | — |
|
|
| [`OnHammerHit`](#onhammerhit) | Structure | | Returning a non-null value overrides default behavior |
|
|
| [`OnHealingItemUse`](#onhealingitemuse) | Item | | Returning a non-null value overrides default behavior |
|
|
| [`OnHelicopterAttack`](#onhelicopterattack) | Entity | | Returning a non-null value overrides default behavior |
|
|
| [`OnHelicopterDropCrate`](#onhelicopterdropcrate) | Entity | | Returning a non-null value overrides default behavior |
|
|
| [`OnHelicopterDropDoorOpen`](#onhelicopterdropdooropen) | Entity | | Returning a non-null value overrides default behavior |
|
|
| [`OnHelicopterKilled`](#onhelicopterkilled) | Entity | | Returning a non-null value overrides default behavior |
|
|
| [`OnHelicopterOutOfCrates`](#onhelicopteroutofcrates) | Entity | | Returning true or false overrides default behavior |
|
|
| [`OnHelicopterRetire`](#onhelicopterretire) | Entity | | Returning a non-null value overrides default behaviour. |
|
|
| [`OnHelicopterStrafeEnter`](#onhelicopterstrafeenter) | Entity | | Returning a non-null value cancels default behavior |
|
|
| [`OnHelicopterTarget`](#onhelicoptertarget) | Entity | | Returning a non-null value overrides default behavior |
|
|
| [`OnHorseHitch`](#onhorsehitch) | Entity | | Returning a non-null value overrides default behavior |
|
|
| [`OnHorseLead`](#onhorselead) | Entity | | Returning a non-null value overrides default behavior |
|
|
| [`OnHotAirBalloonToggle`](#onhotairballoontoggle) | Vehicle | | Returning a non-null value overrides default behavior |
|
|
| [`OnHotAirBalloonToggled`](#onhotairballoontoggled) | Vehicle | | — |
|
|
| [`OnIngredientsCollect`](#oningredientscollect) | Item | | Returning a non-null value cancels default behavior |
|
|
| [`OnInputUpdate`](#oninputupdate) | Entity | | Returning a non-null value cancels default behavior |
|
|
| [`OnInventoryNetworkUpdate`](#oninventorynetworkupdate) | Player | | Returning a non-null value overrides default behavior |
|
|
| [`OnIORefCleared`](#oniorefcleared) | Entity | | — |
|
|
| [`OnItemAction`](#onitemaction) | Item | | Returning a non-null value overrides default behavior |
|
|
| [`OnItemAddedToContainer`](#onitemaddedtocontainer) | Item | | — |
|
|
| [`OnItemCraft`](#onitemcraft) | Item | | Returning true or false overrides default behavior |
|
|
| [`OnItemCraftCancelled`](#onitemcraftcancelled) | Item | | — |
|
|
| [`OnItemCraftFinished`](#onitemcraftfinished) | Item | | — |
|
|
| [`OnItemDeployed`](#onitemdeployed) | Item | | — |
|
|
| [`OnItemDropped`](#onitemdropped) | Item | | — |
|
|
| [`OnItemLock`](#onitemlock) | Item | | Returning a non-null value overrides default behavior |
|
|
| [`OnItemPickup`](#onitempickup) | Item | | Returning a non-null value overrides default behavior |
|
|
| [`OnItemRecycle`](#onitemrecycle) | Entity | | Returning a non-null value overrides default behavior |
|
|
| [`OnItemRefill`](#onitemrefill) | Item | | Returning a non-null value overrides default behavior |
|
|
| [`OnItemRemove`](#onitemremove) | Item | | Return a non-null value stop item from being destroyed |
|
|
| [`OnItemRemovedFromContainer`](#onitemremovedfromcontainer) | Item | | — |
|
|
| [`OnItemRepair`](#onitemrepair) | Item | | Returning a non-null value overrides default behavior |
|
|
| [`OnItemResearch`](#onitemresearch) | Item | | — |
|
|
| [`OnItemResearched`](#onitemresearched) | Item | | Returning a float will affect if researching is successful or not |
|
|
| [`OnItemSplit`](#onitemsplit) | Item | | Returning an Item overrides default behavior |
|
|
| [`OnItemStacked`](#onitemstacked) | Item | | — |
|
|
| [`OnItemSubmit`](#onitemsubmit) | Item | | Returning a non-null value cancels default behavior |
|
|
| [`OnItemUnlock`](#onitemunlock) | Item | | Returning a non-null value overrides default behavior |
|
|
| [`OnItemUpgrade`](#onitemupgrade) | Item | | — |
|
|
| [`OnItemUse`](#onitemuse) | Item | | Returning an int overrides the amount consumed. |
|
|
| [`OnLiftUse`](#onliftuse) | Entity | | Returning a non-null value overrides default behavior |
|
|
| [`OnLiquidVesselFill`](#onliquidvesselfill) | Entity | | Returning a non-null value cancels default behavior |
|
|
| [`OnLockerSwap`](#onlockerswap) | Entity | | Returning non-null value overrides default behavior |
|
|
| [`OnLootEntity`](#onlootentity) | Player | | — |
|
|
| [`OnLootEntityEnd`](#onlootentityend) | Player | | — |
|
|
| [`OnLootItem`](#onlootitem) | Player | | — |
|
|
| [`OnLootNetworkUpdate`](#onlootnetworkupdate) | Player | | Returning a non-null value overrides default behavior |
|
|
| [`OnLootPlayer`](#onlootplayer) | Player | | — |
|
|
| [`OnLootSpawn`](#onlootspawn) | Entity | | Returning a non-null value overrides default behavior |
|
|
| [`OnLoseCondition`](#onlosecondition) | Item | | — |
|
|
| [`OnMagazineReload`](#onmagazinereload) | Weapon | | Returning a non-null value overrides default behavior |
|
|
| [`OnMapImageUpdated`](#onmapimageupdated) | Item | | — |
|
|
| [`OnMapMarkerAdd`](#onmapmarkeradd) | Player | | Returning a non-null value cancels default behavior |
|
|
| [`OnMapMarkerAdded`](#onmapmarkeradded) | Player | | — |
|
|
| [`OnMapMarkerRemove`](#onmapmarkerremove) | Player | | Returning a non-null value cancels default behaviour |
|
|
| [`OnMapMarkersClear`](#onmapmarkersclear) | Player | | Returning a non-null value cancels default behavior |
|
|
| [`OnMapMarkersCleared`](#onmapmarkerscleared) | Player | | — |
|
|
| [`OnMaxStackable`](#onmaxstackable) | Item | | Returning a numeric value (int) overrides the default value |
|
|
| [`OnMeleeAttack`](#onmeleeattack) | Player | | Returning a non-null value cancels default behavior |
|
|
| [`OnMeleeThrown`](#onmeleethrown) | Weapon | | — |
|
|
| [`OnMessagePlayer`](#onmessageplayer) | Server | | Returning a non-null value overrides default behavior |
|
|
| [`OnMlrsFire`](#onmlrsfire) | Entity | | Returning a non-null value overrides default behaviour. |
|
|
| [`OnMlrsFired`](#onmlrsfired) | Entity | | No return behaviour. |
|
|
| [`OnNetworkGroupEntered`](#onnetworkgroupentered) | Player | | — |
|
|
| [`OnNetworkGroupLeft`](#onnetworkgroupleft) | Player | | — |
|
|
| [`OnNetworkSubscriptionsUpdate`](#onnetworksubscriptionsupdate) | Entity | | Returning a non-null value prevents Rust from applying the proposed… |
|
|
| [`OnNewSave`](#onnewsave) | Server | | — |
|
|
| [`OnNpcConversationEnded`](#onnpcconversationended) | Player | | — |
|
|
| [`OnNpcConversationRespond`](#onnpcconversationrespond) | Player | | Returning a non-null value overrides default behavior |
|
|
| [`OnNpcConversationResponded`](#onnpcconversationresponded) | Player | | — |
|
|
| [`OnNpcConversationStart`](#onnpcconversationstart) | Player | | Returning a non-null value overrides default behavior |
|
|
| [`OnNpcDestinationSet`](#onnpcdestinationset) | Entity | | Returning a non-null value cancels default behavior |
|
|
| [`OnNpcGiveSoldItem`](#onnpcgivesolditem) | Vending | | Returning a non-null value overrides default behaviour. |
|
|
| [`OnNpcPlayerResume`](#onnpcplayerresume) | Entity | | Returning a non-null value cancels default behavior |
|
|
| [`OnNpcStopMoving`](#onnpcstopmoving) | Entity | | Returning a non-null value cancels default behavior |
|
|
| [`OnNpcTarget`](#onnpctarget) | Entity | | Returning a non-null value overrides default behavior |
|
|
| [`OnNpcTargetSense`](#onnpctargetsense) | Entity | | Returning a non-null value overrides default behavior |
|
|
| [`OnOpenVendingAdmin`](#onopenvendingadmin) | Vending | | — |
|
|
| [`OnOutputUpdate`](#onoutputupdate) | Entity | | Returning a non-null value cancels default behavior |
|
|
| [`OnOvenCook`](#onovencook) | Entity | | Returning a non-null value overrides default behavior |
|
|
| [`OnOvenCooked`](#onovencooked) | Entity | | — |
|
|
| [`OnOvenToggle`](#onoventoggle) | Entity | | Returning a non-null value overrides default behavior |
|
|
| [`OnPayForPlacement`](#onpayforplacement) | Player | | Returning a non-null value cancels default behavior |
|
|
| [`OnPayForUpgrade`](#onpayforupgrade) | Player | | Returning a non-null value cancels default behavior |
|
|
| [`OnPermissionRegistered`](#onpermissionregistered) | Permission | U | — |
|
|
| [`OnPhoneAnswer`](#onphoneanswer) | Phone | | Returning a non-null value overrides default behavior |
|
|
| [`OnPhoneAnswered`](#onphoneanswered) | Phone | | — |
|
|
| [`OnPhoneCallStart`](#onphonecallstart) | Phone | | Returning a non-null value overrides default behavior |
|
|
| [`OnPhoneCallStarted`](#onphonecallstarted) | Phone | | |
|
|
| [`OnPhoneDial`](#onphonedial) | Phone | | Returning a non-null value overrides default behavior |
|
|
| [`OnPhoneDialFail`](#onphonedialfail) | Phone | | Returning a non-null value overrides default behavior |
|
|
| [`OnPhoneDialFailed`](#onphonedialfailed) | Phone | | — |
|
|
| [`OnPhoneDialTimedOut`](#onphonedialtimedout) | Phone | | — |
|
|
| [`OnPhoneDialTimeout`](#onphonedialtimeout) | Phone | | Returning a non-null value overrides default behavior |
|
|
| [`OnPhoneNameUpdate`](#onphonenameupdate) | Phone | | Returning a non-null value overrides default behavior |
|
|
| [`OnPhoneNameUpdated`](#onphonenameupdated) | Phone | | — |
|
|
| [`OnPlayerAddModifiers`](#onplayeraddmodifiers) | Player | | Returning a non-null value overrides default behavior (prevents the… |
|
|
| [`OnPlayerAssist`](#onplayerassist) | Player | | Returning a non-null value cancels default behavior |
|
|
| [`OnPlayerAttack`](#onplayerattack) | Player | | Returning a non-null value overrides default behavior |
|
|
| [`OnPlayerBanned`](#onplayerbanned) | Player | | — |
|
|
| [`OnPlayerChat`](#onplayerchat) | Player | | Returning a non-null value overrides default behavior of chat, not… |
|
|
| [`OnPlayerCommand`](#onplayercommand) | Player | | Returning a non-null value overrides default behavior |
|
|
| [`OnPlayerConnected`](#onplayerconnected) | Player | | — |
|
|
| [`OnPlayerCorpse`](#onplayercorpse) | Player | | — |
|
|
| [`OnPlayerCorpseSpawn`](#onplayercorpsespawn) | Player | | Returning a non-null value overrides default behavior |
|
|
| [`OnPlayerCorpseSpawned`](#onplayercorpsespawned) | Player | | — |
|
|
| [`OnPlayerDeath`](#onplayerdeath) | Player | | Returning a non-null value overrides default behavior |
|
|
| [`OnPlayerDisconnected`](#onplayerdisconnected) | Player | | — |
|
|
| [`OnPlayerDropActiveItem`](#onplayerdropactiveitem) | Player | | — |
|
|
| [`OnPlayerHealthChange`](#onplayerhealthchange) | Player | | Returning a non-null value cancels the health change |
|
|
| [`OnPlayerInput`](#onplayerinput) | Player | | — |
|
|
| [`OnPlayerKeepAlive`](#onplayerkeepalive) | Player | | Returning a non-null value cancels default behavior |
|
|
| [`OnPlayerKicked`](#onplayerkicked) | Player | | — |
|
|
| [`OnPlayerLand`](#onplayerland) | Player | | Returning a non-null value overrides default behavior |
|
|
| [`OnPlayerLanded`](#onplayerlanded) | Player | | — |
|
|
| [`OnPlayerLootEnd`](#onplayerlootend) | Player | | — |
|
|
| [`OnPlayerMetabolize`](#onplayermetabolize) | Player | | — |
|
|
| [`OnPlayerRecover`](#onplayerrecover) | Player | | Returning a non-null value overrides default behavior |
|
|
| [`OnPlayerRecovered`](#onplayerrecovered) | Player | | — |
|
|
| [`OnPlayerReported`](#onplayerreported) | Player | | — |
|
|
| [`OnPlayerRespawn`](#onplayerrespawn) | Player | | Returning a BasePlayer.SpawnPoint (takes a position and rotation),… |
|
|
| [`OnPlayerRespawned`](#onplayerrespawned) | Player | | — |
|
|
| [`OnPlayerRevive`](#onplayerrevive) | Player | | Returning a non-null value cancels default behavior |
|
|
| [`OnPlayerSetInfo`](#onplayersetinfo) | Player | | — |
|
|
| [`OnPlayerSleep`](#onplayersleep) | Player | | Returning a non-null value overrides default behavior |
|
|
| [`OnPlayerSleepEnded`](#onplayersleepended) | Player | | — |
|
|
| [`OnPlayerSpawn`](#onplayerspawn) | Player | | Returning true overrides default behavior |
|
|
| [`OnPlayerSpectate`](#onplayerspectate) | Player | | Returning a non-null value overrides default behavior |
|
|
| [`OnPlayerSpectateEnd`](#onplayerspectateend) | Player | | Returning a non-null value stops the spectate from ending |
|
|
| [`OnPlayerTick`](#onplayertick) | Player | | Returning a non-null value overrides default behavior |
|
|
| [`OnPlayerViolation`](#onplayerviolation) | Player | | Returning a non-null value overrides default behavior |
|
|
| [`OnPlayerVoice`](#onplayervoice) | Player | | Returning a non-null value overrides default behavior |
|
|
| [`OnPlayerWound`](#onplayerwound) | Player | | Returning a non-null value cancels the wounded state |
|
|
| [`OnPluginLoaded`](#onpluginloaded) | Server | U | — |
|
|
| [`OnPluginUnloaded`](#onpluginunloaded) | Server | U | — |
|
|
| [`OnProjectileRicochet`](#onprojectilericochet) | Weapon | | Returning a non-null value overrides default behavior |
|
|
| [`OnQuarryEnabled`](#onquarryenabled) | Resource | | — |
|
|
| [`OnQuarryGather`](#onquarrygather) | Resource | | — |
|
|
| [`OnQuarryToggled`](#onquarrytoggled) | Resource | | — |
|
|
| [`OnRconCommand`](#onrconcommand) | Server | | — |
|
|
| [`OnRconConnection`](#onrconconnection) | Server | | Returning a non-null value overrides default behavior |
|
|
| [`OnReactiveTargetReset`](#onreactivetargetreset) | Entity | | — |
|
|
| [`OnRecyclerToggle`](#onrecyclertoggle) | Entity | | Returning a non-null value overrides default behavior |
|
|
| [`OnRefreshVendingStock`](#onrefreshvendingstock) | Vending | | — |
|
|
| [`OnRemoveDying`](#onremovedying) | Resource | | Returning a non-null value overrides default behavior |
|
|
| [`OnResearchCostDetermine`](#onresearchcostdetermine) | Item | | Returning a numeric value (int) overrides the default value |
|
|
| [`OnResourceDepositCreated`](#onresourcedepositcreated) | Entity | | — |
|
|
| [`OnRespawnInformationGiven`](#onrespawninformationgiven) | Player | | — |
|
|
| [`OnRfBroadcasterAdd`](#onrfbroadcasteradd) | Entity | | Returning a non-null value overrides default behavior |
|
|
| [`OnRfBroadcasterAdded`](#onrfbroadcasteradded) | Entity | | — |
|
|
| [`OnRfBroadcasterRemove`](#onrfbroadcasterremove) | Entity | | Returning a non-null value overrides default behavior |
|
|
| [`OnRfBroadcasterRemoved`](#onrfbroadcasterremoved) | Entity | | — |
|
|
| [`OnRfFrequencyChange`](#onrffrequencychange) | Entity | | Returning a non-null value overrides default behavior |
|
|
| [`OnRfFrequencyChanged`](#onrffrequencychanged) | Entity | | — |
|
|
| [`OnRfListenerAdd`](#onrflisteneradd) | Entity | | Returning a non-null value overrides default behavior |
|
|
| [`OnRfListenerAdded`](#onrflisteneradded) | Entity | | — |
|
|
| [`OnRfListenerRemove`](#onrflistenerremove) | Entity | | Returning a non-null value overrides default behavior |
|
|
| [`OnRfListenerRemoved`](#onrflistenerremoved) | Entity | | — |
|
|
| [`OnRidableAnimalClaim`](#onridableanimalclaim) | Entity | | Returning a non-null value overrides default behavior |
|
|
| [`OnRidableAnimalClaimed`](#onridableanimalclaimed) | Entity | | — |
|
|
| [`OnRocketLaunched`](#onrocketlaunched) | Weapon | | — |
|
|
| [`OnRotateVendingMachine`](#onrotatevendingmachine) | Vending | | Returning a non-null value overrides default behavior |
|
|
| [`OnRunPlayerMetabolism`](#onrunplayermetabolism) | Player | | Returning a non-null value cancels the update |
|
|
| [`OnSamSiteTarget`](#onsamsitetarget) | Entity | | Returning a non-null value cancels default behavior |
|
|
| [`OnSaveLoad`](#onsaveload) | Server | | Returning a non-null value overrides default behavior |
|
|
| [`OnSendCommand`](#onsendcommand) | Player | | Returning a non-null value overwrites command arguments |
|
|
| [`OnServerCommand`](#onservercommand) | Server | | Returning a non-null value overrides default behavior |
|
|
| [`OnServerInformationUpdated`](#onserverinformationupdated) | Server | | — |
|
|
| [`OnServerInitialized`](#onserverinitialized) | Server | U | — |
|
|
| [`OnServerMessage`](#onservermessage) | Server | | Return a non-null value to stop message from being sent |
|
|
| [`OnServerRestartInterrupt`](#onserverrestartinterrupt) | Server | | Returning a non-null value overrides default behavior |
|
|
| [`OnServerSave`](#onserversave) | Server | U | — |
|
|
| [`OnServerShutdown`](#onservershutdown) | Server | | — |
|
|
| [`OnShopAcceptClick`](#onshopacceptclick) | Entity | | Returning a non-null value cancels default behavior |
|
|
| [`OnShopCancelClick`](#onshopcancelclick) | Entity | | Returning a non-null value cancels default behavior |
|
|
| [`OnShopCompleteTrade`](#onshopcompletetrade) | Entity | | Returning a non-null value cancels default behavior |
|
|
| [`OnShopCompleteTrade`](#onshopcompletetrade-1) | Entity | | Returning a non-null value overrides default behavior |
|
|
| [`OnSignLocked`](#onsignlocked) | Sign | | — |
|
|
| [`OnSignUpdated`](#onsignupdated) | Sign | | — |
|
|
| [`OnSleepingBagDestroy`](#onsleepingbagdestroy) | Entity | | Returning a non-null value overrides default behavior |
|
|
| [`OnSleepingBagDestroyed`](#onsleepingbagdestroyed) | Entity | | — |
|
|
| [`OnSleepingBagValidCheck`](#onsleepingbagvalidcheck) | Entity | | Returning true or false overrides default behavior |
|
|
| [`OnSolarPanelSunUpdate`](#onsolarpanelsunupdate) | Entity | | Returning a non-null value overrides default behavior |
|
|
| [`OnSpinWheel`](#onspinwheel) | Sign | | — |
|
|
| [`OnStashExposed`](#onstashexposed) | Player | | — |
|
|
| [`OnStashHidden`](#onstashhidden) | Player | | — |
|
|
| [`OnStructureDemolish`](#onstructuredemolish) | Structure | | Returning a non-null value overrides default behavior |
|
|
| [`OnStructureRepair`](#onstructurerepair) | Structure | | Returning a non-null value cancels repair |
|
|
| [`OnStructureRotate`](#onstructurerotate) | Structure | | Returning a non-null value cancels rotate |
|
|
| [`OnStructureUpgrade`](#onstructureupgrade) | Structure | | Returning a non-null value overrides default behavior |
|
|
| [`OnSupplyDropDropped`](#onsupplydropdropped) | Entity | | — |
|
|
| [`OnSupplyDropLanded`](#onsupplydroplanded) | Entity | | — |
|
|
| [`OnSurveyGather`](#onsurveygather) | Resource | | — |
|
|
| [`OnSwitchToggle`](#onswitchtoggle) | Entity | | Returning a non-null value cancels default behavior |
|
|
| [`OnSwitchToggled`](#onswitchtoggled) | Entity | | — |
|
|
| [`OnTakeCurrencyItem`](#ontakecurrencyitem) | Vending | | Returning a non-null value cancels default behavior |
|
|
| [`OnTeamAcceptInvite`](#onteamacceptinvite) | Team | | Returning a non-null value cancels default behavior |
|
|
| [`OnTeamCreate`](#onteamcreate) | Team | | Returning a non-null value cancels default behavior |
|
|
| [`OnTeamCreated`](#onteamcreated) | Team | | — |
|
|
| [`OnTeamDisband`](#onteamdisband) | Team | | Returning a non-null value cancels default behavior |
|
|
| [`OnTeamDisbanded`](#onteamdisbanded) | Team | | — |
|
|
| [`OnTeamInvite`](#onteaminvite) | Team | | Returning a non-null value cancels default behavior |
|
|
| [`OnTeamKick`](#onteamkick) | Team | | Returning a non-null value cancels default behavior |
|
|
| [`OnTeamLeave`](#onteamleave) | Team | | Returning a non-null value cancels default behavior |
|
|
| [`OnTeamPromote`](#onteampromote) | Team | | Returning a non-null value cancels default behavior |
|
|
| [`OnTeamRejectInvite`](#onteamrejectinvite) | Team | | Returning a non-null value cancels default behavior |
|
|
| [`OnTeamUpdate`](#onteamupdate) | Team | | Returning a non-null value cancels default behavior |
|
|
| [`OnTeamUpdated`](#onteamupdated) | Team | | Returning a non-null value cancels default behavior |
|
|
| [`OnTechTreeNodeUnlock`](#ontechtreenodeunlock) | TechTree | | Returning a non-null value overrides default behavior |
|
|
| [`OnTechTreeNodeUnlocked`](#ontechtreenodeunlocked) | TechTree | | — |
|
|
| [`OnTerrainInitialized`](#onterraininitialized) | Terrain | | — |
|
|
| [`OnThreatLevelUpdate`](#onthreatlevelupdate) | Player | | Returning a non-null value cancels default behavior |
|
|
| [`OnTick`](#ontick) | Server | | — |
|
|
| [`OnToggleVendingBroadcast`](#ontogglevendingbroadcast) | Vending | | — |
|
|
| [`OnTrapArm`](#ontraparm) | Item | | Returning a non-null value overrides default behavior |
|
|
| [`OnTrapDisarm`](#ontrapdisarm) | Item | | Returning a non-null value overrides default behavior |
|
|
| [`OnTrapSnapped`](#ontrapsnapped) | Item | | — |
|
|
| [`OnTrapTrigger`](#ontraptrigger) | Item | | Returning a non-null value overrides default behavior |
|
|
| [`OnTreeMarkerHit`](#ontreemarkerhit) | Resource | | Returning true or false overrides default behaviour |
|
|
| [`OnTurretAssign`](#onturretassign) | Entity | | Returning a non-null value cancels default behavior |
|
|
| [`OnTurretAssigned`](#onturretassigned) | Entity | | — |
|
|
| [`OnTurretAuthorize`](#onturretauthorize) | Entity | | Returning a non-null value overrides default behavior |
|
|
| [`OnTurretClearList`](#onturretclearlist) | Entity | | Returning a non-null value overrides default behavior |
|
|
| [`OnTurretDeauthorize`](#onturretdeauthorize) | Entity | | Returning a non-null value overrides default behavior |
|
|
| [`OnTurretModeToggle`](#onturretmodetoggle) | Entity | | — |
|
|
| [`OnTurretRotate`](#onturretrotate) | Entity | | Returning a non-null value overrides default behavior |
|
|
| [`OnTurretShutdown`](#onturretshutdown) | Entity | | Returning a non-null value overrides default behavior |
|
|
| [`OnTurretStartup`](#onturretstartup) | Entity | | Returning a non-null value overrides default behavior |
|
|
| [`OnTurretTarget`](#onturrettarget) | Entity | | Returning a non-null value overrides default behavior |
|
|
| [`OnTurretToggle`](#onturrettoggle) | Entity | | Returning a non-null value overrides default behavior |
|
|
| [`OnUserApprove`](#onuserapprove) | Player | | Returning a non-null value overrides default behavior, plugin shoul… |
|
|
| [`OnUserApproved`](#onuserapproved) | Player | U | — |
|
|
| [`OnUserBanned`](#onuserbanned) | Player | U | — |
|
|
| [`OnUserChat`](#onuserchat) | Player | U | Returning true overrides default behavior of chat, not commands |
|
|
| [`OnUserCommand`](#onusercommand) | Player | U | Returning a non-null value overrides default behavior |
|
|
| [`OnUserConnected`](#onuserconnected) | Player | U | — |
|
|
| [`OnUserDisconnected`](#onuserdisconnected) | Player | U | — |
|
|
| [`OnUserGroupAdded`](#onusergroupadded) | Player | U | — |
|
|
| [`OnUserGroupRemoved`](#onusergroupremoved) | Player | U | — |
|
|
| [`OnUserKicked`](#onuserkicked) | Player | U | — |
|
|
| [`OnUserNameUpdated`](#onusernameupdated) | Player | U | — |
|
|
| [`OnUserPermissionGranted`](#onuserpermissiongranted) | Player | U | — |
|
|
| [`OnUserPermissionRevoked`](#onuserpermissionrevoked) | Player | U | — |
|
|
| [`OnUserRespawn`](#onuserrespawn) | Player | U | — |
|
|
| [`OnUserRespawned`](#onuserrespawned) | Player | U | — |
|
|
| [`OnUserUnbanned`](#onuserunbanned) | Player | U | — |
|
|
| [`OnVehicleModuleDeselected`](#onvehiclemoduledeselected) | Vehicle | | — |
|
|
| [`OnVehicleModuleMove`](#onvehiclemodulemove) | Vehicle | | Returning a non-null value overrides default behavior |
|
|
| [`OnVehicleModulesAssign`](#onvehiclemodulesassign) | Vehicle | | Returning a non-null value overrides default behavior |
|
|
| [`OnVehicleModulesAssigned`](#onvehiclemodulesassigned) | Vehicle | | — |
|
|
| [`OnVehicleModuleSelect`](#onvehiclemoduleselect) | Vehicle | | Returning a non-null value overrides default behavior |
|
|
| [`OnVehicleModuleSelected`](#onvehiclemoduleselected) | Vehicle | | — |
|
|
| [`OnVehiclePush`](#onvehiclepush) | Vehicle | | Returning a non-null value overrides default behavior |
|
|
| [`OnVendingShopOpened`](#onvendingshopopened) | Vending | | — |
|
|
| [`OnVendingShopRename`](#onvendingshoprename) | Vending | | Returning a non-null value cancels default behavior |
|
|
| [`OnVendingTransaction`](#onvendingtransaction) | Vending | | Returning true or false overrides default behavior |
|
|
| [`OnWaterCollect`](#onwatercollect) | Entity | | Returning a non-null value cancels default behavior |
|
|
| [`OnWaterPurified`](#onwaterpurified) | Entity | | — |
|
|
| [`OnWaterPurify`](#onwaterpurify) | Entity | | Returning a non-null value cancels default behavior |
|
|
| [`OnWeaponFired`](#onweaponfired) | Weapon | | — |
|
|
| [`OnWeaponReload`](#onweaponreload) | Weapon | | Returning a non-null value overrides default behavior |
|
|
| [`OnWireClear`](#onwireclear) | Entity | | Returning a non-null value cancels default behavior |
|
|
| [`OnWireConnect`](#onwireconnect) | Entity | | Returning a non-null value cancels default behavior |
|
|
| [`OnWorldPrefabSpawned`](#onworldprefabspawned) | World | | — |
|
|
| [`OnWorldProjectileCreate`](#onworldprojectilecreate) | Weapon | | Returning a non-null value overrides default behavior |
|
|
| [`Unload`](#unload) | Plugin | U | — |
|
|
|
|
---
|
|
|
|
## Server Hooks
|
|
|
|
*Process lifecycle, the tick/frame loop, save and restart, RCON and console commands.*
|
|
|
|
17 hooks: [`Init`](#init), [`OnMessagePlayer`](#onmessageplayer), [`OnServerCommand`](#onservercommand), [`OnServerRestartInterrupt`](#onserverrestartinterrupt), [`OnServerShutdown`](#onservershutdown), [`OnFrame`](#onframe), [`OnServerInformationUpdated`](#onserverinformationupdated), [`OnRconCommand`](#onrconcommand), [`OnPluginLoaded`](#onpluginloaded), [`OnRconConnection`](#onrconconnection), [`OnNewSave`](#onnewsave), [`OnPluginUnloaded`](#onpluginunloaded), [`OnSaveLoad`](#onsaveload), [`OnServerInitialized`](#onserverinitialized), [`OnServerMessage`](#onservermessage), [`OnServerSave`](#onserversave), [`OnTick`](#ontick)
|
|
|
|
<a id="init"></a>
|
|
|
|
### `Init` · *universal*
|
|
|
|
- Called when a plugin is being initialized
|
|
- Other plugins may or may not be present, dependant on load order
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void Init()
|
|
{
|
|
Puts("Init works!");
|
|
}
|
|
```
|
|
|
|
<sub>uMod last updated 2018-08-20</sub>
|
|
|
|
<a id="onmessageplayer"></a>
|
|
|
|
### `OnMessagePlayer`
|
|
|
|
- Useful for intercepting server messages before they get to their intended target
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnMessagePlayer(string message, BasePlayer player)
|
|
{
|
|
Puts("OnMessagePlayer works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `message`, `server` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onservercommand"></a>
|
|
|
|
### `OnServerCommand`
|
|
|
|
- Useful for intercepting commands before they get to their intended target
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnServerCommand(ConsoleSystem.Arg arg)
|
|
{
|
|
Puts("OnServerCommand works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `server` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onserverrestartinterrupt"></a>
|
|
|
|
### `OnServerRestartInterrupt`
|
|
|
|
- Called when a server restart is being cancelled
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnServerRestartInterrupt()
|
|
{
|
|
Puts("OnServerRestartInterrupt works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `server` · uMod last updated 2023-04-11</sub>
|
|
|
|
<a id="onservershutdown"></a>
|
|
|
|
### `OnServerShutdown`
|
|
|
|
- Useful for saving something / etc on server shutdown
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnServerShutdown()
|
|
{
|
|
Puts("OnServerShutdown works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `server` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onframe"></a>
|
|
|
|
### `OnFrame` · *universal*
|
|
|
|
- Called each frame
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnFrame()
|
|
{
|
|
Puts("OnFrame works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `frame`, `server` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onserverinformationupdated"></a>
|
|
|
|
### `OnServerInformationUpdated`
|
|
|
|
- Called after all steam information for the server has has been updated
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnServerInformationUpdated()
|
|
{
|
|
Puts("OnServerInformationUpdated works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `server`, `steam` · uMod last updated 2023-04-11</sub>
|
|
|
|
<a id="onrconcommand"></a>
|
|
|
|
### `OnRconCommand`
|
|
|
|
- Called when an RCON command is run
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnRconCommand(IPAddress ip, string command, string[] args)
|
|
{
|
|
Puts("OnRconCommand works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `rcon`, `server` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onpluginloaded"></a>
|
|
|
|
### `OnPluginLoaded` · *universal*
|
|
|
|
- Called when any plugin has been loaded
|
|
- Not to be confused with [`Loaded`](#loaded)
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnPluginLoaded(Plugin plugin)
|
|
{
|
|
Puts($"Plugin '{plugin.Name}' has been loaded");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `plugin`, `server` · uMod last updated 2023-12-25</sub>
|
|
|
|
<a id="onrconconnection"></a>
|
|
|
|
### `OnRconConnection`
|
|
|
|
- Called when a new RCON connection is opened
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnRconConnection(IPAddress ip)
|
|
{
|
|
Puts("OnRconConnection works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `rcon`, `server` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onnewsave"></a>
|
|
|
|
### `OnNewSave`
|
|
|
|
- Called when a new savefile is created (usually when map has wiped)
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnNewSave(string filename)
|
|
{
|
|
Puts("OnNewSave works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `server` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onpluginunloaded"></a>
|
|
|
|
### `OnPluginUnloaded` · *universal*
|
|
|
|
- Called when any plugin has been unloaded
|
|
- Not to be confused with [`Unload`](#unload)
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnPluginUnloaded(Plugin plugin)
|
|
{
|
|
Puts($"Plugin '{plugin.Name}' has been unloaded");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `plugin`, `server` · uMod last updated 2023-12-25</sub>
|
|
|
|
<a id="onsaveload"></a>
|
|
|
|
### `OnSaveLoad`
|
|
|
|
- Called when a save file is loaded
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnSaveLoad(Dictionary<BaseEntity, ProtoBuf.Entity> entities)
|
|
{
|
|
Puts("OnSaveLoad works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `save`, `server` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onserverinitialized"></a>
|
|
|
|
### `OnServerInitialized` · *universal*
|
|
|
|
- Called after the server startup has been completed and is awaiting connections
|
|
- Also called for plugins that are hotloaded while the server is already started running
|
|
- Boolean parameter, false if called on plugin hotload and true if called on server initialization
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnServerInitialized(bool initial)
|
|
{
|
|
Puts("OnServerInitialized works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `server` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onservermessage"></a>
|
|
|
|
### `OnServerMessage`
|
|
|
|
- Called before a SERVER message is sent to a player
|
|
|
|
**Returns:** Return a non-null value to stop message from being sent
|
|
|
|
```csharp
|
|
// Example that stops message from being sent
|
|
|
|
object OnServerMessage(string message, string playerName, string color, ulong playerId)
|
|
{
|
|
if (message.Contains("gave"))
|
|
{
|
|
Puts($"Message to {playerName} ({playerId}) cancelled");
|
|
return false;
|
|
}
|
|
|
|
return null;
|
|
}
|
|
```
|
|
|
|
```csharp
|
|
// Example that does not stop message from being sent
|
|
|
|
void OnServerMessage(string message, string playerName, string color, ulong playerId)
|
|
{
|
|
Puts($"{playerName} ({playerId}) was sent message: {message}");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `server` · uMod last updated 2022-01-28</sub>
|
|
|
|
<a id="onserversave"></a>
|
|
|
|
### `OnServerSave` · *universal*
|
|
|
|
- Called before the server saves
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnServerSave()
|
|
{
|
|
Puts("OnServerSave works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `server` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="ontick"></a>
|
|
|
|
### `OnTick`
|
|
|
|
- Called every tick (defined by the tick rate of the server)
|
|
- For better performance, avoid using heavy calculations in this hook.
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnTick()
|
|
{
|
|
Puts("OnTick works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `tick`, `server` · uMod last updated 2021-05-08</sub>
|
|
|
|
---
|
|
|
|
## Player Hooks
|
|
|
|
*Everything a connected human does: connect, chat, command, craft, loot, build, die, respawn. The largest surface alongside Entity.*
|
|
|
|
138 hooks: [`CanAffordToPlace`](#canaffordtoplace), [`CanAffordUpgrade`](#canaffordupgrade), [`CanAssignBed`](#canassignbed), [`CanDeployItem`](#candeployitem), [`CanLock`](#canlock), [`CanPushBoat`](#canpushboat), [`CanSpectateTarget`](#canspectatetarget), [`CanUpdateSign`](#canupdatesign), [`CanUseWires`](#canusewires), [`OnActiveItemChange`](#onactiveitemchange), [`OnActiveItemChanged`](#onactiveitemchanged), [`OnBroadcastCommand`](#onbroadcastcommand), [`OnMapMarkerAdd`](#onmapmarkeradd), [`OnMapMarkerAdded`](#onmapmarkeradded), [`OnMapMarkerRemove`](#onmapmarkerremove), [`OnMapMarkersClear`](#onmapmarkersclear), [`OnMapMarkersCleared`](#onmapmarkerscleared), [`OnMeleeAttack`](#onmeleeattack), [`OnPayForPlacement`](#onpayforplacement), [`OnPayForUpgrade`](#onpayforupgrade), [`OnPlayerAssist`](#onplayerassist), [`OnPlayerCommand`](#onplayercommand), [`OnPlayerCorpse`](#onplayercorpse), [`OnPlayerCorpseSpawn`](#onplayercorpsespawn), [`OnPlayerCorpseSpawned`](#onplayercorpsespawned), [`OnPlayerKeepAlive`](#onplayerkeepalive), [`OnPlayerRecovered`](#onplayerrecovered), [`OnPlayerReported`](#onplayerreported), [`OnPlayerRevive`](#onplayerrevive), [`OnPlayerSetInfo`](#onplayersetinfo), [`OnSendCommand`](#onsendcommand), [`OnUserChat`](#onuserchat), [`OnUserCommand`](#onusercommand), [`OnUserRespawn`](#onuserrespawn), [`OnUserRespawned`](#onuserrespawned), [`OnUserConnected`](#onuserconnected), [`OnUserDisconnected`](#onuserdisconnected), [`CanBeTargeted`](#canbetargeted), [`CanBeWounded`](#canbewounded), [`CanBuild`](#canbuild), [`CanBypassQueue`](#canbypassqueue), [`CanChangeCode`](#canchangecode), [`CanChangeGrade`](#canchangegrade), [`CanCraft`](#cancraft), [`CanClientLogin`](#canclientlogin), [`CanDemolish`](#candemolish), [`CanHackCrate`](#canhackcrate), [`CanUserLogin`](#canuserlogin), [`OnUserApproved`](#onuserapproved), [`CanDismountEntity`](#candismountentity), [`OnUserNameUpdated`](#onusernameupdated), [`CanEquipItem`](#canequipitem), [`OnUserGroupAdded`](#onusergroupadded), [`OnUserGroupRemoved`](#onusergroupremoved), [`OnExperimentStart`](#onexperimentstart), [`OnExperimentStarted`](#onexperimentstarted), [`OnUserPermissionGranted`](#onuserpermissiongranted), [`OnUserPermissionRevoked`](#onuserpermissionrevoked), [`OnExperimentEnd`](#onexperimentend), [`OnExperimentEnded`](#onexperimentended), [`OnUserKicked`](#onuserkicked), [`CanHideStash`](#canhidestash), [`OnUserBanned`](#onuserbanned), [`CanLootEntity`](#canlootentity), [`CanLootPlayer`](#canlootplayer), [`CanMountEntity`](#canmountentity), [`OnUserUnbanned`](#onuserunbanned), [`CanPickupEntity`](#canpickupentity), [`CanPickupLock`](#canpickuplock), [`CanRenameBed`](#canrenamebed), [`CanResearchItem`](#canresearchitem), [`CanUseLockedEntity`](#canuselockedentity), [`CanSeeStash`](#canseestash), [`OnStashExposed`](#onstashexposed), [`OnStashHidden`](#onstashhidden), [`CanSetBedPublic`](#cansetbedpublic), [`CanUnlock`](#canunlock), [`CanUseMailbox`](#canusemailbox), [`CanUseUI`](#canuseui), [`CanWearItem`](#canwearitem), [`OnClientAuth`](#onclientauth), [`OnDestroyUI`](#ondestroyui), [`OnFindSpawnPoint`](#onfindspawnpoint), [`OnLootEntity`](#onlootentity), [`OnLootEntityEnd`](#onlootentityend), [`OnLootItem`](#onlootitem), [`OnLootPlayer`](#onlootplayer), [`OnPlayerAttack`](#onplayerattack), [`OnPlayerBanned`](#onplayerbanned), [`OnPlayerChat`](#onplayerchat), [`OnPlayerConnected`](#onplayerconnected), [`OnPlayerDeath`](#onplayerdeath), [`OnPlayerDisconnected`](#onplayerdisconnected), [`OnPlayerDropActiveItem`](#onplayerdropactiveitem), [`OnPlayerHealthChange`](#onplayerhealthchange), [`OnPlayerInput`](#onplayerinput), [`OnPlayerKicked`](#onplayerkicked), [`OnPlayerLand`](#onplayerland), [`OnPlayerLanded`](#onplayerlanded), [`OnPlayerLootEnd`](#onplayerlootend), [`OnPlayerMetabolize`](#onplayermetabolize), [`OnPlayerRecover`](#onplayerrecover), [`OnPlayerRespawn`](#onplayerrespawn), [`OnPlayerRespawned`](#onplayerrespawned), [`OnRespawnInformationGiven`](#onrespawninformationgiven), [`OnPlayerSleep`](#onplayersleep), [`OnPlayerSleepEnded`](#onplayersleepended), [`OnPlayerSpawn`](#onplayerspawn), [`OnPlayerSpectate`](#onplayerspectate), [`OnPlayerSpectateEnd`](#onplayerspectateend), [`OnPlayerTick`](#onplayertick), [`OnPlayerViolation`](#onplayerviolation), [`OnPlayerVoice`](#onplayervoice), [`OnPlayerWound`](#onplayerwound), [`OnRunPlayerMetabolism`](#onrunplayermetabolism), [`OnUserApprove`](#onuserapprove), [`OnDefaultItemsReceive`](#ondefaultitemsreceive), [`OnDefaultItemsReceived`](#ondefaultitemsreceived), [`OnAnalysisComplete`](#onanalysiscomplete), [`OnNpcConversationStart`](#onnpcconversationstart), [`OnNpcConversationRespond`](#onnpcconversationrespond), [`OnNpcConversationEnded`](#onnpcconversationended), [`OnNpcConversationResponded`](#onnpcconversationresponded), [`OnNetworkGroupEntered`](#onnetworkgroupentered), [`OnNetworkGroupLeft`](#onnetworkgroupleft), [`OnDemoRecordingStart`](#ondemorecordingstart), [`OnDemoRecordingStarted`](#ondemorecordingstarted), [`OnDemoRecordingStop`](#ondemorecordingstop), [`OnDemoRecordingStopped`](#ondemorecordingstopped), [`OnLootNetworkUpdate`](#onlootnetworkupdate), [`OnInventoryNetworkUpdate`](#oninventorynetworkupdate), [`OnPlayerAddModifiers`](#onplayeraddmodifiers), [`OnThreatLevelUpdate`](#onthreatlevelupdate), [`CanUseGesture`](#canusegesture), [`OnCentralizedBanCheck`](#oncentralizedbancheck), [`OnClientCommand`](#onclientcommand), [`OnCorpsePopulate`](#oncorpsepopulate), [`CanSetRelationship`](#cansetrelationship)
|
|
|
|
<a id="canaffordtoplace"></a>
|
|
|
|
### `CanAffordToPlace`
|
|
|
|
- Useful for ignoring resource requirements for placement
|
|
|
|
**Returns:** Returning true or false overrides default behavior
|
|
|
|
```csharp
|
|
bool CanAffordToPlace(BasePlayer player, Planner planner, Construction construction)
|
|
{
|
|
Puts("CanAffordToPlace works!");
|
|
return false;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `afford`, `player` · uMod last updated 2022-01-17</sub>
|
|
|
|
<a id="canaffordupgrade"></a>
|
|
|
|
### `CanAffordUpgrade`
|
|
|
|
- Called when the resources for an upgrade are checked
|
|
|
|
**Returns:** Returning true or false overrides default behavior
|
|
|
|
```csharp
|
|
bool CanAffordUpgrade(BasePlayer player, BuildingBlock block, BuildingGrade.Enum grade)
|
|
{
|
|
Puts("CanAffordUpgrade works!");
|
|
return true;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player` · uMod last updated 2022-01-19</sub>
|
|
|
|
<a id="canassignbed"></a>
|
|
|
|
### `CanAssignBed`
|
|
|
|
- Called when a player attempts to assign a bed or sleeping bag to another player
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object CanAssignBed(BasePlayer player, SleepingBag bag, ulong targetPlayerId)
|
|
{
|
|
Puts("CanAssignBed works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `assign`, `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="candeployitem"></a>
|
|
|
|
### `CanDeployItem`
|
|
|
|
- Useful for denying items' deployment
|
|
|
|
**Returns:** Returning a non-null value cancels default behavior
|
|
|
|
```csharp
|
|
object CanDeployItem(BasePlayer player, Deployer deployer, NetworkableId entityId)
|
|
{
|
|
Puts("CanDeployItem works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `deploy`, `player` · uMod last updated 2023-05-04</sub>
|
|
|
|
<a id="canlock"></a>
|
|
|
|
### `CanLock`
|
|
|
|
- Useful for canceling the lock action
|
|
|
|
**Returns:** Returning a non-null value cancels default behavior
|
|
|
|
```csharp
|
|
object CanLock(BasePlayer player, BaseLock baseLock)
|
|
{
|
|
Puts("CanLock works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `lock`, `player` · uMod last updated 2021-08-14</sub>
|
|
|
|
<a id="canpushboat"></a>
|
|
|
|
### `CanPushBoat`
|
|
|
|
- Useful for canceling boat push
|
|
|
|
**Returns:** Returning a non-null value cancels default behavior
|
|
|
|
```csharp
|
|
object CanPushBoat(BasePlayer player, MotorRowboat boat)
|
|
{
|
|
Puts("CanPushBoat works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `push`, `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="canspectatetarget"></a>
|
|
|
|
### `CanSpectateTarget`
|
|
|
|
- Called when spectate target is attempting to update
|
|
|
|
**Returns:** Returning a non-null value cancels default behavior
|
|
|
|
```csharp
|
|
object CanSpectateTarget(BasePlayer player, string filter)
|
|
{
|
|
Puts($"{player.displayName} tries to spectate with a filter: {filter}");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `spectate`, `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="canupdatesign"></a>
|
|
|
|
### `CanUpdateSign`
|
|
|
|
- Called when the player attempts to change the text on a sign or lock it, or update a photo frame
|
|
|
|
**Returns:** Returning true or false overrides default behavior
|
|
|
|
```csharp
|
|
bool CanUpdateSign(BasePlayer player, Signage sign)
|
|
{
|
|
Puts("CanUpdateSign works!");
|
|
return true;
|
|
}
|
|
```
|
|
|
|
```csharp
|
|
bool CanUpdateSign(BasePlayer player, PhotoFrame photoFrame)
|
|
{
|
|
Puts("CanUpdateSign works!");
|
|
return true;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `update`, `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="canusewires"></a>
|
|
|
|
### `CanUseWires`
|
|
|
|
- Useful for allowing or preventing a player from using wires
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object CanUseWires(BasePlayer player)
|
|
{
|
|
Puts($"{player.displayName} has just tried to use wires");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onactiveitemchange"></a>
|
|
|
|
### `OnActiveItemChange`
|
|
|
|
- Called when active item is attempting to update
|
|
|
|
**Returns:** Returning a non-null value cancels default behavior
|
|
|
|
```csharp
|
|
object OnActiveItemChange(BasePlayer player, Item oldItem, ItemId newItemId)
|
|
{
|
|
Puts("OnActiveItemChange works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `active`, `player` · uMod last updated 2023-05-04</sub>
|
|
|
|
<a id="onactiveitemchanged"></a>
|
|
|
|
### `OnActiveItemChanged`
|
|
|
|
- Called when active item was changed
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnActiveItemChanged(BasePlayer player, Item oldItem, Item newItem)
|
|
{
|
|
Puts("OnActiveItemChanged works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `active`, `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onbroadcastcommand"></a>
|
|
|
|
### `OnBroadcastCommand`
|
|
|
|
- Called before a command is broadcasted to all connected clients
|
|
|
|
**Returns:** Returning a non-null value overwrites command arguments
|
|
|
|
```csharp
|
|
object OnBroadcastCommand(string command, object[] args)
|
|
{
|
|
Puts("OnBroadcastCommand works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `broadcast`, `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onmapmarkeradd"></a>
|
|
|
|
### `OnMapMarkerAdd`
|
|
|
|
- Called when trying to add a marker
|
|
|
|
**Returns:** Returning a non-null value cancels default behavior
|
|
|
|
```csharp
|
|
object OnMapMarkerAdd(BasePlayer player, MapNote note)
|
|
{
|
|
Puts("OnMapMarkerAdd works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onmapmarkeradded"></a>
|
|
|
|
### `OnMapMarkerAdded`
|
|
|
|
- Called after a marker was added
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnMapMarkerAdded(BasePlayer player, MapNote note)
|
|
{
|
|
Puts("OnMapMarkerAdded works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onmapmarkerremove"></a>
|
|
|
|
### `OnMapMarkerRemove`
|
|
|
|
- Called when trying to remove a marker
|
|
|
|
**Returns:** Returning a non-null value cancels default behaviour
|
|
|
|
```csharp
|
|
object OnMapMarkerRemove(BasePlayer player, MapNote note)
|
|
{
|
|
Puts("OnMapMarkerRemove works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onmapmarkersclear"></a>
|
|
|
|
### `OnMapMarkersClear`
|
|
|
|
- Called when trying to clear map markers
|
|
|
|
**Returns:** Returning a non-null value cancels default behavior
|
|
|
|
```csharp
|
|
object OnMapMarkersClear(BasePlayer player, List<MapNote> notes)
|
|
{
|
|
Puts("OnMapMarkersClear works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onmapmarkerscleared"></a>
|
|
|
|
### `OnMapMarkersCleared`
|
|
|
|
- Called after markers were cleared
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnMapMarkersCleared(BasePlayer player, List<MapNote> notes)
|
|
{
|
|
Puts("OnMapMarkersCleared works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onmeleeattack"></a>
|
|
|
|
### `OnMeleeAttack`
|
|
|
|
- Useful for canceling melee attacks
|
|
|
|
**Returns:** Returning a non-null value cancels default behavior
|
|
|
|
```csharp
|
|
object OnMeleeAttack(BasePlayer player, HitInfo info)
|
|
{
|
|
Puts("OnMeleeAttack works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `melee`, `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onpayforplacement"></a>
|
|
|
|
### `OnPayForPlacement`
|
|
|
|
- Called when a player is paying for placement. Useful for preventing paying for placing deployables, building blocks and etc
|
|
|
|
**Returns:** Returning a non-null value cancels default behavior
|
|
|
|
```csharp
|
|
object OnPayForPlacement(BasePlayer player, Planner planner, Construction construction)
|
|
{
|
|
Puts("OnPayForPlacement works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onpayforupgrade"></a>
|
|
|
|
### `OnPayForUpgrade`
|
|
|
|
- Called when player is paying for an upgrade. Useful for preventing paying for block upgrade
|
|
|
|
**Returns:** Returning a non-null value cancels default behavior
|
|
|
|
```csharp
|
|
object OnPayForUpgrade(BasePlayer player, BuildingBlock block, ConstructionGrade gradeTarget)
|
|
{
|
|
Puts("OnPayForUpgrade works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onplayerassist"></a>
|
|
|
|
### `OnPlayerAssist`
|
|
|
|
- Called when a player tries to assist target player (when target is wounded)
|
|
|
|
**Returns:** Returning a non-null value cancels default behavior
|
|
|
|
```csharp
|
|
object OnPlayerAssist(BasePlayer target, BasePlayer player)
|
|
{
|
|
Puts("OnPlayerAssist works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onplayercommand"></a>
|
|
|
|
### `OnPlayerCommand`
|
|
|
|
- Useful for intercepting players' commands before their handling
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnPlayerCommand(BasePlayer player, string command, string[] args)
|
|
{
|
|
Puts("OnPlayerCommand works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player` · uMod last updated 2021-08-05</sub>
|
|
|
|
<a id="onplayercorpse"></a>
|
|
|
|
### `OnPlayerCorpse`
|
|
|
|
- Called when a non-null corpse has just been spawned
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnPlayerCorpse(BasePlayer player, BaseCorpse corpse)
|
|
{
|
|
Puts($"A corpse for {player.displayName} has just been spawned!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onplayercorpsespawn"></a>
|
|
|
|
### `OnPlayerCorpseSpawn`
|
|
|
|
- Called when a non-null corpse is about to spawn
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnPlayerCorpseSpawn(BasePlayer player)
|
|
{
|
|
Puts("OnPlayerCorpseSpawn works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onplayercorpsespawned"></a>
|
|
|
|
### `OnPlayerCorpseSpawned`
|
|
|
|
- Called when a non-null corpse has just been spawned
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnPlayerCorpseSpawned(BasePlayer player, PlayerCorpse corpse)
|
|
{
|
|
Puts("OnPlayerCorpseSpawned works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onplayerkeepalive"></a>
|
|
|
|
### `OnPlayerKeepAlive`
|
|
|
|
- Called before a player is kept alive (Example: You started "helping" player, it keeps him alive for at least 10 seconds more to be sure he won't die until you finish picking him up)
|
|
|
|
**Returns:** Returning a non-null value cancels default behavior
|
|
|
|
```csharp
|
|
object OnPlayerKeepAlive(BasePlayer player, BasePlayer target)
|
|
{
|
|
Puts("OnPlayerKeepAlive works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onplayerrecovered"></a>
|
|
|
|
### `OnPlayerRecovered`
|
|
|
|
- Called when the player was recovered
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnPlayerRecovered(BasePlayer player)
|
|
{
|
|
Puts("OnPlayerRecovered works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player` · uMod last updated 2022-01-24</sub>
|
|
|
|
<a id="onplayerreported"></a>
|
|
|
|
### `OnPlayerReported`
|
|
|
|
- Called when a player has reported someone via F7
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnPlayerReported(BasePlayer reporter, string targetName, string targetId, string subject, string message, string type)
|
|
{
|
|
Puts($"{reporter.displayName} reported {targetName} for {subject}.");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onplayerrevive"></a>
|
|
|
|
### `OnPlayerRevive`
|
|
|
|
- Called before the recover after reviving with a medical tool
|
|
- Useful for canceling the reviving
|
|
|
|
**Returns:** Returning a non-null value cancels default behavior
|
|
|
|
```csharp
|
|
object OnPlayerRevive(BasePlayer reviver, BasePlayer player)
|
|
{
|
|
Puts($"{reviver.displayName} revived {player.displayName}");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player` · uMod last updated 2022-01-24</sub>
|
|
|
|
<a id="onplayersetinfo"></a>
|
|
|
|
### `OnPlayerSetInfo`
|
|
|
|
- Called when setting player's information *(aka console variables)*
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnPlayerSetInfo(Connection connection, string key, string value)
|
|
{
|
|
Puts($"{connection.userid}: {key} was set to {value}");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onsendcommand"></a>
|
|
|
|
### `OnSendCommand`
|
|
|
|
- Called before a command is sent from the server to a player (or a group of players)
|
|
- Usually commands aren't sent to a group of players, so in most cases it's safe to use only OnSendCommand with a single Connection.
|
|
|
|
**Returns:** Returning a non-null value overwrites command arguments
|
|
|
|
```csharp
|
|
object OnSendCommand(List<Connection> connections, string command, object[] args)
|
|
{
|
|
Puts("OnSendCommand works!");
|
|
return null;
|
|
}
|
|
|
|
object OnSendCommand(Connection connection, string command, object[] args)
|
|
{
|
|
Puts("OnSendCommand works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `send`, `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onuserchat"></a>
|
|
|
|
### `OnUserChat` · *universal*
|
|
|
|
- Called when a player sends a chat message to the server
|
|
|
|
**Returns:** Returning true overrides default behavior of chat, not commands
|
|
|
|
```csharp
|
|
object OnUserChat(IPlayer player, string message)
|
|
{
|
|
Puts($"{player.Name} said: {message}");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `user`, `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onusercommand"></a>
|
|
|
|
### `OnUserCommand` · *universal*
|
|
|
|
- Useful for intercepting players' commands before their handling
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnUserCommand(IPlayer player, string command, string[] args)
|
|
{
|
|
Puts("OnUserCommand works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `user`, `player` · uMod last updated 2021-08-05</sub>
|
|
|
|
<a id="onuserrespawn"></a>
|
|
|
|
### `OnUserRespawn` · *universal*
|
|
|
|
- Called when a player is respawning
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnUserRespawn(IPlayer player)
|
|
{
|
|
Puts("OnUserRespawn works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `user`, `player` · uMod last updated 2022-01-25</sub>
|
|
|
|
<a id="onuserrespawned"></a>
|
|
|
|
### `OnUserRespawned` · *universal*
|
|
|
|
- Called after a player has respawned
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnUserRespawned(IPlayer player)
|
|
{
|
|
Puts("OnUserRespawned works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `user`, `player` · uMod last updated 2022-01-25</sub>
|
|
|
|
<a id="onuserconnected"></a>
|
|
|
|
### `OnUserConnected` · *universal*
|
|
|
|
- Called after a player has been approved and has connected to the server
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnUserConnected(IPlayer player)
|
|
{
|
|
Puts($"{player.Name} ({player.Id}) connected from {player.Address}");
|
|
|
|
if (player.IsAdmin)
|
|
{
|
|
Puts($"{player.Name} ({player.Id}) is admin");
|
|
}
|
|
|
|
Puts($"{player.Name} is {(player.IsBanned ? "banned" : "not banned")}");
|
|
|
|
server.Broadcast($"Welcome {player.Name} to {server.Name}!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `user`, `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onuserdisconnected"></a>
|
|
|
|
### `OnUserDisconnected` · *universal*
|
|
|
|
- Called after a player has disconnected from the server
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnUserDisconnected(IPlayer player)
|
|
{
|
|
Puts($"{player.Name} ({player.Id}) disconnected");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `user`, `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="canbetargeted"></a>
|
|
|
|
### `CanBeTargeted`
|
|
|
|
- Called when an autoturret, flame turret, shotgun trap, or helicopter turret is attempting to target the player
|
|
|
|
**Returns:** Returning true or false overrides default behavior
|
|
|
|
```csharp
|
|
bool CanBeTargeted(BaseCombatEntity player, MonoBehaviour behaviour)
|
|
{
|
|
Puts("CanBeTargeted works!");
|
|
return true;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="canbewounded"></a>
|
|
|
|
### `CanBeWounded`
|
|
|
|
- Called when any damage is attempted on player
|
|
|
|
**Returns:** Returning true or false overrides default behavior
|
|
|
|
```csharp
|
|
bool CanBeWounded(BasePlayer player, HitInfo info)
|
|
{
|
|
Puts("CanBeWounded works!");
|
|
return true;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="canbuild"></a>
|
|
|
|
### `CanBuild`
|
|
|
|
- Called when the player tries to build something
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object CanBuild(Planner planner, Construction prefab, Construction.Target target)
|
|
{
|
|
Puts("CanBuild works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `build`, `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="canbypassqueue"></a>
|
|
|
|
### `CanBypassQueue`
|
|
|
|
- Called before the player is added to the connection queue
|
|
|
|
**Returns:** Returning true will bypass the queue, returning nothing will by default queue the player
|
|
|
|
```csharp
|
|
bool CanBypassQueue(Network.Connection connection)
|
|
{
|
|
Puts("CanBypassQueue works!");
|
|
return true;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `bypass`, `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="canchangecode"></a>
|
|
|
|
### `CanChangeCode`
|
|
|
|
- Called when a player tries to change the code on a codelock
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object CanChangeCode(BasePlayer player, CodeLock codeLock, string newCode, bool isGuestCode)
|
|
{
|
|
Puts("CanChangeCode works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `change`, `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="canchangegrade"></a>
|
|
|
|
### `CanChangeGrade`
|
|
|
|
- Called when a player tries to change a building grade
|
|
|
|
**Returns:** Returning true or false overrides default behavior
|
|
|
|
```csharp
|
|
bool CanChangeGrade(BasePlayer player, BuildingBlock block, BuildingGrade.Enum grade)
|
|
{
|
|
Puts("CanChangeGrade works!");
|
|
return true;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `change`, `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="cancraft"></a>
|
|
|
|
### `CanCraft`
|
|
|
|
- Called when the player attempts to craft an item
|
|
|
|
**Returns:** Returning true or false overrides default behavior
|
|
|
|
```csharp
|
|
bool CanCraft(ItemCrafter itemCrafter, ItemBlueprint bp, int amount)
|
|
{
|
|
Puts("CanCraft works!");
|
|
return true;
|
|
}
|
|
```
|
|
|
|
```csharp
|
|
bool CanCraft(PlayerBlueprints playerBlueprints, ItemDefinition itemDefinition, int skinItemId)
|
|
{
|
|
Puts("CanCraft works!");
|
|
return true;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `craft`, `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="canclientlogin"></a>
|
|
|
|
### `CanClientLogin`
|
|
|
|
- Called when the player is attempting to login
|
|
|
|
**Returns:** Returning a string will use the string as the error message
|
|
|
|
**Returns:** Returning true allows the connection, returning nothing will by default allow the connection, returning anything else will reject it with an error message
|
|
|
|
```csharp
|
|
object CanClientLogin(Network.Connection connection)
|
|
{
|
|
Puts("CanClientLogin works!");
|
|
return true;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `client`, `player` · uMod last updated 2022-09-28</sub>
|
|
|
|
<a id="candemolish"></a>
|
|
|
|
### `CanDemolish`
|
|
|
|
- Called when a player tries to demolish a building block
|
|
|
|
**Returns:** Returning true or false overrides default behavior
|
|
|
|
```csharp
|
|
bool CanDemolish(BasePlayer player, BuildingBlock block, BuildingGrade.Enum grade)
|
|
{
|
|
Puts("CanDemolish works!");
|
|
return true;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `demolish`, `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="canhackcrate"></a>
|
|
|
|
### `CanHackCrate`
|
|
|
|
- Called when a player starts hacking a locked crate
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object CanHackCrate(BasePlayer player, HackableLockedCrate crate)
|
|
{
|
|
Puts("CanHackCrate works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `hack`, `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="canuserlogin"></a>
|
|
|
|
### `CanUserLogin` · *universal*
|
|
|
|
- Called when a player is attempting to connect to the server
|
|
|
|
**Returns:** Returning a string will kick the user with this reason. Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object CanUserLogin(string name, string id, string ipAddress)
|
|
{
|
|
if (name.ToLower().Contains("admin"))
|
|
{
|
|
Puts($"{name} ({id}) at {ipAddress} tried to connect with 'admin' in name");
|
|
return "Sorry, your name cannot have 'admin' in it";
|
|
}
|
|
|
|
return true;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `user`, `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onuserapproved"></a>
|
|
|
|
### `OnUserApproved` · *universal*
|
|
|
|
- Called after a player is approved to connect to the server
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnUserApproved(string name, string id, string ipAddress)
|
|
{
|
|
Puts($"{name} ({id}) at {ipAddress} has been approved to connect");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `user`, `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="candismountentity"></a>
|
|
|
|
### `CanDismountEntity`
|
|
|
|
- Called when the player attempts to dismount an entity
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object CanDismountEntity(BasePlayer player, BaseMountable entity)
|
|
{
|
|
Puts("CanDismountEntity works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `dismount`, `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onusernameupdated"></a>
|
|
|
|
### `OnUserNameUpdated` · *universal*
|
|
|
|
- Called when a player's stored nickname has been changed
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnUserNameUpdated(string id, string oldName, string newName)
|
|
{
|
|
Puts($"Player name changed from {oldName} to {newName} for ID {id}");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `user`, `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="canequipitem"></a>
|
|
|
|
### `CanEquipItem`
|
|
|
|
- Called when the player attempts to equip an item
|
|
|
|
**Returns:** Returning true or false overrides default behavior
|
|
|
|
```csharp
|
|
bool CanEquipItem(PlayerInventory inventory, Item item, int targetPos)
|
|
{
|
|
Puts("CanEquipItem works!");
|
|
return true;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `equip`, `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onusergroupadded"></a>
|
|
|
|
### `OnUserGroupAdded` · *universal*
|
|
|
|
- Called when a player has been added to a group
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnUserGroupAdded(string id, string groupName)
|
|
{
|
|
Puts($"Player '{id}' added to group: {groupName}");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `user`, `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onusergroupremoved"></a>
|
|
|
|
### `OnUserGroupRemoved` · *universal*
|
|
|
|
- Called when a player has been removed from a group
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnUserGroupRemoved(string id, string groupName)
|
|
{
|
|
Puts($"Player '{id}' removed from group: {groupName}");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `user`, `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onexperimentstart"></a>
|
|
|
|
### `OnExperimentStart`
|
|
|
|
- Called when the player attempts to experiment with at a workbench
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnExperimentStart(Workbench workbench, BasePlayer player)
|
|
{
|
|
Puts("OnExperimentStart works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `experiment`, `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onexperimentstarted"></a>
|
|
|
|
### `OnExperimentStarted`
|
|
|
|
- Called after the experimentation has started
|
|
|
|
**Returns:** No return behaviour
|
|
|
|
```csharp
|
|
void OnExperimentStarted(Workbench workbench, BasePlayer player)
|
|
{
|
|
Puts("OnExperimentStarted works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `experiment`, `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onuserpermissiongranted"></a>
|
|
|
|
### `OnUserPermissionGranted` · *universal*
|
|
|
|
- Called when a permission has been granted to a player
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnUserPermissionGranted(string id, string permName)
|
|
{
|
|
Puts($"Player '{id}' granted permission: {permName}");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `user`, `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onuserpermissionrevoked"></a>
|
|
|
|
### `OnUserPermissionRevoked` · *universal*
|
|
|
|
- Called when a permission has been revoked from a player
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnUserPermissionRevoked(string id, string permName)
|
|
{
|
|
Puts($"Player '{id}' revoked permission: {permName}");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `user`, `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onexperimentend"></a>
|
|
|
|
### `OnExperimentEnd`
|
|
|
|
- Called when an experiment is about to end
|
|
|
|
**Returns:** Returning a non-null value overrides defualt behaviour.
|
|
|
|
```csharp
|
|
object OnExperimentEnd(Workbench workbench)
|
|
{
|
|
Puts("OnExperimentEnd works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `experiment`, `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onexperimentended"></a>
|
|
|
|
### `OnExperimentEnded`
|
|
|
|
- Called after the experiment has finished
|
|
|
|
**Returns:** No return behaviour
|
|
|
|
```csharp
|
|
void OnExperimentEnded(Workbench workbench)
|
|
{
|
|
Puts("OnExperimentEnded works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `experiment`, `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onuserkicked"></a>
|
|
|
|
### `OnUserKicked` · *universal*
|
|
|
|
- Called when a player has been kicked from the server
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnUserKicked(IPlayer player, string reason)
|
|
{
|
|
Puts($"Player {player.Name} ({player.Id}) was kicked");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `user`, `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="canhidestash"></a>
|
|
|
|
### `CanHideStash`
|
|
|
|
- Called when a player tries to hide a stash
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object CanHideStash(BasePlayer player, StashContainer stash)
|
|
{
|
|
Puts("CanHideStash works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `hide`, `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onuserbanned"></a>
|
|
|
|
### `OnUserBanned` · *universal*
|
|
|
|
- Called when a player has been banned from the server
|
|
- Will have reason available if provided
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnUserBanned(string name, string id, string ipAddress, string reason)
|
|
{
|
|
Puts($"Player {name} ({id}) at {ipAddress} was banned: {reason}");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `user`, `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="canlootentity"></a>
|
|
|
|
### `CanLootEntity`
|
|
|
|
- Called when the player starts looting a DroppedItemContainer, LootableCorpse, ResourceContainer, BaseRidableAnimal, or StorageContainer entity
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object CanLootEntity(BasePlayer player, DroppedItemContainer container)
|
|
{
|
|
Puts("CanLootEntity works!");
|
|
return null;
|
|
}
|
|
```
|
|
```csharp
|
|
object CanLootEntity(BasePlayer player, LootableCorpse corpse)
|
|
{
|
|
Puts("CanLootEntity works!");
|
|
return null;
|
|
}
|
|
```
|
|
```csharp
|
|
object CanLootEntity(BasePlayer player, ResourceContainer container)
|
|
{
|
|
Puts("CanLootEntity works!");
|
|
return null;
|
|
}
|
|
```
|
|
```csharp
|
|
object CanLootEntity(BasePlayer player, BaseRidableAnimal animal)
|
|
{
|
|
Puts("CanLootEntity works!");
|
|
return null;
|
|
}
|
|
```
|
|
```csharp
|
|
object CanLootEntity(BasePlayer player, StorageContainer container)
|
|
{
|
|
Puts("CanLootEntity works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `loot`, `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="canlootplayer"></a>
|
|
|
|
### `CanLootPlayer`
|
|
|
|
- Called when the player attempts to loot another player
|
|
|
|
**Returns:** Returning true or false overrides default behavior
|
|
|
|
```csharp
|
|
bool CanLootPlayer(BasePlayer target, BasePlayer looter)
|
|
{
|
|
Puts("CanLootPlayer works!");
|
|
return true;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `loot`, `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="canmountentity"></a>
|
|
|
|
### `CanMountEntity`
|
|
|
|
- Called when the player attempts to mount an entity
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object CanMountEntity(BasePlayer player, BaseMountable entity)
|
|
{
|
|
Puts("CanMountEntity works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `mount`, `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onuserunbanned"></a>
|
|
|
|
### `OnUserUnbanned` · *universal*
|
|
|
|
- Called when a player has been unbanned from the server
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnUserUnbanned(string name, string id, string ipAddress)
|
|
{
|
|
Puts($"Player {name} ({id}) at {ipAddress} was unbanned");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `user`, `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="canpickupentity"></a>
|
|
|
|
### `CanPickupEntity`
|
|
|
|
- Called when a player attempts to pickup a deployed entity (AutoTurret, BaseMountable, BearTrap, DecorDeployable, Door, DoorCloser, ReactiveTarget, SamSite, SleepingBag, SpinnerWheel, StorageContainer, etc.)
|
|
|
|
**Returns:** Returning true or false overrides default behavior
|
|
|
|
```csharp
|
|
bool CanPickupEntity(BasePlayer player, BaseEntity entity)
|
|
{
|
|
Puts("CanPickupEntity works!");
|
|
return true;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `pickup`, `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="canpickuplock"></a>
|
|
|
|
### `CanPickupLock`
|
|
|
|
- Called when a player attempts to pickup a lock
|
|
|
|
**Returns:** Returning true or false overrides default behavior
|
|
|
|
```csharp
|
|
bool CanPickupLock(BasePlayer player, BaseLock baseLock)
|
|
{
|
|
Puts("CanPickupLock works!");
|
|
return true;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `pickup`, `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="canrenamebed"></a>
|
|
|
|
### `CanRenameBed`
|
|
|
|
- Called when the player attempts to rename a bed or sleeping bag
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object CanRenameBed(BasePlayer player, SleepingBag bed, string bedName)
|
|
{
|
|
Puts("CanRenameBed works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `rename`, `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="canresearchitem"></a>
|
|
|
|
### `CanResearchItem`
|
|
|
|
- Called when the player attempts to research an item
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object CanResearchItem(BasePlayer player, Item targetItem)
|
|
{
|
|
Puts("CanResearchItem works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `research`, `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="canuselockedentity"></a>
|
|
|
|
### `CanUseLockedEntity`
|
|
|
|
- Called when the player tries to use an entity that is locked
|
|
|
|
**Returns:** Returning true or false overrides default behavior
|
|
|
|
```csharp
|
|
bool CanUseLockedEntity(BasePlayer player, BaseLock baseLock)
|
|
{
|
|
Puts("CanUseLockedEntity works!");
|
|
return true;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="canseestash"></a>
|
|
|
|
### `CanSeeStash`
|
|
|
|
- Called when a player is looking at a hidden stash
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object CanSeeStash(BasePlayer player, StashContainer stash)
|
|
{
|
|
Puts("CanSeeStash works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onstashexposed"></a>
|
|
|
|
### `OnStashExposed`
|
|
|
|
- Called when a player reveals a hidden stash
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnStashExposed(StashContainer stash, BasePlayer player)
|
|
{
|
|
Puts("OnStashExposed works");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `stash`, `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onstashhidden"></a>
|
|
|
|
### `OnStashHidden`
|
|
|
|
- Called when a player hides a stash
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnStashHidden(StashContainer stash, BasePlayer player)
|
|
{
|
|
Puts("OnStashHidden works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `stash`, `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="cansetbedpublic"></a>
|
|
|
|
### `CanSetBedPublic`
|
|
|
|
- Called when a player tries to set a bed public
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object CanSetBedPublic(BasePlayer player, SleepingBag bed)
|
|
{
|
|
Puts("CanSetBedPublic works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="canunlock"></a>
|
|
|
|
### `CanUnlock`
|
|
|
|
- Called when the player tries to unlock a keylock or codelock
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object CanUnlock(BasePlayer player, BaseLock baseLock)
|
|
{
|
|
Puts("CanUnlock works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `unlock`, `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="canusemailbox"></a>
|
|
|
|
### `CanUseMailbox`
|
|
|
|
- Called when the player tries to use a mailbox
|
|
|
|
**Returns:** Returning true or false overrides default behavior
|
|
|
|
```csharp
|
|
bool CanUseMailbox(BasePlayer player, Mailbox mailbox)
|
|
{
|
|
Puts("CanUseMailbox works!");
|
|
return true;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="canuseui"></a>
|
|
|
|
### `CanUseUI`
|
|
|
|
- Called when the player attempts to use a custom UI
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object CanUseUI(BasePlayer player, string json)
|
|
{
|
|
Puts("CanUseUI works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="canwearitem"></a>
|
|
|
|
### `CanWearItem`
|
|
|
|
- Called when the player attempts to equip an item
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object CanWearItem(PlayerInventory inventory, Item item, int targetSlot)
|
|
{
|
|
Puts("CanWearItem works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `wear`, `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onclientauth"></a>
|
|
|
|
### `OnClientAuth`
|
|
|
|
- Called when the player is giving server connection authorization information
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnClientAuth(Connection connection)
|
|
{
|
|
Puts("OnClientAuth works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `client`, `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="ondestroyui"></a>
|
|
|
|
### `OnDestroyUI`
|
|
|
|
- Called when a custom UI is destroyed for the player
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnDestroyUI(BasePlayer player, string json)
|
|
{
|
|
Puts("OnDestroyUI works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `destroy`, `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onfindspawnpoint"></a>
|
|
|
|
### `OnFindSpawnPoint`
|
|
|
|
- Useful for controlling player spawnpoints (like making all spawns occur in a set area)
|
|
|
|
**Returns:** Return a BasePlayer.SpawnPoint object to use that spawnpoint
|
|
|
|
```csharp
|
|
void OnFindSpawnPoint(BasePlayer player)
|
|
{
|
|
Puts("OnFindSpawnPoint works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `find`, `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onlootentity"></a>
|
|
|
|
### `OnLootEntity`
|
|
|
|
- Called when the player starts looting an entity
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnLootEntity(BasePlayer player, BaseEntity entity)
|
|
{
|
|
Puts("OnLootEntity works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `loot`, `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onlootentityend"></a>
|
|
|
|
### `OnLootEntityEnd`
|
|
|
|
- Called when the player stops looting an entity
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnLootEntityEnd(BasePlayer player, BaseCombatEntity entity)
|
|
{
|
|
Puts("OnLootEntityEnd works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `loot`, `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onlootitem"></a>
|
|
|
|
### `OnLootItem`
|
|
|
|
- Called when the player starts looting an item
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnLootItem(PlayerLoot playerLoot, Item item)
|
|
{
|
|
Puts("OnLootItem works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `loot`, `player` · uMod last updated 2021-06-24</sub>
|
|
|
|
<a id="onlootplayer"></a>
|
|
|
|
### `OnLootPlayer`
|
|
|
|
- Called when the player starts looting another player
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnLootPlayer(BasePlayer player, BasePlayer target)
|
|
{
|
|
Puts("OnLootPlayer works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `loot`, `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onplayerattack"></a>
|
|
|
|
### `OnPlayerAttack`
|
|
|
|
- Useful for modifying an attack before it goes out
|
|
- hitInfo.HitEntity should be the entity that this attack would hit
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnPlayerAttack(BasePlayer attacker, HitInfo info)
|
|
{
|
|
Puts("OnPlayerAttack works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player` · uMod last updated 2021-12-03</sub>
|
|
|
|
<a id="onplayerbanned"></a>
|
|
|
|
### `OnPlayerBanned`
|
|
|
|
- Called when the player is banned (Facepunch, EAC, server ban, etc.)
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnPlayerBanned(string name, ulong id, string address, string reason)
|
|
{
|
|
Puts("OnPlayerBanned works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onplayerchat"></a>
|
|
|
|
### `OnPlayerChat`
|
|
|
|
- Called when the player sends chat to the server
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior of chat, not commands
|
|
|
|
```csharp
|
|
object OnPlayerChat(BasePlayer player, string message, Chat.ChatChannel channel)
|
|
{
|
|
Puts("OnPlayerChat works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onplayerconnected"></a>
|
|
|
|
### `OnPlayerConnected`
|
|
|
|
- Called after the player object is created, but before the player has spawned
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnPlayerConnected(BasePlayer player)
|
|
{
|
|
Puts("OnPlayerConnected works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onplayerdeath"></a>
|
|
|
|
### `OnPlayerDeath`
|
|
|
|
- Called when the player is about to die
|
|
- HitInfo may be null sometimes
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnPlayerDeath(BasePlayer player, HitInfo info)
|
|
{
|
|
Puts("OnPlayerDeath works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onplayerdisconnected"></a>
|
|
|
|
### `OnPlayerDisconnected`
|
|
|
|
- Called after the player has disconnected from the server
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnPlayerDisconnected(BasePlayer player, string reason)
|
|
{
|
|
Puts("OnPlayerDisconnected works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onplayerdropactiveitem"></a>
|
|
|
|
### `OnPlayerDropActiveItem`
|
|
|
|
- Called when the player drops their active held item
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnPlayerDropActiveItem(BasePlayer player, Item item)
|
|
{
|
|
Puts("OnPlayerDropActiveItem works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onplayerhealthchange"></a>
|
|
|
|
### `OnPlayerHealthChange`
|
|
|
|
- Called just before the player's health changes
|
|
|
|
**Returns:** Returning a non-null value cancels the health change
|
|
|
|
```csharp
|
|
object OnPlayerHealthChange(BasePlayer player, float oldValue, float newValue)
|
|
{
|
|
Puts("OnPlayerHealthChange works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onplayerinput"></a>
|
|
|
|
### `OnPlayerInput`
|
|
|
|
- Called when input is received from a connected client
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnPlayerInput(BasePlayer player, InputState input)
|
|
{
|
|
Puts("OnPlayerInput works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onplayerkicked"></a>
|
|
|
|
### `OnPlayerKicked`
|
|
|
|
- Called after the player is kicked from the server
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnPlayerKicked(BasePlayer player, string reason)
|
|
{
|
|
Puts("OnPlayerKicked works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onplayerland"></a>
|
|
|
|
### `OnPlayerLand`
|
|
|
|
- Called just before the player lands on the ground
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnPlayerLand(BasePlayer player, float num)
|
|
{
|
|
Puts("OnPlayerLand works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onplayerlanded"></a>
|
|
|
|
### `OnPlayerLanded`
|
|
|
|
- Called when the player landed on the ground
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnPlayerLanded(BasePlayer player, float num)
|
|
{
|
|
Puts("OnPlayerLanded works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onplayerlootend"></a>
|
|
|
|
### `OnPlayerLootEnd`
|
|
|
|
- Called when the player stops looting
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnPlayerLootEnd(PlayerLoot inventory)
|
|
{
|
|
Puts("OnPlayerLootEnd works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onplayermetabolize"></a>
|
|
|
|
### `OnPlayerMetabolize`
|
|
|
|
- Called after the player's metabolism has been changed
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnPlayerMetabolize(PlayerMetabolism metabolism, BaseCombatEntity entity, float delta)
|
|
{
|
|
Puts("OnPlayerMetabolize works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onplayerrecover"></a>
|
|
|
|
### `OnPlayerRecover`
|
|
|
|
- Called when the player is about to recover from the 'wounded' state
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnPlayerRecover(BasePlayer player)
|
|
{
|
|
Puts("OnPlayerRecover works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onplayerrespawn"></a>
|
|
|
|
### `OnPlayerRespawn`
|
|
|
|
- Called when a player is attempting to respawn
|
|
|
|
**Returns:** Returning a BasePlayer.SpawnPoint (takes a position and rotation), overrides the respawn location, for the variant that receives a BasePlayer.SpawnPoint argument
|
|
|
|
**Returns:** Returning a SleepingBag overrides the respawn location, for the variant that receives a SleepingBag argument
|
|
|
|
```csharp
|
|
object OnPlayerRespawn(BasePlayer player, BasePlayer.SpawnPoint spawnPoint)
|
|
{
|
|
Puts("OnPlayerRespawn works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
```csharp
|
|
object OnPlayerRespawn(BasePlayer player, SleepingBag sleepingBag)
|
|
{
|
|
Puts("OnPlayerRespawn works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player` · uMod last updated 2023-08-04</sub>
|
|
|
|
<a id="onplayerrespawned"></a>
|
|
|
|
### `OnPlayerRespawned`
|
|
|
|
- Called when the player has respawned (specifically when they click the "Respawn" button)
|
|
- ONLY called after the player has transitioned from dead to not-dead, so not when they're waking up
|
|
- This means it's possible for the player to connect and disconnect from a server without OnPlayerRespawned ever triggering for them
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnPlayerRespawned(BasePlayer player)
|
|
{
|
|
Puts("OnPlayerRespawned works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onrespawninformationgiven"></a>
|
|
|
|
### `OnRespawnInformationGiven`
|
|
|
|
- Called when a player is about to be sent respawn information
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnRespawnInformationGiven(BasePlayer player, RespawnInformation respawnInformation)
|
|
{
|
|
Puts("OnRespawnInformationGiven works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player` · uMod last updated 2021-07-03</sub>
|
|
|
|
<a id="onplayersleep"></a>
|
|
|
|
### `OnPlayerSleep`
|
|
|
|
- Called when the player is about to go to sleep
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnPlayerSleep(BasePlayer player)
|
|
{
|
|
Puts("OnPlayerSleep works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onplayersleepended"></a>
|
|
|
|
### `OnPlayerSleepEnded`
|
|
|
|
- Called when the player awakes
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnPlayerSleepEnded(BasePlayer player)
|
|
{
|
|
Puts("OnPlayerSleepEnded works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onplayerspawn"></a>
|
|
|
|
### `OnPlayerSpawn`
|
|
|
|
- Called when a player is attempting to spawn for the first time
|
|
|
|
**Returns:** Returning true overrides default behavior
|
|
|
|
```csharp
|
|
object OnPlayerSpawn(BasePlayer player)
|
|
{
|
|
Puts("OnPlayerSpawn works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onplayerspectate"></a>
|
|
|
|
### `OnPlayerSpectate`
|
|
|
|
- Called when the player starts spectating
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnPlayerSpectate(BasePlayer player, string spectateFilter)
|
|
{
|
|
Puts("OnPlayerSpectate works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onplayerspectateend"></a>
|
|
|
|
### `OnPlayerSpectateEnd`
|
|
|
|
- Called when the player stops spectating
|
|
|
|
**Returns:** Returning a non-null value stops the spectate from ending
|
|
|
|
```csharp
|
|
object OnPlayerSpectateEnd(BasePlayer player, string spectateFilter)
|
|
{
|
|
Puts("OnPlayerSpectateEnd works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onplayertick"></a>
|
|
|
|
### `OnPlayerTick`
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnPlayerTick(BasePlayer player, PlayerTick msg, bool wasPlayerStalled)
|
|
{
|
|
Puts("OnPlayerTick works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onplayerviolation"></a>
|
|
|
|
### `OnPlayerViolation`
|
|
|
|
- Called when the player triggers an anti-hack violation
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnPlayerViolation(BasePlayer player, AntiHackType type, float amount)
|
|
{
|
|
Puts("OnPlayerViolation works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onplayervoice"></a>
|
|
|
|
### `OnPlayerVoice`
|
|
|
|
- Called when the player uses the in-game voice chat
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnPlayerVoice(BasePlayer player, Byte[] data)
|
|
{
|
|
Puts("OnPlayerVoice works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onplayerwound"></a>
|
|
|
|
### `OnPlayerWound`
|
|
|
|
- Called when the player is about to go down to the 'wounded' state
|
|
- source might be null, check it before use
|
|
|
|
**Returns:** Returning a non-null value cancels the wounded state
|
|
|
|
```csharp
|
|
object OnPlayerWound(BasePlayer player, HitInfo info)
|
|
{
|
|
Puts("OnPlayerWound works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player` · uMod last updated 2022-01-17</sub>
|
|
|
|
<a id="onrunplayermetabolism"></a>
|
|
|
|
### `OnRunPlayerMetabolism`
|
|
|
|
- Called before a metabolism update occurs for the specified player
|
|
- Metabolism update consists of managing the player's temperature, health etc.
|
|
- You can use this to turn off or change certain aspects of the metabolism, either by editing values before returning, or taking complete control of the method
|
|
|
|
**Returns:** Returning a non-null value cancels the update
|
|
|
|
```csharp
|
|
object OnRunPlayerMetabolism(PlayerMetabolism metabolism, BasePlayer player, float delta)
|
|
{
|
|
Puts("OnRunPlayerMetabolism works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onuserapprove"></a>
|
|
|
|
### `OnUserApprove`
|
|
|
|
- Used by RustCore and abstracted into CanClientLogin
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior, plugin should call Reject if it does this
|
|
|
|
```csharp
|
|
object OnUserApprove(Network.Connection connection)
|
|
{
|
|
Puts("OnUserApprove works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `user`, `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="ondefaultitemsreceive"></a>
|
|
|
|
### `OnDefaultItemsReceive`
|
|
|
|
- Called when a player is about to receive default items
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnDefaultItemsReceive(PlayerInventory inventory)
|
|
{
|
|
Puts("OnDefaultItemsReceive works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `default`, `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="ondefaultitemsreceived"></a>
|
|
|
|
### `OnDefaultItemsReceived`
|
|
|
|
- Called after a player has received default items
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
void OnDefaultItemsReceived(PlayerInventory inventory)
|
|
{
|
|
Puts("OnDefaultItemsReceived works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `default`, `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onanalysiscomplete"></a>
|
|
|
|
### `OnAnalysisComplete`
|
|
|
|
- Called right after a player completes a survey crater analysis
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnAnalysisComplete(SurveyCrater surveyCrater, BasePlayer player)
|
|
{
|
|
Puts("OnAnalysisComplete works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `analysis`, `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onnpcconversationstart"></a>
|
|
|
|
### `OnNpcConversationStart`
|
|
|
|
- Called when a player tries to start a conversation with an NPC
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnNpcConversationStart(NPCTalking npcTalking, BasePlayer player, ConversationData conversationData)
|
|
{
|
|
Puts("OnNpcConversationStart works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onnpcconversationrespond"></a>
|
|
|
|
### `OnNpcConversationRespond`
|
|
|
|
- Called when a player chooses an NPC conversation response
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnNpcConversationRespond(NPCTalking npcTalking, BasePlayer player, ConversationData conversationData, ConversationData.ResponseNode responseNode)
|
|
{
|
|
Puts("OnNpcConversationRespond works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onnpcconversationended"></a>
|
|
|
|
### `OnNpcConversationEnded`
|
|
|
|
- Called right after a player has ended an NPC conversation
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnNpcConversationEnded(NPCTalking npcTalking, BasePlayer player)
|
|
{
|
|
Puts("OnNpcConversationEnded works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onnpcconversationresponded"></a>
|
|
|
|
### `OnNpcConversationResponded`
|
|
|
|
- Called right after a player's chosen NPC conversation response has been processed
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnNpcConversationResponded(NPCTalking npcTalking, BasePlayer player, ConversationData conversationData, ConversationData.ResponseNode responseNode)
|
|
{
|
|
Puts("OnNpcConversationResponded works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onnetworkgroupentered"></a>
|
|
|
|
### `OnNetworkGroupEntered`
|
|
|
|
- Called after a player has entered a network group
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnNetworkGroupEntered(BasePlayer player, Network.Visibility.Group group)
|
|
{
|
|
Puts("OnNetworkGroupEntered works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `network`, `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onnetworkgroupleft"></a>
|
|
|
|
### `OnNetworkGroupLeft`
|
|
|
|
- Called after a player has left a network group
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnNetworkGroupLeft(BasePlayer player, Network.Visibility.Group group)
|
|
{
|
|
Puts("OnNetworkGroupLeft works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `network`, `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="ondemorecordingstart"></a>
|
|
|
|
### `OnDemoRecordingStart`
|
|
|
|
- Called right before a demo of a player starts recording
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnDemoRecordingStart(string filename, BasePlayer player)
|
|
{
|
|
Puts("OnDemoRecordingStart works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `demo`, `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="ondemorecordingstarted"></a>
|
|
|
|
### `OnDemoRecordingStarted`
|
|
|
|
- Called after a demo of a player has started recording
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnDemoRecordingStarted(string filename, BasePlayer player)
|
|
{
|
|
Puts("OnDemoRecordingStarted works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `demo`, `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="ondemorecordingstop"></a>
|
|
|
|
### `OnDemoRecordingStop`
|
|
|
|
- Called right before a demo of a player stops recording
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnDemoRecordingStop(string filename, BasePlayer player)
|
|
{
|
|
Puts("OnDemoRecordingStop works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `demo`, `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="ondemorecordingstopped"></a>
|
|
|
|
### `OnDemoRecordingStopped`
|
|
|
|
- Called after a demo of a player has stopped recording
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnDemoRecordingStopped(string filename, BasePlayer player)
|
|
{
|
|
Puts("OnDemoRecordingStopped works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `demo`, `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onlootnetworkupdate"></a>
|
|
|
|
### `OnLootNetworkUpdate`
|
|
|
|
- Called when a player is trying to loot a container or a container they are looting has changed its contents
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnLootNetworkUpdate(PlayerLoot loot)
|
|
{
|
|
Puts("OnLootNetworkUpdate works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `loot`, `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="oninventorynetworkupdate"></a>
|
|
|
|
### `OnInventoryNetworkUpdate`
|
|
|
|
- Called after a player's inventory contents have changed, before it is sent over the network to one or more clients
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnInventoryNetworkUpdate(PlayerInventory inventory, ItemContainer container, ProtoBuf.UpdateItemContainer updateItemContainer, PlayerInventory.Type type, PlayerInventory.PlayerInventory.NetworkInventoryMode networkInventoryMode)
|
|
{
|
|
Puts("OnInventoryNetworkUpdate works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `inventory`, `player` · uMod last updated 2024-02-02</sub>
|
|
|
|
<a id="onplayeraddmodifiers"></a>
|
|
|
|
### `OnPlayerAddModifiers`
|
|
|
|
- Called after a player consumes an item such as tea that is about to apply modifiers
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior (prevents the modifiers from being applied)
|
|
|
|
```csharp
|
|
object OnPlayerAddModifiers(BasePlayer player, Item item, ItemModConsumable consumable)
|
|
{
|
|
Puts("OnPlayerAddModifiers works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onthreatlevelupdate"></a>
|
|
|
|
### `OnThreatLevelUpdate`
|
|
|
|
- Called when a player's threat level is about to be updated
|
|
|
|
**Returns:** Returning a non-null value cancels default behavior
|
|
|
|
```csharp
|
|
object OnThreatLevelUpdate(BasePlayer player)
|
|
{
|
|
Puts("OnThreatLevelUpdate works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="canusegesture"></a>
|
|
|
|
### `CanUseGesture`
|
|
|
|
- Called when a player attempts to use a gesture
|
|
|
|
**Returns:** Returning true or false overrides default behavior
|
|
|
|
```csharp
|
|
bool? CanUseGesture(BasePlayer player, GestureConfig gesture)
|
|
{
|
|
Puts("CanUseGesture works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="oncentralizedbancheck"></a>
|
|
|
|
### `OnCentralizedBanCheck`
|
|
|
|
- Called when a player is about to be checked in the centralized ban database
|
|
|
|
**Returns:** Returning a non-null value cancels default behavior
|
|
|
|
```csharp
|
|
object OnCentralizedBanCheck(Network.Connection connection)
|
|
{
|
|
Puts("OnCentralizedBanCheck works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `user`, `player` · uMod last updated 2021-06-12</sub>
|
|
|
|
<a id="onclientcommand"></a>
|
|
|
|
### `OnClientCommand`
|
|
|
|
- Useful for intercepting players' commands before their handling
|
|
- Called before OnPlayerCommand and OnUserCommand
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnClientCommand(Connection connection, string command)
|
|
{
|
|
Puts("OnClientCommand works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `user`, `player` · uMod last updated 2021-06-12</sub>
|
|
|
|
<a id="oncorpsepopulate"></a>
|
|
|
|
### `OnCorpsePopulate`
|
|
|
|
- Called when an NPC player corpse is about to be populated with loot
|
|
|
|
**Returns:** Returning a BaseCorpse overrides default behavior
|
|
|
|
```csharp
|
|
BaseCorpse OnCorpsePopulate(BasePlayer npcPlayer, BaseCorpse corpse)
|
|
{
|
|
Puts("OnCorpsePopulate works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player` · uMod last updated 2021-06-12</sub>
|
|
|
|
<a id="cansetrelationship"></a>
|
|
|
|
### `CanSetRelationship`
|
|
|
|
- Called when a player's relationship with another is about to be updated
|
|
|
|
**Returns:** Returning true or false overrides default behavior
|
|
|
|
```csharp
|
|
bool? CanSetRelationship(BasePlayer player, BasePlayer otherPlayer, RelationshipManager.RelationshipType relationshipType, int weight)
|
|
{
|
|
Puts("CanSetRelationship works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player` · uMod last updated 2022-04-20</sub>
|
|
|
|
---
|
|
|
|
## Entity Hooks
|
|
|
|
*The generic `BaseEntity` graph — spawn, kill, damage, mount, loot, flags. Anything in the world that is not specifically an item.*
|
|
|
|
140 hooks: [`CanBradleyApcTarget`](#canbradleyapctarget), [`CanEntityBeHostile`](#canentitybehostile), [`CanSamSiteShoot`](#cansamsiteshoot), [`OnBuildingPrivilege`](#onbuildingprivilege), [`OnButtonPress`](#onbuttonpress), [`OnDieselEngineToggle`](#ondieselenginetoggle), [`OnDieselEngineToggled`](#ondieselenginetoggled), [`OnEntityMarkHostile`](#onentitymarkhostile), [`OnEntityStabilityCheck`](#onentitystabilitycheck), [`OnExcavatorGather`](#onexcavatorgather), [`OnExcavatorMiningToggled`](#onexcavatorminingtoggled), [`OnExcavatorResourceSet`](#onexcavatorresourceset), [`OnHelicopterStrafeEnter`](#onhelicopterstrafeenter), [`OnHorseHitch`](#onhorsehitch), [`OnHorseLead`](#onhorselead), [`OnInputUpdate`](#oninputupdate), [`OnMlrsFire`](#onmlrsfire), [`OnMlrsFired`](#onmlrsfired), [`OnNpcDestinationSet`](#onnpcdestinationset), [`OnNpcPlayerResume`](#onnpcplayerresume), [`OnNpcStopMoving`](#onnpcstopmoving), [`OnOutputUpdate`](#onoutputupdate), [`OnReactiveTargetReset`](#onreactivetargetreset), [`OnSamSiteTarget`](#onsamsitetarget), [`OnShopAcceptClick`](#onshopacceptclick), [`OnShopCancelClick`](#onshopcancelclick), [`OnShopCompleteTrade`](#onshopcompletetrade), [`OnSupplyDropLanded`](#onsupplydroplanded), [`OnTurretAssign`](#onturretassign), [`OnTurretAssigned`](#onturretassigned), [`OnWireClear`](#onwireclear), [`OnWireConnect`](#onwireconnect), [`CanHelicopterDropCrate`](#canhelicopterdropcrate), [`OnEngineLoadoutRefresh`](#onengineloadoutrefresh), [`CanHelicopterStrafe`](#canhelicopterstrafe), [`CanHelicopterStrafeTarget`](#canhelicopterstrafetarget), [`CanHelicopterTarget`](#canhelicoptertarget), [`CanHelicopterUseNapalm`](#canhelicopterusenapalm), [`CanNetworkTo`](#cannetworkto), [`OnHelicopterRetire`](#onhelicopterretire), [`CanNpcAttack`](#cannpcattack), [`CanNpcEat`](#cannpceat), [`CanRecycle`](#canrecycle), [`OnAirdrop`](#onairdrop), [`OnBradleyApcInitialize`](#onbradleyapcinitialize), [`OnBradleyApcHunt`](#onbradleyapchunt), [`OnBradleyApcPatrol`](#onbradleyapcpatrol), [`OnContainerDropItems`](#oncontainerdropitems), [`OnCrateDropped`](#oncratedropped), [`OnCrateHack`](#oncratehack), [`OnCrateHackEnd`](#oncratehackend), [`OnCrateLanded`](#oncratelanded), [`OnEntityDeath`](#onentitydeath), [`OnEntityDismounted`](#onentitydismounted), [`OnEntityEnter`](#onentityenter), [`OnEntityGroundMissing`](#onentitygroundmissing), [`OnEntityKill`](#onentitykill), [`OnEntityLeave`](#onentityleave), [`OnEntityMounted`](#onentitymounted), [`OnEntitySpawned`](#onentityspawned), [`OnEntityTakeDamage`](#onentitytakedamage), [`OnFireBallDamage`](#onfireballdamage), [`OnFireBallSpread`](#onfireballspread), [`OnFlameExplosion`](#onflameexplosion), [`OnHelicopterAttack`](#onhelicopterattack), [`OnHelicopterDropCrate`](#onhelicopterdropcrate), [`OnHelicopterDropDoorOpen`](#onhelicopterdropdooropen), [`OnHelicopterKilled`](#onhelicopterkilled), [`OnHelicopterOutOfCrates`](#onhelicopteroutofcrates), [`OnHelicopterTarget`](#onhelicoptertarget), [`OnLiftUse`](#onliftuse), [`OnLootSpawn`](#onlootspawn), [`OnNpcTargetSense`](#onnpctargetsense), [`OnNpcTarget`](#onnpctarget), [`OnItemRecycle`](#onitemrecycle), [`OnOvenCook`](#onovencook), [`OnOvenCooked`](#onovencooked), [`OnOvenToggle`](#onoventoggle), [`OnRecyclerToggle`](#onrecyclertoggle), [`OnResourceDepositCreated`](#onresourcedepositcreated), [`OnShopCompleteTrade`](#onshopcompletetrade-1), [`OnTurretAuthorize`](#onturretauthorize), [`OnTurretClearList`](#onturretclearlist), [`OnTurretDeauthorize`](#onturretdeauthorize), [`OnTurretModeToggle`](#onturretmodetoggle), [`OnTurretShutdown`](#onturretshutdown), [`OnTurretStartup`](#onturretstartup), [`OnTurretTarget`](#onturrettarget), [`OnTurretToggle`](#onturrettoggle), [`OnBigWheelWin`](#onbigwheelwin), [`OnBigWheelLoss`](#onbigwheelloss), [`OnSolarPanelSunUpdate`](#onsolarpanelsunupdate), [`OnBookmarkControl`](#onbookmarkcontrol), [`OnBookmarkControlStarted`](#onbookmarkcontrolstarted), [`OnBookmarkDelete`](#onbookmarkdelete), [`OnBookmarkAdd`](#onbookmarkadd), [`OnBookmarksSendControl`](#onbookmarkssendcontrol), [`OnBookmarkControlEnd`](#onbookmarkcontrolend), [`OnBookmarkControlEnded`](#onbookmarkcontrolended), [`OnRfBroadcasterAdd`](#onrfbroadcasteradd), [`OnRfBroadcasterAdded`](#onrfbroadcasteradded), [`OnRfBroadcasterRemove`](#onrfbroadcasterremove), [`OnRfBroadcasterRemoved`](#onrfbroadcasterremoved), [`OnRfListenerAdd`](#onrflisteneradd), [`OnRfListenerAdded`](#onrflisteneradded), [`OnRfListenerRemove`](#onrflistenerremove), [`OnRfFrequencyChange`](#onrffrequencychange), [`OnRfFrequencyChanged`](#onrffrequencychanged), [`OnRfListenerRemoved`](#onrflistenerremoved), [`OnSleepingBagDestroy`](#onsleepingbagdestroy), [`OnNetworkSubscriptionsUpdate`](#onnetworksubscriptionsupdate), [`OnSleepingBagDestroyed`](#onsleepingbagdestroyed), [`OnBookmarkInput`](#onbookmarkinput), [`OnEntityControl`](#onentitycontrol), [`OnTurretRotate`](#onturretrotate), [`OnCounterTargetChange`](#oncountertargetchange), [`OnCounterModeToggle`](#oncountermodetoggle), [`OnSwitchToggle`](#onswitchtoggle), [`OnSwitchToggled`](#onswitchtoggled), [`OnEntityDestroy`](#onentitydestroy), [`OnElevatorButtonPress`](#onelevatorbuttonpress), [`OnElevatorCall`](#onelevatorcall), [`OnElevatorMove`](#onelevatormove), [`CanSwapToSeat`](#canswaptoseat), [`OnRidableAnimalClaim`](#onridableanimalclaim), [`OnRidableAnimalClaimed`](#onridableanimalclaimed), [`OnEntitySaved`](#onentitysaved), [`OnEntitySnapshot`](#onentitysnapshot), [`OnEntityFlagsNetworkUpdate`](#onentityflagsnetworkupdate), [`OnIORefCleared`](#oniorefcleared), [`OnSupplyDropDropped`](#onsupplydropdropped), [`OnCargoPlaneSignaled`](#oncargoplanesignaled), [`OnWaterPurify`](#onwaterpurify), [`OnWaterPurified`](#onwaterpurified), [`OnSleepingBagValidCheck`](#onsleepingbagvalidcheck), [`OnCCTVDirectionChange`](#oncctvdirectionchange), [`OnWaterCollect`](#onwatercollect), [`OnLiquidVesselFill`](#onliquidvesselfill), [`OnLockerSwap`](#onlockerswap), [`CanLockerAcceptItem`](#canlockeracceptitem)
|
|
|
|
<a id="canbradleyapctarget"></a>
|
|
|
|
### `CanBradleyApcTarget`
|
|
|
|
- Called when an APC targets an entity
|
|
|
|
**Returns:** Returning true or false overrides default behavior
|
|
|
|
```csharp
|
|
bool CanBradleyApcTarget(BradleyAPC apc, BaseEntity entity)
|
|
{
|
|
Puts("CanBradleyApcTarget works!");
|
|
return true;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `bradley`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="canentitybehostile"></a>
|
|
|
|
### `CanEntityBeHostile`
|
|
|
|
- Useful for overriding hostility of an entity
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object CanEntityBeHostile(BaseCombatEntity entity)
|
|
{
|
|
Puts("CanEntityBeHostile works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="cansamsiteshoot"></a>
|
|
|
|
### `CanSamSiteShoot`
|
|
|
|
- Useful for canceling the shoot of SamSite
|
|
|
|
**Returns:** Returning a non-null value cancels default behavior
|
|
|
|
```csharp
|
|
object CanSamSiteShoot(SamSite samSite)
|
|
{
|
|
Puts("CanSamSiteShoot works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onbuildingprivilege"></a>
|
|
|
|
### `OnBuildingPrivilege`
|
|
|
|
- Useful for overriding a building privilege on specific entities and etc.
|
|
|
|
**Returns:** Returning BuildingPrivlidge value overrides default behavior
|
|
|
|
```csharp
|
|
BuildingPrivlidge OnBuildingPrivilege(BaseEntity entity, OBB obb)
|
|
{
|
|
Puts($"Getting a building privilege for {entity.ShortPrefabName}!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `building`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onbuttonpress"></a>
|
|
|
|
### `OnButtonPress`
|
|
|
|
- Called when a player is trying to press a button
|
|
|
|
**Returns:** Returning a non-null value cancels default behavior
|
|
|
|
```csharp
|
|
object OnButtonPress(PressButton button, BasePlayer player)
|
|
{
|
|
Puts("OnButtonPress works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `button`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="ondieselenginetoggle"></a>
|
|
|
|
### `OnDieselEngineToggle`
|
|
|
|
- Called when a player is trying to toggle diesel engine
|
|
|
|
**Returns:** Returning a non-null value cancels default behavior
|
|
|
|
```csharp
|
|
object OnDieselEngineToggle(DieselEngine engine, BasePlayer player)
|
|
{
|
|
Puts("OnDieselEngineToggle works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `diesel`, `entity` · uMod last updated 2022-09-12</sub>
|
|
|
|
<a id="ondieselenginetoggled"></a>
|
|
|
|
### `OnDieselEngineToggled`
|
|
|
|
- Called when diesel engine is toggled
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnDieselEngineToggled(DieselEngine engine)
|
|
{
|
|
Puts("OnDieselEngineToggled works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `diesel`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onentitymarkhostile"></a>
|
|
|
|
### `OnEntityMarkHostile`
|
|
|
|
- Useful for denying marking the entity hostile
|
|
|
|
**Returns:** Returning a non-null value cancels default behavior
|
|
|
|
```csharp
|
|
object OnEntityMarkHostile(BaseCombatEntity entity, float duration)
|
|
{
|
|
Puts("OnEntityMarkHostile works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onentitystabilitycheck"></a>
|
|
|
|
### `OnEntityStabilityCheck`
|
|
|
|
- Called when stability of an entity is checked
|
|
|
|
**Returns:** Returning a non-null value cancels default behavior
|
|
|
|
```csharp
|
|
object OnEntityStabilityCheck(StabilityEntity entity)
|
|
{
|
|
Puts("OnEntityStabilityCheck works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onexcavatorgather"></a>
|
|
|
|
### `OnExcavatorGather`
|
|
|
|
- Called right before moving gathered resource to container
|
|
|
|
**Returns:** Returning a non-null value cancels default behavior
|
|
|
|
```csharp
|
|
object OnExcavatorGather(ExcavatorArm arm, Item item)
|
|
{
|
|
Puts("OnExcavatorGather works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `excavator`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onexcavatorminingtoggled"></a>
|
|
|
|
### `OnExcavatorMiningToggled`
|
|
|
|
- Called when excavator mining arm is toggled
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnExcavatorMiningToggled(ExcavatorArm arm)
|
|
{
|
|
Puts("OnExcavatorMiningToggled works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `excavator`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onexcavatorresourceset"></a>
|
|
|
|
### `OnExcavatorResourceSet`
|
|
|
|
- Called when a player is trying to set a new resource target
|
|
|
|
**Returns:** Returning a non-null value cancels default behavior
|
|
|
|
```csharp
|
|
object OnExcavatorResourceSet(ExcavatorArm arm, string resourceName, BasePlayer player)
|
|
{
|
|
Puts("OnExcavatorResourceSet works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `excavator`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onhelicopterstrafeenter"></a>
|
|
|
|
### `OnHelicopterStrafeEnter`
|
|
|
|
- Called when helicopter is entering strafe
|
|
|
|
**Returns:** Returning a non-null value cancels default behavior
|
|
|
|
```csharp
|
|
object OnHelicopterStrafeEnter(PatrolHelicopterAI helicopter, Vector3 strafePosition)
|
|
{
|
|
Puts("OnHelicopterStrafeEnter works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `helicopter`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onhorsehitch"></a>
|
|
|
|
### `OnHorseHitch`
|
|
|
|
- Called just before setting the hitch
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnHorseHitch(RidableHorse horse, HitchTrough hitch)
|
|
{
|
|
Puts("OnHorseHitch works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `horse`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onhorselead"></a>
|
|
|
|
### `OnHorseLead`
|
|
|
|
- Called when a player tries to lead a horse
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnHorseLead(BaseRidableAnimal animal, BasePlayer player)
|
|
{
|
|
Puts($"{player.displayName} tries to lead {animal.ShortPrefabName}");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `horse`, `entity` · uMod last updated 2022-01-08</sub>
|
|
|
|
<a id="oninputupdate"></a>
|
|
|
|
### `OnInputUpdate`
|
|
|
|
- Called when an input of IOEntity is updated
|
|
|
|
**Returns:** Returning a non-null value cancels default behavior
|
|
|
|
```csharp
|
|
object OnInputUpdate(IOEntity entity, int inputAmount, int slot)
|
|
{
|
|
Puts("OnInputUpdate works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `input`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onmlrsfire"></a>
|
|
|
|
### `OnMlrsFire`
|
|
|
|
- Called just before the MLRS is fired.
|
|
|
|
**Returns:** Returning a non-null value overrides default behaviour.
|
|
|
|
```csharp
|
|
object OnMlrsFire(MLRS mlrs, BasePlayer player)
|
|
{
|
|
Puts("OnMlrsFire works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `mlrs`, `entity` · uMod last updated 2022-06-21</sub>
|
|
|
|
<a id="onmlrsfired"></a>
|
|
|
|
### `OnMlrsFired`
|
|
|
|
- Called just after the MLRS has been fired.
|
|
|
|
**Returns:** No return behaviour.
|
|
|
|
```csharp
|
|
void OnMlrsFired(MLRS mlrs, BasePlayer player)
|
|
{
|
|
Puts("OnMlrsFired works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `mlrs`, `entity` · uMod last updated 2022-06-21</sub>
|
|
|
|
<a id="onnpcdestinationset"></a>
|
|
|
|
### `OnNpcDestinationSet`
|
|
|
|
- Useful for canceling the destination change on NPCs
|
|
|
|
**Returns:** Returning a non-null value cancels default behavior
|
|
|
|
```csharp
|
|
object OnNpcDestinationSet(NPCPlayerApex npc, Vector3 newPosition)
|
|
{
|
|
Puts("OnNpcDestinationSet works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onnpcplayerresume"></a>
|
|
|
|
### `OnNpcPlayerResume`
|
|
|
|
- Useful for canceling the invoke of TryForceToNavmesh
|
|
|
|
**Returns:** Returning a non-null value cancels default behavior
|
|
|
|
```csharp
|
|
object OnNpcPlayerResume(NPCPlayerApex npc)
|
|
{
|
|
Puts("OnNpcPlayerResume works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onnpcstopmoving"></a>
|
|
|
|
### `OnNpcStopMoving`
|
|
|
|
- Useful for denying the move stop of NPCs
|
|
|
|
**Returns:** Returning a non-null value cancels default behavior
|
|
|
|
```csharp
|
|
object OnNpcStopMoving(NPCPlayerApex npc)
|
|
{
|
|
Puts("OnNpcStopMoving works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onoutputupdate"></a>
|
|
|
|
### `OnOutputUpdate`
|
|
|
|
- Called when outputs of IOEntity are updated
|
|
|
|
**Returns:** Returning a non-null value cancels default behavior
|
|
|
|
```csharp
|
|
object OnOutputUpdate(IOEntity entity)
|
|
{
|
|
Puts("OnOutputUpdate works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `output`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onreactivetargetreset"></a>
|
|
|
|
### `OnReactiveTargetReset`
|
|
|
|
- Called after the reactive target is reset
|
|
|
|
**Returns:** No return behaviour
|
|
|
|
```csharp
|
|
void OnReactiveTargetReset(ReactiveTarget target)
|
|
{
|
|
Puts("OnReactiveTargetReset works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `reactive`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onsamsitetarget"></a>
|
|
|
|
### `OnSamSiteTarget`
|
|
|
|
- Called before last target visible time is updated
|
|
|
|
**Returns:** Returning a non-null value cancels default behavior
|
|
|
|
```csharp
|
|
object OnSamSiteTarget(SamSite samSite, BaseCombatEntity target)
|
|
{
|
|
Puts("OnSamSiteTarget works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `entity` · uMod last updated 2022-02-03</sub>
|
|
|
|
<a id="onshopacceptclick"></a>
|
|
|
|
### `OnShopAcceptClick`
|
|
|
|
- Called when a player is trying to accept a trade in ShopFront
|
|
|
|
**Returns:** Returning a non-null value cancels default behavior
|
|
|
|
```csharp
|
|
object OnShopAcceptClick(ShopFront entity, BasePlayer player)
|
|
{
|
|
Puts("OnShopAcceptClick works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `shop`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onshopcancelclick"></a>
|
|
|
|
### `OnShopCancelClick`
|
|
|
|
- Called when a player is cancelling a trade
|
|
|
|
**Returns:** Returning a non-null value cancels default behavior
|
|
|
|
```csharp
|
|
object OnShopCancelClick(ShopFront entity, BasePlayer player)
|
|
{
|
|
Puts("OnShopCancelClick works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `shop`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onshopcompletetrade"></a>
|
|
|
|
### `OnShopCompleteTrade`
|
|
|
|
- Called before the trade is completed in ShopFront
|
|
|
|
**Returns:** Returning a non-null value cancels default behavior
|
|
|
|
```csharp
|
|
object OnShopCompleteTrade(ShopFront entity)
|
|
{
|
|
Puts("OnShopCompleteTrade works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `shop`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onsupplydroplanded"></a>
|
|
|
|
### `OnSupplyDropLanded`
|
|
|
|
- Called after Supply Drop has landed
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnSupplyDropLanded(SupplyDrop entity)
|
|
{
|
|
Puts("OnSupplyDropLanded works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `supply`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onturretassign"></a>
|
|
|
|
### `OnTurretAssign`
|
|
|
|
- Called when a player attempts to authorize another player on a turret
|
|
|
|
**Returns:** Returning a non-null value cancels default behavior
|
|
|
|
```csharp
|
|
object OnTurretAssign(AutoTurret turret, ulong targetId, BasePlayer initiator)
|
|
{
|
|
Puts("{targetId} has been authorized on a turret by {initiator.displayName}");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `turret`, `player`, `entity` · uMod last updated 2022-07-01</sub>
|
|
|
|
<a id="onturretassigned"></a>
|
|
|
|
### `OnTurretAssigned`
|
|
|
|
- Called when a player has been authorized on a turret by another player
|
|
|
|
**Returns:** No return behaviour
|
|
|
|
```csharp
|
|
void OnTurretAssigned(AutoTurret turret, ulong targetId, BasePlayer initiator)
|
|
{
|
|
Puts($"{targetId} has been authorized on a turret by {initiator.displayName});
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `turret`, `player`, `entity` · uMod last updated 2022-07-01</sub>
|
|
|
|
<a id="onwireclear"></a>
|
|
|
|
### `OnWireClear`
|
|
|
|
- Useful for preventing clearing wires
|
|
|
|
**Returns:** Returning a non-null value cancels default behavior
|
|
|
|
```csharp
|
|
object OnWireClear(BasePlayer player, IOEntity entity1, int connected, IOEntity entity2, bool flag)
|
|
{
|
|
Puts("OnWireClear works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `wire`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onwireconnect"></a>
|
|
|
|
### `OnWireConnect`
|
|
|
|
- Useful for preventing a wire to connect
|
|
|
|
**Returns:** Returning a non-null value cancels default behavior
|
|
|
|
```csharp
|
|
object OnWireConnect(BasePlayer player, IOEntity entity1, int inputs, IOEntity entity2, int outputs)
|
|
{
|
|
Puts("OnWireConnect works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `wire`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="canhelicopterdropcrate"></a>
|
|
|
|
### `CanHelicopterDropCrate`
|
|
|
|
- Called when a CH47 helicopter attempts to drop a crate
|
|
|
|
**Returns:** Returning true or false overrides default behavior
|
|
|
|
```csharp
|
|
bool CanHelicopterDropCrate(CH47HelicopterAIController heli)
|
|
{
|
|
Puts("CanHelicopterDropCrate works!");
|
|
return true;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `helicopter`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onengineloadoutrefresh"></a>
|
|
|
|
### `OnEngineLoadoutRefresh`
|
|
|
|
- Called before engine loadout data is refreshed
|
|
|
|
**Returns:** Returning a non-null value overrides default behaviour
|
|
|
|
```csharp
|
|
object OnEngineLoadoutRefresh(EngineStorage storage)
|
|
{
|
|
Puts("OnEngineLoadoutRefresh works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `engine`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="canhelicopterstrafe"></a>
|
|
|
|
### `CanHelicopterStrafe`
|
|
|
|
- Called when a patrol helicopter attempts to strafe
|
|
|
|
**Returns:** Returning true or false overrides default behavior
|
|
|
|
```csharp
|
|
bool CanHelicopterStrafe(PatrolHelicopterAI heli)
|
|
{
|
|
Puts("CanHelicopterStrafe works!");
|
|
return true;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `helicopter`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="canhelicopterstrafetarget"></a>
|
|
|
|
### `CanHelicopterStrafeTarget`
|
|
|
|
- Called when a patrol helicopter attempts to target a player to attack while strafing
|
|
|
|
**Returns:** Returning true or false overrides default behavior
|
|
|
|
```csharp
|
|
bool CanHelicopterStrafeTarget(PatrolHelicopterAI entity, BasePlayer target)
|
|
{
|
|
Puts("CanHelicopterStrafeTarget works!");
|
|
return true;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `helicopter`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="canhelicoptertarget"></a>
|
|
|
|
### `CanHelicopterTarget`
|
|
|
|
- Called when a patrol helicopter attempts to target a player to attack
|
|
|
|
**Returns:** Returning true or false overrides default behavior
|
|
|
|
```csharp
|
|
bool CanHelicopterTarget(PatrolHelicopterAI heli, BasePlayer player)
|
|
{
|
|
Puts("CanHelicopterTarget works!");
|
|
return true;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `helicopter`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="canhelicopterusenapalm"></a>
|
|
|
|
### `CanHelicopterUseNapalm`
|
|
|
|
- Called when a patrol helicopter attempts to use napalm
|
|
|
|
**Returns:** Returning true or false overrides default behavior
|
|
|
|
```csharp
|
|
bool CanHelicopterUseNapalm(PatrolHelicopterAI heli)
|
|
{
|
|
Puts("CanHelicopterUseNapalm works!");
|
|
return true;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `helicopter`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="cannetworkto"></a>
|
|
|
|
### `CanNetworkTo`
|
|
|
|
- Called when an entity attempts to network with a player
|
|
- For better performance, avoid using heavy calculations in this hook.
|
|
|
|
**Returns:** Returning true or false overrides default behavior
|
|
|
|
```csharp
|
|
bool CanNetworkTo(BaseNetworkable entity, BasePlayer target)
|
|
{
|
|
Puts("CanNetworkTo works!");
|
|
return true;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `network`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onhelicopterretire"></a>
|
|
|
|
### `OnHelicopterRetire`
|
|
|
|
- Called before the patrol helicopter starts leaving the map.
|
|
|
|
**Returns:** Returning a non-null value overrides default behaviour.
|
|
|
|
```csharp
|
|
object OnHelicopterRetire(PatrolHelicopterAI helicopter)
|
|
{
|
|
Puts("OnHelicopterRetire works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `helicopter`, `entity` · uMod last updated 2022-01-23</sub>
|
|
|
|
<a id="cannpcattack"></a>
|
|
|
|
### `CanNpcAttack`
|
|
|
|
- Called when a NPC attempts to attack another entity
|
|
|
|
**Returns:** Returning true or false overrides default behavior
|
|
|
|
```csharp
|
|
bool CanNpcAttack(BaseNpc npc, BaseEntity target)
|
|
{
|
|
Puts("CanNpcAttack works!");
|
|
return true;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="cannpceat"></a>
|
|
|
|
### `CanNpcEat`
|
|
|
|
- Called when a NPC attempts to eat another entity
|
|
|
|
**Returns:** Returning true or false overrides default behavior
|
|
|
|
```csharp
|
|
bool CanNpcEat(BaseNpc npc, BaseEntity target)
|
|
{
|
|
Puts("CanNpcEat works!");
|
|
return true;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="canrecycle"></a>
|
|
|
|
### `CanRecycle`
|
|
|
|
- Called when the recycler attempts to recycle an item
|
|
|
|
**Returns:** Returning true or false overrides default behavior
|
|
|
|
```csharp
|
|
bool CanRecycle(Recycler recycler, Item item)
|
|
{
|
|
Puts("CanRecycle works!");
|
|
return true;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `recycle`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onairdrop"></a>
|
|
|
|
### `OnAirdrop`
|
|
|
|
- Called when an airdrop has been called
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnAirdrop(CargoPlane plane, Vector3 dropPosition)
|
|
{
|
|
Puts("OnAirdrop works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `airdrop`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onbradleyapcinitialize"></a>
|
|
|
|
### `OnBradleyApcInitialize`
|
|
|
|
- Called when an APC initializes
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnBradleyApcInitialize(BradleyAPC apc)
|
|
{
|
|
Puts("OnBradleyApcInitialize works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `bradley`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onbradleyapchunt"></a>
|
|
|
|
### `OnBradleyApcHunt`
|
|
|
|
- Called when an APC starts hunting
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnBradleyApcHunt(BradleyAPC apc)
|
|
{
|
|
Puts("OnBradleyApcHunt works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `bradley`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onbradleyapcpatrol"></a>
|
|
|
|
### `OnBradleyApcPatrol`
|
|
|
|
- Called when an APC is starts patrolling
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnBradleyApcPatrol(BradleyAPC apc)
|
|
{
|
|
Puts("OnBradleyApcPatrol works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `bradley`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="oncontainerdropitems"></a>
|
|
|
|
### `OnContainerDropItems`
|
|
|
|
- Called when a container is destroyed and all items are about to be dropped
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnContainerDropItems(ItemContainer container)
|
|
{
|
|
Puts("OnContainerDropItems works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `container`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="oncratedropped"></a>
|
|
|
|
### `OnCrateDropped`
|
|
|
|
- Called when a locked crate from the CH47 (Chinook) has dropped
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnCrateDropped(HackableLockedCrate crate)
|
|
{
|
|
Puts("OnCrateDropped works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `crate`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="oncratehack"></a>
|
|
|
|
### `OnCrateHack`
|
|
|
|
- Called when a player starts hacking a locked crate
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnCrateHack(HackableLockedCrate crate)
|
|
{
|
|
Puts("OnCrateHack works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `crate`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="oncratehackend"></a>
|
|
|
|
### `OnCrateHackEnd`
|
|
|
|
- Called when a player stops hacking a locked crate
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnCrateHackEnd(HackableLockedCrate crate)
|
|
{
|
|
Puts("OnCrateHackEnd works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `crate`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="oncratelanded"></a>
|
|
|
|
### `OnCrateLanded`
|
|
|
|
- Called when a locked crate from the CH47 (Chinook) has landed
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnCrateLanded(HackableLockedCrate crate)
|
|
{
|
|
Puts("OnCrateLanded works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `crate`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onentitydeath"></a>
|
|
|
|
### `OnEntityDeath`
|
|
|
|
- HitInfo might be null, check it before use
|
|
- Editing hitInfo has no effect because the death has already happened
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnEntityDeath(BaseCombatEntity entity, HitInfo info)
|
|
{
|
|
Puts("OnEntityDeath works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `entity` · uMod last updated 2022-01-17</sub>
|
|
|
|
<a id="onentitydismounted"></a>
|
|
|
|
### `OnEntityDismounted`
|
|
|
|
- Called when an entity is dismounted by a player
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnEntityDismounted(BaseMountable entity, BasePlayer player)
|
|
{
|
|
Puts("OnEntityDismounted works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onentityenter"></a>
|
|
|
|
### `OnEntityEnter`
|
|
|
|
- Called when an entity enters a trigger (water area, radiation zone, hurt zone, etc.)
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnEntityEnter(TriggerBase trigger, BaseEntity entity)
|
|
{
|
|
Puts("OnEntityEnter works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onentitygroundmissing"></a>
|
|
|
|
### `OnEntityGroundMissing`
|
|
|
|
- Called when an entity (sleepingbag, sign, furnace,...) is going to be destroyed because the buildingblock it is on was removed
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnEntityGroundMissing(BaseEntity entity)
|
|
{
|
|
Puts("OnEntityGroundMissing works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onentitykill"></a>
|
|
|
|
### `OnEntityKill`
|
|
|
|
- Called when an entity is destroyed
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnEntityKill(BaseNetworkable entity)
|
|
{
|
|
Puts("OnEntityKill works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `entity` · uMod last updated 2023-04-11</sub>
|
|
|
|
<a id="onentityleave"></a>
|
|
|
|
### `OnEntityLeave`
|
|
|
|
- Called when an entity leaves a trigger (water area, radiation zone, hurt zone, etc.)
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnEntityLeave(TriggerBase trigger, BaseEntity entity)
|
|
{
|
|
Puts("OnEntityLeave works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onentitymounted"></a>
|
|
|
|
### `OnEntityMounted`
|
|
|
|
- Called when an entity is mounted by a player
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnEntityMounted(BaseMountable entity, BasePlayer player)
|
|
{
|
|
Puts("OnEntityMounted works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onentityspawned"></a>
|
|
|
|
### `OnEntitySpawned`
|
|
|
|
- Called after any networked entity has spawned (including trees)
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnEntitySpawned(BaseNetworkable entity)
|
|
{
|
|
Puts("OnEntitySpawned works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onentitytakedamage"></a>
|
|
|
|
### `OnEntityTakeDamage`
|
|
|
|
- Alternatively, modify the HitInfo object to change the damage
|
|
- It should be okay to set the damage to 0, but if you don't return non-null, the player's client will receive a damage indicator (if entity is a BasePlayer)
|
|
- HitInfo has all kinds of useful things in it, such as Weapon, damageProperties or damageTypes
|
|
|
|
**Returns:** *(not stated upstream)*
|
|
|
|
```csharp
|
|
object OnEntityTakeDamage(BaseCombatEntity entity, HitInfo info)
|
|
{
|
|
Puts("OnEntityTakeDamage works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onfireballdamage"></a>
|
|
|
|
### `OnFireBallDamage`
|
|
|
|
- Called when a fire ball does damage to another entity
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnFireBallDamage(FireBall fire, BaseCombatEntity entity, HitInfo info)
|
|
{
|
|
Puts("OnFireBallDamage works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `fire`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onfireballspread"></a>
|
|
|
|
### `OnFireBallSpread`
|
|
|
|
- Called when a fire ball fire spreads
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnFireBallSpread(FireBall ball, BaseEntity fire)
|
|
{
|
|
Puts("OnFireBallSpread works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `fire`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onflameexplosion"></a>
|
|
|
|
### `OnFlameExplosion`
|
|
|
|
- Called when a flame explodes
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnFlameExplosion(FlameExplosive explosive, BaseEntity flame)
|
|
{
|
|
Puts("OnFlameExplosion works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `flame`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onhelicopterattack"></a>
|
|
|
|
### `OnHelicopterAttack`
|
|
|
|
- Called when a CH47 helicopter is being attacked
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnHelicopterAttack(CH47HelicopterAIController heli)
|
|
{
|
|
Puts("OnHelicopterAttack works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `helicopter`, `entity` · uMod last updated 2022-09-12</sub>
|
|
|
|
<a id="onhelicopterdropcrate"></a>
|
|
|
|
### `OnHelicopterDropCrate`
|
|
|
|
- Called when a CH47 helicopter is dropping a crate
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnHelicopterDropCrate(CH47HelicopterAIController heli)
|
|
{
|
|
Puts("OnHelicopterDropCrate works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `helicopter`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onhelicopterdropdooropen"></a>
|
|
|
|
### `OnHelicopterDropDoorOpen`
|
|
|
|
- Called when a CH47 helicopter is opening its drop door
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnHelicopterDropDoorOpen(CH47HelicopterAIController heli)
|
|
{
|
|
Puts("OnHelicopterDropDoorOpen works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `helicopter`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onhelicopterkilled"></a>
|
|
|
|
### `OnHelicopterKilled`
|
|
|
|
- Called when a CH47 helicopter is going to be killed
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnHelicopterKilled(CH47HelicopterAIController heli)
|
|
{
|
|
Puts("OnHelicopterKilled works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `helicopter`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onhelicopteroutofcrates"></a>
|
|
|
|
### `OnHelicopterOutOfCrates`
|
|
|
|
- Called when a CH47 helicopter runs out of crates
|
|
|
|
**Returns:** Returning true or false overrides default behavior
|
|
|
|
```csharp
|
|
bool? OnHelicopterOutOfCrates(CH47HelicopterAIController heli)
|
|
{
|
|
Puts("OnHelicopterOutOfCrates works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `helicopter`, `entity` · uMod last updated 2021-08-14</sub>
|
|
|
|
<a id="onhelicoptertarget"></a>
|
|
|
|
### `OnHelicopterTarget`
|
|
|
|
- Called when a helicopter turret attempts to target an entity
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnHelicopterTarget(HelicopterTurret turret, BaseCombatEntity entity)
|
|
{
|
|
Puts("OnHelicopterTarget works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `helicopter`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onliftuse"></a>
|
|
|
|
### `OnLiftUse`
|
|
|
|
- Called when a player calls a lift or procedural lift
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnLiftUse(Lift lift, BasePlayer player)
|
|
{
|
|
Puts("OnLiftUse works!");
|
|
return null;
|
|
}
|
|
```
|
|
```csharp
|
|
object OnLiftUse(ProceduralLift lift, BasePlayer player)
|
|
{
|
|
Puts("OnLiftUse works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `lift`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onlootspawn"></a>
|
|
|
|
### `OnLootSpawn`
|
|
|
|
- Called when loot spawns in a container
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnLootSpawn(LootContainer container)
|
|
{
|
|
Puts("OnLootSpawn works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `loot`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onnpctargetsense"></a>
|
|
|
|
### `OnNpcTargetSense`
|
|
|
|
- Called when an NPC becomes aware of another entity
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnNpcTargetSense(BaseEntity owner, BaseEntity entity, AIBrainSenses brainSenses)
|
|
{
|
|
Puts("OnNpcTargetSense works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `entity` · uMod last updated 2023-04-23</sub>
|
|
|
|
<a id="onnpctarget"></a>
|
|
|
|
### `OnNpcTarget`
|
|
|
|
- Called when an NPC targets another entity
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnNpcTarget(BaseEntity npc, BaseEntity entity)
|
|
{
|
|
Puts("OnNpcTarget works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onitemrecycle"></a>
|
|
|
|
### `OnItemRecycle`
|
|
|
|
- Called when an item is recycled in a recycler
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnItemRecycle(Item item, Recycler recycler)
|
|
{
|
|
Puts("OnItemRecycle works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `recycle`, `entity` · uMod last updated 2022-09-12</sub>
|
|
|
|
<a id="onovencook"></a>
|
|
|
|
### `OnOvenCook`
|
|
|
|
- Called before an oven cooks an item
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnOvenCook(BaseOven oven, Item item)
|
|
{
|
|
Puts("OnOvenCook works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `oven`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onovencooked"></a>
|
|
|
|
### `OnOvenCooked`
|
|
|
|
- Called after an oven cooks an item
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnOvenCooked(BaseOven oven, Item item, BaseEntity slot)
|
|
{
|
|
Puts("OnOvenCooked works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `oven`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onoventoggle"></a>
|
|
|
|
### `OnOvenToggle`
|
|
|
|
- Called when an oven (Campfire, Furnace,...) is turned on or off
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnOvenToggle(BaseOven oven, BasePlayer player)
|
|
{
|
|
Puts("OnOvenToggle works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `oven`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onrecyclertoggle"></a>
|
|
|
|
### `OnRecyclerToggle`
|
|
|
|
- Called when a recycler is turned on or off
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnRecyclerToggle(Recycler recycler, BasePlayer player)
|
|
{
|
|
Puts("OnRecyclerToggle works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `recycler`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onresourcedepositcreated"></a>
|
|
|
|
### `OnResourceDepositCreated`
|
|
|
|
- Called when a resource deposit has been created
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnResourceDepositCreated(ResourceDepositManager.ResourceDeposit deposit)
|
|
{
|
|
Puts("OnResourceDepositCreated works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `resource`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onshopcompletetrade-1"></a>
|
|
|
|
### `OnShopCompleteTrade`
|
|
|
|
- Called when a shopfront trade is complete
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnShopCompleteTrade(ShopFront shop, BasePlayer customer)
|
|
{
|
|
Puts("OnShopCompleteTrade works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `shop`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onturretauthorize"></a>
|
|
|
|
### `OnTurretAuthorize`
|
|
|
|
- Called when a player attempts to authorize on a turret
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnTurretAuthorize(AutoTurret turret, BasePlayer player)
|
|
{
|
|
Puts("OnTurretAuthorize works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `turret`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onturretclearlist"></a>
|
|
|
|
### `OnTurretClearList`
|
|
|
|
- Called when a player attempts to clear an autoturret's authorized list
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnTurretClearList(AutoTurret turret, BasePlayer player)
|
|
{
|
|
Puts("OnTurretClearList works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `turret`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onturretdeauthorize"></a>
|
|
|
|
### `OnTurretDeauthorize`
|
|
|
|
- Called when a player is deauthorized on an autoturret
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnTurretDeauthorize(AutoTurret turret, BasePlayer player)
|
|
{
|
|
Puts("OnTurretDeauthorize works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `turret`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onturretmodetoggle"></a>
|
|
|
|
### `OnTurretModeToggle`
|
|
|
|
- Called when the mode of an autoturrent is toggled
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnTurretModeToggle(AutoTurret turret)
|
|
{
|
|
Puts("OnTurretModeToggle works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `turret`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onturretshutdown"></a>
|
|
|
|
### `OnTurretShutdown`
|
|
|
|
- Called when an autoturret is shut down
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnTurretShutdown(AutoTurret turret)
|
|
{
|
|
Puts("OnTurretShutdown works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `turret`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onturretstartup"></a>
|
|
|
|
### `OnTurretStartup`
|
|
|
|
- Called when an autoturret starts up
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnTurretStartup(AutoTurret turret)
|
|
{
|
|
Puts("OnTurretStartup works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `turret`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onturrettarget"></a>
|
|
|
|
### `OnTurretTarget`
|
|
|
|
- Called when an autoturret attempts to target an entity
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnTurretTarget(AutoTurret turret, BaseCombatEntity entity)
|
|
{
|
|
Puts("OnTurretTarget works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `turret`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onturrettoggle"></a>
|
|
|
|
### `OnTurretToggle`
|
|
|
|
- Called when an autoturret toggles powerstate (on/off)
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnTurretToggle(AutoTurret turret)
|
|
{
|
|
Puts("OnTurretToggle works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `turret`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onbigwheelwin"></a>
|
|
|
|
### `OnBigWheelWin`
|
|
|
|
- Called before multiplier is applied.
|
|
|
|
**Returns:** Returning non-null value overrides default behaviour.
|
|
|
|
```csharp
|
|
object OnBigWheelWin(BigWheelGame bigWheel, Item scrap, BigWheelBettingTerminal terminal, int multiplier)
|
|
{
|
|
Puts("OnBigWheelWin works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `entity` · uMod last updated 2022-06-05</sub>
|
|
|
|
<a id="onbigwheelloss"></a>
|
|
|
|
### `OnBigWheelLoss`
|
|
|
|
- Called when a specific item is lost on the big wheel game
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnBigWheelLoss(BigWheelGame wheel, Item item)
|
|
{
|
|
Puts("OnBigWheelLoss works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onsolarpanelsunupdate"></a>
|
|
|
|
### `OnSolarPanelSunUpdate`
|
|
|
|
- Called when a solar panel updates the amount of energy it is getting from the sun
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnSolarPanelSunUpdate(SolarPanel panel, int currentEnergy)
|
|
{
|
|
Puts("OnSolarPanelSunUpdate works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `solar`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onbookmarkcontrol"></a>
|
|
|
|
### `OnBookmarkControl`
|
|
|
|
- Called when a player tries to select a bookmark at a computer station
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnBookmarkControl(ComputerStation computerStation, BasePlayer player, string bookmarkName, IRemoteControllable remoteControllable)
|
|
{
|
|
Puts("OnBookmarkControl works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `bookmark`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onbookmarkcontrolstarted"></a>
|
|
|
|
### `OnBookmarkControlStarted`
|
|
|
|
- Called after a player has selected a bookmark at a computer station
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnBookmarkControlStarted(ComputerStation computerStation, BasePlayer player, string bookmarkName, IRemoteControllable remoteControllable)
|
|
{
|
|
Puts("OnBookmarkControlStarted works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `bookmark`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onbookmarkdelete"></a>
|
|
|
|
### `OnBookmarkDelete`
|
|
|
|
- Called when a player tries to delete a bookmark at a computer station
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnBookmarkDelete(ComputerStation computerStation, BasePlayer player, string bookmarkName)
|
|
{
|
|
Puts("OnBookmarkDelete works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `bookmark`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onbookmarkadd"></a>
|
|
|
|
### `OnBookmarkAdd`
|
|
|
|
- Called when a player tries to add a bookmark at a computer station
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnBookmarkAdd(ComputerStation computerStation, BasePlayer player, string bookmarkName)
|
|
{
|
|
Puts("OnBookmarkAdd works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `bookmark`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onbookmarkssendcontrol"></a>
|
|
|
|
### `OnBookmarksSendControl`
|
|
|
|
- Called when a player is being sent a list of bookmarks for a computer station
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnBookmarksSendControl(ComputerStation computerStation, BasePlayer player, string bookmarks)
|
|
{
|
|
Puts("OnBookmarksSendControl works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `bookmarks`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onbookmarkcontrolend"></a>
|
|
|
|
### `OnBookmarkControlEnd`
|
|
|
|
- Called when a player tries to stop viewing/controlling an entity at a computer station
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnBookmarkControlEnd(ComputerStation computerStation, BasePlayer player, BaseEntity controlledEntity)
|
|
{
|
|
Puts("OnBookmarkControlEnd works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `bookmark`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onbookmarkcontrolended"></a>
|
|
|
|
### `OnBookmarkControlEnded`
|
|
|
|
- Called after a player has stopped viewing/controlling an entity at a computer station
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnBookmarkControlEnded(ComputerStation computerStation, BasePlayer player, BaseEntity controlledEntity)
|
|
{
|
|
Puts("OnBookmarkControlEnded works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `bookmark`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onrfbroadcasteradd"></a>
|
|
|
|
### `OnRfBroadcasterAdd`
|
|
|
|
- Called right before an object starts broadcasting an RF frequency
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnRfBroadcasterAdd(IRFObject obj, int frequency)
|
|
{
|
|
Puts("OnRfBroadcasterAdd works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onrfbroadcasteradded"></a>
|
|
|
|
### `OnRfBroadcasterAdded`
|
|
|
|
- Called right after an object has started broadcasting an RF frequency
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnRfBroadcasterAdded(IRFObject obj, int frequency)
|
|
{
|
|
Puts("OnRfBroadcasterAdded works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onrfbroadcasterremove"></a>
|
|
|
|
### `OnRfBroadcasterRemove`
|
|
|
|
- Called right before an object stops broadasting an RF frequency
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnRfBroadcasterRemove(IRFObject obj, int frequency)
|
|
{
|
|
Puts("OnRfBroadcasterRemove works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onrfbroadcasterremoved"></a>
|
|
|
|
### `OnRfBroadcasterRemoved`
|
|
|
|
- Called right after an object has stopped broadcasting an RF frequency
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnRfBroadcasterRemoved(IRFObject obj, int frequency)
|
|
{
|
|
Puts("OnRfBroadcasterRemoved works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onrflisteneradd"></a>
|
|
|
|
### `OnRfListenerAdd`
|
|
|
|
- Called right before an object starts listening to an RF frequency
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnRfListenerAdd(IRFObject obj, int frequency)
|
|
{
|
|
Puts("OnRfListenerAdd works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onrflisteneradded"></a>
|
|
|
|
### `OnRfListenerAdded`
|
|
|
|
- Called right after an object has started listening to an RF frequency
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnRfListenerAdded(IRFObject obj, int frequency)
|
|
{
|
|
Puts("OnRfListenerAdded works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onrflistenerremove"></a>
|
|
|
|
### `OnRfListenerRemove`
|
|
|
|
- Called right before an object stops listening to an RF frequency
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnRfListenerRemove(IRFObject obj, int frequency)
|
|
{
|
|
Puts("OnRfListenerRemove works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onrffrequencychange"></a>
|
|
|
|
### `OnRfFrequencyChange`
|
|
|
|
- Called when a player tries to change the frequency of an RF broadcaster or receiver
|
|
- Useful for preventing particular reserved frequencies from being selected
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnRfFrequencyChange(IRFObject obj, int frequency, BasePlayer player)
|
|
{
|
|
Puts("OnRfFrequencyChange works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onrffrequencychanged"></a>
|
|
|
|
### `OnRfFrequencyChanged`
|
|
|
|
- Called after a player has changed the frequency of an RF broadcaster or receiver
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnRfFrequencyChanged(IRFObject obj, int frequency, BasePlayer player)
|
|
{
|
|
Puts("OnRfFrequencyChanged works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onrflistenerremoved"></a>
|
|
|
|
### `OnRfListenerRemoved`
|
|
|
|
- Called right after an object has stopped listening to an RF frequency
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnRfListenerRemoved(IRFObject obj, int frequency)
|
|
{
|
|
Puts("OnRfListenerRemoved works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onsleepingbagdestroy"></a>
|
|
|
|
### `OnSleepingBagDestroy`
|
|
|
|
- Called when a player tries to remove a sleeping bag from their respawn screen
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnSleepingBagDestroy(SleepingBag sleepingBag, BasePlayer player)
|
|
{
|
|
Puts("OnSleepingBagDestroy works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `sleeping`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onnetworksubscriptionsupdate"></a>
|
|
|
|
### `OnNetworkSubscriptionsUpdate`
|
|
|
|
- Called after the Rust has determined which network groups to subscribe a player to (`groupsToAdd`), and which network groups to unsubscribe the player from (`groupsToRemove`)
|
|
- This hook is useful for situations where you want to subscribe a player to a network group that is outside their network range -- To do so, you can prevent Rust from automatically unsubscribing them by removing that group from the `groupsToRemove` list
|
|
|
|
**Returns:** Returning a non-null value prevents Rust from applying the proposed subscription changes
|
|
|
|
```csharp
|
|
object OnNetworkSubscriptionsUpdate(Network.Networkable networkable, List<Network.Visibility.Group> groupsToAdd, List<Network.Visibility.Group> groupsToRemove)
|
|
{
|
|
Puts("OnNetworkSubscriptionsUpdate works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `network`, `player` · uMod last updated 2023-08-11</sub>
|
|
|
|
<a id="onsleepingbagdestroyed"></a>
|
|
|
|
### `OnSleepingBagDestroyed`
|
|
|
|
- Called after a player removes a sleeping bag from their respawn screen
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnSleepingBagDestroyed(SleepingBag sleepingBag, BasePlayer player)
|
|
{
|
|
Puts("OnSleepingBagDestroyed works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `sleeping`, `entity` · uMod last updated 2022-01-17</sub>
|
|
|
|
<a id="onbookmarkinput"></a>
|
|
|
|
### `OnBookmarkInput`
|
|
|
|
- Called when input is received from a player who is using a computer station with a bookmark selected
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnBookmarkInput(ComputerStation computerStation, BasePlayer player, InputState inputState)
|
|
{
|
|
Puts("OnBookmarkInput works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `bookmark`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onentitycontrol"></a>
|
|
|
|
### `OnEntityControl`
|
|
|
|
- Called when a player tries to remote control an entity
|
|
|
|
**Returns:** Returning true or false overrides default behavior
|
|
|
|
```csharp
|
|
object OnEntityControl(IRemoteControllable entity)
|
|
{
|
|
Puts("OnEntityControl works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onturretrotate"></a>
|
|
|
|
### `OnTurretRotate`
|
|
|
|
- Called when a player tries to rotate an auto turret
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnTurretRotate(AutoTurret turret, BasePlayer player)
|
|
{
|
|
Puts("OnTurretRotate works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `turret`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="oncountertargetchange"></a>
|
|
|
|
### `OnCounterTargetChange`
|
|
|
|
- Called when a player tries to change the target number of a power counter
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnCounterTargetChange(PowerCounter counter, BasePlayer player, int targetNumber)
|
|
{
|
|
Puts("OnCounterTargetChange works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `counter`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="oncountermodetoggle"></a>
|
|
|
|
### `OnCounterModeToggle`
|
|
|
|
- Called when a player ties to toggle a power counter between modes
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnCounterModeToggle(PowerCounter counter, BasePlayer player, bool mode)
|
|
{
|
|
Puts("OnCounterModeToggle works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `counter`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onswitchtoggle"></a>
|
|
|
|
### `OnSwitchToggle`
|
|
|
|
- Called when a player tries to switch and ElectricSwitch or FuelGenerator
|
|
|
|
**Returns:** Returning a non-null value cancels default behavior
|
|
|
|
```csharp
|
|
object OnSwitchToggle(IOEntity entity, BasePlayer player)
|
|
{
|
|
Puts("OnSwitchToggle works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `switch`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onswitchtoggled"></a>
|
|
|
|
### `OnSwitchToggled`
|
|
|
|
- Called right after a player switches an ElectricSwitch or FuelGenerator
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnSwitchToggled(IOEntity entity, BasePlayer player)
|
|
{
|
|
Puts("OnSwitchToggled works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `switch`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onentitydestroy"></a>
|
|
|
|
### `OnEntityDestroy`
|
|
|
|
- Called right before a CH47Helicopter or BradleyAPC is destroyed
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnEntityDestroy(BaseCombatEntity entity)
|
|
{
|
|
Puts("OnEntityDestroy works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onelevatorbuttonpress"></a>
|
|
|
|
### `OnElevatorButtonPress`
|
|
|
|
- Called when a player presses a button on an elevator lift
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnElevatorButtonPress(ElevatorLift lift, BasePlayer player, Elevator.Direction direction, bool toTopOrBottom)
|
|
{
|
|
Puts("OnElevatorButtonPress works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `elevator`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onelevatorcall"></a>
|
|
|
|
### `OnElevatorCall`
|
|
|
|
- Called when an elevator lift is called to a specific floor by electricity
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnElevatorCall(Elevator elevator, Elevator topElevator)
|
|
{
|
|
Puts("OnElevatorCall works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `elevator`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onelevatormove"></a>
|
|
|
|
### `OnElevatorMove`
|
|
|
|
- Called right before an elevator starts moving to the target floor
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnElevatorMove(Elevator topElevator, int targetFloor)
|
|
{
|
|
Puts("OnElevatorMove works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `elevator`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="canswaptoseat"></a>
|
|
|
|
### `CanSwapToSeat`
|
|
|
|
- Called when a player tries to switch seats, to determine whether each seat is eligible to be swapped to
|
|
|
|
**Returns:** Returning true or false overrides default behavior
|
|
|
|
```csharp
|
|
bool CanSwapToSeat(BasePlayer player, BaseMountable mountable)
|
|
{
|
|
Puts("CanSwapToSeat works!");
|
|
return true;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `swap`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onridableanimalclaim"></a>
|
|
|
|
### `OnRidableAnimalClaim`
|
|
|
|
- Called when a player tries to claim a horse
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnRidableAnimalClaim(BaseRidableAnimal animal, BasePlayer player)
|
|
{
|
|
Puts("OnRidableAnimalClaim works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `ridable`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onridableanimalclaimed"></a>
|
|
|
|
### `OnRidableAnimalClaimed`
|
|
|
|
- Called after a player has claimed a horse
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnRidableAnimalClaimed(BaseRidableAnimal animal, BasePlayer player)
|
|
{
|
|
Puts("OnRidableAnimalClaimed works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `ridable`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onentitysaved"></a>
|
|
|
|
### `OnEntitySaved`
|
|
|
|
- Called after a BaseNetworkable has been saved to a ProtoBuf object and is about to be serialized to a network stream or network cache
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnEntitySaved(BaseNetworkable entity, BaseNetworkable.SaveInfo saveInfo)
|
|
{
|
|
Puts("OnEntitySaved works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onentitysnapshot"></a>
|
|
|
|
### `OnEntitySnapshot`
|
|
|
|
- Called when an entity snapshot is about to be sent to a client connection
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnEntitySnapshot(BaseNetworkable entity, Connection connection)
|
|
{
|
|
Puts("OnEntitySnapshot works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onentityflagsnetworkupdate"></a>
|
|
|
|
### `OnEntityFlagsNetworkUpdate`
|
|
|
|
- Called after an entity's flags have been updated on the server, before they are sent over the network
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnEntityFlagsNetworkUpdate(BaseEntity entity)
|
|
{
|
|
Puts("OnEntityFlagsNetworkUpdate works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="oniorefcleared"></a>
|
|
|
|
### `OnIORefCleared`
|
|
|
|
- Called after a wire has been disconnected from an electrical entity, such as when its connected entity was destroyed or when a player removed the wire
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnIORefCleared(IOEntity.IORef ioRef, IOEntity ioEntity)
|
|
{
|
|
Puts("OnIORefCleared works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onsupplydropdropped"></a>
|
|
|
|
### `OnSupplyDropDropped`
|
|
|
|
- Called right after a cargo plane has dropped a supply drop
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnSupplyDropDropped(SupplyDrop supplyDrop, CargoPlane cargoPlane)
|
|
{
|
|
Puts("OnSupplyDropDropped works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `supply`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="oncargoplanesignaled"></a>
|
|
|
|
### `OnCargoPlaneSignaled`
|
|
|
|
- Called right after a supply signal has called a cargo plane
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnCargoPlaneSignaled(CargoPlane cargoPlane, SupplySignal supplySignal)
|
|
{
|
|
Puts("OnCargoPlaneSignaled works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `cargo`, `entity` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onwaterpurify"></a>
|
|
|
|
### `OnWaterPurify`
|
|
|
|
- Called when salt water is about to be converted to fresh water in a water purifier
|
|
|
|
**Returns:** Returning a non-null value cancels default behavior
|
|
|
|
```csharp
|
|
object OnWaterPurify(WaterPurifier waterPurifier, float timeCooked)
|
|
{
|
|
Puts("OnWaterPurify works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `item` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onwaterpurified"></a>
|
|
|
|
### `OnWaterPurified`
|
|
|
|
- Called after salt water has been converted to fresh water in a water purifier
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnWaterPurified(WaterPurifier waterPurifier, float timeCooked)
|
|
{
|
|
Puts("OnWaterPurified works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `item` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onsleepingbagvalidcheck"></a>
|
|
|
|
### `OnSleepingBagValidCheck`
|
|
|
|
- Called when determining if a sleeping bag is a valid respawn location for a player
|
|
- Useful in conjunction with OnRespawnInformationGiven since a custom sleeping bag will need to pass this check
|
|
|
|
**Returns:** Returning true or false overrides default behavior
|
|
|
|
```csharp
|
|
bool? OnSleepingBagValidCheck(SleepingBag bag, ulong targetPlayerID, bool ignoreTimers)
|
|
{
|
|
Puts("OnSleepingBagValidCheck works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `item` · uMod last updated 2021-06-12</sub>
|
|
|
|
<a id="oncctvdirectionchange"></a>
|
|
|
|
### `OnCCTVDirectionChange`
|
|
|
|
- Called when a player attempts to change the direction of a CCTV camera to face them
|
|
|
|
**Returns:** Returning a non-null value cancels default behavior
|
|
|
|
```csharp
|
|
object OnCCTVDirectionChange(CCTV_RC camera, BasePlayer player)
|
|
{
|
|
Puts("OnCCTVDirectionChange works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `entity` · uMod last updated 2022-01-24</sub>
|
|
|
|
<a id="onwatercollect"></a>
|
|
|
|
### `OnWaterCollect`
|
|
|
|
- Called when a water catcher is about to collect water
|
|
|
|
**Returns:** Returning a non-null value cancels default behavior
|
|
|
|
```csharp
|
|
object OnWaterCollect(WaterCatcher waterCatcher)
|
|
{
|
|
Puts("OnWaterCollect works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `entity`, `item` · uMod last updated 2021-07-03</sub>
|
|
|
|
<a id="onliquidvesselfill"></a>
|
|
|
|
### `OnLiquidVesselFill`
|
|
|
|
- Called when a player is attempting to fill a liquid vessel
|
|
|
|
**Returns:** Returning a non-null value cancels default behavior
|
|
|
|
```csharp
|
|
object OnLiquidVesselFill(BaseLiquidVessel liquidVessel, BasePlayer player, LiquidContainer facingLiquidContainer)
|
|
{
|
|
Puts("OnLiquidVesselFill works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `entity`, `item` · uMod last updated 2021-07-03</sub>
|
|
|
|
<a id="onlockerswap"></a>
|
|
|
|
### `OnLockerSwap`
|
|
|
|
- Called when a player clicks the "Swap" button while viewing a locker interface
|
|
|
|
**Returns:** Returning non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnLockerSwap(Locker locker, int startIndex, BasePlayer player)
|
|
{
|
|
Puts("OnLockerSwap works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `entity`, `locker` · uMod last updated 2023-12-10</sub>
|
|
|
|
<a id="canlockeracceptitem"></a>
|
|
|
|
### `CanLockerAcceptItem`
|
|
|
|
- Called before an item is attempted to be placed inside a locker
|
|
|
|
**Returns:** Returning true or false overrides default behavior
|
|
|
|
```csharp
|
|
object CanLockerAcceptItem(Locker locker, Item item, int targetPos)
|
|
{
|
|
Puts("CanLockerAcceptItem works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `entity`, `locker` · uMod last updated 2023-12-10</sub>
|
|
|
|
---
|
|
|
|
## Item Hooks
|
|
|
|
*Item stacks and containers: add, remove, split, stack, move, repair, research, craft, use.*
|
|
|
|
43 hooks: [`CanAcceptItem`](#canacceptitem), [`CanDropActiveItem`](#candropactiveitem), [`OnBackpackDrop`](#onbackpackdrop), [`OnCardSwipe`](#oncardswipe), [`OnItemRemove`](#onitemremove), [`OnMapImageUpdated`](#onmapimageupdated), [`CanCombineDroppedItem`](#cancombinedroppeditem), [`CanMoveItem`](#canmoveitem), [`CanStackItem`](#canstackitem), [`OnFuelConsume`](#onfuelconsume), [`OnFuelConsumed`](#onfuelconsumed), [`OnFindBurnable`](#onfindburnable), [`OnHealingItemUse`](#onhealingitemuse), [`OnItemAction`](#onitemaction), [`OnItemAddedToContainer`](#onitemaddedtocontainer), [`OnItemCraft`](#onitemcraft), [`OnItemCraftCancelled`](#onitemcraftcancelled), [`OnItemCraftFinished`](#onitemcraftfinished), [`OnItemDeployed`](#onitemdeployed), [`OnItemDropped`](#onitemdropped), [`OnItemPickup`](#onitempickup), [`OnItemRemovedFromContainer`](#onitemremovedfromcontainer), [`OnItemRepair`](#onitemrepair), [`OnItemResearch`](#onitemresearch), [`OnItemResearched`](#onitemresearched), [`OnResearchCostDetermine`](#onresearchcostdetermine), [`OnItemSplit`](#onitemsplit), [`OnItemUpgrade`](#onitemupgrade), [`OnItemUse`](#onitemuse), [`OnLoseCondition`](#onlosecondition), [`OnMaxStackable`](#onmaxstackable), [`OnTrapArm`](#ontraparm), [`OnTrapDisarm`](#ontrapdisarm), [`OnTrapSnapped`](#ontrapsnapped), [`OnTrapTrigger`](#ontraptrigger), [`OnBonusItemDrop`](#onbonusitemdrop), [`OnBonusItemDropped`](#onbonusitemdropped), [`OnItemRefill`](#onitemrefill), [`OnItemLock`](#onitemlock), [`OnItemUnlock`](#onitemunlock), [`OnItemSubmit`](#onitemsubmit), [`OnItemStacked`](#onitemstacked), [`OnIngredientsCollect`](#oningredientscollect)
|
|
|
|
<a id="canacceptitem"></a>
|
|
|
|
### `CanAcceptItem`
|
|
|
|
- Called when attempting to put an item in a container
|
|
|
|
**Returns:** Returning CanAcceptResult value overrides default behavior
|
|
|
|
```csharp
|
|
ItemContainer.CanAcceptResult? CanAcceptItem(ItemContainer container, Item item, int targetPos)
|
|
{
|
|
Puts("CanAcceptItem works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `accept`, `item` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="candropactiveitem"></a>
|
|
|
|
### `CanDropActiveItem`
|
|
|
|
- Called when a player attempts to drop their active item
|
|
|
|
**Returns:** Returning true or false overrides default behavior
|
|
|
|
```csharp
|
|
bool CanDropActiveItem(BasePlayer player)
|
|
{
|
|
Puts("CanDropActiveItem works!");
|
|
return true;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `drop`, `item` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onbackpackdrop"></a>
|
|
|
|
### `OnBackpackDrop`
|
|
|
|
- Called just before a backpack is dropped from a player on death.
|
|
|
|
**Returns:** Return non-null to override default behaviour.
|
|
|
|
```csharp
|
|
object OnBackpackDrop(Item backpack, BasePlayer player)
|
|
{
|
|
Puts("OnBackpackDrop works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `rust` · uMod last updated 2024-05-08</sub>
|
|
|
|
<a id="oncardswipe"></a>
|
|
|
|
### `OnCardSwipe`
|
|
|
|
- Called when a player is trying to swipe a card
|
|
|
|
**Returns:** Returning a non-null value cancels default behavior
|
|
|
|
```csharp
|
|
object OnCardSwipe(CardReader cardReader, Keycard card, BasePlayer player)
|
|
{
|
|
Puts("OnCardSwipe works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `card`, `item` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onitemremove"></a>
|
|
|
|
### `OnItemRemove`
|
|
|
|
- Called before an item is destroyed
|
|
|
|
**Returns:** Return a non-null value stop item from being destroyed
|
|
|
|
```csharp
|
|
// Example that stops item from being destroyed
|
|
|
|
object OnItemRemove(Item item)
|
|
{
|
|
Puts("OnItemRemove works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
```csharp
|
|
// Example that does not stop item from being destroyed
|
|
|
|
void OnItemRemove(Item item)
|
|
{
|
|
Puts("OnItemRemove works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `item` · uMod last updated 2022-01-17</sub>
|
|
|
|
<a id="onmapimageupdated"></a>
|
|
|
|
### `OnMapImageUpdated`
|
|
|
|
- Called when player updates map item's image
|
|
- Useful for executing any action when map image is updated
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnMapImageUpdated()
|
|
{
|
|
Puts("OnMapImageUpdated works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `item` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="cancombinedroppeditem"></a>
|
|
|
|
### `CanCombineDroppedItem`
|
|
|
|
- Called when an item is dropped on another item
|
|
|
|
**Returns:** Returning a non-null value overwrites command arguments
|
|
|
|
```csharp
|
|
object CanCombineDroppedItem(DroppedItem item, DroppedItem targetItem)
|
|
{
|
|
Puts("CanCombineDroppedItem works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `combine`, `item` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="canmoveitem"></a>
|
|
|
|
### `CanMoveItem`
|
|
|
|
- Called when moving an item from one inventory slot to another
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object CanMoveItem(Item item, PlayerInventory playerLoot, ItemContainerId targetContainer, int targetSlot, int amount, ItemMoveModifier itemMoveModifier)
|
|
{
|
|
Puts("CanMoveItem works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `move`, `item` · uMod last updated 2024-02-02</sub>
|
|
|
|
<a id="canstackitem"></a>
|
|
|
|
### `CanStackItem`
|
|
|
|
- Called when moving an item onto another item
|
|
|
|
**Returns:** Returning true or false overrides default behavior
|
|
|
|
```csharp
|
|
bool CanStackItem(Item item, Item targetItem)
|
|
{
|
|
Puts("CanStackItem works!");
|
|
return true;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `stack`, `item` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onfuelconsume"></a>
|
|
|
|
### `OnFuelConsume`
|
|
|
|
- Called right before fuel is used (furnace, lanterns, camp fires, etc.)
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnFuelConsume(BaseOven oven, Item fuel, ItemModBurnable burnable)
|
|
{
|
|
Puts("OnFuelConsume works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `fuel`, `item` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onfuelconsumed"></a>
|
|
|
|
### `OnFuelConsumed`
|
|
|
|
- Called after fuel is used (furnace, lanterns, camp fires, etc.)
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnFuelConsumed(BaseOven oven, Item fuel, ItemModBurnable burnable)
|
|
{
|
|
Puts("OnFuelConsumed works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `fuel`, `item` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onfindburnable"></a>
|
|
|
|
### `OnFindBurnable`
|
|
|
|
- Called when looking for fuel for the oven
|
|
|
|
**Returns:** Returning an Item overrides default behavior
|
|
|
|
```csharp
|
|
Item OnFindBurnable(BaseOven oven)
|
|
{
|
|
Puts("OnFindBurnable works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `find`, `item` · uMod last updated 2022-10-05</sub>
|
|
|
|
<a id="onhealingitemuse"></a>
|
|
|
|
### `OnHealingItemUse`
|
|
|
|
- Called when a player attempts to use a medical tool
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnHealingItemUse(MedicalTool tool, BasePlayer player)
|
|
{
|
|
Puts("OnHealingItemUse works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `healing`, `item` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onitemaction"></a>
|
|
|
|
### `OnItemAction`
|
|
|
|
- Called when a button is clicked on an item in the inventory (drop, unwrap, ...)
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnItemAction(Item item, string action, BasePlayer player)
|
|
{
|
|
Puts("OnItemAction works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `item` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onitemaddedtocontainer"></a>
|
|
|
|
### `OnItemAddedToContainer`
|
|
|
|
- Called right after an item was added to a container
|
|
- An entire stack has to be created, not just adding more wood to a wood stack for example
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnItemAddedToContainer(ItemContainer container, Item item)
|
|
{
|
|
Puts("OnItemAddedToContainer works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `item` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onitemcraft"></a>
|
|
|
|
### `OnItemCraft`
|
|
|
|
- Called just before an item is added to the crafting queue
|
|
|
|
**Returns:** Returning true or false overrides default behavior
|
|
|
|
```csharp
|
|
object OnItemCraft(ItemCraftTask task, BasePlayer player, Item item)
|
|
{
|
|
Puts("OnItemCraft works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `item` · uMod last updated 2023-10-11</sub>
|
|
|
|
<a id="onitemcraftcancelled"></a>
|
|
|
|
### `OnItemCraftCancelled`
|
|
|
|
- Called before an item has been crafted
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnItemCraftCancelled(ItemCraftTask task)
|
|
{
|
|
Puts("OnItemCraftCancelled works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `item` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onitemcraftfinished"></a>
|
|
|
|
### `OnItemCraftFinished`
|
|
|
|
- Called right after an item has been crafted
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnItemCraftFinished(ItemCraftTask task, Item item)
|
|
{
|
|
Puts("OnItemCraftFinished works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `item` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onitemdeployed"></a>
|
|
|
|
### `OnItemDeployed`
|
|
|
|
- Called right after an item has been deployed
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnItemDeployed(Deployer deployer, BaseEntity entity, BaseEntity slotEntity)
|
|
{
|
|
Puts("OnItemDeployed works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `item` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onitemdropped"></a>
|
|
|
|
### `OnItemDropped`
|
|
|
|
- Called right after an item has been dropped
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnItemDropped(Item item, BaseEntity entity)
|
|
{
|
|
Puts("OnItemDropped works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `item` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onitempickup"></a>
|
|
|
|
### `OnItemPickup`
|
|
|
|
- Called right after an item has been picked up
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnItemPickup(Item item, BasePlayer player)
|
|
{
|
|
Puts("OnItemPickup works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `item` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onitemremovedfromcontainer"></a>
|
|
|
|
### `OnItemRemovedFromContainer`
|
|
|
|
- Called right after an item was removed from a container
|
|
- The entire stack has to be removed for this to be called, not just a little bit
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnItemRemovedFromContainer(ItemContainer container, Item item)
|
|
{
|
|
Puts("OnItemRemovedFromContainer works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `item` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onitemrepair"></a>
|
|
|
|
### `OnItemRepair`
|
|
|
|
- Called right before an item is repaired
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnItemRepair(BasePlayer player, Item item)
|
|
{
|
|
Puts("OnItemRepair works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `item` · uMod last updated 2021-07-21</sub>
|
|
|
|
<a id="onitemresearch"></a>
|
|
|
|
### `OnItemResearch`
|
|
|
|
- Called right before a player begins to research an item
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnItemResearch(ResearchTable table, Item targetItem, BasePlayer player)
|
|
{
|
|
Puts("OnItemResearch works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `item` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onitemresearched"></a>
|
|
|
|
### `OnItemResearched`
|
|
|
|
- Called right before a player finishes researching an item
|
|
|
|
**Returns:** Returning a float will affect if researching is successful or not
|
|
|
|
```csharp
|
|
float OnItemResearched(ResearchTable table, float chance)
|
|
{
|
|
Puts("OnItemResearched works!");
|
|
return 1;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `item` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onresearchcostdetermine"></a>
|
|
|
|
### `OnResearchCostDetermine`
|
|
|
|
- Called when an item is being scrapped at a research table or when a blueprint is being unlocked in a tech tree
|
|
|
|
**Returns:** Returning a numeric value (int) overrides the default value
|
|
|
|
```csharp
|
|
object OnResearchCostDetermine(Item item, ResearchTable researchTable)
|
|
{
|
|
Puts("OnResearchCostDetermine works!");
|
|
return null;
|
|
}
|
|
```
|
|
```csharp
|
|
object OnResearchCostDetermine(ItemDefinition itemDefinition)
|
|
{
|
|
Puts("OnResearchCostDetermine works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `research`, `item` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onitemsplit"></a>
|
|
|
|
### `OnItemSplit`
|
|
|
|
- Called right before an item is split into multiple stacks
|
|
|
|
**Returns:** Returning an Item overrides default behavior
|
|
|
|
```csharp
|
|
Item OnItemSplit(Item item, int amount)
|
|
{
|
|
Puts("OnItemSplit works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `item` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onitemupgrade"></a>
|
|
|
|
### `OnItemUpgrade`
|
|
|
|
- Called right before an item is upgraded
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnItemUpgrade(Item item, Item upgraded, BasePlayer player)
|
|
{
|
|
Puts("OnItemUpgrade works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `item` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onitemuse"></a>
|
|
|
|
### `OnItemUse`
|
|
|
|
- Called when an item is used
|
|
|
|
**Returns:** Returning an int overrides the amount consumed.
|
|
|
|
```csharp
|
|
int OnItemUse(Item item, int amountToUse)
|
|
{
|
|
Puts("OnItemUse works!");
|
|
return amountToUse;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `item` · uMod last updated 2022-07-27</sub>
|
|
|
|
<a id="onlosecondition"></a>
|
|
|
|
### `OnLoseCondition`
|
|
|
|
- Called right before the condition of the item is modified
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnLoseCondition(Item item, ref float amount)
|
|
{
|
|
Puts("OnLoseCondition works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `lose`, `item` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onmaxstackable"></a>
|
|
|
|
### `OnMaxStackable`
|
|
|
|
- Called when an items max stackable is calculated
|
|
|
|
**Returns:** Returning a numeric value (int) overrides the default value
|
|
|
|
```csharp
|
|
int OnMaxStackable(Item item)
|
|
{
|
|
Puts("OnMaxStackable works!");
|
|
return 1;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `item` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="ontraparm"></a>
|
|
|
|
### `OnTrapArm`
|
|
|
|
- Called when the player arms a bear trap
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnTrapArm(BearTrap trap, BasePlayer player)
|
|
{
|
|
Puts("OnTrapArm works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `trap`, `item` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="ontrapdisarm"></a>
|
|
|
|
### `OnTrapDisarm`
|
|
|
|
- Called when the player disarms a land mine
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnTrapDisarm(Landmine trap, BasePlayer player)
|
|
{
|
|
Puts("OnTrapDisarm works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `trap`, `item` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="ontrapsnapped"></a>
|
|
|
|
### `OnTrapSnapped`
|
|
|
|
- Called when a trap is triggered by a game object
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnTrapSnapped(BaseTrapTrigger trap, GameObject go)
|
|
{
|
|
Puts("OnTrapSnapped works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `trap`, `item` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="ontraptrigger"></a>
|
|
|
|
### `OnTrapTrigger`
|
|
|
|
- Called when a trap is triggered by a game object
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnTrapTrigger(BaseTrap trap, GameObject go)
|
|
{
|
|
Puts("OnTrapTrigger works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `trap`, `item` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onbonusitemdrop"></a>
|
|
|
|
### `OnBonusItemDrop`
|
|
|
|
- Called when a loot container is about to drop bonus scrap for a player who has a corresponding tea buff
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnBonusItemDrop(Item item, BasePlayer player)
|
|
{
|
|
Puts("OnBonusItemDrop works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `bonus`, `item` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onbonusitemdropped"></a>
|
|
|
|
### `OnBonusItemDropped`
|
|
|
|
- Called after a loot container has dropped bonus scrap for a player who has a corresponding tea buff
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnBonusItemDropped(Item item, BasePlayer player)
|
|
{
|
|
Puts("OnBonusItemDropped works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `bonus`, `item` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onitemrefill"></a>
|
|
|
|
### `OnItemRefill`
|
|
|
|
- Called right before an item such as a diving tank is repaired without using a repair bench
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnItemRefill(Item item, BasePlayer player)
|
|
{
|
|
Puts("OnItemRefill works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `item` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onitemlock"></a>
|
|
|
|
### `OnItemLock`
|
|
|
|
- Called right before an item is locked, such as in a modular car inventory
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnItemLock(Item item)
|
|
{
|
|
Puts("OnItemLock works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `item` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onitemunlock"></a>
|
|
|
|
### `OnItemUnlock`
|
|
|
|
- Called right before an item is unlocked, such as in a modular car inventory
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnItemUnlock(Item item)
|
|
{
|
|
Puts("OnItemUnlock works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `item` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onitemsubmit"></a>
|
|
|
|
### `OnItemSubmit`
|
|
|
|
- Called when a player submits an item into a mailbox or dropbox
|
|
|
|
**Returns:** Returning a non-null value cancels default behavior
|
|
|
|
```csharp
|
|
object OnItemSubmit(Item item, Mailbox mailbox, BasePlayer player)
|
|
{
|
|
Puts("OnItemSubmit works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `item` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onitemstacked"></a>
|
|
|
|
### `OnItemStacked`
|
|
|
|
- Called after an item has been stacked
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnItemStacked(Item destinationItem, Item sourceItem, ItemContainer destinationContainer)
|
|
{
|
|
Puts("OnItemStacked works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `item` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="oningredientscollect"></a>
|
|
|
|
### `OnIngredientsCollect`
|
|
|
|
- Called when ingredients are about to be collected for crafting an item
|
|
|
|
**Returns:** Returning a non-null value cancels default behavior
|
|
|
|
```csharp
|
|
bool? OnIngredientsCollect(ItemCrafter itemCrafter, ItemBlueprint blueprint, ItemCraftTask task, int amount, BasePlayer player)
|
|
{
|
|
Puts("OnIngredientsCollect works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `craft` · uMod last updated 2021-06-12</sub>
|
|
|
|
---
|
|
|
|
## Resource Hooks
|
|
|
|
*Gathering and node dispensers — ore, trees, corpses, collectibles, quarries.*
|
|
|
|
12 hooks: [`CanTakeCutting`](#cantakecutting), [`OnCollectiblePickup`](#oncollectiblepickup), [`OnGrowableGathered`](#ongrowablegathered), [`OnQuarryToggled`](#onquarrytoggled), [`OnRemoveDying`](#onremovedying), [`OnGrowableGather`](#ongrowablegather), [`OnDispenserBonus`](#ondispenserbonus), [`OnDispenserGather`](#ondispensergather), [`OnQuarryEnabled`](#onquarryenabled), [`OnTreeMarkerHit`](#ontreemarkerhit), [`OnQuarryGather`](#onquarrygather), [`OnSurveyGather`](#onsurveygather)
|
|
|
|
<a id="cantakecutting"></a>
|
|
|
|
### `CanTakeCutting`
|
|
|
|
- Called when a player is trying to take a cutting (clone) of a GrowableEntity
|
|
|
|
**Returns:** Returning a non-null value cancels default behavior
|
|
|
|
```csharp
|
|
object CanTakeCutting(BasePlayer player, GrowableEntity entity)
|
|
{
|
|
Puts("CanTakeCutting works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `take`, `resource` · uMod last updated 2022-01-24</sub>
|
|
|
|
<a id="oncollectiblepickup"></a>
|
|
|
|
### `OnCollectiblePickup`
|
|
|
|
- Called when the player collects an item
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnCollectiblePickup(CollectibleEntity collectible, BasePlayer player)
|
|
{
|
|
Puts("OnCollectiblePickup works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `collectible`, `resource` · uMod last updated 2022-08-14</sub>
|
|
|
|
<a id="ongrowablegathered"></a>
|
|
|
|
### `OnGrowableGathered`
|
|
|
|
- Called before the player receives an item from gathering a growable entity
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnGrowableGathered(GrowableEntity plant, Item item, BasePlayer player)
|
|
{
|
|
Puts($"{player.displayName} has gathered {item.info.shortname} x {item.amount}.");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `growable`, `resource` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onquarrytoggled"></a>
|
|
|
|
### `OnQuarryToggled`
|
|
|
|
- Called when a quarry has just been toggled
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnQuarryToggled(MiningQuarry quarry, BasePlayer player)
|
|
{
|
|
Puts($"{player.displayName} has toggled a quarry");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `quarry`, `resource` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onremovedying"></a>
|
|
|
|
### `OnRemoveDying`
|
|
|
|
- Called when a player is trying to harvest a dying growable entity
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnRemoveDying(GrowableEntity plant, BasePlayer player)
|
|
{
|
|
Puts("OnRemoveDying works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `remove`, `resource` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="ongrowablegather"></a>
|
|
|
|
### `OnGrowableGather`
|
|
|
|
- Called when the player gathers a growable entity
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnGrowableGather(GrowableEntity plant, BasePlayer player)
|
|
{
|
|
Puts("OnGrowableGather works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `growable`, `resource` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="ondispenserbonus"></a>
|
|
|
|
### `OnDispenserBonus`
|
|
|
|
- Called before the player is given a bonus item for gathering
|
|
|
|
**Returns:** Returning an Item replaces the existing Item
|
|
|
|
```csharp
|
|
void OnDispenserBonus(ResourceDispenser dispenser, BasePlayer player, Item item)
|
|
{
|
|
Puts("OnDispenserBonus works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `dispenser`, `resource` · uMod last updated 2021-10-19</sub>
|
|
|
|
<a id="ondispensergather"></a>
|
|
|
|
### `OnDispenserGather`
|
|
|
|
- Called before the player is given items from a resource
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnDispenserGather(ResourceDispenser dispenser, BasePlayer player, Item item)
|
|
{
|
|
Puts("OnDispenserGather works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `dispenser`, `resource` · uMod last updated 2023-05-04</sub>
|
|
|
|
<a id="onquarryenabled"></a>
|
|
|
|
### `OnQuarryEnabled`
|
|
|
|
- Called when a mining quarry is turned on/enabled
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnQuarryEnabled(MiningQuarry quarry)
|
|
{
|
|
Puts("OnQuarryEnabled works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `quarry`, `resource` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="ontreemarkerhit"></a>
|
|
|
|
### `OnTreeMarkerHit`
|
|
|
|
- Called when a player hits a tree with a tool (rock, hatchet, etc.)
|
|
|
|
**Returns:** Returning true or false overrides default behaviour
|
|
|
|
```csharp
|
|
bool? OnTreeMarkerHit(TreeEntity tree, HitInfo info)
|
|
{
|
|
Puts("OnTreeMarkerHit works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `resource`, `tree` · uMod last updated 2022-04-11</sub>
|
|
|
|
<a id="onquarrygather"></a>
|
|
|
|
### `OnQuarryGather`
|
|
|
|
- Called before items are gathered from a quarry
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnQuarryGather(MiningQuarry quarry, Item item)
|
|
{
|
|
Puts("OnQuarryGather works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `quarry`, `resource` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onsurveygather"></a>
|
|
|
|
### `OnSurveyGather`
|
|
|
|
- Called before items are gathered from a survey charge
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnSurveyGather(SurveyCharge survey, Item item)
|
|
{
|
|
Puts("OnSurveyGather works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `survey`, `resource` · uMod last updated 2021-05-08</sub>
|
|
|
|
---
|
|
|
|
## Structure Hooks
|
|
|
|
*Building blocks: placement, upgrade, demolish, rotate, stability, doors and locks.*
|
|
|
|
15 hooks: [`OnCodeEntered`](#oncodeentered), [`OnCupboardAuthorize`](#oncupboardauthorize), [`OnCupboardClearList`](#oncupboardclearlist), [`OnCupboardDeauthorize`](#oncupboarddeauthorize), [`OnDoorClosed`](#ondoorclosed), [`OnDoorOpened`](#ondooropened), [`OnDoorKnocked`](#ondoorknocked), [`OnEntityBuilt`](#onentitybuilt), [`OnHammerHit`](#onhammerhit), [`OnStructureDemolish`](#onstructuredemolish), [`OnStructureRepair`](#onstructurerepair), [`OnStructureRotate`](#onstructurerotate), [`OnStructureUpgrade`](#onstructureupgrade), [`OnConstructionPlace`](#onconstructionplace), [`OnBuildingSplit`](#onbuildingsplit)
|
|
|
|
<a id="oncodeentered"></a>
|
|
|
|
### `OnCodeEntered`
|
|
|
|
- Called when the player has entered a code in a codelock
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnCodeEntered(CodeLock codeLock, BasePlayer player, string code)
|
|
{
|
|
Puts("OnCodeEntered works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `code`, `structure` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="oncupboardauthorize"></a>
|
|
|
|
### `OnCupboardAuthorize`
|
|
|
|
- Called when a cupboard attempts to authorize a player
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnCupboardAuthorize(BuildingPrivlidge privilege, BasePlayer player)
|
|
{
|
|
Puts("OnCupboardAuthorize works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `cupboard`, `structure` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="oncupboardclearlist"></a>
|
|
|
|
### `OnCupboardClearList`
|
|
|
|
- Called when an attempt is made to clear a cupboard authorized list
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnCupboardClearList(BuildingPrivlidge privilege, BasePlayer player)
|
|
{
|
|
Puts("OnCupboardClearList works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `cupboard`, `structure` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="oncupboarddeauthorize"></a>
|
|
|
|
### `OnCupboardDeauthorize`
|
|
|
|
- Called when a cupboard attempts to deauthorize a player
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnCupboardDeauthorize(BuildingPrivlidge privilege, BasePlayer player)
|
|
{
|
|
Puts("OnCupboardDeauthorize works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `cupboard`, `structure` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="ondoorclosed"></a>
|
|
|
|
### `OnDoorClosed`
|
|
|
|
- Called when the player closed a door
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnDoorClosed(Door door, BasePlayer player)
|
|
{
|
|
Puts("OnDoorClosed works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `door`, `structure` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="ondooropened"></a>
|
|
|
|
### `OnDoorOpened`
|
|
|
|
- Called when the player opened a door
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnDoorOpened(Door door, BasePlayer player)
|
|
{
|
|
Puts("OnDoorOpened works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `door`, `structure` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="ondoorknocked"></a>
|
|
|
|
### `OnDoorKnocked`
|
|
|
|
- Called when the player knocks on a door
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnDoorKnocked(Door door, BasePlayer player)
|
|
{
|
|
Puts("OnDoorKnocked works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `door`, `structure` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onentitybuilt"></a>
|
|
|
|
### `OnEntityBuilt`
|
|
|
|
- Called when any structure is built (walls, ceilings, stairs, etc.)
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnEntityBuilt(Planner plan, GameObject go)
|
|
{
|
|
Puts("OnEntityBuilt works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `entity`, `structure` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onhammerhit"></a>
|
|
|
|
### `OnHammerHit`
|
|
|
|
- Called when the player has hit something with a hammer
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnHammerHit(BasePlayer player, HitInfo info)
|
|
{
|
|
Puts("OnHammerHit works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `hammer`, `structure` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onstructuredemolish"></a>
|
|
|
|
### `OnStructureDemolish`
|
|
|
|
- Called when the player selects Demolish or DemolishImmediate from the BuildingBlock or BaseCombatEntity menu
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnStructureDemolish(BaseCombatEntity entity, BasePlayer player, bool immediate)
|
|
{
|
|
Puts("OnStructureDemolish works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `structure` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onstructurerepair"></a>
|
|
|
|
### `OnStructureRepair`
|
|
|
|
- Called when the player repairs a BuildingBlock or BaseCombatEntity
|
|
|
|
**Returns:** Returning a non-null value cancels repair
|
|
|
|
```csharp
|
|
object OnStructureRepair(BaseCombatEntity entity, BasePlayer player)
|
|
{
|
|
Puts("OnStructureRepair works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `structure` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onstructurerotate"></a>
|
|
|
|
### `OnStructureRotate`
|
|
|
|
- Called when the player rotates a BuildingBlock or BaseCombatEntity
|
|
|
|
**Returns:** Returning a non-null value cancels rotate
|
|
|
|
```csharp
|
|
object OnStructureRotate(BaseCombatEntity entity, BasePlayer player)
|
|
{
|
|
Puts("OnStructureRotate works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `structure` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onstructureupgrade"></a>
|
|
|
|
### `OnStructureUpgrade`
|
|
|
|
- Called when the player upgrades the grade of a BuildingBlock or BaseCombatEntity
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnStructureUpgrade(BaseCombatEntity entity, BasePlayer player, BuildingGrade.Enum grade)
|
|
{
|
|
Puts("OnStructureUpgrade works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `structure` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onconstructionplace"></a>
|
|
|
|
### `OnConstructionPlace`
|
|
|
|
- Called when a player tries to place a building block
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnConstructionPlace(BaseEntity entity, Construction component, Construction.Target constructionTarget, BasePlayer player)
|
|
{
|
|
Puts("OnConstructionPlace works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `construction`, `structure` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onbuildingsplit"></a>
|
|
|
|
### `OnBuildingSplit`
|
|
|
|
- Called when a building is split into two
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnBuildingSplit(BuildingManager.Building building, uint newBuildingId)
|
|
{
|
|
Puts("OnBuildingSplit works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `building`, `structure` · uMod last updated 2022-09-11</sub>
|
|
|
|
---
|
|
|
|
## Terrain Hooks
|
|
|
|
*Terrain/map topology.*
|
|
|
|
1 hook: [`OnTerrainInitialized`](#onterraininitialized)
|
|
|
|
<a id="onterraininitialized"></a>
|
|
|
|
### `OnTerrainInitialized`
|
|
|
|
- Called after the terrain generation process has completed
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnTerrainInitialized()
|
|
{
|
|
Puts("OnTerrainInitialized works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `terrain` · uMod last updated 2021-05-08</sub>
|
|
|
|
---
|
|
|
|
## Vending Hooks
|
|
|
|
*Vending machines and the shop/trade flow, including the marketplace and drone deliveries.*
|
|
|
|
16 hooks: [`CanAdministerVending`](#canadministervending), [`OnGiveSoldItem`](#ongivesolditem), [`OnTakeCurrencyItem`](#ontakecurrencyitem), [`OnVendingShopRename`](#onvendingshoprename), [`CanUseVending`](#canusevending), [`CanVendingAcceptItem`](#canvendingacceptitem), [`OnAddVendingOffer`](#onaddvendingoffer), [`OnBuyVendingItem`](#onbuyvendingitem), [`OnDeleteVendingOffer`](#ondeletevendingoffer), [`OnOpenVendingAdmin`](#onopenvendingadmin), [`OnVendingShopOpened`](#onvendingshopopened), [`OnRefreshVendingStock`](#onrefreshvendingstock), [`OnRotateVendingMachine`](#onrotatevendingmachine), [`OnToggleVendingBroadcast`](#ontogglevendingbroadcast), [`OnVendingTransaction`](#onvendingtransaction), [`OnNpcGiveSoldItem`](#onnpcgivesolditem)
|
|
|
|
<a id="canadministervending"></a>
|
|
|
|
### `CanAdministerVending`
|
|
|
|
- Called when a player attempts to administer a vending machine
|
|
|
|
**Returns:** Returning true or false overrides default behavior
|
|
|
|
```csharp
|
|
bool CanAdministerVending(BasePlayer player, VendingMachine machine)
|
|
{
|
|
Puts("CanAdministerVending works!");
|
|
return true;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `administer`, `vending` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="ongivesolditem"></a>
|
|
|
|
### `OnGiveSoldItem`
|
|
|
|
- Called before a sold item is given
|
|
|
|
**Returns:** Returning a non-null value cancels default behavior
|
|
|
|
```csharp
|
|
object OnGiveSoldItem(NPCVendingMachine vending, Item soldItem, BasePlayer buyer)
|
|
{
|
|
Puts("OnGiveSoldItem works!");
|
|
return null;
|
|
}
|
|
```
|
|
```csharp
|
|
object OnGiveSoldItem(VendingMachine vending, Item soldItem, BasePlayer buyer)
|
|
{
|
|
Puts("OnGiveSoldItem works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `give`, `vending` · uMod last updated 2022-01-17</sub>
|
|
|
|
<a id="ontakecurrencyitem"></a>
|
|
|
|
### `OnTakeCurrencyItem`
|
|
|
|
- Called before currency item is taken
|
|
|
|
**Returns:** Returning a non-null value cancels default behavior
|
|
|
|
```csharp
|
|
object OnTakeCurrencyItem(VendingMachine vending, Item item)
|
|
{
|
|
Puts("OnTakeCurrencyItem works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `take`, `vending` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onvendingshoprename"></a>
|
|
|
|
### `OnVendingShopRename`
|
|
|
|
- Called when a player tries to rename vending shop
|
|
|
|
**Returns:** Returning a non-null value cancels default behavior
|
|
|
|
```csharp
|
|
object OnVendingShopRename(VendingMachine vending, string newName, BasePlayer player)
|
|
{
|
|
Puts("OnVendingShopRename works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `vending` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="canusevending"></a>
|
|
|
|
### `CanUseVending`
|
|
|
|
- Called when a player attempts to use a vending machine
|
|
|
|
**Returns:** Returning true or false overrides default behavior
|
|
|
|
```csharp
|
|
bool CanUseVending(BasePlayer player, VendingMachine machine)
|
|
{
|
|
Puts("CanUseVending works!");
|
|
return true;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `vending` · uMod last updated 2022-09-11</sub>
|
|
|
|
<a id="canvendingacceptitem"></a>
|
|
|
|
### `CanVendingAcceptItem`
|
|
|
|
- Called when a player attempts to administer a vending machine
|
|
|
|
**Returns:** Returning true or false overrides default behavior
|
|
|
|
```csharp
|
|
bool CanVendingAcceptItem(VendingMachine vending, Item item, int targetPos)
|
|
{
|
|
Puts("CanVendingAcceptItem works!");
|
|
return true;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `vending` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onaddvendingoffer"></a>
|
|
|
|
### `OnAddVendingOffer`
|
|
|
|
- Called when a sell order/offer is added to a vending machine
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnAddVendingOffer(VendingMachine machine, ProtoBuf.VendingMachine.SellOrder sellOrder)
|
|
{
|
|
Puts("OnAddVendingOffer works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `vending` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onbuyvendingitem"></a>
|
|
|
|
### `OnBuyVendingItem`
|
|
|
|
- Called when a player buys an item from a vending machine
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnBuyVendingItem(VendingMachine machine, BasePlayer player, int sellOrderId, int numberOfTransactions)
|
|
{
|
|
Puts("OnBuyVendingItem works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `vending` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="ondeletevendingoffer"></a>
|
|
|
|
### `OnDeleteVendingOffer`
|
|
|
|
- Called when a sell order/offer is deleted from a vending machine
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnDeleteVendingOffer(VendingMachine machine, int offerId)
|
|
{
|
|
Puts("OnDeleteVendingOffer works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `delete`, `vending` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onopenvendingadmin"></a>
|
|
|
|
### `OnOpenVendingAdmin`
|
|
|
|
- Called when a player opens the admin ui for a vending machine
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnOpenVendingAdmin(VendingMachine machine, BasePlayer player)
|
|
{
|
|
Puts("OnOpenVendingAdmin works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `open`, `vending` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onvendingshopopened"></a>
|
|
|
|
### `OnVendingShopOpened`
|
|
|
|
- Called when a player opens the customer ui for a vending machine
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnVendingShopOpened(VendingMachine machine, BasePlayer player)
|
|
{
|
|
Puts("OnVendingShopOpened works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `open`, `vending` · uMod last updated 2022-09-12</sub>
|
|
|
|
<a id="onrefreshvendingstock"></a>
|
|
|
|
### `OnRefreshVendingStock`
|
|
|
|
- Called when the stock on a vending machine is updated
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnRefreshVendingStock(VendingMachine machine, Item item)
|
|
{
|
|
Puts("OnRefreshVendingStock works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `refresh`, `vending` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onrotatevendingmachine"></a>
|
|
|
|
### `OnRotateVendingMachine`
|
|
|
|
- Called when a player attempts to rotate a vending machine
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnRotateVendingMachine(VendingMachine machine, BasePlayer player)
|
|
{
|
|
Puts("OnRotateVendingMachine works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `rotate`, `vending` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="ontogglevendingbroadcast"></a>
|
|
|
|
### `OnToggleVendingBroadcast`
|
|
|
|
- Called when a player toggles the broadcasting of the vending machine
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnToggleVendingBroadcast(VendingMachine machine, BasePlayer player)
|
|
{
|
|
Puts("OnToggleVendingBroadcast works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `toggle`, `vending` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onvendingtransaction"></a>
|
|
|
|
### `OnVendingTransaction`
|
|
|
|
- Called when a player attempts to buy an item from a vending machine
|
|
|
|
**Returns:** Returning true or false overrides default behavior
|
|
|
|
```csharp
|
|
bool OnVendingTransaction(VendingMachine machine, BasePlayer buyer, int sellOrderId, int numberOfTransactions)
|
|
{
|
|
Puts("OnVendingTransaction works!");
|
|
return true;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `vending` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onnpcgivesolditem"></a>
|
|
|
|
### `OnNpcGiveSoldItem`
|
|
|
|
- Called before a non-player controlled vending machine (at outpost etc.) gives the player the item they purchased.
|
|
|
|
**Returns:** Returning a non-null value overrides default behaviour.
|
|
|
|
```csharp
|
|
object OnNpcGiveSoldItem(NPCVendingMachine machine, Item soldItem, BasePlayer buyer)
|
|
{
|
|
Puts("OnNpcGiveSoldItem works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `vending` · uMod last updated 2021-05-10</sub>
|
|
|
|
---
|
|
|
|
## Weapon Hooks
|
|
|
|
*Firing, reloading, throwing, melee swings, projectile and trap behaviour.*
|
|
|
|
16 hooks: [`CanCreateWorldProjectile`](#cancreateworldprojectile), [`CanExplosiveStick`](#canexplosivestick), [`OnAmmoUnload`](#onammounload), [`OnExplosiveDud`](#onexplosivedud), [`OnExplosiveFuseSet`](#onexplosivefuseset), [`OnProjectileRicochet`](#onprojectilericochet), [`OnWorldProjectileCreate`](#onworldprojectilecreate), [`OnExplosiveDropped`](#onexplosivedropped), [`OnExplosiveThrown`](#onexplosivethrown), [`OnFlameThrowerBurn`](#onflamethrowerburn), [`OnMeleeThrown`](#onmeleethrown), [`OnMagazineReload`](#onmagazinereload), [`OnWeaponReload`](#onweaponreload), [`OnRocketLaunched`](#onrocketlaunched), [`OnAmmoSwitch`](#onammoswitch), [`OnWeaponFired`](#onweaponfired)
|
|
|
|
<a id="cancreateworldprojectile"></a>
|
|
|
|
### `CanCreateWorldProjectile`
|
|
|
|
- Called when the item creates a projectile in the world
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object CanCreateWorldProjectile(HitInfo info, ItemDefinition itemDef)
|
|
{
|
|
Puts("CanCreateWorldProjectile works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `create`, `weapon` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="canexplosivestick"></a>
|
|
|
|
### `CanExplosiveStick`
|
|
|
|
- Called when a Timed Explosive is attempting to stick to another entity
|
|
|
|
**Returns:** Returning a non-null value overwrites the default behavior
|
|
|
|
```csharp
|
|
object CanExplosiveStick(TimedExplosive explosive, BaseEntity entity)
|
|
{
|
|
Puts("CanExplosiveStick works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `explosive`, `weapon` · uMod last updated 2023-07-12</sub>
|
|
|
|
<a id="onammounload"></a>
|
|
|
|
### `OnAmmoUnload`
|
|
|
|
- Called when a player is trying to unload ammo
|
|
|
|
**Returns:** Returning a non-null value cancels default behavior
|
|
|
|
```csharp
|
|
object OnAmmoUnload(BaseProjectile projectile, Item item, BasePlayer player)
|
|
{
|
|
Puts("OnAmmoUnload works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `ammo`, `weapon` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onexplosivedud"></a>
|
|
|
|
### `OnExplosiveDud`
|
|
|
|
- Called when explosive tries to become dud
|
|
|
|
**Returns:** Returning a non-null value cancels default behavior
|
|
|
|
```csharp
|
|
object OnExplosiveDud(DudTimedExplosive explosive)
|
|
{
|
|
Puts("OnExplosiveDud works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `explosive`, `weapon` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onexplosivefuseset"></a>
|
|
|
|
### `OnExplosiveFuseSet`
|
|
|
|
- Called when a fuse of an explosive is set
|
|
|
|
**Returns:** Returning a non-null value overwrites fuse length
|
|
|
|
```csharp
|
|
object OnExplosiveFuseSet(TimedExplosive explosive, float fuseLength)
|
|
{
|
|
Puts("OnExplosiveFuseSet works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `explosive`, `weapon` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onprojectilericochet"></a>
|
|
|
|
### `OnProjectileRicochet`
|
|
|
|
- Called when a player's weapon projectile ricochets
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnProjectileRicochet(BasePlayer player, PlayerProjectileRicochet ricochet)
|
|
{
|
|
Puts("OnProjectileRicochet works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `projectile`, `weapon` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onworldprojectilecreate"></a>
|
|
|
|
### `OnWorldProjectileCreate`
|
|
|
|
- Called when a projectile is created
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnWorldProjectileCreate(HitInfo hitInfo, Item item)
|
|
{
|
|
Puts("OnWorldProjectileCreate works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `create`, `weapon` · uMod last updated 2023-04-16</sub>
|
|
|
|
<a id="onexplosivedropped"></a>
|
|
|
|
### `OnExplosiveDropped`
|
|
|
|
- Called when the player drops an explosive item (C4, grenade, ...)
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnExplosiveDropped(BasePlayer player, BaseEntity entity, ThrownWeapon item)
|
|
{
|
|
Puts("OnExplosiveDropped works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `explosive`, `weapon` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onexplosivethrown"></a>
|
|
|
|
### `OnExplosiveThrown`
|
|
|
|
- Called when the player throws an explosive item (C4, grenade, ...)
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnExplosiveThrown(BasePlayer player, BaseEntity entity, ThrownWeapon item)
|
|
{
|
|
Puts("OnExplosiveThrown works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `explosive`, `weapon` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onflamethrowerburn"></a>
|
|
|
|
### `OnFlameThrowerBurn`
|
|
|
|
- Called when the burn from a flame thrower spreads
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnFlameThrowerBurn(FlameThrower thrower, BaseEntity flame)
|
|
{
|
|
Puts("OnFlameThrowerBurn works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `flame`, `weapon` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onmeleethrown"></a>
|
|
|
|
### `OnMeleeThrown`
|
|
|
|
- Called when the player throws a melee item (axe, rock, ...)
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnMeleeThrown(BasePlayer player, Item item)
|
|
{
|
|
Puts("OnMeleeThrown works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `melee`, `weapon` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onmagazinereload"></a>
|
|
|
|
### `OnMagazineReload`
|
|
|
|
- Called when the player reloads a magazine
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnMagazineReload(BaseProjectile weapon, IAmmoContainer desiredAmount, BasePlayer player)
|
|
{
|
|
Puts("OnMagazineReload works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `reload`, `weapon` · uMod last updated 2023-09-24</sub>
|
|
|
|
<a id="onweaponreload"></a>
|
|
|
|
### `OnWeaponReload`
|
|
|
|
- Called when the player reloads a weapon
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnWeaponReload(BaseProjectile weapon, BasePlayer player)
|
|
{
|
|
Puts("OnWeaponReload works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `reload`, `weapon` · uMod last updated 2022-09-12</sub>
|
|
|
|
<a id="onrocketlaunched"></a>
|
|
|
|
### `OnRocketLaunched`
|
|
|
|
- Called when the player launches a rocket
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnRocketLaunched(BasePlayer player, BaseEntity entity)
|
|
{
|
|
Puts("OnRocketLaunched works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `rocket`, `weapon` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onammoswitch"></a>
|
|
|
|
### `OnAmmoSwitch`
|
|
|
|
- Called when the player starts to switch the ammo in a weapon
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnAmmoSwitch(BaseProjectile weapon, BasePlayer player)
|
|
{
|
|
Puts("OnAmmoSwitch works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `switch`, `weapon` · uMod last updated 2023-10-11</sub>
|
|
|
|
<a id="onweaponfired"></a>
|
|
|
|
### `OnWeaponFired`
|
|
|
|
- Called when the player fires a weapon
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnWeaponFired(BaseProjectile projectile, BasePlayer player, ItemModProjectile mod, ProtoBuf.ProjectileShoot projectiles)
|
|
{
|
|
Puts("OnWeaponFired works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `weapon` · uMod last updated 2021-05-08</sub>
|
|
|
|
---
|
|
|
|
## Vehicle Hooks
|
|
|
|
*Boats, cars, horses, helicopters, trains, submarines — fuel, engines, mounting, pushing.*
|
|
|
|
22 hooks: [`CanUseHelicopter`](#canusehelicopter), [`OnBoatPathGenerate`](#onboatpathgenerate), [`OnVehicleModuleMove`](#onvehiclemodulemove), [`OnEngineStart`](#onenginestart), [`OnEngineStarted`](#onenginestarted), [`OnEngineStop`](#onenginestop), [`OnEngineStopped`](#onenginestopped), [`OnEngineStatsRefresh`](#onenginestatsrefresh), [`OnEngineStatsRefreshed`](#onenginestatsrefreshed), [`OnVehicleModuleSelect`](#onvehiclemoduleselect), [`OnVehicleModuleSelected`](#onvehiclemoduleselected), [`OnVehicleModuleDeselected`](#onvehiclemoduledeselected), [`OnHotAirBalloonToggle`](#onhotairballoontoggle), [`OnHotAirBalloonToggled`](#onhotairballoontoggled), [`OnVehicleModulesAssign`](#onvehiclemodulesassign), [`OnVehicleModulesAssigned`](#onvehiclemodulesassigned), [`OnVehiclePush`](#onvehiclepush), [`CanCheckFuel`](#cancheckfuel), [`CanUseFuel`](#canusefuel), [`OnFuelCheck`](#onfuelcheck), [`OnFuelAmountCheck`](#onfuelamountcheck), [`OnFuelItemCheck`](#onfuelitemcheck)
|
|
|
|
<a id="canusehelicopter"></a>
|
|
|
|
### `CanUseHelicopter`
|
|
|
|
- Useful for denying to mount a CH47 helicopter
|
|
|
|
**Returns:** Returning a non-null value cancels default behavior
|
|
|
|
```csharp
|
|
object CanUseHelicopter(BasePlayer player, CH47HelicopterAIController helicopter)
|
|
{
|
|
Puts("CanUseHelicopter works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `vehicle` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onboatpathgenerate"></a>
|
|
|
|
### `OnBoatPathGenerate`
|
|
|
|
- Called when generating ocean patrol path for CargoShip
|
|
|
|
**Returns:** Returning a List<Vector3> overrides default behavior
|
|
|
|
```csharp
|
|
List<Vector3> OnBoatPathGenerate()
|
|
{
|
|
Puts("OnBoatPathGenerate works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `boat`, `vehicle` · uMod last updated 2021-08-14</sub>
|
|
|
|
<a id="onvehiclemodulemove"></a>
|
|
|
|
### `OnVehicleModuleMove`
|
|
|
|
- Called when a player tries to move a vehicle module item that is currently on a vehicle
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnVehicleModuleMove(BaseVehicleModule module, BaseModularVehicle vehicle, BasePlayer player)
|
|
{
|
|
Puts("OnVehicleModuleMove works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `vehicle` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onenginestart"></a>
|
|
|
|
### `OnEngineStart`
|
|
|
|
- Called when a player tries to start a vehicle engine
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnEngineStart(BaseVehicle vehicle, BasePlayer driver)
|
|
{
|
|
Puts("OnEngineStart works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `engine`, `vehicle` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onenginestarted"></a>
|
|
|
|
### `OnEngineStarted`
|
|
|
|
- Called right after a vehicle engine has started
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnEngineStarted(BaseVehicle vehicle, BasePlayer driver)
|
|
{
|
|
Puts("OnEngineStarted works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `engine`, `vehicle` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onenginestop"></a>
|
|
|
|
### `OnEngineStop`
|
|
|
|
- Called when a vehicle engine is about to stop
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnEngineStop(BaseVehicle vehicle)
|
|
{
|
|
Puts("OnEngineStop works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `engine`, `vehicle` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onenginestopped"></a>
|
|
|
|
### `OnEngineStopped`
|
|
|
|
- Called right after a vehicle engine has stopped
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnEngineStopped(BaseVehicle vehicle)
|
|
{
|
|
Puts("OnEngineStopped works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `engine`, `vehicle` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onenginestatsrefresh"></a>
|
|
|
|
### `OnEngineStatsRefresh`
|
|
|
|
- Called right before the stats of a modular car engine are refreshed
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnEngineStatsRefresh(VehicleModuleEngine engineModule, EngineStorage engineStorage)
|
|
{
|
|
Puts("OnEngineStatsRefresh works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `engine`, `vehicle` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onenginestatsrefreshed"></a>
|
|
|
|
### `OnEngineStatsRefreshed`
|
|
|
|
- Called right after the stats of a modular car engine are refreshed
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnEngineStatsRefreshed(VehicleModuleEngine engineModule, EngineStorage engineStorage)
|
|
{
|
|
Puts("OnEngineStatsRefreshed works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `engine`, `vehicle` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onvehiclemoduleselect"></a>
|
|
|
|
### `OnVehicleModuleSelect`
|
|
|
|
- Called right after a player has selected a vehicle module item in a car inventory, but before they are shown the corresponding storage container
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnVehicleModuleSelect(Item moduleItem, ModularCarGarage carLift, BasePlayer player)
|
|
{
|
|
Puts("OnVehicleModuleSelect works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `vehicle` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onvehiclemoduleselected"></a>
|
|
|
|
### `OnVehicleModuleSelected`
|
|
|
|
- Called right after a player has selected a vehicle module item in a car's inventory, and after they have been shown the corresponding storage container if applicable
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnVehicleModuleSelected(Item moduleItem, ModularCarGarage carLift, BasePlayer player)
|
|
{
|
|
Puts("OnVehicleModuleSelected works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `vehicle` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onvehiclemoduledeselected"></a>
|
|
|
|
### `OnVehicleModuleDeselected`
|
|
|
|
- Called right after a player deselects a vehicle module item in a car's inventory
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnVehicleModuleDeselected(ModularCarGarage carLift, BasePlayer player)
|
|
{
|
|
Puts("OnVehicleModuleDeselected works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `vehicle` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onhotairballoontoggle"></a>
|
|
|
|
### `OnHotAirBalloonToggle`
|
|
|
|
- Called when a player tries to toggle a hot air balloon on or off
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnHotAirBalloonToggle(HotAirBalloon balloon, BasePlayer player)
|
|
{
|
|
Puts("OnHotAirBalloonToggle works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `vehicle` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onhotairballoontoggled"></a>
|
|
|
|
### `OnHotAirBalloonToggled`
|
|
|
|
- Called right after a player has toggled a hot air balloon on or off
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnHotAirBalloonToggled(HotAirBalloon balloon, BasePlayer player)
|
|
{
|
|
Puts("OnHotAirBalloonToggled works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `vehicle` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onvehiclemodulesassign"></a>
|
|
|
|
### `OnVehicleModulesAssign`
|
|
|
|
- Called right after a modular car has spawned, but before module items are added to its inventory from a preset
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnVehicleModulesAssign(ModularCar car, ItemModVehicleModule[] modulePreset)
|
|
{
|
|
Puts("OnVehicleModulesAssign works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `vehicle` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onvehiclemodulesassigned"></a>
|
|
|
|
### `OnVehicleModulesAssigned`
|
|
|
|
- Called right after a car has spawned and its module inventory has been filled with module items from a preset
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnVehicleModulesAssigned(ModularCar car, ItemModVehicleModule[] modulePreset)
|
|
{
|
|
Puts("OnVehicleModulesAssigned works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `vehicle` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onvehiclepush"></a>
|
|
|
|
### `OnVehiclePush`
|
|
|
|
- Called when a player tries to push a vehicle
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnVehiclePush(BaseVehicle vehicle, BasePlayer player)
|
|
{
|
|
Puts("OnVehiclePush works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `vehicle` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="cancheckfuel"></a>
|
|
|
|
### `CanCheckFuel`
|
|
|
|
- Called when a player tries to loot a vehicle's fuel container
|
|
|
|
**Returns:** Returning true or false overrides default behavior
|
|
|
|
```csharp
|
|
object CanCheckFuel(EntityFuelSystem fuelSystem, StorageContainer fuelContainer, BasePlayer player)
|
|
{
|
|
Puts("CanCheckFuel works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `check`, `vehicle` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="canusefuel"></a>
|
|
|
|
### `CanUseFuel`
|
|
|
|
- Called before a vehicle fuel system consumes fuel
|
|
|
|
**Returns:** Returning true or false overrides default behavior
|
|
|
|
```csharp
|
|
object CanUseFuel(EntityFuelSystem fuelSystem, StorageContainer fuelContainer, float currentSeconds, float fuelPerSecond)
|
|
{
|
|
Puts("CanUseFuel works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `vehicle` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onfuelcheck"></a>
|
|
|
|
### `OnFuelCheck`
|
|
|
|
- Called when determining whether a vehicle has sufficient fuel
|
|
|
|
**Returns:** Returning true or false overrides default behavior
|
|
|
|
```csharp
|
|
object OnFuelCheck(EntityFuelSystem fuelSystem)
|
|
{
|
|
Puts("OnFuelCheck works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `fuel`, `vehicle` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onfuelamountcheck"></a>
|
|
|
|
### `OnFuelAmountCheck`
|
|
|
|
- Called when the amount of fuel in a vehicle is being determined
|
|
|
|
**Returns:** Returning a numeric value (int) overrides the default value
|
|
|
|
```csharp
|
|
object OnFuelAmountCheck(EntityFuelSystem fuelSystem, Item fuelItem)
|
|
{
|
|
Puts("OnFuelAmountCheck works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `fuel`, `vehicle` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onfuelitemcheck"></a>
|
|
|
|
### `OnFuelItemCheck`
|
|
|
|
- Called when determining which item should be used to fuel a vehicle
|
|
|
|
**Returns:** Returning an Item overrides default behavior
|
|
|
|
```csharp
|
|
object OnFuelItemCheck(EntityFuelSystem fuelSystem, StorageContainer fuelContainer)
|
|
{
|
|
Puts("OnFuelItemCheck works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `fuel`, `vehicle` · uMod last updated 2021-05-08</sub>
|
|
|
|
---
|
|
|
|
## Team Hooks
|
|
|
|
*Rust's built-in team/party system: create, invite, join, leave, promote, disband.*
|
|
|
|
12 hooks: [`OnTeamAcceptInvite`](#onteamacceptinvite), [`OnTeamCreate`](#onteamcreate), [`OnTeamCreated`](#onteamcreated), [`OnTeamDisband`](#onteamdisband), [`OnTeamDisbanded`](#onteamdisbanded), [`OnTeamInvite`](#onteaminvite), [`OnTeamKick`](#onteamkick), [`OnTeamLeave`](#onteamleave), [`OnTeamPromote`](#onteampromote), [`OnTeamRejectInvite`](#onteamrejectinvite), [`OnTeamUpdate`](#onteamupdate), [`OnTeamUpdated`](#onteamupdated)
|
|
|
|
<a id="onteamacceptinvite"></a>
|
|
|
|
### `OnTeamAcceptInvite`
|
|
|
|
- Useful for canceling team invitation acceptation
|
|
|
|
**Returns:** Returning a non-null value cancels default behavior
|
|
|
|
```csharp
|
|
object OnTeamAcceptInvite(RelationshipManager.PlayerTeam team, BasePlayer player)
|
|
{
|
|
Puts("OnTeamAcceptInvite works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `team` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onteamcreate"></a>
|
|
|
|
### `OnTeamCreate`
|
|
|
|
- Useful for canceling team creation
|
|
|
|
**Returns:** Returning a non-null value cancels default behavior
|
|
|
|
```csharp
|
|
object OnTeamCreate(BasePlayer player)
|
|
{
|
|
Puts("OnTeamCreate works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `team` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onteamcreated"></a>
|
|
|
|
### `OnTeamCreated`
|
|
|
|
- Called after a team was created
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnTeamCreated(BasePlayer player, RelationshipManager.PlayerTeam team)
|
|
{
|
|
Puts("OnTeamCreated works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `team` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onteamdisband"></a>
|
|
|
|
### `OnTeamDisband`
|
|
|
|
- Useful for canceling team disbandment
|
|
|
|
**Returns:** Returning a non-null value cancels default behavior
|
|
|
|
```csharp
|
|
object OnTeamDisband(RelationshipManager.PlayerTeam team)
|
|
{
|
|
Puts("OnTeamDisband works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `team` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onteamdisbanded"></a>
|
|
|
|
### `OnTeamDisbanded`
|
|
|
|
- Called when the team was disbanded
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnTeamDisbanded(RelationshipManager.PlayerTeam team)
|
|
{
|
|
Puts("OnTeamDisbanded works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `team` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onteaminvite"></a>
|
|
|
|
### `OnTeamInvite`
|
|
|
|
- Useful for canceling an invitation
|
|
|
|
**Returns:** Returning a non-null value cancels default behavior
|
|
|
|
```csharp
|
|
object OnTeamInvite(BasePlayer inviter, BasePlayer target)
|
|
{
|
|
Puts($"{inviter.displayName} invited {target.displayName} to his team");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `team` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onteamkick"></a>
|
|
|
|
### `OnTeamKick`
|
|
|
|
- Useful for canceling kick of the player from the team
|
|
|
|
**Returns:** Returning a non-null value cancels default behavior
|
|
|
|
```csharp
|
|
object OnTeamKick(RelationshipManager.PlayerTeam team, BasePlayer player, ulong target)
|
|
{
|
|
Puts("OnTeamKick works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `team` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onteamleave"></a>
|
|
|
|
### `OnTeamLeave`
|
|
|
|
- Useful for canceling the leave from the team
|
|
|
|
**Returns:** Returning a non-null value cancels default behavior
|
|
|
|
```csharp
|
|
object OnTeamLeave(RelationshipManager.PlayerTeam team, BasePlayer player)
|
|
{
|
|
Puts("OnTeamLeave works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `team` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onteampromote"></a>
|
|
|
|
### `OnTeamPromote`
|
|
|
|
- Useful for canceling player's promotion in the team
|
|
|
|
**Returns:** Returning a non-null value cancels default behavior
|
|
|
|
```csharp
|
|
object OnTeamPromote(RelationshipManager.PlayerTeam team, BasePlayer newLeader)
|
|
{
|
|
Puts("OnTeamPromote works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `team` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onteamrejectinvite"></a>
|
|
|
|
### `OnTeamRejectInvite`
|
|
|
|
- Useful for canceling the invitation rejection
|
|
|
|
**Returns:** Returning a non-null value cancels default behavior
|
|
|
|
```csharp
|
|
object OnTeamRejectInvite(BasePlayer rejector, RelationshipManager.PlayerTeam team)
|
|
{
|
|
Puts("OnTeamRejectInvite works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `team` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onteamupdate"></a>
|
|
|
|
### `OnTeamUpdate`
|
|
|
|
- Called when player's team is updated
|
|
|
|
**Returns:** Returning a non-null value cancels default behavior
|
|
|
|
```csharp
|
|
object OnTeamUpdate(ulong currentTeam, ulong newTeam, BasePlayer player)
|
|
{
|
|
Puts("OnTeamUpdate works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `team` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onteamupdated"></a>
|
|
|
|
### `OnTeamUpdated`
|
|
|
|
- Called before sending team info to player
|
|
|
|
**Returns:** Returning a non-null value cancels default behavior
|
|
|
|
```csharp
|
|
object OnTeamUpdated(ulong currentTeam, PlayerTeam playerTeam, BasePlayer player)
|
|
{
|
|
Puts("OnTeamUpdate works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `team` · uMod last updated 2021-05-08</sub>
|
|
|
|
---
|
|
|
|
## World Hooks
|
|
|
|
*World-level generation events.*
|
|
|
|
1 hook: [`OnWorldPrefabSpawned`](#onworldprefabspawned)
|
|
|
|
<a id="onworldprefabspawned"></a>
|
|
|
|
### `OnWorldPrefabSpawned`
|
|
|
|
- Called when a world prefab was spawned
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnWorldPrefabSpawned(GameObject gameObject, string category)
|
|
{
|
|
Puts("OnWorldPrefabSpawned works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `world` · uMod last updated 2021-05-08</sub>
|
|
|
|
---
|
|
|
|
## Fishing Hooks
|
|
|
|
*The fishing minigame.*
|
|
|
|
4 hooks: [`CanCatchFish`](#cancatchfish), [`OnFishCatch`](#onfishcatch), [`OnFishCaught`](#onfishcaught), [`OnFishingStopped`](#onfishingstopped)
|
|
|
|
<a id="cancatchfish"></a>
|
|
|
|
### `CanCatchFish`
|
|
|
|
- Called before a fish is caught
|
|
|
|
**Returns:** Returning true or false overrides default behavior
|
|
|
|
```csharp
|
|
bool? CanCatchFish(BasePlayer player, BaseFishingRod rod, Item item)
|
|
{
|
|
Puts("can we catch em fishes?");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player`, `item`, `fishing` · uMod last updated 2021-12-15</sub>
|
|
|
|
<a id="onfishcatch"></a>
|
|
|
|
### `OnFishCatch`
|
|
|
|
- Called after a fish is caught, before the item is given
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
Item OnFishCatch(Item item, BaseFishingRod rod, BasePlayer player)
|
|
{
|
|
Puts($"{player.displayName} has just caught {item.amount} x {item.info.shortname}!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player`, `item`, `fishing` · uMod last updated 2021-12-15</sub>
|
|
|
|
<a id="onfishcaught"></a>
|
|
|
|
### `OnFishCaught`
|
|
|
|
- Called after a fish is caught
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnFishCaught(ItemDefinition definition, BaseFishingRod rod, BasePlayer player)
|
|
{
|
|
Puts($"A fish ({definition.shortname}) has just been caught by {player.displayName}!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `player`, `item`, `fishing` · uMod last updated 2021-12-15</sub>
|
|
|
|
<a id="onfishingstopped"></a>
|
|
|
|
### `OnFishingStopped`
|
|
|
|
- Called just after the fishing minigame has been stopped.
|
|
|
|
**Returns:** No return behaviour
|
|
|
|
```csharp
|
|
void OnFishingStopped(BaseFishingRod rod, BaseFishingRod.FailReason reason)
|
|
{
|
|
Puts("OnFishingStopped works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `fishing` · uMod last updated 2022-06-25</sub>
|
|
|
|
---
|
|
|
|
## Electronic Hooks
|
|
|
|
*The electricity graph.*
|
|
|
|
2 hooks: [`OnExcavatorSuppliesRequest`](#onexcavatorsuppliesrequest), [`OnExcavatorSuppliesRequested`](#onexcavatorsuppliesrequested)
|
|
|
|
<a id="onexcavatorsuppliesrequest"></a>
|
|
|
|
### `OnExcavatorSuppliesRequest`
|
|
|
|
- Called just after the excavator supply computer is triggered, before the plane is spawned.
|
|
|
|
**Returns:** Returning non-null overrides default behaviour.
|
|
|
|
```csharp
|
|
object OnExcavatorSuppliesRequest(ExcavatorSignalComputer computer, BasePlayer player)
|
|
{
|
|
Puts("OnExcavatorSuppliesRequest works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>uMod last updated 2023-06-04</sub>
|
|
|
|
<a id="onexcavatorsuppliesrequested"></a>
|
|
|
|
### `OnExcavatorSuppliesRequested`
|
|
|
|
- Called after the excavator signal computer was triggered, just after the supply plane is spawned.
|
|
|
|
**Returns:** *(not stated upstream)*
|
|
|
|
```csharp
|
|
void OnExcavatorSuppliesRequested(ExcavatorSignalComputer computer, BasePlayer player, BaseEntity cargoPlane)
|
|
{
|
|
Puts("OnExcavatorSuppliesRequested works!");
|
|
}
|
|
```
|
|
|
|
<sub>uMod last updated 2023-06-04</sub>
|
|
|
|
---
|
|
|
|
## Clan Hooks
|
|
|
|
*The first-party clan system (distinct from Team).*
|
|
|
|
7 hooks: [`OnClanColorChanged`](#onclancolorchanged), [`OnClanCreated`](#onclancreated), [`OnClanDisbanded`](#onclandisbanded), [`OnClanLogoChanged`](#onclanlogochanged), [`OnClanMemberAdded`](#onclanmemberadded), [`OnClanMemberKicked`](#onclanmemberkicked), [`OnClanMemberLeft`](#onclanmemberleft)
|
|
|
|
<a id="onclancolorchanged"></a>
|
|
|
|
### `OnClanColorChanged`
|
|
|
|
- Called after a player changes a clan color
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnClanColorChanged(LocalClan clan, Color32 color, ulong steamId)
|
|
{
|
|
Puts("OnClanColorChanged works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `clan` · uMod last updated 2023-08-11</sub>
|
|
|
|
<a id="onclancreated"></a>
|
|
|
|
### `OnClanCreated`
|
|
|
|
- Called after a player has created a clan
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnClanCreated(LocalClan clan, ulong steamId)
|
|
{
|
|
Puts("OnClanCreated works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `clan` · uMod last updated 2023-08-11</sub>
|
|
|
|
<a id="onclandisbanded"></a>
|
|
|
|
### `OnClanDisbanded`
|
|
|
|
- Called after a player disbands a clan
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnClanDisbanded(LocalClan clan, ulong steamId)
|
|
{
|
|
Puts("OnClanDisbanded works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `clan` · uMod last updated 2023-08-11</sub>
|
|
|
|
<a id="onclanlogochanged"></a>
|
|
|
|
### `OnClanLogoChanged`
|
|
|
|
- Called after a player changes a clan logo
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnClanLogoChanged(LocalClan clan, byte[] logo, ulong steamId)
|
|
{
|
|
Puts("OnClanLogoChanged works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `clan` · uMod last updated 2023-08-11</sub>
|
|
|
|
<a id="onclanmemberadded"></a>
|
|
|
|
### `OnClanMemberAdded`
|
|
|
|
- Called after a player has accepted a clan invite
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnClanMemberAdded(long clanId, ulong steamId)
|
|
{
|
|
Puts("OnClanMemberAdded works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `clan` · uMod last updated 2023-08-11</sub>
|
|
|
|
<a id="onclanmemberkicked"></a>
|
|
|
|
### `OnClanMemberKicked`
|
|
|
|
- Called after a player has kicked another player from a clan
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnClanMemberKicked(LocalClan clan, ulong steamId, ulong bySteamId)
|
|
{
|
|
Puts("OnClanMemberKicked works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `clan` · uMod last updated 2023-08-11</sub>
|
|
|
|
<a id="onclanmemberleft"></a>
|
|
|
|
### `OnClanMemberLeft`
|
|
|
|
- Called after a player has voluntarily left a clan
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnClanMemberLeft(LocalClan clan, ulong steamId)
|
|
{
|
|
Puts("OnClanMemberLeft works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `clan` · uMod last updated 2023-08-11</sub>
|
|
|
|
---
|
|
|
|
## Plugin Hooks
|
|
|
|
*Plugin lifecycle inside Oxide itself — `Loaded`, `Unload`, and compilation.*
|
|
|
|
4 hooks: [`Loaded`](#loaded), [`LoadDefaultConfig`](#loaddefaultconfig), [`Unload`](#unload), [`LoadDefaultMessages`](#loaddefaultmessages)
|
|
|
|
<a id="loaded"></a>
|
|
|
|
### `Loaded` · *universal*
|
|
|
|
- Called when a plugin has finished loading
|
|
- Other plugins may or may not be present, dependant on load order
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void Loaded()
|
|
{
|
|
Puts("Loaded works!");
|
|
}
|
|
```
|
|
|
|
<sub>uMod last updated 2018-08-20</sub>
|
|
|
|
<a id="loaddefaultconfig"></a>
|
|
|
|
### `LoadDefaultConfig` · *universal*
|
|
|
|
- Called when the config for a plugin should be initialized
|
|
- Only called if the config file does not already exist
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
protected override void LoadDefaultConfig()
|
|
{
|
|
Puts("Default configuration created");
|
|
}
|
|
```
|
|
|
|
<sub>uMod last updated 2018-08-20</sub>
|
|
|
|
<a id="unload"></a>
|
|
|
|
### `Unload` · *universal*
|
|
|
|
- Called when a plugin is being unloaded
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void Unload()
|
|
{
|
|
Puts("Save data, nullify static variables, etc.");
|
|
}
|
|
```
|
|
|
|
<sub>uMod last updated 2018-09-02</sub>
|
|
|
|
<a id="loaddefaultmessages"></a>
|
|
|
|
### `LoadDefaultMessages` · *universal*
|
|
|
|
- Called when the localization for a plugin should be registered
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
protected override void LoadDefaultMessages()
|
|
{
|
|
lang.RegisterMessages(new Dictionary<string, string>
|
|
{
|
|
["Example"] = "This is an example message!",
|
|
["AnotherExample"] = "Here is another example"
|
|
}, this);
|
|
}
|
|
```
|
|
|
|
<sub>uMod last updated 2018-11-05</sub>
|
|
|
|
---
|
|
|
|
## Sign Hooks
|
|
|
|
*Sign painting, updating and locking.*
|
|
|
|
3 hooks: [`OnSignLocked`](#onsignlocked), [`OnSignUpdated`](#onsignupdated), [`OnSpinWheel`](#onspinwheel)
|
|
|
|
<a id="onsignlocked"></a>
|
|
|
|
### `OnSignLocked`
|
|
|
|
- Called after the player has locked a sign or photo frame
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnSignLocked(Signage sign, BasePlayer player)
|
|
{
|
|
Puts("OnSignLocked works!");
|
|
}
|
|
```
|
|
|
|
```csharp
|
|
void OnSignLocked(PhotoFrame photoFrame, BasePlayer player)
|
|
{
|
|
Puts("OnSignLocked works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `sign` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onsignupdated"></a>
|
|
|
|
### `OnSignUpdated`
|
|
|
|
- Called after the player has changed the text on a sign or updated a photo frame
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnSignUpdated(Signage sign, BasePlayer player, int textureIndex)
|
|
{
|
|
Puts("OnSignUpdated works!");
|
|
}
|
|
```
|
|
|
|
```csharp
|
|
void OnSignUpdated(PhotoFrame photoFrame, BasePlayer player)
|
|
{
|
|
Puts("OnSignUpdated works!");
|
|
}
|
|
```
|
|
|
|
```csharp
|
|
void OnSignUpdated(CarvablePumpkin pumpkin, BasePlayer player)
|
|
{
|
|
Puts("OnSignUpdated works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `sign` · uMod last updated 2022-04-18</sub>
|
|
|
|
<a id="onspinwheel"></a>
|
|
|
|
### `OnSpinWheel`
|
|
|
|
- Called when the player spins a spinner wheel
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnSpinWheel(BasePlayer player, SpinnerWheel wheel)
|
|
{
|
|
Puts("OnSpinWheel works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `spin`, `sign` · uMod last updated 2021-05-08</sub>
|
|
|
|
---
|
|
|
|
## TechTree Hooks
|
|
|
|
*Tech tree node unlocks and their prerequisites.*
|
|
|
|
4 hooks: [`CanUnlockTechTreeNode`](#canunlocktechtreenode), [`CanUnlockTechTreeNodePath`](#canunlocktechtreenodepath), [`OnTechTreeNodeUnlock`](#ontechtreenodeunlock), [`OnTechTreeNodeUnlocked`](#ontechtreenodeunlocked)
|
|
|
|
<a id="canunlocktechtreenode"></a>
|
|
|
|
### `CanUnlockTechTreeNode`
|
|
|
|
- Called when a player is attempting to unlock a blueprint in a tech tree
|
|
- Useful for bypassing unlock requirements or disallowing particular blueprints from being unlocked
|
|
|
|
**Returns:** Returning true or false overrides default behavior
|
|
|
|
```csharp
|
|
object CanUnlockTechTreeNode(BasePlayer player, TechTreeData.NodeInstance node, TechTreeData techTree)
|
|
{
|
|
Puts("CanUnlockTechTreeNode works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `unlock`, `techtree` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="canunlocktechtreenodepath"></a>
|
|
|
|
### `CanUnlockTechTreeNodePath`
|
|
|
|
- Called when a player is attempting to unlock a blueprint in a tech tree, after the `CanUnlockTechTreeNode` hook, when determining whether they have the prerequisite blueprints unlocked
|
|
- Useful for customizing prerequisites without conflicting with the `CanPlayerUnlock` hook
|
|
|
|
**Returns:** Returning true or false overrides default behavior
|
|
|
|
```csharp
|
|
object CanUnlockTechTreeNodePath(BasePlayer player, TechTreeData.NodeInstance node, TechTreeData techTree)
|
|
{
|
|
Puts("CanUnlockTechTreeNodePath works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `unlock`, `techtree` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="ontechtreenodeunlock"></a>
|
|
|
|
### `OnTechTreeNodeUnlock`
|
|
|
|
- Called when a player is attempting to unlock a blueprint in a tech tree, after the `CanUnlockTechTreeNode` and `CanUnlockTechTreeNodePath` hooks, before the player is charged scrap
|
|
- Useful for replacing the default behavior to charge the player a different currency, or to unlock multiple blueprints at once (such as those leading up to the one selected)
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnTechTreeNodeUnlock(Workbench workbench, TechTreeData.NodeInstance node, BasePlayer player)
|
|
{
|
|
Puts("OnTechTreeNodeUnlock works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `tech`, `techtree` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="ontechtreenodeunlocked"></a>
|
|
|
|
### `OnTechTreeNodeUnlocked`
|
|
|
|
- Called after a player has unlocked a blueprint in a tech tree
|
|
- Useful for automatically unlocking blueprints for team members
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnTechTreeNodeUnlocked(Workbench workbench, TechTreeData.NodeInstance node, BasePlayer player)
|
|
{
|
|
Puts("OnTechTreeNodeUnlocked works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `tech`, `techtree` · uMod last updated 2021-05-08</sub>
|
|
|
|
---
|
|
|
|
## Phone Hooks
|
|
|
|
*In-game telephones: dialling, answering, voicemail, directory.*
|
|
|
|
12 hooks: [`OnPhoneDial`](#onphonedial), [`CanReceiveCall`](#canreceivecall), [`OnPhoneAnswer`](#onphoneanswer), [`OnPhoneAnswered`](#onphoneanswered), [`OnPhoneCallStart`](#onphonecallstart), [`OnPhoneCallStarted`](#onphonecallstarted), [`OnPhoneDialFail`](#onphonedialfail), [`OnPhoneDialFailed`](#onphonedialfailed), [`OnPhoneDialTimeout`](#onphonedialtimeout), [`OnPhoneDialTimedOut`](#onphonedialtimedout), [`OnPhoneNameUpdate`](#onphonenameupdate), [`OnPhoneNameUpdated`](#onphonenameupdated)
|
|
|
|
<a id="onphonedial"></a>
|
|
|
|
### `OnPhoneDial`
|
|
|
|
- Called when a player places a phone call
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnPhoneDial(PhoneController callerPhone, PhoneController receiverPhone, BasePlayer player)
|
|
{
|
|
Puts("OnPhoneDial works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `phone` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="canreceivecall"></a>
|
|
|
|
### `CanReceiveCall`
|
|
|
|
- Called when a player tries to place a phone call
|
|
|
|
**Returns:** Returning true or false overrides default behavior
|
|
|
|
```csharp
|
|
object CanReceiveCall(PhoneController receiverPhone)
|
|
{
|
|
Puts("CanReceiveCall works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `receive`, `phone` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onphoneanswer"></a>
|
|
|
|
### `OnPhoneAnswer`
|
|
|
|
- Called when a player tries to answer a phone call
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnPhoneAnswer(PhoneController receiverPhone, PhoneController callerPhone)
|
|
{
|
|
Puts("OnPhoneAnswer works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `phone` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onphoneanswered"></a>
|
|
|
|
### `OnPhoneAnswered`
|
|
|
|
- Called right after a player has answered a phone call
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnPhoneAnswered(PhoneController receiverPhone, PhoneController callerPhone)
|
|
{
|
|
Puts("OnPhoneAnswered works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `phone` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onphonecallstart"></a>
|
|
|
|
### `OnPhoneCallStart`
|
|
|
|
- Called after a phone has been answered, right before voice communication is established
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnPhoneCallStart(PhoneController phone, PhoneController otherPhone, BasePlayer player)
|
|
{
|
|
Puts("OnPhoneCallStart works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `phone` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onphonecallstarted"></a>
|
|
|
|
### `OnPhoneCallStarted`
|
|
|
|
- Called right after a phone call has been answered and voice communication has been established
|
|
|
|
**Returns:** *(not stated upstream)*
|
|
|
|
```csharp
|
|
void OnPhoneCallStarted(PhoneController phone, PhoneController otherPhone, BasePlayer player)
|
|
{
|
|
Puts("OnPhoneCallStarted works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `phone` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onphonedialfail"></a>
|
|
|
|
### `OnPhoneDialFail`
|
|
|
|
- Called when a phone call is about to end or fail to start
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnPhoneDialFail(PhoneController phone, Telephone.DialFailReason reason, BasePlayer player)
|
|
{
|
|
Puts("OnPhoneDialFail works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `phone` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onphonedialfailed"></a>
|
|
|
|
### `OnPhoneDialFailed`
|
|
|
|
- Called after a phone call has ended or failed to start
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnPhoneDialFailed(PhoneController phone, Telephone.DialFailReason reason, BasePlayer player)
|
|
{
|
|
Puts("OnPhoneDialFailed works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `phone` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onphonedialtimeout"></a>
|
|
|
|
### `OnPhoneDialTimeout`
|
|
|
|
- Called when a phone is about to automatically hang up because the receiver phone wasn't answered in time
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnPhoneDialTimeout(PhoneController callerPhone, PhoneController receiverPhone, BasePlayer player)
|
|
{
|
|
Puts("OnPhoneDialTimeout works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `phone` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onphonedialtimedout"></a>
|
|
|
|
### `OnPhoneDialTimedOut`
|
|
|
|
- Called right after a phone was automatically hung up because the receiver phone wasn't answered in time
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnPhoneDialTimedOut(PhoneController callerPhone, PhoneController receiverPhone, BasePlayer player)
|
|
{
|
|
Puts("OnPhoneDialTimedOut works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `phone` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onphonenameupdate"></a>
|
|
|
|
### `OnPhoneNameUpdate`
|
|
|
|
- Called when a player tries to update a phone name
|
|
|
|
**Returns:** Returning a non-null value overrides default behavior
|
|
|
|
```csharp
|
|
object OnPhoneNameUpdate(PhoneController phoneController, string name, BasePlayer player)
|
|
{
|
|
Puts("OnPhoneNameUpdate works!");
|
|
return null;
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `phone` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="onphonenameupdated"></a>
|
|
|
|
### `OnPhoneNameUpdated`
|
|
|
|
- Called after a player has updated a phone name
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnPhoneNameUpdated(PhoneController phoneController, string name, BasePlayer player)
|
|
{
|
|
Puts("OnPhoneNameUpdated works!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `phone` · uMod last updated 2021-05-08</sub>
|
|
|
|
---
|
|
|
|
## Permission Hooks
|
|
|
|
*uMod's own permission/group system (Covalence) — grants, revokes, group membership.*
|
|
|
|
8 hooks: [`OnPermissionRegistered`](#onpermissionregistered), [`OnGroupPermissionGranted`](#ongrouppermissiongranted), [`OnGroupPermissionRevoked`](#ongrouppermissionrevoked), [`OnGroupCreated`](#ongroupcreated), [`OnGroupDeleted`](#ongroupdeleted), [`OnGroupRankSet`](#ongrouprankset), [`OnGroupTitleSet`](#ongrouptitleset), [`OnGroupParentSet`](#ongroupparentset)
|
|
|
|
<a id="onpermissionregistered"></a>
|
|
|
|
### `OnPermissionRegistered` · *universal*
|
|
|
|
- Called when a permission has been registered
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnPermissionRegistered(string name, Plugin owner)
|
|
{
|
|
Puts($"Permission '{name}' has been registered {(owner != null ? $"for {owner.Title}" : "")}");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `permission` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="ongrouppermissiongranted"></a>
|
|
|
|
### `OnGroupPermissionGranted` · *universal*
|
|
|
|
- Called when a permission has been granted to a group
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnGroupPermissionGranted(string name, string perm)
|
|
{
|
|
Puts($"Group '{name}' granted permission: {perm}");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `group`, `permission` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="ongrouppermissionrevoked"></a>
|
|
|
|
### `OnGroupPermissionRevoked` · *universal*
|
|
|
|
- Called when a permission has been revoked from a group
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnGroupPermissionRevoked(string name, string perm)
|
|
{
|
|
Puts($"Group '{name}' revoked permission: {perm}");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `group`, `permission` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="ongroupcreated"></a>
|
|
|
|
### `OnGroupCreated` · *universal*
|
|
|
|
- Called when a group has been created successfully
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnGroupCreated(string name)
|
|
{
|
|
Puts($"Group '{name}' has been created!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `group`, `permission` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="ongroupdeleted"></a>
|
|
|
|
### `OnGroupDeleted` · *universal*
|
|
|
|
- Called when a group has been deleted successfully
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnGroupDeleted(string name)
|
|
{
|
|
Puts($"Group '{name}' has been deleted!");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `group`, `permission` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="ongrouprankset"></a>
|
|
|
|
### `OnGroupRankSet` · *universal*
|
|
|
|
- Called when a group rank has been updated
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnGroupRankSet(string name, int rank)
|
|
{
|
|
Puts($"Rank '{rank}' set on group '{name}'");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `group`, `permission` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="ongrouptitleset"></a>
|
|
|
|
### `OnGroupTitleSet` · *universal*
|
|
|
|
- Called when a group title has been updated
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnGroupTitleSet(string name, string title)
|
|
{
|
|
Puts($"Title '{title}' set on group '{name}'");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `group`, `permission` · uMod last updated 2021-05-08</sub>
|
|
|
|
<a id="ongroupparentset"></a>
|
|
|
|
### `OnGroupParentSet` · *universal*
|
|
|
|
- Called when a group parent has been updated
|
|
|
|
**Returns:** No return behavior
|
|
|
|
```csharp
|
|
void OnGroupParentSet(string name, string parent)
|
|
{
|
|
Puts($"Parent '{parent}' set on group '{name}'");
|
|
}
|
|
```
|
|
|
|
<sub>Tags: `group`, `permission` · uMod last updated 2021-05-08</sub>
|
|
|
|
---
|
|
|
|
<sub>Generated from uMod's own hook data (`umod.org/documentation/games/rust.json`), scraped 2026-09-15. 477 hooks.</sub>
|