Jump to content

Raidable Bases 3.1.5

$40.00 $30.00
   (78 reviews)

1 Screenshot

  • 881.9k
  • 50.5k
  • 529.95 kB
  • Update details
    v3.1.5
    Released
    Download size529.95 kB
    Total versions72
    Time between versions 119 days
    Typical update pace About every 24 days
    Freshness 44 days ago

About Raidable Bases

📄About Raidable Bases

Create fully automated raidable bases with NPCs in Rust.

Raidable Bases supports maintained, scheduled, buyable and manually spawned events, with separate options for each difficulty.

📄Compatibility notes

  • server.pve true is not supported; please use TruePVE or another compatible PVE plugin that calls the necessary hooks required by Raidable Bases.
  • Raidable Bases does not currently use Harmony patches. I could implement such patches, but it's often better to use a supported hook when it exists instead.
  • Raidable Bases is not compatible with Raid Windows in Softcore mode after the Tool Cupboard is destroyed or after raidwindow_fresh_tc_seconds elapses.
    • This will be supported when the appropriate hooks exist for this behavior.

📄Raidable Bases & Boats Loot Editor by @beee 😎

This is the easiest way to create and manage Raidable Bases loot tables. It provides a visual editor for item selection, amounts, probability, skins and other loot fields, making it the best starting point for most server owners.

⚙️Built with performance in mind

Raidable Bases manages a lot of work behind the scenes, so performance is treated as a core part of development. Pasting and cleanup are batched, recurring work is shared through central schedulers, temporary collections are pooled, and spawn searches are spread across frames to reduce noticeable spikes.

These systems help provide a smoother experience across a wide range of server sizes. Performance will continue to be reviewed and improved anywhere measurable gains can be made.

📄There are just a few steps

Get bases spawning within minutes
An experienced administrator may finish in a few minutes. A novice should allow roughly 30 minutes, while a complete beginner may need 60 to 120 minutes. Fine-tuning depends on how large you want the project to become. Once the initial setup is complete, maintaining the plugin is fairly simple, and growing your base catalog becomes an art form of its own. Server owners regularly report that players love the variety, which makes building that collection rewarding for everyone involved.

Step 1 - Add your bases

You can obtain bases by:

  • Downloading them from Fortify.
  • Purchasing a Raidable Bases package.
  • Purchasing compatible CopyPaste files from another creator.
  • Creating your own bases.

Place the CopyPaste JSON files in:

  • Oxide — oxide/data/copypaste/
  • Carbon — carbon/data/copypaste/

Step 2 - Set up profiles

Profiles are located in:

  • Oxide — oxide/data/RaidableBases/Profiles/
  • Carbon — carbon/data/RaidableBases/Profiles/

Bases can be added manually or with the command:

  • rb.config add "Easy Bases" raideasy1 raideasy2 raideasy3
  • rb.config add "Medium Bases" raidmed1 raidmed2 raidmed3

The named profile can contain any number of CopyPaste bases that share its options. Quotes around the profile name are required, and it is best practice to use them even when the name has no spaces. Use straight double quotes only; curly quotes will not work correctly.

Step 3 - Enable automatic events

For public automatic events, enable Maintained Events or Scheduled Events in the main configuration and choose how many events you would like active.

  • Maintained Events: keeps the configured number of raids available.
  • Scheduled Events: spawns raids according to a timer.

Step 4 - Save and reload, save your files then use the commands:

  • rb.reloadconfig
  • rb.reloadprofiles

Once grid initialization completes, automatic events can begin spawning. The included Default_Loot table is enough to get started and can be replaced whenever you are ready. Ultimately, the Default_Loot table should be discarded once your other loot tables are configured.

📁File locations

Main configuration

  • Oxide: oxide/config/RaidableBases.json
  • Carbon: carbon/configs/RaidableBases.json

Profiles

  • Oxide: oxide/data/RaidableBases/Profiles/
  • Carbon: carbon/data/RaidableBases/Profiles/

CopyPaste bases

  • Oxide: oxide/data/copypaste/
  • Carbon: carbon/data/copypaste/

Loot and data

  • Oxide: oxide/data/RaidableBases/
  • Carbon: carbon/data/RaidableBases/

The main configuration controls server-wide behavior. Profiles contain options for specific difficulties, while loot tables and CopyPaste files provide the content used by each event.

🗺️Map terrain and spawn locations

Raidable Bases depends on the map having enough flat, unobstructed terrain for automated events. Most procedural maps provide plenty of locations, while custom or heavily modified maps may need additional flat terrain, islands, or custom spawn points.

  • The grid scans the map when the plugin initializes and reports the number of potential spawn locations.
  • A low location count usually means the map offers fewer suitable areas or the current settings narrow the available terrain.
  • Spawns Database files are useful for sky bases, underwater bases, custom maps and any setup that needs exact locations.
  • You can disable using the grid by providing a valid spawn file for each raid type (buyable, maintained, scheduled and manual).

You may view the grid by typing /rb grid in-game to view detailed drawings of all locations on the grid.

  • X - Green - Potential spawn point, generally in clusters
  • X - Red - Currently in use
  • C - Cyan - Construction detected nearby
  • TC - Yellow - TC detected nearby
  • W - Blue - Water depth is too high - Refreshes on ocean level change

Green clusters have the highest chance of being picked as a spawn point, constantly changing depending on player activity and remaining a safe distance away.

📄Profiles and difficulties

A profile is where options can be found that pertain to specific difficulties. Any number of CopyPaste bases can share the same profile, so a large base rotation can be managed while the difficulty is adjusted in one place.

  • Profiles can control loot, NPCs, PVP or PVE behavior, protection radius, damage, doors, locks, water placement, height, rewards, building options and much more.

Dynamic difficulties

  • rb.difficulty add "Sky"
  • rb.difficulty remove "Sky"

Adding a difficulty creates the matching configuration and language entries. Profiles and loot tables can then be assigned to it. Removing a difficulty removes its active configuration entries without deleting the related files.

📄Event types

  • Maintained — Keeps up to the configured number of public raids available. Another can spawn after one despawns.
  • Scheduled — Spawns public raids between the configured minimum and maximum interval.
  • Buyable — Lets players purchase a raid through the configured buy command, subject to availability, costs and cooldowns.
  • Manual — Lets an administrator spawn a selected raid at a chosen location.

Each event type can use the automatic grid or its own Spawns Database file.

🔧Loot tables

Loot can come from a base-specific table, difficulty table, weekday table and the default table. The plugin combines the available sources according to the profile and loot settings until it has enough usable entries.

Default loot

  • Default_Loot.json contains a small demonstration loot list. It is enough to show how the plugin works, but most servers should replace it with loot tables in the Base_Loot and/or Difficulty_Loot folders.

Loot table editor

Important loot fields

  • shortname — Rust item shortname.
  • amount — Maximum amount created for the entry.
  • amountMin — Minimum amount created for the entry.
  • probability — Spawn chance from 0.0 to 1.0, where 1.0 is 100%.
  • stacksize — Optional stack-size override. Use -1 to use the item's normal Rust stack size.
  • skin — Optional skin ID.

Editable item lists

The rb.populate all command creates a file for each difficulty inside the Editable_Lists folder. Each file contains every available Rust item, allowing you to remove unwanted entries and configure the amounts for items you would like to spawn. Any items with an amount set to 0 will be inactive, so you do not have to remove any entry.

  • A list containing hundreds of items may look intimidating at first, but deleting unwanted entries or configuring from a preset list is usually much faster than adding every item manually.
  • The command also includes items already present in your Difficulty_Loot files. This makes it useful when you want to rebuild a list and reevaluate which items should be available later.

Files inside Editable_Lists are for editing only. Their contents need to be copied into an active loot file before the plugin will use them.

  • To use Editable_Lists/Easy.json for Easy raids, copy its contents into Difficulty_Loot/Easy.json.
  • To use Editable_Lists/Expert.json for a profile named Expert Bases, copy its contents into Base_Loot/Expert Bases.json.

Item amounts and probability

An item will not spawn when both amount and amountMin are set to 0. You may remove these entries or leave them in the file for later use.

  • When amountMin is 0, probability determines whether the item spawns. If the item fails its probability check, another item will not automatically replace it unless additional eligible entries are available.

Tool Cupboard loot

  • Items moved into the Tool Cupboard may combine into larger stacks. The visible stack count can therefore be lower than the amount that was originally generated.

Loot priority

Loot is loaded from the data files inside:

  • Oxide: oxide/data/RaidableBases/
  • Carbon: carbon/data/RaidableBases/

The Profiles folder is not a loot source. It contains the options used by each profile and difficulty. Please do not place any file in the Profiles folder that is not a profile, the hamsters will cry.

Base Loot

  • If a file inside Base_Loot has the same name as a profile, the bases assigned to that profile can use that loot table.
    • For example: Base_Loot/Expert Bases.json applies to the profile named: Expert Bases
  • Enable Always Spawn Base Loot Table in the profile when items from that table should always be included.

Difficulty Loot

  • Files inside Difficulty_Loot are selected according to the difficulty assigned to the profile.
    • For example: Difficulty_Loot/Hard.json is used by profiles assigned to the Hard difficulty.

Day of Week Loot

  • When Use Day Of Week Loot is enabled, the plugin selects the loot table matching the current day.

Default Loot

  • Default_Loot.json acts as the fallback table. It is used when the other available loot tables do not provide enough eligible items to satisfy Amount Of Items To Spawn.
    • Generally, this file should be discarded once Base Loot and Difficulty Loot tables have been created.

🤖NPCs

Profiles include NPC options for scientists, murderers and sleepers. You can keep the defaults or tailor their amount, health, accuracy, kits, movement and loot to suit each difficulty.

  • Valid Kits entries take priority over the matching manual loadout lists.
  • NPCs spawned inside bases remain stationary, while outdoor NPCs can roam and engage players around the event.
  • More NPCs naturally create more work, so busy servers may prefer to increase counts gradually.

⚔️PVP, PVE, ownership and raid options

Raid behavior is controlled by a combination of profile options and server-wide configuration. Together, these determine whether a raid is PVP or PVE and can control ownership, team or clan access, building, teleporting, cupboard access, damage across the dome, PVP delay, completion requirements and rewards.

Ownership and participation

  • Public raids can lock to the first attacker, while purchased raids can remain associated with their buyer. Players may become participants by damaging the base, killing NPCs, looting or using other supported raiding methods.

PVP delay

  • PVP delay can keep a player temporarily vulnerable after leaving a PVP raid. This discourages zone hopping across the event boundary to gain an unfair advantage on a PVE server, where normal protection would otherwise resume immediately after leaving.

🛒Buyable raids and shop plugins

Buyable raids use the configured buy command, commonly /buyraid. A purchase can still be declined by cooldowns, ownership options, event limits, permissions, availability or the inability to find a suitable location.

Using a shop plugin (support is not guaranteed)

  • The shop should provide the buyraid command for free or at zero cost, while Raidable Bases handles the actual payment and any refund. This allows the plugin to safely return the payment when the raid cannot be created.
    • Shop plugins that cannot sell the command at zero cost are not supported.
  • buyraid 0 <steamid>
    • The player placeholder depends on the shop plugin. Prices are configured in Raidable Bases and should remain zero in the external shop.

⚙️ Options that benefit from an explanation (the majority have names that are meant to be self-explanatory to save time)

The complete configuration already lists every available option. This section only covers settings that are easier to understand with a little context.

  • Advanced Protection Radius — Controls the event area used by domes, markers, damage checks, ejection, NPC ranges and nearby spawn checks. Configurable per event type: Buyable Events, Maintained Events, Manual Events, and Scheduled Events.
  • Amount Of Items To Spawn — Sets the target amount of generated loot, limited by available entries from your loot tables and container space in each base.
  • Divide Loot Into All Containers — Spreads generated loot across the raid's available containers. This does not serve much purpose when disabled, it is advised to keep it set to true.
  • Create Dome Around Event Using Spheres — Creates the visible event boundary. Set to 0 to disable it.
  • Spawn Silently — Hides the normal announcement, dome and map marker for the profile.
  • Height Adjustment Applied To This Paste — Adds the same vertical offset whenever a base using this profile is pasted.
  • Forced Height — Uses a fixed world height for controlled sky or special-event setups.
  • Allow Players To Raid With Items Up To What Workbench Level? — Limits raiding items according to their workbench level.
  • Water Settings — Controls floating, surface, underwater and seabed placement.

Workbench-level option

  • -1 — No workbench-level limit, future-proof where level 3 may be increased to 4 in a later Rust update.
  • 0 — Allows raiding items that require no workbench.
  • 1 — Allows items up to Workbench Level 1.
  • 2 — Allows items up to Workbench Level 2.
  • 3 — Allows items up to Workbench Level 3.

The plugin checks the available workbench information for weapons, ammunition, attack entities and projectiles. A player is notified when the item being used exceeds the profile's allowed level.

⌨️Commands and permissions

Many command names are configurable. The examples below use their common defaults.

  • /buyraid — Open or use the buyable raid system.
  • /rb — View player-facing raid information and available subcommands.
  • rbe [base] [difficulty] — Spawn a manual event using the configured event command.
  • rb.config add "<profile>" <bases...> — Add CopyPaste bases that share the selected profile options. Straight quotes around the profile name are required.
  • rb.config list — List configured bases.
  • rb.config remove <base> — Remove a configured base.
  • rb.config maintained — Toggle Maintained Events.
  • rb.config scheduled — Toggle Scheduled Events.
  • rb.reloadconfig — Reload the main configuration.
  • rb.reloadprofiles — Reload profiles.
  • rb.reloadtables — Reload loot tables.
  • rb.populate all — Create editable item reference lists.
  • rb.difficulty add "name" — Create a new difficulty and its matching configuration entries.
  • rb.difficulty remove "name" — Remove a difficulty from the active configuration without deleting its files.

Players do not require permissions by default. Administrative permissions are best limited to trusted administrators, moderators and staff only.

  • raidablebases.allow — Allows player to use the available ADMIN commands. This is NOT recommended as players can use the commands 'buyraid' and 'rb' already.
  • raidablebases.canbypass  — Bypass dome restrictions. Noclip or vanish will bypass many features too, so you can assist players without interfering.
  • raidablebases.blockbypass — Bypass Owning More Than One Raid settings for Clans/Friends/Teams
  • raidablebases.mapteleport — Teleporting to map marker now simply requires this permission and to be enabled in config
  • raidablebases.ddraw — Allows support for direct draw to players.
  • raidablebases.config — Allows access to rb.config command in-game (server console does not require this permission)
  • raidablebases.banned — Bans the user from entering any raids - accidentally banned yourself? Use /rb unban
  • raidablebases.durabilitybypass — Bypass `Block Plugins Which Prevent Item Durability Loss`
  • raidablebases.notitle — Exclude users from ranked title rewards
  • raidablebases.buyraid — Optionally require this permission with `Use Permission (raidablebases.buyraid)` (not required by default)
  • See other permissions using Permissions Manager (click the link to visit the page on Codefling)

🧾RBE DEBUG 

The RBE DEBUG command displays information related to the configuration, profiles, map and spawn checks. Using it before requesting support usually makes the cause much easier to identify.

  • Too much information displayed at once? Not a problem, it is constantly recording data but the solution is very simple.
    • Run RBE DEBUG once to enable it, then run it again to disable it and clear the previously recorded data.
    • Next, attempt to spawn the raid using /buyraid or /rbevent
    • Run RBE DEBUG again to view any newly recorded information. Do this promptly, as it will immediately continue to record.
    • When you are finished, toggle it off by typing the command again. It will continue to output debug until it is turned off.

Helpful information to include

  • Raidable Bases and CopyPaste versions.
  • The base filename, profile, difficulty and event type.
  • The command used and relevant console output.
  • Whether the same file works when pasted directly with CopyPaste.
  • Map seed, size and whether the map is procedural or custom when the issue involves placement.
  • Debug contains all relevant information to events, good or bad. Use this information to determine what is happening and how to resolve the issue on your own.

📄Facepunch Terms of Service

Raidable Bases includes safeguards designed to help servers remain compliant with Facepunch policies for paid DLC items and restricted cosmetic content. These safeguards may remove restricted deployables or loot and prevent unauthorized pickup.

Server-owner responsibility

  • Changes that disable or bypass these safeguards can place a server outside Facepunch policy. Custom loot tables, imported workshop skins, CopyPaste files and third-party content should be reviewed before use.

🧰Tools and further reference

🧩Developer API

Signatures reflect Raidable Bases 3.1.5

The following hooks receive this argument set: OnRaidableBaseStarted, OnRaidableBaseEnded, OnRaidableBasePrivilegeDestroyed, OnRaidableBaseDespawn, OnRaidableBaseDespawned and one overload of OnRaidableBaseCompleted and OnRaidableAwardOwner. Please note that unused args will be removed in a future update.

object[] raidData =
{
   Vector3 location, int level, bool allowPVP, string id, float unused1, float unused2, float loadTime, ulong ownerId, BasePlayer owner, List<BasePlayer> raiders, List<BasePlayer> intruders, List<BaseEntity> entities, string baseName, DateTime spawnDateTime, DateTime despawnDateTime, float protectionRadius, int lootRemaining
};

OnPlayerPvpDelayStart, OnPlayerPvpDelayReset and OnPlayerPvpDelayExpired receive this argument set.

object[] delayData =
{
   BasePlayer player, ulong userid, int level, Vector3 location, bool allowPVP, string id, ulong ownerId, string baseName, DateTime spawnDateTime, DateTime despawnDateTime, int lootRemaining
};

Event hooks

Quote

OnRaidableBaseStarted(Vector3 location, int level, bool allowPVP, string id, float unused1, float unused2, float loadTime, ulong ownerId, BasePlayer owner, List<BasePlayer> raiders, List<BasePlayer> intruders, List<BaseEntity> entities, string baseName, DateTime spawnDateTime, DateTime despawnDateTime, float protectionRadius, int lootRemaining) — Called when setup finishes.
OnRaidableBaseStarted(RandomBase rb) — Also called with the active spawn request.
OnRaidableBaseEnded(Vector3 location, int level, bool allowPVP, string id, float unused1, float unused2, float loadTime, ulong ownerId, BasePlayer owner, List<BasePlayer> raiders, List<BasePlayer> intruders, List<BaseEntity> entities, string baseName, DateTime spawnDateTime, DateTime despawnDateTime, float protectionRadius, int lootRemaining) — Called when the raid object is being released.
OnRaidableBaseDespawn(Vector3 location, int level, bool allowPVP, string id, float unused1, float unused2, float loadTime, ulong ownerId, BasePlayer owner, List<BasePlayer> raiders, List<BasePlayer> intruders, List<BaseEntity> entities, string baseName, DateTime spawnDateTime, DateTime despawnDateTime, float protectionRadius, int lootRemaining) — Called when despawn begins.
OnRaidableBaseDespawned(Vector3 location, int level, bool allowPVP, string id, float unused1, float unused2, float loadTime, ulong ownerId, BasePlayer owner, List<BasePlayer> raiders, List<BasePlayer> intruders, List<BaseEntity> entities, string baseName, DateTime spawnDateTime, DateTime despawnDateTime, float protectionRadius, int lootRemaining) — Called after entity cleanup completes.
OnRaidableBasePrivilegeDestroyed(Vector3 location, int level, bool allowPVP, string id, float unused1, float unused2, float loadTime, ulong ownerId, BasePlayer owner, List<BasePlayer> raiders, List<BasePlayer> intruders, List<BaseEntity> entities, string baseName, DateTime spawnDateTime, DateTime despawnDateTime, float protectionRadius, int lootRemaining) — Called when the primary Tool Cupboard is destroyed.
OnRaidableBaseCompleted(Vector3 location, int level, bool allowPVP, string id, float unused1, float unused2, float loadTime, ulong ownerId, BasePlayer owner, List<BasePlayer> raiders, List<BasePlayer> intruders, List<BaseEntity> entities, string baseName, DateTime spawnDateTime, DateTime despawnDateTime, float protectionRadius, int lootRemaining) — Called when the raid is completed.
OnRaidableBaseCompleted(Vector3 location, int level, bool allowPVP, ulong ownerId, List<ulong> raiders) — Completion overload containing eligible raider IDs.
OnRaidableAwardOwner(Vector3 location, int level, bool allowPVP, string id, float unused1, float unused2, float loadTime, ulong ownerId, BasePlayer owner, List<BasePlayer> raiders, List<BasePlayer> intruders, List<BaseEntity> entities, string baseName, DateTime spawnDateTime, DateTime despawnDateTime, float protectionRadius, int lootRemaining) — Called when the owner qualifies for awards.
OnRaidableAwardOwner(Vector3 location, int level, bool allowPVP, ulong ownerId, List<ulong> raiders) — Compact overload containing eligible raider IDs.
OnRaidableAwardGiven(string username, string userid, string serializedPlayerInfo) — Called after ranked-ladder data is updated.
OnRaidableDespawnUpdate(Vector3 location, int level, bool allowPVP, ulong ownerId, string baseName, float protectionRadius, int lootRemaining, DateTime despawnDateTime) — Called when the despawn time changes.
OnRaidableTurretsInitialized(List<AutoTurret> turrets, Vector3 location, float radius, int level, bool allowPVP, ulong ownerId) — Called after event turrets finish initialization.
OnPlayerEnteredRaidableBase(BasePlayer player, Vector3 location, bool allowPVP, int level, string id, float unused1, float unused2, float loadTime, ulong ownerId, string baseName, DateTime spawnDateTime, DateTime despawnDateTime, float protectionRadius, int lootRemaining) — Called when a player enters the event.
OnPlayerExitedRaidableBase(BasePlayer player, Vector3 location, bool allowPVP, int level, string id, float unused1, float unused2, float loadTime, ulong ownerId, string baseName, DateTime spawnDateTime, DateTime despawnDateTime, float protectionRadius, int lootRemaining) — Called when a player exits the event.
OnPlayerPvpDelayStart(BasePlayer player, ulong userid, int level, Vector3 location, bool allowPVP, string id, ulong ownerId, string baseName, DateTime spawnDateTime, DateTime despawnDateTime, int lootRemaining) — Called when PVP delay begins.
OnPlayerPvpDelayReset(BasePlayer player, ulong userid, int level, Vector3 location, bool allowPVP, string id, ulong ownerId, string baseName, DateTime spawnDateTime, DateTime despawnDateTime, int lootRemaining) — Called when an active PVP delay is refreshed.
OnPlayerPvpDelayExpired(BasePlayer player, ulong userid, int level, Vector3 location, bool allowPVP, string id, ulong ownerId, string baseName, DateTime spawnDateTime, DateTime despawnDateTime, int lootRemaining) — Called when PVP delay expires.

Purchase, ownership, backpack, and other special hooks

Quote

OnRaidableBasePurchased(string userid, Vector3 location, string grid, int level, bool allowPVP, string baseName, DateTime spawnDateTime, DateTime despawnDateTime) — Called when a purchased raid is created.
OnRaidableBaseLocked(string userid, Vector3 location, string grid, int level, bool allowPVP, float loadTime, string baseName, DateTime spawnDateTime, DateTime despawnDateTime) — Called when a public raid becomes locked.
OnRaidableBaseUnlocked(string userid, Vector3 location, string grid, int level, bool allowPVP, string baseName, DateTime spawnDateTime, DateTime despawnDateTime) — Called when a raid unlocks.
OnRaidableResetPublicOwner(ulong ownerId, Vector3 location, float radius, List<BasePlayer> raiders, List<BaseEntity> entities, int level) — Return a non-null value to prevent the public owner reset.
OnRaidableResetPayLock(ulong ownerId, Vector3 location, float radius, List<BasePlayer> raiders, List<BaseEntity> entities, int level) — Return a non-null value to prevent the purchased lock reset.
OnRaidableBaseBackpackEject(DroppedItemContainer container, ulong playerSteamID, Vector3 location, bool allowPVP, int level, BasePlayer owner, List<BasePlayer> raiders, string baseName, bool playersLootable) — Return a non-null value to prevent Raidable Bases from ejecting the backpack.
OnRaidableBaseBackpackEjected(BasePlayer player, ulong playerSteamID, BaseEntity container, Vector3 location, bool allowPVP, int level, BasePlayer owner, List<BasePlayer> raiders, string baseName) — Called after a backpack or corpse container is ejected.
OnRaidablePlayerCorpseCreate(PlayerCorpse corpse, Vector3 location, bool allowPVP, int level, BasePlayer owner, List<BasePlayer> raiders, string baseName, bool playersLootable) — Return a non-null value to prevent Raidable Bases corpse handling.
OnRaidableLootDestroyed(Vector3 location, float radius, int lootRemaining, StorageContainer container, int level) — Called when a tracked loot container is destroyed.
OnRaidableBaseHint(BasePlayer player, Vector3 location, float radius, int level, int lootRemaining, BasePlayer owner, List<BasePlayer> raiders) — Called after loot hints are drawn.
OnRaidableTableLoaded(string filename, int count, string serializedLoot) — Called after a loot table is loaded.
OnRaidableNpcStrip(BasePlayer npc, int reason) — Return a non-null value to prevent inventory stripping.
OnBlockRaidableBasesTeleport(BasePlayer player, Vector3 location) — Return a non-null value to allow another plugin to override RB's teleport block.
CanRaidableBasesRemoveClutter(BaseEntity entity, Vector3 location, float radius, bool kill) — Return a non-null value to prevent clutter removal or ejection.
OnPurchaseBase(BasePlayer buyer, BasePlayer recipient) — Return a non-null value to stop the no-argument purchase flow.
OnPurchaseTakePayments(BasePlayer buyer, BasePlayer recipient, string value, string mode) — Return a non-null value to replace or stop the normal payment flow.
float GetGridWaitTime() — Return a float to override the grid coroutine wait time.
int GetGridWaitThreshold() — Return an int to override how many grid checks occur before yielding.

Callable API methods

Quote

bool AddLootToDifficultyProfile(string mode, List<object[]> lootObjects) — Adds loot entries to a difficulty profile.
float GetSpawnHeight(Vector3 position, bool max = true, bool shouldSkipSmallRock = false, int mask = 8454145, BasePlayer player = null) — Returns the spawn height calculated by Raidable Bases.
List<string> GetRaidableModes() — Returns the configured difficulty names.
List<(string mode, int level)> GetAllDifficulties() — Returns difficulty names and numeric levels.
bool HasPVPDelay(ulong userid) — Returns true while the player has an active PVP delay.
int GetAllEventsCount() — Returns the total number of active raid objects.
int GetActiveEventCount() — Returns the number of raids with progress.
List<(Vector3 location, string mode, int level, bool allowPVP, string id, float unused1, float unused2, float unused3, ulong ownerId, BasePlayer owner, List<BasePlayer> raiders, List<BasePlayer> intruders, HashSet<BaseEntity> entities, string baseName, DateTime spawnDateTime, DateTime despawnDateTime, float protectionRadius, int lootRemaining)> GetAllEvents() — Returns information for all current raids.
void GetAllEventsNonAlloc(List<(Vector3 location, string mode, int level, bool allowPVP, string id, float unused1, float unused2, float unused3, ulong ownerId, BasePlayer owner, List<BasePlayer> raiders, List<BasePlayer> intruders, HashSet<BaseEntity> entities, string baseName, DateTime spawnDateTime, DateTime despawnDateTime, float protectionRadius, int lootRemaining)> results) — Fills a supplied list with current raid information.
bool EventTerritory(Vector3 position, float extra = 0f) — Returns true when the position is inside an event.
bool EventTerritoryAny(Vector3[] positions, float extra = 0f) — Returns true when any supplied position is inside an event.
bool EventTerritoryAll(Vector3[] positions, float extra = 0f) — Returns true when all supplied positions are inside events.
List<BasePlayer> GetPlayersFrom(Vector3 position, float extra = 0f, bool intruders = false) — Returns raiders or intruders from the event at the position.
BasePlayer GetOwnerFrom(Vector3 position, float extra = 0f) — Returns the owner of the event at the position.

  • Like 25
  • Sad 2
  • Love 49

User Feedback

About Us

Codefling is the largest marketplace for plugins, maps, tools, and more, making it easy for customers to discover new content and for creators to monetize their work.

Downloads
2.8m
Total downloads
Customers
11.6k
Customers served
Files Sold
166.1k
Total sales
Payments
3.6m
Processed total
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.