Jump to content

SpawnNPC 1.0.24

   (12 reviews)

9 Screenshots

This plugin creates NPC on Rust monuments.

This plugin works with new intelligence for NPC.

The plugin has many settings for creating NPC of any type of complexity.

For each NPC separately, it is possible to customize different clothes, weapons, loot.

You can use additional plugins such as: Kits, MarkerManager.

For the issuance of NPS kits. Kits plugin from https://umod.org.

You can add a marker for the NPC. MarkerManager plugin from https://umod.org

[ spawnnpc.command ] - Permission to use chat commands

command to chat
[ /npc count ] - Shows how many NPC are on the map.
[ /npc kill ] - Kill all NPCs on the map.
[ /npc respawn ] - Respawn all NPC on the map.
[ /npc reload ] - Reload plugin.

Weapon advice for the Scarecrow
For melee weapons for example (knife.combat, pitchfork, salvaged.cleaver, machete) and other things that pierce or cut.

Weapon advice for the Scientist
For ranged weapons for example (pistol.revolver, smg.2, rifle.lr300, lmg.m249) and other things that shoot.

Quote
{
  "Safe Zone Kills": false,
  "Turrets don't attack": false,
  "Bradley doesn't attack": false,
  "Preset for the NPC": [
    {
      "Preset name": "murderer_machete",
      "How many seconds until the respawns": 600,
      "Use random appearance on the map, after the destruction of the NPC": false,
      "NPC Type (Scientist = true | Scarecrow = false)": false,
      "Display name": "Murderer",
      "Health": 100.0,
      "At what distance does the NPC see the enemy": 30.0,
      "At what distance does the NPC attack the enemy": 0.0,
      "Roam range, (affects the Scientist only)": 30.0,
      "Enable map marker NPC": false,
      "Radio disabled": true,
      "Enable weapon damage multiplier": false,
      "Weapon damage multiplier": 100.0,
      "Use kit (clothing and Loot)": false,
      "Kit ID": "",
      "Wear": [
        {
          "Short Name Item": "gloweyes",
          "SkinID Item": [
            0
          ]
        },
        {
          "Short Name Item": "burlap.headwrap",
          "SkinID Item": [
            811534810
          ]
        },
        {
          "Short Name Item": "burlap.trousers",
          "SkinID Item": [
            1177788927
          ]
        },
        {
          "Short Name Item": "burlap.shirt",
          "SkinID Item": [
            1177719024
          ]
        },
        {
          "Short Name Item": "shoes.boots",
          "SkinID Item": [
            820952520
          ]
        }
      ],
      "Belt": [
        {
          "Amount Item": 1,
          "Short Name Item": "machete",
          "SkinID Item": [
            928142240
          ]
        }
      ],
      "Loot": {
        "Use loot Rust": false,
        "Use loot Kit": false,
        "Use Loot Extra": false,
        "Use loot Crates": true,
        "Name crates loot": [
          "radtown_loot_component_test"
        ],
        "Min Item": 3,
        "Max Item": 6,
        "List exclude items": null,
        "Extra loot definition": null
      }
    },
    {
      "Preset name": "scarecrow_sickle",
      "How many seconds until the respawns": 600,
      "Use random appearance on the map, after the destruction of the NPC": true,
      "NPC Type (Scientist = true | Scarecrow = false)": false,
      "Display name": "Scarecrow",
      "Health": 100.0,
      "At what distance does the NPC see the enemy": 30.0,
      "At what distance does the NPC attack the enemy": 0.0,
      "Roam range, (affects the Scientist only)": 100.0,
      "Enable map marker NPC": false,
      "Radio disabled": true,
      "Enable weapon damage multiplier": false,
      "Weapon damage multiplier": 100.0,
      "Use kit (clothing and Loot)": false,
      "Kit ID": "",
      "Wear": [
        {
          "Short Name Item": "gloweyes",
          "SkinID Item": [
            0
          ]
        },
        {
          "Short Name Item": "scarecrow.suit",
          "SkinID Item": [
            0
          ]
        }
      ],
      "Belt": [
        {
          "Amount Item": 1,
          "Short Name Item": "sickle",
          "SkinID Item": [
            0
          ]
        }
      ],
      "Loot": {
        "Use loot Rust": false,
        "Use loot Kit": false,
        "Use Loot Extra": false,
        "Use loot Crates": true,
        "Name crates loot": [
          "radtown_loot_component_test"
        ],
        "Min Item": 3,
        "Max Item": 6,
        "List exclude items": null,
        "Extra loot definition": null
      }
    },
    {
      "Preset name": "surgeon_butcher",
      "How many seconds until the respawns": 600,
      "Use random appearance on the map, after the destruction of the NPC": true,
      "NPC Type (Scientist = true | Scarecrow = false)": false,
      "Display name": "Surgeon",
      "Health": 100.0,
      "At what distance does the NPC see the enemy": 30.0,
      "At what distance does the NPC attack the enemy": 0.0,
      "Roam range, (affects the Scientist only)": 100.0,
      "Enable map marker NPC": false,
      "Radio disabled": true,
      "Enable weapon damage multiplier": false,
      "Weapon damage multiplier": 100.0,
      "Use kit (clothing and Loot)": false,
      "Kit ID": "",
      "Wear": [
        {
          "Short Name Item": "gloweyes",
          "SkinID Item": [
            0
          ]
        },
        {
          "Short Name Item": "halloween.surgeonsuit",
          "SkinID Item": [
            0
          ]
        }
      ],
      "Belt": [
        {
          "Amount Item": 1,
          "Short Name Item": "knife.butcher",
          "SkinID Item": [
            0
          ]
        }
      ],
      "Loot": {
        "Use loot Rust": false,
        "Use loot Kit": false,
        "Use Loot Extra": false,
        "Use loot Crates": true,
        "Name crates loot": [
          "radtown_loot_component_test"
        ],
        "Min Item": 3,
        "Max Item": 6,
        "List exclude items": null,
        "Extra loot definition": null
      }
    },
    {
      "Preset name": "mummy_pitchfork",
      "How many seconds until the respawns": 600,
      "Use random appearance on the map, after the destruction of the NPC": true,
      "NPC Type (Scientist = true | Scarecrow = false)": false,
      "Display name": "Mummy",
      "Health": 200.0,
      "At what distance does the NPC see the enemy": 30.0,
      "At what distance does the NPC attack the enemy": 0.0,
      "Roam range, (affects the Scientist only)": 100.0,
      "Enable map marker NPC": false,
      "Radio disabled": true,
      "Enable weapon damage multiplier": false,
      "Weapon damage multiplier": 100.0,
      "Use kit (clothing and Loot)": false,
      "Kit ID": "",
      "Wear": [
        {
          "Short Name Item": "halloween.mummysuit",
          "SkinID Item": [
            0
          ]
        }
      ],
      "Belt": [
        {
          "Amount Item": 1,
          "Short Name Item": "pitchfork",
          "SkinID Item": [
            0
          ]
        },
        {
          "Amount Item": 10,
          "Short Name Item": "grenade.beancan",
          "SkinID Item": [
            0
          ]
        }
      ],
      "Loot": {
        "Use loot Rust": true,
        "Use loot Kit": false,
        "Use Loot Extra": false,
        "Use loot Crates": false,
        "Name crates loot": [
          "radtown_loot_component_test"
        ],
        "Min Item": 3,
        "Max Item": 6,
        "List exclude items": null,
        "Extra loot definition": null
      }
    },
    {
      "Preset name": "mummy_chainsaw",
      "How many seconds until the respawns": 600,
      "Use random appearance on the map, after the destruction of the NPC": true,
      "NPC Type (Scientist = true | Scarecrow = false)": false,
      "Display name": "Mummy",
      "Health": 200.0,
      "At what distance does the NPC see the enemy": 30.0,
      "At what distance does the NPC attack the enemy": 0.0,
      "Roam range, (affects the Scientist only)": 100.0,
      "Enable map marker NPC": false,
      "Radio disabled": true,
      "Enable weapon damage multiplier": false,
      "Weapon damage multiplier": 100.0,
      "Use kit (clothing and Loot)": false,
      "Kit ID": "",
      "Wear": [
        {
          "Short Name Item": "halloween.mummysuit",
          "SkinID Item": [
            0
          ]
        }
      ],
      "Belt": [
        {
          "Amount Item": 1,
          "Short Name Item": "chainsaw",
          "SkinID Item": [
            0
          ]
        },
        {
          "Amount Item": 10,
          "Short Name Item": "grenade.beancan",
          "SkinID Item": [
            0
          ]
        }
      ],
      "Loot": {
        "Use loot Rust": true,
        "Use loot Kit": false,
        "Use Loot Extra": false,
        "Use loot Crates": false,
        "Name crates loot": [
          "radtown_loot_component_test"
        ],
        "Min Item": 3,
        "Max Item": 6,
        "List exclude items": null,
        "Extra loot definition": null
      }
    },
    {
      "Preset name": "butcher_revolver",
      "How many seconds until the respawns": 900,
      "Use random appearance on the map, after the destruction of the NPC": false,
      "NPC Type (Scientist = true | Scarecrow = false)": true,
      "Display name": "Butcher",
      "Health": 100.0,
      "At what distance does the NPC see the enemy": 40.0,
      "At what distance does the NPC attack the enemy": 30.0,
      "Roam range, (affects the Scientist only)": 30.0,
      "Enable map marker NPC": false,
      "Radio disabled": true,
      "Enable weapon damage multiplier": false,
      "Weapon damage multiplier": 100.0,
      "Use kit (clothing and Loot)": false,
      "Kit ID": "",
      "Wear": [
        {
          "Short Name Item": "shoes.boots",
          "SkinID Item": [
            1100926907,
            882570089,
            869090082,
            826587881,
            1406796292,
            1441308562,
            1432967312,
            899942107,
            838205144,
            919261524,
            784559403,
            1395755190,
            1106548545,
            613481881,
            1111680681,
            809586899,
            1084392788,
            920390242,
            962503020,
            961096730,
            944997041
          ]
        },
        {
          "Short Name Item": "burlap.shirt",
          "SkinID Item": [
            849866944,
            1127407306,
            809909900,
            1438049725,
            654502725,
            899941622,
            1755124648,
            926478499,
            1294811936,
            1394039696,
            1354670586,
            1323654151,
            1229561297,
            882451685,
            1294812700,
            1145786859
          ]
        },
        {
          "Short Name Item": "burlap.trousers",
          "SkinID Item": [
            1127409880,
            1438049211,
            1755140135,
            921250017,
            1394040054,
            1354675665,
            1760352876,
            2216144342,
            1994622998,
            809968188,
            1145780081,
            1323664071
          ]
        },
        {
          "Short Name Item": "burlap.headwrap",
          "SkinID Item": [
            942098139,
            1691834772,
            896506958,
            861551572,
            1694253807,
            868014709,
            785890135,
            822358002
          ]
        }
      ],
      "Belt": [
        {
          "Amount Item": 1,
          "Short Name Item": "pistol.revolver",
          "SkinID Item": [
            0
          ]
        }
      ],
      "Loot": {
        "Use loot Rust": true,
        "Use loot Kit": false,
        "Use Loot Extra": false,
        "Use loot Crates": false,
        "Name crates loot": [
          "radtown_loot_component_test"
        ],
        "Min Item": 3,
        "Max Item": 6,
        "List exclude items": null,
        "Extra loot definition": null
      }
    },
    {
      "Preset name": "scientist_spacesuit",
      "How many seconds until the respawns": 1200,
      "Use random appearance on the map, after the destruction of the NPC": false,
      "NPC Type (Scientist = true | Scarecrow = false)": true,
      "Display name": "Scientist spacesuit",
      "Health": 350.0,
      "At what distance does the NPC see the enemy": 80.0,
      "At what distance does the NPC attack the enemy": 70.0,
      "Roam range, (affects the Scientist only)": 100.0,
      "Enable map marker NPC": false,
      "Radio disabled": false,
      "Enable weapon damage multiplier": false,
      "Weapon damage multiplier": 100.0,
      "Use kit (clothing and Loot)": false,
      "Kit ID": "",
      "Wear": [
        {
          "Short Name Item": "hazmatsuit.spacesuit",
          "SkinID Item": [
            0
          ]
        }
      ],
      "Belt": [
        {
          "Amount Item": 1,
          "Short Name Item": "lmg.m249",
          "SkinID Item": [
            1719536313
          ]
        }
      ],
      "Loot": {
        "Use loot Rust": false,
        "Use loot Kit": false,
        "Use Loot Extra": false,
        "Use loot Crates": true,
        "Name crates loot": [
          "chinooklockedcrate"
        ],
        "Min Item": 3,
        "Max Item": 6,
        "List exclude items": null,
        "Extra loot definition": null
      }
    },
    {
      "Preset name": "scientis_heavy_l96",
      "How many seconds until the respawns": 1200,
      "Use random appearance on the map, after the destruction of the NPC": false,
      "NPC Type (Scientist = true | Scarecrow = false)": true,
      "Display name": "Scientist heavy",
      "Health": 250.0,
      "At what distance does the NPC see the enemy": 80.0,
      "At what distance does the NPC attack the enemy": 70.0,
      "Roam range, (affects the Scientist only)": 80.0,
      "Enable map marker NPC": false,
      "Radio disabled": false,
      "Enable weapon damage multiplier": false,
      "Weapon damage multiplier": 100.0,
      "Use kit (clothing and Loot)": false,
      "Kit ID": "",
      "Wear": [
        {
          "Short Name Item": "scientistsuit_heavy",
          "SkinID Item": [
            0
          ]
        }
      ],
      "Belt": [
        {
          "Amount Item": 1,
          "Short Name Item": "rifle.l96",
          "SkinID Item": [
            0
          ]
        }
      ],
      "Loot": {
        "Use loot Rust": false,
        "Use loot Kit": false,
        "Use Loot Extra": false,
        "Use loot Crates": true,
        "Name crates loot": [
          "radtown_crate_elite"
        ],
        "Min Item": 3,
        "Max Item": 6,
        "List exclude items": null,
        "Extra loot definition": null
      }
    },
    {
      "Preset name": "scientist_heavy_lr300",
      "How many seconds until the respawns": 1200,
      "Use random appearance on the map, after the destruction of the NPC": false,
      "NPC Type (Scientist = true | Scarecrow = false)": true,
      "Display name": "Scientist heavy",
      "Health": 250.0,
      "At what distance does the NPC see the enemy": 80.0,
      "At what distance does the NPC attack the enemy": 70.0,
      "Roam range, (affects the Scientist only)": 80.0,
      "Enable map marker NPC": false,
      "Radio disabled": false,
      "Enable weapon damage multiplier": false,
      "Weapon damage multiplier": 100.0,
      "Use kit (clothing and Loot)": false,
      "Kit ID": "",
      "Wear": [
        {
          "Short Name Item": "scientistsuit_heavy",
          "SkinID Item": [
            0
          ]
        }
      ],
      "Belt": [
        {
          "Amount Item": 1,
          "Short Name Item": "rifle.lr300",
          "SkinID Item": [
            0
          ]
        }
      ],
      "Loot": {
        "Use loot Rust": false,
        "Use loot Kit": false,
        "Use Loot Extra": false,
        "Use loot Crates": true,
        "Name crates loot": [
          "radtown_crate_elite"
        ],
        "Min Item": 3,
        "Max Item": 6,
        "List exclude items": null,
        "Extra loot definition": null
      }
    },
    {
      "Preset name": "scientist_lr300",
      "How many seconds until the respawns": 900,
      "Use random appearance on the map, after the destruction of the NPC": false,
      "NPC Type (Scientist = true | Scarecrow = false)": true,
      "Display name": "Scientist",
      "Health": 175.0,
      "At what distance does the NPC see the enemy": 60.0,
      "At what distance does the NPC attack the enemy": 50.0,
      "Roam range, (affects the Scientist only)": 50.0,
      "Enable map marker NPC": false,
      "Radio disabled": false,
      "Enable weapon damage multiplier": false,
      "Weapon damage multiplier": 100.0,
      "Use kit (clothing and Loot)": false,
      "Kit ID": "",
      "Wear": [
        {
          "Short Name Item": "hazmatsuit_scientist",
          "SkinID Item": [
            0
          ]
        }
      ],
      "Belt": [
        {
          "Amount Item": 1,
          "Short Name Item": "rifle.lr300",
          "SkinID Item": [
            0
          ]
        }
      ],
      "Loot": {
        "Use loot Rust": true,
        "Use loot Kit": false,
        "Use Loot Extra": false,
        "Use loot Crates": false,
        "Name crates loot": [
          "radtown_crate_normal_2_medical"
        ],
        "Min Item": 1,
        "Max Item": 3,
        "List exclude items": null,
        "Extra loot definition": null
      }
    },
    {
      "Preset name": "scientist_mp5",
      "How many seconds until the respawns": 900,
      "Use random appearance on the map, after the destruction of the NPC": false,
      "NPC Type (Scientist = true | Scarecrow = false)": true,
      "Display name": "Scientist",
      "Health": 175.0,
      "At what distance does the NPC see the enemy": 60.0,
      "At what distance does the NPC attack the enemy": 50.0,
      "Roam range, (affects the Scientist only)": 50.0,
      "Enable map marker NPC": false,
      "Radio disabled": false,
      "Enable weapon damage multiplier": false,
      "Weapon damage multiplier": 100.0,
      "Use kit (clothing and Loot)": false,
      "Kit ID": "",
      "Wear": [
        {
          "Short Name Item": "hazmatsuit_scientist",
          "SkinID Item": [
            0
          ]
        }
      ],
      "Belt": [
        {
          "Amount Item": 1,
          "Short Name Item": "smg.mp5",
          "SkinID Item": [
            0
          ]
        }
      ],
      "Loot": {
        "Use loot Rust": true,
        "Use loot Kit": false,
        "Use Loot Extra": false,
        "Use loot Crates": false,
        "Name crates loot": [
          "radtown_crate_normal_2_medical"
        ],
        "Min Item": 1,
        "Max Item": 3,
        "List exclude items": null,
        "Extra loot definition": null
      }
    },
    {
      "Preset name": "scientis_shotgun",
      "How many seconds until the respawns": 900,
      "Use random appearance on the map, after the destruction of the NPC": false,
      "NPC Type (Scientist = true | Scarecrow = false)": true,
      "Display name": "Scientist",
      "Health": 175.0,
      "At what distance does the NPC see the enemy": 60.0,
      "At what distance does the NPC attack the enemy": 50.0,
      "Roam range, (affects the Scientist only)": 50.0,
      "Enable map marker NPC": false,
      "Radio disabled": false,
      "Enable weapon damage multiplier": false,
      "Weapon damage multiplier": 100.0,
      "Use kit (clothing and Loot)": false,
      "Kit ID": "",
      "Wear": [
        {
          "Short Name Item": "hazmatsuit_scientist",
          "SkinID Item": [
            0
          ]
        }
      ],
      "Belt": [
        {
          "Amount Item": 1,
          "Short Name Item": "shotgun.spas12",
          "SkinID Item": [
            0
          ]
        }
      ],
      "Loot": {
        "Use loot Rust": true,
        "Use loot Kit": false,
        "Use Loot Extra": false,
        "Use loot Crates": false,
        "Name crates loot": [
          "radtown_crate_normal_2_medical"
        ],
        "Min Item": 1,
        "Max Item": 3,
        "List exclude items": null,
        "Extra loot definition": null
      }
    },
    {
      "Preset name": "scientis_m92",
      "How many seconds until the respawns": 900,
      "Use random appearance on the map, after the destruction of the NPC": false,
      "NPC Type (Scientist = true | Scarecrow = false)": true,
      "Display name": "Scientist",
      "Health": 175.0,
      "At what distance does the NPC see the enemy": 60.0,
      "At what distance does the NPC attack the enemy": 50.0,
      "Roam range, (affects the Scientist only)": 50.0,
      "Enable map marker NPC": false,
      "Radio disabled": false,
      "Enable weapon damage multiplier": false,
      "Weapon damage multiplier": 100.0,
      "Use kit (clothing and Loot)": false,
      "Kit ID": "",
      "Wear": [
        {
          "Short Name Item": "hazmatsuit_scientist",
          "SkinID Item": [
            0
          ]
        }
      ],
      "Belt": [
        {
          "Amount Item": 1,
          "Short Name Item": "pistol.m92",
          "SkinID Item": [
            0
          ]
        }
      ],
      "Loot": {
        "Use loot Rust": true,
        "Use loot Kit": false,
        "Use Loot Extra": false,
        "Use loot Crates": false,
        "Name crates loot": [
          "radtown_crate_normal_2_medical"
        ],
        "Min Item": 1,
        "Max Item": 3,
        "List exclude items": null,
        "Extra loot definition": null
      }
    }
  ],
  "Rule Spawn NPC for Monument": [
    {
      "Name Monument": "powerplant_1",
      "Name Preset Npc": "scientist_lr300",
      "Min Radius Spawn Npc": 50.0,
      "Max Radius Spawn Npc": 60.0,
      "Min Amount Npc": 3,
      "Max Amount Npc": 3
    },
    {
      "Name Monument": "powerplant_1",
      "Name Preset Npc": "scientist_mp5",
      "Min Radius Spawn Npc": 50.0,
      "Max Radius Spawn Npc": 60.0,
      "Min Amount Npc": 3,
      "Max Amount Npc": 3
    },
    {
      "Name Monument": "powerplant_1",
      "Name Preset Npc": "scientis_shotgun",
      "Min Radius Spawn Npc": 50.0,
      "Max Radius Spawn Npc": 60.0,
      "Min Amount Npc": 3,
      "Max Amount Npc": 3
    },
    {
      "Name Monument": "military_tunnel_1",
      "Name Preset Npc": "scientist_lr300",
      "Min Radius Spawn Npc": 50.0,
      "Max Radius Spawn Npc": 60.0,
      "Min Amount Npc": 3,
      "Max Amount Npc": 3
    },
    {
      "Name Monument": "military_tunnel_1",
      "Name Preset Npc": "scientist_mp5",
      "Min Radius Spawn Npc": 50.0,
      "Max Radius Spawn Npc": 60.0,
      "Min Amount Npc": 3,
      "Max Amount Npc": 3
    },
    {
      "Name Monument": "military_tunnel_1",
      "Name Preset Npc": "scientis_shotgun",
      "Min Radius Spawn Npc": 50.0,
      "Max Radius Spawn Npc": 60.0,
      "Min Amount Npc": 3,
      "Max Amount Npc": 3
    },
    {
      "Name Monument": "airfield_1",
      "Name Preset Npc": "scientist_lr300",
      "Min Radius Spawn Npc": 50.0,
      "Max Radius Spawn Npc": 60.0,
      "Min Amount Npc": 3,
      "Max Amount Npc": 3
    },
    {
      "Name Monument": "airfield_1",
      "Name Preset Npc": "scientist_mp5",
      "Min Radius Spawn Npc": 50.0,
      "Max Radius Spawn Npc": 60.0,
      "Min Amount Npc": 3,
      "Max Amount Npc": 3
    },
    {
      "Name Monument": "airfield_1",
      "Name Preset Npc": "scientis_shotgun",
      "Min Radius Spawn Npc": 50.0,
      "Max Radius Spawn Npc": 60.0,
      "Min Amount Npc": 3,
      "Max Amount Npc": 3
    },
    {
      "Name Monument": "trainyard_1",
      "Name Preset Npc": "scientist_lr300",
      "Min Radius Spawn Npc": 50.0,
      "Max Radius Spawn Npc": 60.0,
      "Min Amount Npc": 3,
      "Max Amount Npc": 3
    },
    {
      "Name Monument": "trainyard_1",
      "Name Preset Npc": "scientist_mp5",
      "Min Radius Spawn Npc": 50.0,
      "Max Radius Spawn Npc": 60.0,
      "Min Amount Npc": 3,
      "Max Amount Npc": 3
    },
    {
      "Name Monument": "trainyard_1",
      "Name Preset Npc": "scientis_shotgun",
      "Min Radius Spawn Npc": 50.0,
      "Max Radius Spawn Npc": 60.0,
      "Min Amount Npc": 3,
      "Max Amount Npc": 3
    },
    {
      "Name Monument": "water_treatment_plant_1",
      "Name Preset Npc": "scientist_lr300",
      "Min Radius Spawn Npc": 50.0,
      "Max Radius Spawn Npc": 60.0,
      "Min Amount Npc": 3,
      "Max Amount Npc": 3
    },
    {
      "Name Monument": "water_treatment_plant_1",
      "Name Preset Npc": "scientist_mp5",
      "Min Radius Spawn Npc": 50.0,
      "Max Radius Spawn Npc": 60.0,
      "Min Amount Npc": 3,
      "Max Amount Npc": 3
    },
    {
      "Name Monument": "water_treatment_plant_1",
      "Name Preset Npc": "scientis_shotgun",
      "Min Radius Spawn Npc": 50.0,
      "Max Radius Spawn Npc": 60.0,
      "Min Amount Npc": 3,
      "Max Amount Npc": 3
    },
    {
      "Name Monument": "radtown_small_3",
      "Name Preset Npc": "scientist_lr300",
      "Min Radius Spawn Npc": 50.0,
      "Max Radius Spawn Npc": 60.0,
      "Min Amount Npc": 3,
      "Max Amount Npc": 3
    },
    {
      "Name Monument": "radtown_small_3",
      "Name Preset Npc": "scientist_mp5",
      "Min Radius Spawn Npc": 50.0,
      "Max Radius Spawn Npc": 60.0,
      "Min Amount Npc": 3,
      "Max Amount Npc": 3
    },
    {
      "Name Monument": "radtown_small_3",
      "Name Preset Npc": "scientis_shotgun",
      "Min Radius Spawn Npc": 50.0,
      "Max Radius Spawn Npc": 60.0,
      "Min Amount Npc": 3,
      "Max Amount Npc": 3
    },
    {
      "Name Monument": "launch_site_1",
      "Name Preset Npc": "scientis_heavy_l96",
      "Min Radius Spawn Npc": 180.0,
      "Max Radius Spawn Npc": 200.0,
      "Min Amount Npc": 1,
      "Max Amount Npc": 1
    },
    {
      "Name Monument": "launch_site_1",
      "Name Preset Npc": "scientist_heavy_lr300",
      "Min Radius Spawn Npc": 180.0,
      "Max Radius Spawn Npc": 200.0,
      "Min Amount Npc": 3,
      "Max Amount Npc": 3
    },
    {
      "Name Monument": "launch_site_1",
      "Name Preset Npc": "scientist_spacesuit",
      "Min Radius Spawn Npc": 180.0,
      "Max Radius Spawn Npc": 200.0,
      "Min Amount Npc": 3,
      "Max Amount Npc": 3
    },
    {
      "Name Monument": "junkyard_1",
      "Name Preset Npc": "scientist_lr300",
      "Min Radius Spawn Npc": 50.0,
      "Max Radius Spawn Npc": 100.0,
      "Min Amount Npc": 3,
      "Max Amount Npc": 3
    },
    {
      "Name Monument": "junkyard_1",
      "Name Preset Npc": "scientist_mp5",
      "Min Radius Spawn Npc": 50.0,
      "Max Radius Spawn Npc": 100.0,
      "Min Amount Npc": 3,
      "Max Amount Npc": 3
    },
    {
      "Name Monument": "junkyard_1",
      "Name Preset Npc": "scientis_shotgun",
      "Min Radius Spawn Npc": 50.0,
      "Max Radius Spawn Npc": 100.0,
      "Min Amount Npc": 3,
      "Max Amount Npc": 3
    },
    {
      "Name Monument": "satellite_dish",
      "Name Preset Npc": "scientis_m92",
      "Min Radius Spawn Npc": 30.0,
      "Max Radius Spawn Npc": 50.0,
      "Min Amount Npc": 3,
      "Max Amount Npc": 3
    },
    {
      "Name Monument": "harbor_1",
      "Name Preset Npc": "scientis_m92",
      "Min Radius Spawn Npc": 30.0,
      "Max Radius Spawn Npc": 50.0,
      "Min Amount Npc": 3,
      "Max Amount Npc": 3
    },
    {
      "Name Monument": "harbor_2",
      "Name Preset Npc": "scientis_m92",
      "Min Radius Spawn Npc": 30.0,
      "Max Radius Spawn Npc": 50.0,
      "Min Amount Npc": 3,
      "Max Amount Npc": 3
    },
    {
      "Name Monument": "sphere_tank",
      "Name Preset Npc": "butcher_revolver",
      "Min Radius Spawn Npc": 30.0,
      "Max Radius Spawn Npc": 50.0,
      "Min Amount Npc": 3,
      "Max Amount Npc": 3
    },
    {
      "Name Monument": "warehouse",
      "Name Preset Npc": "murderer_machete",
      "Min Radius Spawn Npc": 10.0,
      "Max Radius Spawn Npc": 20.0,
      "Min Amount Npc": 3,
      "Max Amount Npc": 3
    },
    {
      "Name Monument": "gas_station_1",
      "Name Preset Npc": "murderer_machete",
      "Min Radius Spawn Npc": 10.0,
      "Max Radius Spawn Npc": 20.0,
      "Min Amount Npc": 3,
      "Max Amount Npc": 3
    },
    {
      "Name Monument": "supermarket_1",
      "Name Preset Npc": "murderer_machete",
      "Min Radius Spawn Npc": 10.0,
      "Max Radius Spawn Npc": 20.0,
      "Min Amount Npc": 3,
      "Max Amount Npc": 3
    }
  ],
  "Rule Spawn NPC for Biome": [
    {
      "Name Biome": "Arctic",
      "Name Preset Npc": "scarecrow_sickle",
      "Min Amount Npc": 5,
      "Max Amount Npc": 5
    },
    {
      "Name Biome": "Arctic",
      "Name Preset Npc": "surgeon_butcher",
      "Min Amount Npc": 5,
      "Max Amount Npc": 5
    },
    {
      "Name Biome": "Arctic",
      "Name Preset Npc": "mummy_pitchfork",
      "Min Amount Npc": 5,
      "Max Amount Npc": 5
    },
    {
      "Name Biome": "Arctic",
      "Name Preset Npc": "mummy_chainsaw",
      "Min Amount Npc": 5,
      "Max Amount Npc": 5
    },
    {
      "Name Biome": "Arid",
      "Name Preset Npc": "scarecrow_sickle",
      "Min Amount Npc": 5,
      "Max Amount Npc": 5
    },
    {
      "Name Biome": "Arid",
      "Name Preset Npc": "surgeon_butcher",
      "Min Amount Npc": 5,
      "Max Amount Npc": 5
    },
    {
      "Name Biome": "Arid",
      "Name Preset Npc": "mummy_pitchfork",
      "Min Amount Npc": 5,
      "Max Amount Npc": 5
    },
    {
      "Name Biome": "Arid",
      "Name Preset Npc": "mummy_chainsaw",
      "Min Amount Npc": 5,
      "Max Amount Npc": 5
    },
    {
      "Name Biome": "Temperate",
      "Name Preset Npc": "scarecrow_sickle",
      "Min Amount Npc": 5,
      "Max Amount Npc": 5
    },
    {
      "Name Biome": "Temperate",
      "Name Preset Npc": "surgeon_butcher",
      "Min Amount Npc": 5,
      "Max Amount Npc": 5
    },
    {
      "Name Biome": "Temperate",
      "Name Preset Npc": "mummy_pitchfork",
      "Min Amount Npc": 5,
      "Max Amount Npc": 5
    },
    {
      "Name Biome": "Temperate",
      "Name Preset Npc": "mummy_chainsaw",
      "Min Amount Npc": 5,
      "Max Amount Npc": 5
    },
    {
      "Name Biome": "Tundra",
      "Name Preset Npc": "scarecrow_sickle",
      "Min Amount Npc": 5,
      "Max Amount Npc": 5
    },
    {
      "Name Biome": "Tundra",
      "Name Preset Npc": "surgeon_butcher",
      "Min Amount Npc": 5,
      "Max Amount Npc": 5
    },
    {
      "Name Biome": "Tundra",
      "Name Preset Npc": "mummy_pitchfork",
      "Min Amount Npc": 5,
      "Max Amount Npc": 5
    },
    {
      "Name Biome": "Tundra",
      "Name Preset Npc": "mummy_chainsaw",
      "Min Amount Npc": 5,
      "Max Amount Npc": 5
    }
  ],
  "Names for monument. Read-only!": [
    "powerplant_1",
    "military_tunnel_1",
    "harbor_1",
    "harbor_2",
    "airfield_1",
    "trainyard_1",
    "water_treatment_plant_1",
    "satellite_dish",
    "sphere_tank",
    "radtown_small_3",
    "launch_site_1",
    "excavator_1",
    "junkyard_1",
    "warehouse",
    "gas_station_1",
    "supermarket_1",
    "mining_quarry_c",
    "mining_quarry_a",
    "mining_quarry_b",
    "desert_military_base_a",
    "arctic_research_base_a",
    "Water Well A (x)",
    "Water Well E (x)",
    "MONUMENT Dome",
    "Mining Quarry A2 ***",
    "MONUMENT Junkyard *",
    "MONUMENT Pumpjack Compound ***",
    "MONUMENT Fishing Village South A **",
    "MONUMENT Fishing Village East C **",
    "MONUMENT Compound ***",
    "Lighthouse",
    "Lighthouse 2",
    "MONUMENT Military Tunnels Underground (old)",
    "MONUMENT Satellite Dish Island ***",
    "Warehouse 2",
    "Mining Quarry C2 ***",
    "MONUMENT Water Treatment Plant ***",
    "MONUMENT Waste Management ***",
    "MONUMENT Launch Site ***",
    "MONUMENT Stables A"
  ],
  "Names for biome. Read-only!": [
    "Arctic",
    "Arid",
    "Temperate",
    "Tundra"
  ],
  "Names for loot crate. Read-only!": [
    "radtown_loot_component_test",
    "radtown_crate_elite",
    "radtown_bradley_crate",
    "radtown_heli_crate",
    "radtown_foodbox",
    "radtown_crate_normal",
    "radtown_crate_normal_2",
    "radtown_crate_normal_2_medical",
    "radtown_crate_basic",
    "radtown_crate_tools",
    "underwater_labs_crate_normal",
    "underwater_labs_crate_normal_2",
    "underwater_labs_crate_tools",
    "underwater_labs_crate_food_2",
    "underwater_labs_tech_parts_2",
    "underwater_labs_crate_elite",
    "radtown_crate_underwater_basic",
    "radtown_crate_underwater_advanced",
    "chinooklockedcrate",
    "supply_drop",
    "presentdrop"
  ]
}

 

 


What's New in Version 1.0.24   See changelog

Released

  • Rust update fix
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"),
to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  • Love 4
 Share


FlamesFenix's other works


User Feedback

Recommended Comments

Great plugin, nice job.

I would like to know if there is a possibility to add automatic spawn on asphalt / dirt roads and even integration with RP points system?

thanks.

Link to comment
Share on other sites


very good complement, but could someone explain to me how to put MarkerManager? I can't get it to appear. Thanks a lot

Link to comment
Share on other sites

Hello, sorry for not writing an answer for so long, use this plugin to display markers on the map.

using ConVar;
using Oxide.Core;
using Oxide.Core.Plugins;
using System;
using System.Collections.Generic;
using System.Text;
using UnityEngine;
using VLB;
using Color = UnityEngine.Color;
namespace Oxide.Plugins
{
    [Info("Marker Manager", "DezLife | mod Flames", "3.0.3")]
    public class MarkerManager : RustPlugin
    {
        #region Vars
        public static StringBuilder StringBuilderInstance;

        private const string genericPrefab = "assets/prefabs/tools/map/genericradiusmarker.prefab";
        private const string vendingPrefab = "assets/prefabs/deployable/vendingmachine/vending_mapmarker.prefab";
        private const string permUse = "markermanager.use";
        private const string chatCommand = "marker";
        private readonly List<CustomMapMarker> mapMarkers = new List<CustomMapMarker>();
        #endregion

        #region Oxide Hooks
        private void Init()
        {
            permission.RegisterPermission(permUse, this);
            cmd.AddChatCommand(chatCommand, this, nameof(cmdMarkerChat));
        }
        private void OnPlayerConnected(BasePlayer player)
        {
            foreach (CustomMapMarker marker in mapMarkers)
            {
                if (marker != null) marker.UpdateMarkers();
            }
        }
        private void OnServerInitialized()
        {
            StringBuilderInstance = new StringBuilder();
            LoadData();
            LoadCustomMarkers();
        }

        private void Unload()
        {
            SaveData();
            RemoveMarkers();
            StringBuilderInstance = null;
        }

        #endregion

        #region Metods

        private void CreateMarker(Vector3 position, int duration, float refreshRate, string name, string displayName, float radius = 0.3f, float alpha = 0.75f, string colorMarker = "00FFFF", string colorOutline = "00FFFFFF")
        {
            CustomMapMarker marker = new GameObject().AddComponent<CustomMapMarker>();
            marker.name = name;
            marker.displayName = displayName;
            marker.radius = radius;
            marker.alpha = alpha;
            marker.position = position;
            marker.duration = duration;
            marker.refreshRate = refreshRate;
            ColorUtility.TryParseHtmlString($"#{colorMarker}", out marker.color1);
            ColorUtility.TryParseHtmlString($"#{colorOutline}", out marker.color2);
            mapMarkers.Add(marker);
        }

        private void CreateMarker(BaseEntity entity, int duration, float refreshRate, string name, string displayName, float radius = 0.3f, float alpha = 0.75f, string colorMarker = "00FFFF", string colorOutline = "00FFFFFF")
        {
            CustomMapMarker marker = entity.gameObject.GetOrAddComponent<CustomMapMarker>();
            marker.name = name;
            marker.displayName = displayName;
            marker.radius = radius;
            marker.alpha = alpha;
            marker.refreshRate = refreshRate;
            marker.parent = entity;
            marker.position = entity.transform.position;
            marker.duration = duration;
            ColorUtility.TryParseHtmlString($"#{colorMarker}", out marker.color1);
            ColorUtility.TryParseHtmlString($"#{colorOutline}", out marker.color2);
            mapMarkers.Add(marker);
        }

        private void RemoveMarker(string name)
        {
            foreach (CustomMapMarker marker in mapMarkers)
            {
                if (marker.name != null && marker.name == name) UnityEngine.Object.Destroy(marker);
            }
        }

        private void RemoveMarkers()
        {
            foreach (CustomMapMarker marker in mapMarkers)
            {
                if (marker.name != null) UnityEngine.Object.Destroy(marker);
            }
        }
        private void RemoveCustomMarker(string name, BasePlayer player = null)
        {
            int i = 0;
            foreach (CustomMapMarker marker in mapMarkers)
            {
                if (marker.name == null || marker.placedByPlayer == false) continue;

                if (marker.name == name)
                {
                    UnityEngine.Object.Destroy(marker);
                    i++;
                }
            }
            RemoveSavedMarker(name);
            Message(player, "Removed", i);
        }

        private void CreateCustomMarker(CachedMarker def, BasePlayer player = null)
        {
            CustomMapMarker marker = new GameObject().AddComponent<CustomMapMarker>();
            marker.name = def.name;
            marker.displayName = def.displayName;
            marker.radius = def.radius;
            marker.alpha = def.alpha;
            marker.position = def.position;
            marker.duration = def.duration;
            marker.refreshRate = def.refreshRate;
            marker.placedByPlayer = true;
            ColorUtility.TryParseHtmlString($"#{def.color1}", out marker.color1);
            ColorUtility.TryParseHtmlString($"#{def.color2}", out marker.color2);
            mapMarkers.Add(marker);
            if(player != null) Message(player, "Added", marker.displayName, marker.position);
        }

        private void SaveCustomMarker(CachedMarker def)
        {
            data.Add(def);
        }

        private void LoadCustomMarkers()
        {
            foreach (CachedMarker def in data)
            {
                CreateCustomMarker(def);
            }
        }

        private void RemoveSavedMarker(string name)
        {
            data.RemoveAll(x => x.name == name);
        }
        #endregion

        #region Command
        private void cmdMarkerChat(BasePlayer player, string command, string[] args)
        {
            if (permission.UserHasPermission(player.UserIDString, permUse) == false)
            {
                Message(player, "Permission");
                return;
            }

            if (args == null || args?.Length == 0)
            {
                Message(player, "Usage");
                return;
            }

            switch (args[0].ToLower())
            {
                default:
                    Message(player, "Usage");
                    break;

                case "add":
                case "create":
                    if (args.Length < 8)
                    {
                        Message(player, "Usage");
                    }
                    else
                    {
                        CachedMarker def = new CachedMarker
                        {
                            position = player.transform.position,
                            name = args[1],
                            duration = Convert.ToInt32(args[2]),
                            refreshRate = Convert.ToSingle(args[3]),
                            radius = Convert.ToSingle(args[4]),
                            alpha = Convert.ToSingle(args[5]),
                            displayName = args[6],
                            color1 = args[7],
                            color2 = args[8],
                        };

                        CreateCustomMarker(def, player);
                        SaveCustomMarker(def);
                    }

                    return;

                case "remove":
                case "delete":
                    if (args.Length < 2)
                    {
                        Message(player, "Usage");
                    }
                    else
                    {
                        RemoveCustomMarker(args[1], player);
                    }

                    return;
            }
        }

        #endregion

        #region Data 1.0.0

        private const string filename = "MarkerManager/Custom";
        private static List<CachedMarker> data = new List<CachedMarker>();

        private class CachedMarker
        {
            public float radius;
            public float alpha;
            public string color1;
            public string color2;
            public string displayName;
            public string name;
            public float refreshRate;
            public Vector3 position;
            public int duration;
        }

        private void LoadData()
        {
            try
            {
                data = Interface.Oxide.DataFileSystem.ReadObject<List<CachedMarker>>(filename);
            }
            catch (Exception e)
            {
                PrintWarning(e.Message);
            }

            SaveData();
            timer.Every(Core.Random.Range(500, 700f), SaveData);
        }

        private void SaveData()
        {
            Interface.Oxide.DataFileSystem.WriteObject(filename, data);
        }

        #endregion

        #region API

        private void API_CreateMarker(Vector3 position, string name, int duration = 0, float refreshRate = 3f, float radius = 0.4f, float alpha = 0.75f, string displayName = "Marker", string colorMarker = "00FFFF", string colorOutline = "00FFFFFF")
        {
            CreateMarker(position, duration, refreshRate, name, displayName, radius, alpha, colorMarker, colorOutline);
        }

        private void API_CreateMarker(BaseEntity entity, string name, int duration = 0, float refreshRate = 3f, float radius = 0.4f, float alpha = 0.75f, string displayName = "Marker", string colorMarker = "00FFFF", string colorOutline = "00FFFFFF")
        {
            CreateMarker(entity, duration, refreshRate, name, displayName, radius, alpha, colorMarker, colorOutline);
        }

        private void API_RemoveMarker(string name)
        {
            RemoveMarker(name);
        }

        #endregion

        #region Localization 1.1.1

        protected override void LoadDefaultMessages()
        {
            lang.RegisterMessages(new Dictionary<string, string>
            {
                { "Usage", "<color=#00ffff>Используйте:</color>\n" + " <color=#00ffff>/marker add</color> name(code name) duration(секунды, 0 - неудолямый) refreshRate(30) radius(0.4) displayName (Названия маркера на карте) colorInline (HEX) colorOutline (HEX) - Добавить маркер на карту\n" + " <color=#00ffff>/marker remove</color> name (code name, только для маркеров созданных командой) - Удалить маркер с карты" },
                {"Permission", "У вас недостаточно разрешений для использования этой команды!"},
                {"Added", "Маркер '{0}' был добавлен {1}!"},
                {"Removed", "{0} маркер(а) с таким названием были удалены!"},
                {"RemovedOldVersion", "Вам нужно удалить плагин MarkerManager. Данные плагины не совместимы!"}
            }, this, "ru");

            lang.RegisterMessages(new Dictionary<string, string>
            {
                { "Usage", "<color=#00ffff>Usage:</color>\n" + " <color=#00ffff>/marker add</color> name(code name) duration(seconds, 0 to permanent) refreshRate(30) radius(0.4) displayName (on map) colorInline (HEX) colorOutline (HEX) - Add marker on map\n" + " <color=#00ffff>/marker remove</color> name (code name, only for custom markers) - Remove marker from map" },
                {"Permission", "You don't have permission to use that!"},
                {"Added", "Marker '{0}' was added on {1}!"},
                {"Removed", "{0} markers with that name was removed!"},
                {"RemovedOldVersion", "You need to remove the MarkerManager plugin. These plugins are not compatible!"}

            }, this);
        }
        public string GetLang(string LangKey, string userID = null, params object[] args)
        {
            StringBuilderInstance.Clear();
            if (args != null)
            {
                StringBuilderInstance.AppendFormat(lang.GetMessage(LangKey, this, userID), args);
                return StringBuilderInstance.ToString();
            }
            return lang.GetMessage(LangKey, this, userID);
        }

        private void Message(BasePlayer player, string messageKey, params object[] args)
        {
            string message = GetLang(messageKey, player.UserIDString, args);
            player.SendConsoleCommand("chat.add", Chat.ChatChannel.Global, 0, message);
        }

        #endregion

        #region Scripts
        private class CustomMapMarker : MonoBehaviour
        {
            private VendingMachineMapMarker vending;
            private MapMarkerGenericRadius generic;
            public BaseEntity parent;
            private bool asChild;

            public new string name;
            public float radius;
            public float alpha;
            public Color color1;
            public Color color2;
            public string displayName;
            public float refreshRate;
            public Vector3 position;
            public int duration;
            public bool placedByPlayer;


            private void Start()
            {
                transform.position = position;
                asChild = parent != null;
                CreateMarkers();
            }

            private void CreateMarkers()
            {
                vending = GameManager.server.CreateEntity(vendingPrefab, position) .GetComponent<VendingMachineMapMarker>();
                vending.markerShopName = displayName;
                vending.enableSaving = false;
                vending.Spawn();

                generic = GameManager.server.CreateEntity(genericPrefab).GetComponent<MapMarkerGenericRadius>();
                generic.color1 = color1;
                generic.color2 = color2;
                generic.radius = radius;
                generic.alpha = alpha;
                generic.enableSaving = false;
                generic.SetParent(vending);
                generic.Spawn();

                if (duration != 0)
                {
                    Invoke(nameof(DestroyMakers), duration);
                }

                UpdateMarkers();

                if (refreshRate > 0f)
                {
                    if (asChild)
                    {
                        InvokeRepeating(nameof(UpdatePosition), refreshRate, refreshRate);
                    }
                    else
                    {
                        InvokeRepeating(nameof(UpdateMarkers), refreshRate, refreshRate);
                    }
                }
            }

            private void UpdatePosition()
            {
                if (asChild == true)
                {
                    if (parent.IsValid() == false)
                    {
                        Destroy(this);
                        return;
                    }
                    else
                    {
                        Vector3 pos = parent.transform.position;
                        transform.position = pos;
                        vending.transform.position = pos;
                    }
                }

                UpdateMarkers();
            }

            public void UpdateMarkers()
            {
                vending.SendNetworkUpdate();
                generic.SendUpdate();
            }

            private void DestroyMakers()
            {
                if (vending.IsValid())
                {
                    vending.Kill();
                }

                if (generic.IsValid())
                {
                    generic.Kill();
                }
            }

            private void OnDestroy()
            {
                DestroyMakers();
            }
        }
        #endregion
    }
}

 

Link to comment
Share on other sites

Hello, this plugin does not spawn a ch47 (chinooklockedcrate) box in the middle of the map.
I think your problem is something else.

Link to comment
Share on other sites

great plugin the newest update seems to be loading my server with yellow error's tho if you need them let me know.

 

Link to comment
Share on other sites

 

2 minutes ago, CarlosAssassinS said:

The spawn NPC plugin does not work for me, it gives me an error, what could it be?

Could you provide your console output so we see the error ?

Link to comment
Share on other sites

Hello plugin developer! I have a big request for you! Please add the ability to disable kills between NPCs! So they don't kill each other. Otherwise, the meaning of the plugin is lost. The NPCs seem to have gone mad and are staging a coup. On the one hand, it's funny, but on the other, they weren't put here for that.
Also, it would be good to add the function of removing corpses and turning them into backpacks.

Thank you in advance!😇
I look forward to updating with a new feature!

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...