Paws4Luv's Wishlist
-
Abandoned Bases
Allows bases to become raidable when all players in a base become inactive.
Compatible with TruePVE and NextGenPVE servers. This plugin is not compatible with servers that have server.pve set true. It is possible to implement this, but I see no reason to do so as TruePVE provides the same protection and more.
Abandoned Bases checks each building on the server in order to determine which bases are inactive. Bases become inactive when all players authorized on the tool cupboard have been offline for the configured amount of days. When a base becomes inactive there are one of two outcomes.
1.) It will be immediately destroyed if it does not meet the configured minimum requirements.
2) It will become raidable for a configurable period of time, and when the time expires the base will be destroyed.
Each zone has a map marker, allows PVP and is surrounded by a dome that protects it from being attacked from the outside. Players who zone hop will be flagged with a PVP delay where they can still be attacked for a configurable amount of time.
Command /sar - requires abandonedbases.convert permission and converts a base into an abandoned base - this can be used on any base that you are authorized to and will cause the base to be destroyed when the timer expires
Command /sab - starts a manual check for each building on the server in order to determine which bases are inactive (requires abandonedbases.admin permission)
Command /sar radius - requires abandonedbases.convert permission and converts a base into an abandoned base and uses the specified radius for the dome / zone radius. Min and max radius are configurable.
Command /sar cancel - requires abandonedbases.convert and abandonedbases.convert.cancel permissions - completely cancels an event (destroys map marker and dome, disables PVP and prevents base from being despawned) effectively allowing the base to be taken over
Command /sar claim - requires abandonedbases.convert and abandonedbases.convert.claim permissions and converts a finished abandoned base into a claimed base that can be taken over by players
"Loot Required (SAR)"
"Foundations Required (SAR)"
"Walls Required (SAR)"
These options should be set realistically so that players cannot exploit the /sar command. I recommend Loot Required 100, Foundations Required 10, Walls Required 10 at minimum Command /sar purge - converts all bases on the server into abandoned bases for purge day (requires abandonedbases.convert, abandonedbases.admin and abandonedbases.purgeday permissions)
This is a two part command that requires you type /sab afterwards to begin. Requires abandonedbases.purgeday, abandonedbases.convert, and abandonedbases.admin permissions. Announcements are muted during purge to prevent spam. Time To Wait Between Spawns (15) will delay how quickly every base is converted Permissions (ADMINS REQUIRE PERMISSIONS TOO)
abandonedbases.convert - required to use /sar command
abandonedbases.convert.free - converting is free for users that have this permission
abandonedbases.convert.claim - required to use /sar claim command
abandonedbases.purgeday - required to use /sar purge command
abandonedbases.admin - required to use /sab and purge commands
abandonedbases.notices - users with this command can see event-opened notices from the plugin
abandonedbases.attack - lets players hunt bases and convert them by attacking if they're abandoned
abandonedbases.attack.time - shows players how much time is left before a base becomes abandoned when they attack it
abandonedbases.attack.lastseen - required to see the last time the player was online when attacking a base
Auto-add abandonedbases.immune to configuration if one does not exist already (lifetime set to "none")
- abandonedbases.immune will not be automatically added if the configuration contains a different immunity permission already
- abandonedbases.immune will give the user immunity to any base they've built at or are authed at from becoming abandoned
- abandonedbases.exclude does not provide immunity and is explicitly intended for the plugin to ignore the player only
- abandonedbases.exclude is intended for admins, mods, staff or helpers to be able to freely make repairs or auth at bases without interfering with the abandoned timer
abandonedbases.exclude:
excludes the user from being checked as an authorized user to a TC this permission should not be used to exempt users - exempt users with immunity by assigning them a permission from a role that has the lifetime set to "none" example roles that includes permission abandonedbases.immune and lifetime set to "none" to properly exempt a user or group by granting abandonedbases.immune to a user or group:
"Purge Settings": [ { "Permission": "abandonedbases.immune", "Lifetime (Days)": "none" }, { "Permission": "abandonedbases.vip", "Lifetime (Days)": "7" }, { "Permission": "abandonedbases.veteran", "Lifetime (Days)": "5" }, { "Permission": "abandonedbases.basic", "Lifetime (Days)": "3" } ], Purge Settings
Permission - The permission to use with this setting Lifetime (Days) - The amount of time in days before a base is considered abandoned. Set to none to not consider players with this permission as inactive. Conversions Before Destroying Base (1) - The amount of times a base can become abandoned before it is finally destroyed when the Despawn Timer expires. Comes with 3 configured permissions and lifetime days by default Abandoned Settings
Blacklisted Commands (command1, command2, command3) - Commands players are not allowed using at a raid or marked with PVP delay Marker Name (Minutes) (Abandoned Player Base [{time}m]) - Text shown on map marker for minutes Marker Name (Seconds) (Abandoned Player Base [{time}s]) - Text shown on map marker for seconds Foundations Required (4) - Minimum amount of foundations required to become raidable Walls Required (3) - Minimum amount of walls required to become raidable Sphere Amount (10) - Increase to darken the dome, or decrease to brighten it Sphere Radius (50) - How big the dome is in meters Use Dynamic Sphere Radius (false) - Allow the dome to detect the best dome size Max Dynamic Radius (75.0) - How maximum size of the dynamic radius Min Custom Sphere Radius - The minimum radius allowed when using /sar <radius> Max Custom Sphere Radius - The maximum radius allowed when using /sar <radius> PVP Delay (15.0) - The amount of time in seconds that players can take damage after leaving the dome Despawn Timer (1800.0) - The amount of time in seconds that players have to finish the raid Reset Despawn Timer When Base Is Attacked (true) - When enabled this will reset the above despawn timer back to 1800 seconds by default Do Not Destroy Base When Despawn Timer Expires (false) - Use this to override and prevent a base from being destroyed when Despawn Timer expires Backpacks Can Be Opened (true) - When enabled players will be allowed to open their backpacks while inside of the dome Backpacks Can Be Looted By Anyone (false) - Bypass PreventLooting plugin and allow backpacks to be lootable if enabled Corpses Can Be Looted By Anyone (true) - Bypass PreventLooting plugin and allow backpacks to be lootable if enabled Allow PVP (true) - Allows PVP while inside of the dome, and when flagged with a PVP delay Seconds Until Despawn After Looting (600) Seconds Until Despawn After Looting Resets When Damaged (true) Cancel Automated Events If Abandoned Owner Comes Online (false) Message Raiders When Event Ends During Automated Cancellation (true) Change Marker Color On First Entity Destroyed (true) Cooldown Between Conversions (3600) - Time required between each manual conversion of a base using /sar Cooldown Between Events (3600) - Time between each event - prevents looting, damage and using /sar claim Cooldown Between Cancel (3600) - Time the player must wait to use /sar cancel Cooldown Between Conversions Ignored During Purge (true) Cooldown Between Cancel Ignored During Purge (true) Cooldown Between Events Ignored During Purge (true) Prevent Hogging Ignored During Purge (false) Run Once On Server Startup (false) - Check for abandoned bases immediately after server startup is complete Run Every X Seconds (0.0) - The time in seconds to check for each building on the server in order to determine which bases are inactive Kill Inactive Sleepers (false) - When enabled players with a permission from purge settings will be executed when they are offline for the configured amount of lifetime days Let Players Kill Abandoned Sleepers (false) - Allows players to kill anyone sleeping inside of an abandoned base rather than the server killing them automatically Economics/ServerRewards Cost To Manually Convert (0 = disabled) - Used with /sar command to convert any base into an abandoned base Use Map Marker (true) Require Event Be Finished Before It Can Be Canceled (true) Various auto turret settings
Hooks (implemented in 2.1.4, updated in 2.2.5)
participants - anyone that has actively participated (excludes admin if configured, and those in noclip or vanish) - this should not contain null elements
participantIds - contains the userid of all participants - this list is better as anyone offline and dead will be included in this but not in the participants list because they would be null!
intruders - anyone currently inside of the event (does not exclude anyone) - this should not contain null elements
intruderIds - contains the userid of everyone inside of the event (does not exclude anyone) - this list is better as anyone offline and dead will be included in the list but not in the intruders list because they would be null!
void OnBaseSkipped(Vector3 v, ulong userid, HashSet<ulong> owners, string reason, BuildingManager.Building building) { } void OnTugboatSkipped(Vector3 v, ulong userid, HashSet<ulong> owners, string reason, BaseEntity entity) { } void OnShelterSkipped(Vector3 v, ulong userid, HashSet<ulong> owners, string reason, BaseEntity entity) { } void OnAbandonedBaseStarted(Vector3 center, float radius, bool AllowPVP, List<BasePlayer> intruders, List<ulong> intruderIds, List<BaseEntity> entities, List<BuildingPrivlidge> privs, bool canDropBackpack, bool automatedEvent, bool attackEvent, Guid guid) { } void OnAbandonedBaseEnded(Vector3 center, float radius, bool AllowPVP, List<BasePlayer> participants, List<ulong> participantIds, List<BaseEntity> entities, List<BuildingPrivlidge> privs, bool canDropBackpack, bool automatedEvent, bool attackEvent, Guid guid) { } void OnAbandonedBaseTurretsInitialized(List<AutoTurret> turrets,Vector3 center, float radius, bool AllowPVP, ulong raiderId, bool CanDropBackpack, List<BaseEntity> entities, List<BuildingPrivlidge> privs, bool canDropBackpack, bool automatedEvent, bool attackEvent, Guid guid) { } void OnRaidableDespawnUpdate(Vector3 center, float radius, bool AllowPVP, ulong raiderId, DateTime DespawnDateTime, List<BasePlayer> intruders, List<ulong> intruderIds, List<BaseEntity> entities, List<BuildingPrivlidge> privs, bool canDropBackpack, bool automatedEvent, bool attackEvent, Guid guid) { } void OnPlayerEnteredAbandonedBase(BasePlayer player, Vector3 center, float radius, bool AllowPVP, List<BasePlayer> intruders, List<ulong> intruderIds, List<BaseEntity> entities, List<BuildingPrivlidge> privs, bool canDropBackpack, bool automatedEvent, bool attackEvent, Guid guid) { } void OnPlayerExitAbandonedBase(BasePlayer player, Vector3 center, float radius, bool AllowPVP, List<BasePlayer> intruders, List<ulong> intruderIds, List<BaseEntity> entities, List<BuildingPrivlidge> privs, bool canDropBackpack, bool automatedEvent, bool attackEvent, Guid guid) { } void OnAbandonedBaseCompleted(Vector3 center, float radius, bool AllowPVP, List<BasePlayer> intruders, List<ulong> intruderIds, List<BaseEntity> entities, List<BuildingPrivlidge> privs, bool canDropBackpack, bool automatedEvent, bool attackEvent, Guid guid) { } void OnAbandonedBaseClaimed(BasePlayer player, Vector3 center, float radius, bool AllowPVP, List<BasePlayer> participants, List<ulong> participantIds, List<BaseEntity> entities, List<BuildingPrivlidge> privs, bool canDropBackpack, bool automatedEvent, bool attackEvent, Guid guid) { } void OnAbandonedBaseClaimFailed(BasePlayer player, Vector3 center, float radius, bool AllowPVP, List<BasePlayer> participants, List<ulong> participantIds, List<BaseEntity> entities, List<BuildingPrivlidge> privs, bool canDropBackpack, bool automatedEvent, bool attackEvent, Guid guid) { } object OnBlockRaidableBasesTeleport(BasePlayer player, Vector3 to) => null; // return true to allow the blocked teleport, return a string to block with your message instead void OnAbandonedBasePrivilegeDestroyed(Vector3 center, float radius, bool AllowPVP, List<BasePlayer> intruders, List<ulong> intruderIds, List<BaseEntity> entities, List<BuildingPrivlidge> privs, bool canDropBackpack, bool automatedEvent, bool attackEvent, BuildingPrivlidge priv, bool areCupboardsTaken, Guid guid) { } void OnPlayerPvpDelayStart(BasePlayer player, ulong userid, Vector3 eventPos, float radius, List<BasePlayer> intruders, List<ulong> intruderIds, List<BaseEntity> entities, List<BuildingPrivlidge> privs, bool canDropBackpack, bool automatedEvent, bool attackEvent, Guid guid) { } void OnPlayerPvpDelayExpiredII(BasePlayer player, ulong userid, Vector3 eventPos, float radius, List<BasePlayer> intruders, List<ulong> intruderIds, List<BaseEntity> entities, List<BuildingPrivlidge> privs, bool canDropBackpack, bool automatedEvent, bool attackEvent, Guid guid) { } void OnPlayerPvpDelayReset(BasePlayer player, ulong userid, Vector3 eventPos, float radius, List<BasePlayer> intruders, List<ulong> intruderIds, List<BaseEntity> entities, List<BuildingPrivlidge> privs, bool canDropBackpack, bool automatedEvent, bool attackEvent, Guid guid) { } void OnAbandonedBaseDespawned(Vector3 eventPos, float radius, bool allowPVP, List<BasePlayer> intruders, List<ulong> intruderIds, List<BaseEntity> entities, Guid guid) { } object OnProcessPlayerEntity(BaseEntity entity, HitInfo info) => null; // cancel to prevent the plugin from handling this entity, though it can still be an event entity already in some cases void OnAbandonedBaseDespawn(List<BaseEntity> entities) { } // only called when a base is not eligible to convert void OnAbandonedBaseDespawn(Vector3 center, float radius, bool AllowPVP, List<BasePlayer> intruders, List<ulong> intruderIds, List<BaseEntity> entities, List<BuildingPrivlidge> privs, bool canDropBackpack, bool automatedEvent, bool attackEvent, Guid guid) { } void OnAbandonedBaseStart(Vector3 center, float radius, bool allowPVP, List<BasePlayer> intruders, List<ulong> intruders, List<ulong> intruderIds, List<BaseEntity> entities, bool canDropBackpack, bool automatedEvent, bool attackEvent, Guid guid) Added OnEntityEnteredAbandonedBase(BaseEntity entity, Vector3 center, float radius, bool allowPVP, List<BasePlayer> intruders, List<ulong> intruderIds, List<BaseEntity> entities, List<BuildingPrivlidge> privs, bool canDropBackpack, bool automatedEvent, Guid guid) Convert Bases and/or Claim Bases
Credits:
misticos for giving permission to use some of his code 🙂- #rust
- #rust plugin
- (and 6 more)
-
Sortify
Introducing Sortify, the best plugin for making it easy to sort and filter boxes and containers from various plugins, all without the need for complex integrations. Sortify offers an intuitive solution to easily categorize your items, all within an elegant and efficient Rust-style user interface.
Key Features:
Custom Categories: With Sortify, you can create and customize your own categories to suit your unique needs. Rust style user interface: The plugin has a minimalistic and aesthetic Rust style user interface. Ease of Use: Sortify is designed with ease of use in mind. Whether you're a beginner or an experienced user, you'll find Sortify incredibly easy to use. It does not require complex training or any action on the part of the player, which allows the player to immediately begin organizing elements effectively.
Permissions:
sortify.allow - permission to use the plugin
Video at moment version 1.0.0 (after the sorting scheme was changed, see gif):
- #sorting
- #filtering
-
(and 6 more)
Tagged with:
-
Bank Heist
Spawns custom bank hesits at specified locations.
Optional Plugins
Kits umod
Part 1: Optional Bank Prefab Setup
Part 2: Bank Plugin Setup
Custom Prefabs:
Prefab name should be labled as "bankheist" or "bankheist_1" for multiple banks.
Permission
bankheist.manage // Allow admins to setup bank events bankheist.worker // Stop guards attacking bank workers Commands
1. /bse <type>, spawn prefab entity of type for setup 2. /blp create|remove|update <profile-name>, manage bank loot profiles 3. /bgp create|remove|update|stationary <profile-name>, manage bank guard profiles 4. /bdp create|remove|update <profile-name>, manage bank door profiles 5. /bhm create|remove <bank-name>, create or remove a bank 6. /bhm parent <bank-name> <monument-name>, setup a parent monument for the bank 7. /bhm <guard|loot|door> profile <bank-name> <id> <profile-name>, setup profile for a door or loot to use 8. /bhm <guard|loot|door> remove <bank-name> <id>, remove entity from a specified bank 9. /bhm <guard|loot|door> create <bank-name>, create entity for the specified bank 10. /bhm mmr <bank-name> <radius>, map marker radius 11. /bhm pdr <bank-name> <radius>, player detection radius 12. /bhm tbr <bank-name> <seconds>, seconds before bank will reset 13. /bhm ato <bank-name> <seconds>, seconds before alarm will disable 0 = until bank reset 14. /bhm debug <bank-name> <option>, enable debug information options: loot, door, guard, info, everything 15. /bhm monuments Data
{ "BankEntries": [ { "bank display name": "Test Bank", "parent monument name": null, "time between resets": 1800.0, "alarm timeout seconds": 120.0, "alarm disable when all crates are looted": true, "spawn position": { "x": -668.1162, "y": 24.8576756, "z": 15.70411 }, "spawn rotation": { "x": 0.0, "y": 0.0, "z": 0.0 }, "player detection origin": { "x": 0.0, "y": 0.0, "z": 0.0 }, "player detection radius": 100.0, "map marker origin": { "x": 0.0, "y": 0.0, "z": 0.0 }, "map marker radius": 100.0, "map marker opacity": 0.6, "map marker ready color": "#2eff74", "map marker reset color": "#ff2e2e", "map marker outline color": "#ffffff", "loot spawn group entries": [ { "Id": 3177, "Prefab": "assets/prefabs/deployable/chinooklockedcrate/codelockedhackablecrate.prefab", "Profile": "loot1", "Position": { "x": -0.04071045, "y": 0.04530716, "z": 0.196435928 }, "Rotation": { "x": -0.00194311875, "y": 283.140167, "z": 359.913574 } } ], "door spawn group entries": [ { "Id": 3593, "Prefab": "assets/prefabs/building/wall.frame.garagedoor/wall.frame.garagedoor.prefab", "Profile": "door1", "Position": { "x": 1.49249268, "y": 0.166625977, "z": -6.467394 }, "Rotation": { "x": 0.0, "y": 13.3333187, "z": 0.0 } }, { "Id": 9537, "Prefab": "assets/prefabs/building/wall.frame.garagedoor/wall.frame.garagedoor.prefab", "Profile": "door1", "Position": { "x": 4.67230225, "y": 0.354122162, "z": 5.18401432 }, "Rotation": { "x": 0.0, "y": 13.3333187, "z": 0.0 } } ], "npcs spawn group entries": [ { "Id": 1765, "Prefab": null, "Profile": "guard1", "Position": { "x": 3.79986572, "y": -0.289468765, "z": -7.350936 }, "Rotation": { "x": 0.0, "y": 0.0, "z": 0.0 } }, { "Id": 1227, "Prefab": null, "Profile": "guard1", "Position": { "x": 7.863037, "y": -0.0256900787, "z": 4.15430927 }, "Rotation": { "x": 0.0, "y": 0.0, "z": 0.0 } }, { "Id": 2957, "Prefab": null, "Profile": "guard1", "Position": { "x": 1.5680542, "y": 0.0291461945, "z": 4.185258 }, "Rotation": { "x": 0.0, "y": 0.0, "z": 0.0 } }, { "Id": 3914, "Prefab": null, "Profile": "guard1", "Position": { "x": -0.6699219, "y": 0.08488846, "z": -3.12963676 }, "Rotation": { "x": 0.0, "y": 0.0, "z": 0.0 } } ] } ] } Loot Profiles Example
{ "ProfileEntries": { "loot1": { "MinItems": 2, "MaxItems": 5, "SkinId": 0, "HackableSeconds": 60.0, "LootItems": [ { "Shortname": "shotgun.m4", "ItemName": null, "SkinID": 0, "MinAmount": 1, "MaxAmount": 1, "IsBlueprint": false }, { "Shortname": "rifle.m39", "ItemName": null, "SkinID": 0, "MinAmount": 1, "MaxAmount": 1, "IsBlueprint": false }, { "Shortname": "rifle.semiauto", "ItemName": null, "SkinID": 0, "MinAmount": 1, "MaxAmount": 1, "IsBlueprint": false }, { "Shortname": "military flamethrower", "ItemName": null, "SkinID": 0, "MinAmount": 1, "MaxAmount": 1, "IsBlueprint": false }, { "Shortname": "weapon.mod.extendedmags", "ItemName": null, "SkinID": 0, "MinAmount": 1, "MaxAmount": 1, "IsBlueprint": false }, { "Shortname": "smg.2", "ItemName": null, "SkinID": 0, "MinAmount": 1, "MaxAmount": 1, "IsBlueprint": false }, { "Shortname": "smg.thompson", "ItemName": null, "SkinID": 0, "MinAmount": 1, "MaxAmount": 1, "IsBlueprint": false }, { "Shortname": "homingmissile.launcher", "ItemName": null, "SkinID": 0, "MinAmount": 1, "MaxAmount": 1, "IsBlueprint": false }, { "Shortname": "rifle.bolt", "ItemName": null, "SkinID": 0, "MinAmount": 1, "MaxAmount": 1, "IsBlueprint": false }, { "Shortname": "rifle.l96", "ItemName": null, "SkinID": 0, "MinAmount": 1, "MaxAmount": 1, "IsBlueprint": false }, { "Shortname": "ammo.rocket.basic", "ItemName": null, "SkinID": 0, "MinAmount": 100, "MaxAmount": 100, "IsBlueprint": false }, { "Shortname": "ammo.rocket.hv", "ItemName": null, "SkinID": 0, "MinAmount": 100, "MaxAmount": 100, "IsBlueprint": false }, { "Shortname": "ammo.rifle.explosive", "ItemName": null, "SkinID": 0, "MinAmount": 1000, "MaxAmount": 1000, "IsBlueprint": false }, { "Shortname": "ammo.rocket.mlrs", "ItemName": null, "SkinID": 0, "MinAmount": 100, "MaxAmount": 100, "IsBlueprint": false }, { "Shortname": "ammo.rocket.fire", "ItemName": null, "SkinID": 0, "MinAmount": 100, "MaxAmount": 100, "IsBlueprint": false }, { "Shortname": "submarine.torpedo.straight", "ItemName": null, "SkinID": 0, "MinAmount": 100, "MaxAmount": 100, "IsBlueprint": false }, { "Shortname": "rifle.ak", "ItemName": null, "SkinID": 0, "MinAmount": 1, "MaxAmount": 1, "IsBlueprint": false }, { "Shortname": "hmlmg", "ItemName": null, "SkinID": 0, "MinAmount": 1, "MaxAmount": 1, "IsBlueprint": false }, { "Shortname": "smg.mp5", "ItemName": null, "SkinID": 0, "MinAmount": 1, "MaxAmount": 1, "IsBlueprint": false }, { "Shortname": "rifle.sks", "ItemName": null, "SkinID": 0, "MinAmount": 1, "MaxAmount": 1, "IsBlueprint": false }, { "Shortname": "rocket.launcher", "ItemName": null, "SkinID": 0, "MinAmount": 1, "MaxAmount": 1, "IsBlueprint": false }, { "Shortname": "lmg.m249", "ItemName": null, "SkinID": 0, "MinAmount": 1, "MaxAmount": 1, "IsBlueprint": false } ] } } } Door Profiles Example
{ "ProfileEntries": { "Test": { "Health": 10000.0, "SkinId": 0 } } } Guard Profiles Example
{ "ProfileEntries": { "Test": { "Version": 0.0, "Prefab": "assets/rust.ai/agents/npcplayer/humannpc/scientist/scientistnpc_heavy.prefab", "Names": "Bank Guard", "Gender": 0, "SkinTone": 0, "Underwear": 0, "WearItems": [ { "ShortName": "jumpsuit.suit.blue", "SkinID": 0 } ], "BeltItems": [ { "ShortName": "pistol.prototype17", "Amount": 1, "SkinID": 0, "Mods": [], "Ammo": "ammo.pistol" }, { "ShortName": "syringe.medical", "Amount": 4, "SkinID": 0, "Mods": [], "Ammo": null }, { "ShortName": "smg.mp5", "Amount": 1, "SkinID": 0, "Mods": [], "Ammo": "ammo.pistol" } ], "Kit": "", "DestroyTrapsOnDeath": false, "Health": 100.0, "InstantDeathIfHitHead": false, "RoamRange": 10.0, "ChaseRange": 80.0, "SenseRange": 40.0, "ListenRange": 20.0, "DamageRange": 80.0, "ShortRange": 10.0, "AttackLengthMaxShortRangeScale": 2.0, "AttackRangeMultiplier": 1.0, "CheckVisionCone": false, "VisionCone": 286.0, "HostileTargetsOnly": false, "DisplaySashTargetsOnly": false, "IgnoreSafeZonePlayers": true, "IgnoreSleepingPlayers": true, "IgnoreWoundedPlayers": true, "NpcAttackMode": 2, "NpcSenseRange": 40.0, "NpcDamageScale": 1.0, "NpcWhitelist": "FrankensteinPet,14922524", "NpcBlacklist": "11162132011012", "AnimalAttackMode": 0, "AnimalSenseRange": 20.0, "AnimalDamageScale": 1.0, "AnimalWhitelist": "", "AnimalBlacklist": "11491311214163", "DamageScale": 0.75, "CanTurretTarget": true, "DamageScaleFromTurret": 0.5, "DamageScaleToTurret": 1.0, "AimConeScale": 2.0, "DisableRadio": false, "SleepDistance": 100.0, "Speed": 5.0, "AreaMask": 1, "AgentTypeID": -1372625422, "BaseOffSet": 0.0, "HomePosition": "", "MemoryDuration": 10.0, "States": [ "RoamState", "ChaseState", "CombatState" ], "LootPreset": "Default-Npc-KpucTaJl", "CratePrefab": "", "IsRemoveCorpse": true, "GroupAlertEnabled": false, "GroupAlertRadius": 40.0, "GroupAlertReceivers": "", "HeadDamageScale": 1.0, "BodyDamageScale": 1.0, "LegDamageScale": 1.0, "CanRunAwayWater": true, "CanSleep": true, "CanRaid": false, "Stationary": false, "UseUnderGround": false } } } Configuration
{ "enable notifications": true, "enable visible bubble": true, "enable visible marker": true, "enable alarm trigger": true, "enable eliminate guards": true, "enable zone messages": true, "prevent worker looting bank": true, "prevent teleport from bank": false, "blocked zone commands": [ "home", "tpr", "kit", "bandit", "outpost" ], "spawnable prefabs": { "vault-door": "assets/bundled/prefabs/modding/asset_store/bankheist_package/bankheist_vol03/prefabs/door.vault.static.prefab", "garage-door": "assets/prefabs/building/wall.frame.garagedoor/wall.frame.garagedoor.prefab", "single-door": "assets/prefabs/building/door.hinged/door.hinged.toptier.prefab", "double-door": "assets/prefabs/building/door.double.hinged/door.double.hinged.toptier.prefab", "elite-crate": "assets/bundled/prefabs/radtown/crate_elite.prefab", "crate-normal": "assets/bundled/prefabs/radtown/crate_normal.prefab", "crate-normal_2": "assets/bundled/prefabs/radtown/crate_normal_2.prefab", "hackable-crate": "assets/prefabs/deployable/chinooklockedcrate/codelockedhackablecrate.prefab" } }
-
Photo Sender (Discord)
By the-bandit in Plugins
Your players will be able to publish images at any time on your discord server using the polaroid of the game and thus its location the name of the server on which the player will play.
Plugin language : EN , FR
Image format for sending: 854x480 (limited due to rust)
Type of format for sending: .png
Contents :
SendPhotoDiscord.cs Permissions oxide :
oxide.grant group default SendPhotoDiscord.use oxide.grant group vip SendPhotoDiscord.vip Permissions carbon:
carbon.grant group default SendPhotoDiscord.use carbon.grant group vip SendPhotoDiscord.vip
Install : rust\oxide\plugins\SendPhotoDiscord.cs
Config : rust\oxide\config\SendPhotoDiscord.json
{ "List Channel Discord (webHooks URL) Max (8) !": { "1": { "Url webHooks": "follow the tutorial", "Name": "Channel 1" }, "2": { "Url webHooks": "", "Name": "Channel 2" }, "3": { "Url webHooks": "", "Name": "Channel 3" } }, "Url avatar ( https://exemple.com/?id={SteamId} )": "", "Enable location": true, "Enable server name": true, "Enable map name": true, "Enable server ip": true, "Enable comments": true, "The minimum limit of letter to comment": 3, "Photo limit per player": 3, "How long should the player wait": 600, "Photo limit per VIP players": 1, "How long should the VIP player wait": 10, "Save photos to inventory": false, "The text ( Localization )": " > :triangular_flag_on_post: Location : **{PositionPlayerCordinat}** \n", "The text ( server name )": " > :mega: Server : **{NameServer}** \n", "The text ( map name )": " > :map: Map : **{NameMap}** \n", "The text ( server ip )": " > :desktop: Ip : **{IpServer}**:**{PortServer}** \n", "The text ( comment )": "\n {CommentairePhoto} " } Tutorial webHooks :
restart the plugin for any modification of the SendPhotoDiscord.json file
oxide.reload SendPhotoDiscord
-
Bot Purge Event
Supports Economics & Server Rewards
You can use either or, both at the same time if needed, or both set to false.
The Event
Challenge your players and have them compete for the most amount of NPC/Bot kills for the duration of the event.
The highest scoring player will earn the loot and bragging rights.
Features
Headshot "Crunch" Lets your players know its time to take out some bots.
Leaderboard tracker, counts kills of your top players, and also counts down the time.
(Kill counter sits on right side of compass.)
Tie breaker implemented to randomly decide a winner, on delay for Dramatics 😉
At the end the winner will receive whatever loot you specified in the table. (Skinning and Custom names in config)
And now you can reward them Economics balance or Server Rewards Points.
The Winner will now be logged Via Discord and state if it was a tie breaker or an uncontested win.
Commands
/Purge - Manually Starts the event
/PurgeEnd - Manually End
These commands may vary due to what you set in config.
Start and end can be executed from Rcon
HUD USERS
HUD CONFIG ADDITION
Your color and Icon taste may differ.
Feel free to Change it.
, { "Hook OnEventStart": "OnBotPurgeEventStart", "Hook OnEventStop": "OnBotPurgeEventEnd", "Name": "BotPurgeEvent", "Active color": "#f02020", "Icon": "https://cdn.discordapp.com/attachments/1131387423838961747/1149341840391278642/BOTPURGEEVENTICON.png", "Color": "#A020F0", "Enable": true }
HUD .cs File Custom Events ADDITION
private void OnBotPurgeEventStart() => OnEventTouch(System.Reflection.MethodBase.GetCurrentMethod().Name); private void OnBotPurgeEventEnd() => OnEventTouch(System.Reflection.MethodBase.GetCurrentMethod().Name);
RUNNING COMMANDS
Use {id} to target your player who won.
Config ex.
{ "Leaderboard Options": { "Enable Leaderboard UI?": true, "Leaderboard UI Anchor Min": "0.5 1", "Leaderboard UI Anchor Max": "0.5 1", "Leaderboard UI Offset Min": "250 -150", "Leaderboard UI Offset Max": "450 0", "Leaderboard UI Font": "permanentmarker.ttf" }, "Event Options": { "Enable Scheduled Events?": true, "Purge Command": "purge", "Purge End Command": "purgeend", "Min Random Event Interval in Seconds": 3600, "Max Random Event Interval in Seconds": 7200, "Minimum Players to Start Event": 2, "Event Duration in Seconds": 600, "Enable Start FX?": true, "Enable Chat Countdown?": true, "Chat Countdown Interval in Minutes": 5, "Webhook URL (Leave blank to disable)": "" }, "Reward Options": { "Enable Winner Commands?": true, "Winner Commands": [ "inventory.giveto {id} rifle.ak 1", "inventory.giveto {id} paper 10" ], "Enable Economic Payout?": true, "Economic Payout Amount": 100.0, "Enable Server Rewards Payout?": true, "Server Rewards Payout Amount": 100, "Enable Winner Items?": true, "Min Items to Give": 1, "Max Items to Give": 2, "Winner Items": [ { "Shortname": "blood", "SkinID": 0, "Probability (0-1)": 0.8, "Custom Name": "", "Minimum Amount": 10, "Maximum Amount": 20 }, { "Shortname": "bleach", "SkinID": 0, "Probability (0-1)": 0.2, "Custom Name": "", "Minimum Amount": 1, "Maximum Amount": 3 } ] } }
Lang ex.
{ "EventActive": "[<color=#880808>BOT PURGE EVENT</color>] \nThe Bot Purge Event has started! <color=#884808>Kill</color> as many bots as you can!", "EventAlreadyRunning": "[<color=#880808>BOT PURGE EVENT</color>] \nThe Event is already running.", "EventNotRunning": "[<color=#880808>BOT PURGE EVENT</color>] \nThe Event is not currently running.", "NoPermissionStart": "[<color=#880808>BOT PURGE EVENT</color>] \nYou don't have permission to start the Bot Purge Event.", "NoPermissionEnd": "[<color=#880808>BOT PURGE EVENT</color>] \nYou don't have permission to end the Bot Purge Event.", "ManuallyEnded": "[<color=#880808>BOT PURGE EVENT</color>] \nThe Event was manually Ended.", "NoParticipants": "[<color=#880808>BOT PURGE EVENT</color>] \nThe Event has ended! Unfortunately, no one participated.", "CountdownText": "[<color=#880808>BOT PURGE EVENT</color>] \nThe Bot Purge Event will end in <color=#880808>{0}</color> minute(s).", "WinnerAnnounce": "{0}", "TieMessage": "[<color=#880808>BOT PURGE EVENT</color>] \nThe Bot Purge Event has ended! There was a tie among <color=#880808>{0}</color> players with <color=#880808>{1}</color> kills.", "TieWinnerMessage": "[<color=#880808>BOT PURGE EVENT</color>]\nThe winner was randomly selected: <color=#880808>{0}</color> with <color=#880808>{1}</color> kills!\n", "HasEnded": "[<color=#880808>BOT PURGE EVENT</color>] \nThe Bot Purge Event has ended!", "EndMessage": "[<color=#880808>BOT PURGE EVENT</color>]\n\nBot Purge Rewards\n\nThe Winner is <color=#880888>{0}</color> with <color=#884808>{1}</color> kill(s)!", "RewardMessage": "\n<color=#880848>{0}</color> <color=#888808>x</color> <color=#088848>{1}</color>", "EconomicRewardMessage": "\n<color=#880888>{0}</color> received <color=#bb9b65>$</color><color=#85bb65>{1}</color>!", "PlayerEarnedMessage": "\n<color=#880888>{0}</color> earned:\n{1}", "ServerRewardsMessage": "\n<color=#880888>{0}</color> also received <color=#85bb65>{1}</color><color=#bb9b65> RP</color>!" }
Thank you!
Any questions or suggestions feel free to reach out, thank you for viewing - Wrecks