Jump to content

1 Screenshot

  • 4,368
  • 212
  • 47.16 kB

depends on

Works with

About Monument Lock

A 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, https://discord.gg/JQwaqgca.

 

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).
  • Monument unlocks once the player performs a locking trigger outside the monument (inc moving inventory items)
    (Requires Puzzle Points plugin to capture card swipes)
  • Default true for all triggers: attacking, looting, picking up items, moving your inventory items, card swipe.
  • 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

 

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

 

Commands (console)

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

{
  "Monuments": [
    {
      "Is Monument enabled?": true,
      "When a player enters this monument while locked, do we lock their looting abilities?": true,
      "When a player enters this monument while locked, do we lock their card swiping abilities?": true,
      "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,
      "Monument Last Updated At (datetime)": "",
      "Monument Locked to this player ID": ""
    },
    {
      "Is Monument enabled?": true,
      "When a player enters this monument while locked, do we lock their looting abilities?": true,
      "When a player enters this monument while locked, do we lock their card swiping abilities?": true,
      "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,
      "Monument Last Updated At (datetime)": "",
      "Monument Locked to this player ID": ""
    },
    {
      "Is Monument enabled?": true,
      "When a player enters this monument while locked, do we lock their looting abilities?": true,
      "When a player enters this monument while locked, do we lock their card swiping abilities?": true,
      "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,
      "Monument Last Updated At (datetime)": "",
      "Monument Locked to this player ID": ""
    },
    {
      "Is Monument enabled?": true,
      "When a player enters this monument while locked, do we lock their looting abilities?": true,
      "When a player enters this monument while locked, do we lock their card swiping abilities?": true,
      "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,
      "Monument Last Updated At (datetime)": "",
      "Monument Locked to this player ID": ""
    },
    {
      "Is Monument enabled?": true,
      "When a player enters this monument while locked, do we lock their looting abilities?": true,
      "When a player enters this monument while locked, do we lock their card swiping abilities?": true,
      "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,
      "Monument Last Updated At (datetime)": "",
      "Monument Locked to this player ID": ""
    },
    {
      "Is Monument enabled?": true,
      "When a player enters this monument while locked, do we lock their looting abilities?": true,
      "When a player enters this monument while locked, do we lock their card swiping abilities?": true,
      "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,
      "Monument Last Updated At (datetime)": "",
      "Monument Locked to this player ID": ""
    },
    {
      "Is Monument enabled?": true,
      "When a player enters this monument while locked, do we lock their looting abilities?": true,
      "When a player enters this monument while locked, do we lock their card swiping abilities?": true,
      "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,
      "Monument Last Updated At (datetime)": "",
      "Monument Locked to this player ID": ""
    },
    {
      "Is Monument enabled?": true,
      "When a player enters this monument while locked, do we lock their looting abilities?": true,
      "When a player enters this monument while locked, do we lock their card swiping abilities?": true,
      "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,
      "Monument Last Updated At (datetime)": "",
      "Monument Locked to this player ID": ""
    },
    {
      "Is Monument enabled?": true,
      "When a player enters this monument while locked, do we lock their looting abilities?": true,
      "When a player enters this monument while locked, do we lock their card swiping abilities?": true,
      "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,
      "Monument Last Updated At (datetime)": "",
      "Monument Locked to this player ID": ""
    },
    {
      "Is Monument enabled?": true,
      "When a player enters this monument while locked, do we lock their looting abilities?": true,
      "When a player enters this monument while locked, do we lock their card swiping abilities?": true,
      "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,
      "Monument Last Updated At (datetime)": "",
      "Monument Locked to this player ID": ""
    },
    {
      "Is Monument enabled?": true,
      "When a player enters this monument while locked, do we lock their looting abilities?": true,
      "When a player enters this monument while locked, do we lock their card swiping abilities?": true,
      "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,
      "Monument Last Updated At (datetime)": "",
      "Monument Locked to this player ID": ""
    },
    {
      "Is Monument enabled?": true,
      "When a player enters this monument while locked, do we lock their looting abilities?": true,
      "When a player enters this monument while locked, do we lock their card swiping abilities?": true,
      "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,
      "Monument Last Updated At (datetime)": "",
      "Monument Locked to this player ID": ""
    },
    {
      "Is Monument enabled?": true,
      "When a player enters this monument while locked, do we lock their looting abilities?": true,
      "When a player enters this monument while locked, do we lock their card swiping abilities?": true,
      "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,
      "Monument Last Updated At (datetime)": "",
      "Monument Locked to this player ID": ""
    },
    {
      "Is Monument enabled?": true,
      "When a player enters this monument while locked, do we lock their looting abilities?": true,
      "When a player enters this monument while locked, do we lock their card swiping abilities?": true,
      "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,
      "Monument Last Updated At (datetime)": "",
      "Monument Locked to this player ID": ""
    },
    {
      "Is Monument enabled?": true,
      "When a player enters this monument while locked, do we lock their looting abilities?": true,
      "When a player enters this monument while locked, do we lock their card swiping abilities?": true,
      "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,
      "Monument Last Updated At (datetime)": "",
      "Monument Locked to this player ID": ""
    },
    {
      "Is Monument enabled?": true,
      "When a player enters this monument while locked, do we lock their looting abilities?": true,
      "When a player enters this monument while locked, do we lock their card swiping abilities?": true,
      "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,
      "Monument Last Updated At (datetime)": "",
      "Monument Locked to this player ID": ""
    }
  ],
  "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,
  "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,
  "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.",
  "MonumentNotValid": "This is not a valid monument name..",
  "NoPerms": "You don't have permissions to use this command"
}

 

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 1
  • Love 1

Rustonauts's Collection

User Feedback

487.3k

Downloads

Total number of downloads.

2.7k

Customers

Total customers served.

36.5k

Files Sold

Total number of files sold.

613.2k

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.