Jump to content

1 Screenshot

  • 30.2k
  • 772
  • 71.35 kB

depends on

Works with

About Monument Lock

A standard or custom monument locks to the first player (and team) who loots, shoots, hacks a crate or swipes a card, granting them total access while locking others out.

Submit bugs or make features requests over at our discord - invite (July 31, 2023) https://discord.gg/GTCapPsz

 

Use Cases

PVE Servers:
Many PVE players share monuments and take turns completing puzzles (coop or solo), and the coordination is usually done through chat. Most of the time this works, but once in a while there are some bad apples who ignore basic sportsmanship.

PVP Servers:
Most PVP servers wouldn't use the locking feature, but some might want the broadcasting feature to encourage more PVP.

 

Features

  • A monument locks to the first player (and team) who loots, shoots, hacks or swipes, granting them total access.
  • A locked monument may prevent other players from looting and/or card reader access (configurable).
  • Unauthorized players cannot do damage to players or NPCs, nor can they loot their bodies (configurable).
  • Unauthorized players cannot hack locked crates within a monument's bounds. (configurable)
  • A [locked monument] message is broadcast stating player name, monument display name, and grid location.
  • The lock timer expires after 10 min (configurable) without lock triggers (looting, etc).
  • Default true for all triggers: attacking, looting, picking up items, moving your inventory items, card swipe.
  • Places a red dot marker on the map at each locked monument.

 

Future

  • admin commands (force unlock, global unlock/lock, etc)
  • display hud
  • advanced stats tracking

 

Permissions

monumentlock.use: allows players to lock/unlock monuments, and be impacted by those states
monumentlock.commands: allows players to use /mlock in chat to lock via command, and admin to use mlock in console
monumentlock.admin: allows admins to perform admin functions via console.

 

Commands (chat)

/mlock <shortName>: Locks a monument to a player using this command
/mlock <shortName> <playerName>:Locks a monument to a player with the name of <playerName>.
/mlock list: List of available monument shortNames.
/mlock clear: Removes all markers from map.
/mlock unlock (or /mu): Unlocks any monument that was previously locked to you and your team.

 

Commands (console)

Please use mlock.fresh after each map wipe, and for the first time.  This ensures that all your map's monuments (custom monuments too) are included in the config file

mlock.import -- Adds all monuments from Monument Finder into configuration, except the Exceptions array.
mlock.default -- Resets monuments to default values.
mlock.remove -- Removes all monuments in configuration.
mlock.fresh -- Performs mlock.remove then mlock.import.

 

Configuration

Super important: please do not edit the Short Name, only edit the Display Name.  The Short Name is used for identification purposes and editing that name will likely result in errors.

{
  "Monuments": [
    {
      "Enabled: Is Monument enabled?": true,
      "Lock Looting: When a player enters this monument while locked, do we lock their looting abilities?": true,
      "Cancel Cards: When a player enters this monument while locked, do we lock their card swiping abilities?": true,
      "Lock Crate: When a player enters this monument while locked, do we lock their hacking on locked crates?": true,
      "Broadcasting: Do we want this plugin to broadcast to the server when this monument is locked?": true,
      "Monument Display Name": "Large Harbor",
      "Monument Prefab Name": "assets/bundled/prefabs/autospawn/monument/harbor/harbor_1.prefab",
      "Monument Short Name": "harbor_1",
      "Monument Grid Position": null,
      "Lock Attack: When a player enters a locked monument, do we lock their attacking abilities?": true,
      "Lock timer (600 = 10 min)?": 600,
      "Only timer expiration will unlock a monument ": false
    },
    {
      "Enabled: Is Monument enabled?": true,
      "Lock Looting: When a player enters this monument while locked, do we lock their looting abilities?": true,
      "Cancel Cards: When a player enters this monument while locked, do we lock their card swiping abilities?": true,
      "Lock Crate: When a player enters this monument while locked, do we lock their hacking on locked crates?": true,
      "Broadcasting: Do we want this plugin to broadcast to the server when this monument is locked?": true,
      "Monument Display Name": "Small Harbor",
      "Monument Prefab Name": "assets/bundled/prefabs/autospawn/monument/harbor/harbor_2.prefab",
      "Monument Short Name": "harbor_2",
      "Monument Grid Position": null,
      "Lock Attack: When a player enters a locked monument, do we lock their attacking abilities?": true,
      "Lock timer (600 = 10 min)?": 600,
      "Only timer expiration will unlock a monument ": false
    },
    {
      "Enabled: Is Monument enabled?": true,
      "Lock Looting: When a player enters this monument while locked, do we lock their looting abilities?": true,
      "Cancel Cards: When a player enters this monument while locked, do we lock their card swiping abilities?": true,
      "Lock Crate: When a player enters this monument while locked, do we lock their hacking on locked crates?": true,
      "Broadcasting: Do we want this plugin to broadcast to the server when this monument is locked?": true,
      "Monument Display Name": "Arctic Research Base",
      "Monument Prefab Name": "assets/bundled/prefabs/autospawn/monument/arctic_bases/arctic_research_base_a.prefab",
      "Monument Short Name": "arctic_research_base_a",
      "Monument Grid Position": null,
      "Lock Attack: When a player enters a locked monument, do we lock their attacking abilities?": true,
      "Lock timer (600 = 10 min)?": 600,
      "Only timer expiration will unlock a monument ": false
    },
    {
      "Enabled: Is Monument enabled?": true,
      "Lock Looting: When a player enters this monument while locked, do we lock their looting abilities?": true,
      "Cancel Cards: When a player enters this monument while locked, do we lock their card swiping abilities?": true,
      "Lock Crate: When a player enters this monument while locked, do we lock their hacking on locked crates?": true,
      "Broadcasting: Do we want this plugin to broadcast to the server when this monument is locked?": true,
      "Monument Display Name": "Military Tunnel",
      "Monument Prefab Name": "assets/bundled/prefabs/autospawn/monument/large/military_tunnel_1.prefab",
      "Monument Short Name": "military_tunnel_1",
      "Monument Grid Position": null,
      "Lock Attack: When a player enters a locked monument, do we lock their attacking abilities?": true,
      "Lock timer (600 = 10 min)?": 600,
      "Only timer expiration will unlock a monument ": false
    },
    {
      "Enabled: Is Monument enabled?": true,
      "Lock Looting: When a player enters this monument while locked, do we lock their looting abilities?": true,
      "Cancel Cards: When a player enters this monument while locked, do we lock their card swiping abilities?": true,
      "Lock Crate: When a player enters this monument while locked, do we lock their hacking on locked crates?": true,
      "Broadcasting: Do we want this plugin to broadcast to the server when this monument is locked?": true,
      "Monument Display Name": "Power Plant",
      "Monument Prefab Name": "assets/bundled/prefabs/autospawn/monument/large/powerplant_1.prefab",
      "Monument Short Name": "powerplant_1",
      "Monument Grid Position": null,
      "Lock Attack: When a player enters a locked monument, do we lock their attacking abilities?": true,
      "Lock timer (600 = 10 min)?": 600,
      "Only timer expiration will unlock a monument ": false
    },
    {
      "Enabled: Is Monument enabled?": true,
      "Lock Looting: When a player enters this monument while locked, do we lock their looting abilities?": true,
      "Cancel Cards: When a player enters this monument while locked, do we lock their card swiping abilities?": true,
      "Lock Crate: When a player enters this monument while locked, do we lock their hacking on locked crates?": true,
      "Broadcasting: Do we want this plugin to broadcast to the server when this monument is locked?": true,
      "Monument Display Name": "Dome",
      "Monument Prefab Name": "assets/bundled/prefabs/autospawn/monument/small/sphere_tank.prefab",
      "Monument Short Name": "sphere_tank",
      "Monument Grid Position": null,
      "Lock Attack: When a player enters a locked monument, do we lock their attacking abilities?": true,
      "Lock timer (600 = 10 min)?": 600,
      "Only timer expiration will unlock a monument ": false
    },
    {
      "Enabled: Is Monument enabled?": true,
      "Lock Looting: When a player enters this monument while locked, do we lock their looting abilities?": true,
      "Cancel Cards: When a player enters this monument while locked, do we lock their card swiping abilities?": true,
      "Lock Crate: When a player enters this monument while locked, do we lock their hacking on locked crates?": true,
      "Broadcasting: Do we want this plugin to broadcast to the server when this monument is locked?": true,
      "Monument Display Name": "Large Oil",
      "Monument Prefab Name": "OilrigAI2",
      "Monument Short Name": "OilrigAI2",
      "Monument Grid Position": null,
      "Lock Attack: When a player enters a locked monument, do we lock their attacking abilities?": true,
      "Lock timer (600 = 10 min)?": 600,
      "Only timer expiration will unlock a monument ": false
    },
    {
      "Enabled: Is Monument enabled?": true,
      "Lock Looting: When a player enters this monument while locked, do we lock their looting abilities?": true,
      "Cancel Cards: When a player enters this monument while locked, do we lock their card swiping abilities?": true,
      "Lock Crate: When a player enters this monument while locked, do we lock their hacking on locked crates?": true,
      "Broadcasting: Do we want this plugin to broadcast to the server when this monument is locked?": true,
      "Monument Display Name": "Small Oil",
      "Monument Prefab Name": "OilrigAI",
      "Monument Short Name": "OilrigAI",
      "Monument Grid Position": null,
      "Lock Attack: When a player enters a locked monument, do we lock their attacking abilities?": true,
      "Lock timer (600 = 10 min)?": 600,
      "Only timer expiration will unlock a monument ": false
    },
    {
      "Enabled: Is Monument enabled?": true,
      "Lock Looting: When a player enters this monument while locked, do we lock their looting abilities?": true,
      "Cancel Cards: When a player enters this monument while locked, do we lock their card swiping abilities?": true,
      "Lock Crate: When a player enters this monument while locked, do we lock their hacking on locked crates?": true,
      "Broadcasting: Do we want this plugin to broadcast to the server when this monument is locked?": true,
      "Monument Display Name": "Launch",
      "Monument Prefab Name": "assets/bundled/prefabs/autospawn/monument/large/launch_site_1.prefab",
      "Monument Short Name": "launch_site_1",
      "Monument Grid Position": null,
      "Lock Attack: When a player enters a locked monument, do we lock their attacking abilities?": true,
      "Lock timer (600 = 10 min)?": 600,
      "Only timer expiration will unlock a monument ": false
    },
    {
      "Enabled: Is Monument enabled?": true,
      "Lock Looting: When a player enters this monument while locked, do we lock their looting abilities?": true,
      "Cancel Cards: When a player enters this monument while locked, do we lock their card swiping abilities?": true,
      "Lock Crate: When a player enters this monument while locked, do we lock their hacking on locked crates?": true,
      "Broadcasting: Do we want this plugin to broadcast to the server when this monument is locked?": true,
      "Monument Display Name": "Milly Base",
      "Monument Prefab Name": "assets/bundled/prefabs/autospawn/monument/military_bases/desert_military_base_a.prefab",
      "Monument Short Name": "desert_military_base_a",
      "Monument Grid Position": null,
      "Lock Attack: When a player enters a locked monument, do we lock their attacking abilities?": true,
      "Lock timer (600 = 10 min)?": 600,
      "Only timer expiration will unlock a monument ": false
    },
    {
      "Enabled: Is Monument enabled?": true,
      "Lock Looting: When a player enters this monument while locked, do we lock their looting abilities?": true,
      "Cancel Cards: When a player enters this monument while locked, do we lock their card swiping abilities?": true,
      "Lock Crate: When a player enters this monument while locked, do we lock their hacking on locked crates?": true,
      "Broadcasting: Do we want this plugin to broadcast to the server when this monument is locked?": true,
      "Monument Display Name": "Water Treatment Plant",
      "Monument Prefab Name": "assets/bundled/prefabs/autospawn/monument/large/water_treatment_plant_1.prefab",
      "Monument Short Name": "water_treatment_plant_1",
      "Monument Grid Position": null,
      "Lock Attack: When a player enters a locked monument, do we lock their attacking abilities?": true,
      "Lock timer (600 = 10 min)?": 600,
      "Only timer expiration will unlock a monument ": false
    },
    {
      "Enabled: Is Monument enabled?": true,
      "Lock Looting: When a player enters this monument while locked, do we lock their looting abilities?": true,
      "Cancel Cards: When a player enters this monument while locked, do we lock their card swiping abilities?": true,
      "Lock Crate: When a player enters this monument while locked, do we lock their hacking on locked crates?": true,
      "Broadcasting: Do we want this plugin to broadcast to the server when this monument is locked?": true,
      "Monument Display Name": "Satellite Dish",
      "Monument Prefab Name": "assets/bundled/prefabs/autospawn/monument/small/satellite_dish.prefab",
      "Monument Short Name": "satellite_dish",
      "Monument Grid Position": null,
      "Lock Attack: When a player enters a locked monument, do we lock their attacking abilities?": true,
      "Lock timer (600 = 10 min)?": 600,
      "Only timer expiration will unlock a monument ": false
    },
    {
      "Enabled: Is Monument enabled?": true,
      "Lock Looting: When a player enters this monument while locked, do we lock their looting abilities?": true,
      "Cancel Cards: When a player enters this monument while locked, do we lock their card swiping abilities?": true,
      "Lock Crate: When a player enters this monument while locked, do we lock their hacking on locked crates?": true,
      "Broadcasting: Do we want this plugin to broadcast to the server when this monument is locked?": true,
      "Monument Display Name": "Underwater Lab A",
      "Monument Prefab Name": "assets/bundled/prefabs/autospawn/monument/underwater_lab/underwater_lab_a.prefab",
      "Monument Short Name": "underwater_lab_a",
      "Monument Grid Position": null,
      "Lock Attack: When a player enters a locked monument, do we lock their attacking abilities?": true,
      "Lock timer (600 = 10 min)?": 600,
      "Only timer expiration will unlock a monument ": false
    },
    {
      "Enabled: Is Monument enabled?": true,
      "Lock Looting: When a player enters this monument while locked, do we lock their looting abilities?": true,
      "Cancel Cards: When a player enters this monument while locked, do we lock their card swiping abilities?": true,
      "Lock Crate: When a player enters this monument while locked, do we lock their hacking on locked crates?": true,
      "Broadcasting: Do we want this plugin to broadcast to the server when this monument is locked?": true,
      "Monument Display Name": "Underwater Lab B",
      "Monument Prefab Name": "assets/bundled/prefabs/autospawn/monument/underwater_lab/underwater_lab_b.prefab",
      "Monument Short Name": "underwater_lab_b",
      "Monument Grid Position": null,
      "Lock Attack: When a player enters a locked monument, do we lock their attacking abilities?": true,
      "Lock timer (600 = 10 min)?": 600,
      "Only timer expiration will unlock a monument ": false
    },
    {
      "Enabled: Is Monument enabled?": true,
      "Lock Looting: When a player enters this monument while locked, do we lock their looting abilities?": true,
      "Cancel Cards: When a player enters this monument while locked, do we lock their card swiping abilities?": true,
      "Lock Crate: When a player enters this monument while locked, do we lock their hacking on locked crates?": true,
      "Broadcasting: Do we want this plugin to broadcast to the server when this monument is locked?": true,
      "Monument Display Name": "Underwater Lab C",
      "Monument Prefab Name": "assets/bundled/prefabs/autospawn/monument/underwater_lab/underwater_lab_c.prefab",
      "Monument Short Name": "underwater_lab_c",
      "Monument Grid Position": null,
      "Lock Attack: When a player enters a locked monument, do we lock their attacking abilities?": true,
      "Lock timer (600 = 10 min)?": 600,
      "Only timer expiration will unlock a monument ": false
    },
    {
      "Enabled: Is Monument enabled?": true,
      "Lock Looting: When a player enters this monument while locked, do we lock their looting abilities?": true,
      "Cancel Cards: When a player enters this monument while locked, do we lock their card swiping abilities?": true,
      "Lock Crate: When a player enters this monument while locked, do we lock their hacking on locked crates?": true,
      "Broadcasting: Do we want this plugin to broadcast to the server when this monument is locked?": true,
      "Monument Display Name": "Underwater Lab D",
      "Monument Prefab Name": "assets/bundled/prefabs/autospawn/monument/underwater_lab/underwater_lab_d.prefab",
      "Monument Short Name": "underwater_lab_d",
      "Monument Grid Position": null,
      "Lock Attack: When a player enters a locked monument, do we lock their attacking abilities?": true,
      "Lock timer (600 = 10 min)?": 600,
      "Only timer expiration will unlock a monument ": false
    }
  ],
  "Monument Exceptions": [
    "bandit_town",
    "cave_large_hard",
    "cave_large_medium",
    "cave_large_sewers_hard",
    "cave_medium_easy",
    "cave_medium_hard",
    "cave_medium_medium",
    "cave_small_easy",
    "cave_small_hard",
    "cave_small_medium",
    "compound",
    "entrance_bunker_b",
    "fishing_village_a",
    "fishing_village_b",
    "fishing_village_c",
    "gas_station_1",
    "ice_lake_1",
    "ice_lake_2",
    "ice_lake_3",
    "ice_lake_4",
    "mining_quarry_a",
    "mining_quarry_b",
    "mining_quarry_c",
    "stables_a",
    "stables_b",
    "swamp_a",
    "swamp_b",
    "swamp_c",
    "water_well_a",
    "water_well_b",
    "water_well_c",
    "water_well_d",
    "water_well_e",
    "power_sub_big_1",
    "power_sub_big_2",
    "power_sub_small_1",
    "power_sub_small_2",
    "lighthouse",
    "warehouse"
  ],
  "Lock timer (600 = 10 min)?": 600,
  "Only timer expiration will unlock a monument ": false,
  "Enable max timer (regardless of how active player is)?": false,
  "Max timer (1200 = 20 min)?": 1200,
  "When a player enters a locked monument, do we lock their looting abilities?": true,
  "When a player enters a locked monument, do we lock their card swiping abilities?": true,
  "When a player enters a locked monument, do we lock their locked crate hacking abilities?": true,
  "When a player enters a locked monument, do we lock their attacking abilities?": true,
  "When a player dies, do we unlock the monument?": true,
  "Can player lock monument from looting?": true,
  "Can player lock monument from moving inventory items?": true,
  "Can player lock monument from Puzzle Points card swipe?": true,
  "Can player lock monument from picking up an item?": true,
  "Can player lock monument from attacking?": true,
  "Do we want this plugin to broadcast to the server when a monument is locked?": true
}

 

Localization

{
  "MonumentLocked": "{0} locked {1} at ({2})",
  "MonumentUnlocked": "{0} at ({1}) is now unlocked.",
  "MonumentIsLocked": "This monument is already locked by {0} {1} seconds ago",
  "CardSwipedAt": "{0} swiped a {1} card at {2} ({3})!",
  "CardSwipedCancel": "You don't have card reader access right now.",
  "ZeroArgs": "Syntax: mlock <command> (eg. mlock import)",
  "MonumentsImported": "Monuments imported.",
  "MonumentsRemoved": "Monuments removed.",
  "MonumentsDefaulted": "Monuments reset to default.",
  "MonumentAlreadyLocked": "This monument is locked to another player.",
  "MonumentNotValid": "This is not a valid monument name..",
  "NoPerms": "You don't have permissions to use this command",
  "TeamAlreadyLocked": "You or your team already has a locked monument."
}

 

For Developers

//called just before a monument is about to be locked
private object CanMonumentLock(BasePlayer player, string monumentShortName, string gridPosition)
{
	
	//return anything other than null to prevent default behavior
	return null;
}


//called just after a monument was locked
private object OnMonumentLocked(BasePlayer player, string monumentShortName, string gridPosition)
{
	
	//return anything other than null to prevent default behavior
	return null;
}

//called just after a monument was unlocked
private object OnMonumentUnocked(BasePlayer player, string shortName, string gridPosition)
{
	
	//return anything other than null to prevent default behavior
	return null;
}

//called after a player was denied access to the attempted behaviour while in a locked monument
private object OnAccessDenied(BasePlayer player, string seconds)
{
	//return anything other than null to prevent default behavior
	return null;
}

//called after a player was granted access to the attempted behaviour while in a locked monument
private object OnAccessGranted(BasePlayer player, string shortName, string gridPosition)
{
	//return anything other than null to prevent default behavior
	return null;
}

 

 

 

monument_unlocked.png

monument_already_locked.png

player_locked_at.png

  • Like 2
  • Love 2

Rustonauts's Collection

User Feedback

1.1m

Downloads

Total number of downloads.

5.6k

Customers

Total customers served.

80.5k

Files Sold

Total number of files sold.

1.5m

Payments Processed

Total payments processed.

×
×
  • 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.