C#:
// Все права принадлежат дискорд сообществу https://discord.gg/VgNHPpNrz6
// #define TESTING
using System;
using System.Collections;
using System.Collections.Generic;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using Oxide.Core;
using Oxide.Core.Database;
using Oxide.Core.Libraries;
using Oxide.Core.Libraries.Covalence;
using Oxide.Core.Plugins;
using Oxide.Core.SQLite.Libraries;
using Oxide.Game.Rust.Cui;
using Oxide.Plugins.UltimateLeaderboardExtensionMethods;
using UnityEngine;
using UnityEngine.Networking;
using UnityEngine.UI;
using Pool = Facepunch.Pool;
using Debug = UnityEngine.Debug;
using Global = Rust.Global;
using Image = UnityEngine.UI.Image;
#if CARBON
using Carbon.Base;
using Carbon.Modules;
#endif
namespace Oxide.Plugins {
[Info("Ultimate Leaderboard", "Mevent", "1.2.8")]
public class UltimateLeaderboard : RustPlugin {
#region Fields
[PluginReference]
private Plugin ImageLibrary = null, ServerPanel = null, Notify = null, UINotify = null, LangAPI = null, BetterChat = null, Clans = null;
private static UltimateLeaderboard Instance;
#if CARBON
private ImageDatabaseModule imageDatabase;
#endif
private bool _isLangAPIReady;
private bool _enabledImageLibrary;
private IPlayerDataStorage dataStorage;
private Dictionary<ulong, PlayerStats> playerStats = new();
private MemoryLeaderboard Leaderboard;
private bool isLeaderboard;
private Coroutine cacheCoroutine;
private const string PERM_Profile = "ultimateleaderboard.profile", Layer = "UI.Ultimate.Leaderboard", LayerContent = "UI.Ultimate.Leaderboard.Section.Content";
private (bool spStatus, int categoryID) _serverPanelCategory = (false, -1);
// key - use serverPanel, value - category id
private Dictionary<ulong, float> profileRequestCooldown = new Dictionary<ulong, float>();
private const int ProfileCooldownDuration = 5;
private HashSet<ulong> loadingProfiles = new HashSet<ulong>();
#endregion
#region Config
public static Configuration _config;
public class Configuration {
#region Fields
[JsonProperty(PropertyName = "Permission to use plugin (ex: ultimateleaderboard.use)")]
public string Permission = string.Empty;
[JsonProperty(PropertyName = "Work with Notify?")]
public bool UseNotify = true;
[JsonProperty(PropertyName = "Commands", ObjectCreationHandling = ObjectCreationHandling.Replace)]
public string[] Commands = {
"leaderboard", "stats"
}
;
[JsonProperty(PropertyName = "ServerPanel Template (V1, V2)")]
public PatternServerMenu Pattern;
[JsonProperty(PropertyName = "Leaderboard Cache Interval (seconds)")]
public int LeaderboardCacheInterval = 600;
[JsonProperty(PropertyName = "Wipe data on new save")]
public bool WipeDataOnNewSave = true;
[JsonProperty(PropertyName = "Count NPC kills as player kills")]
public bool CountNPCKillsAsPlayerKills = false;
[JsonProperty(PropertyName = "Data Storage Settings")]
public StorageInfo Storage = new() {
StorageType = StorageType.SQLite, SQLite = new StorageInfo.SQLiteSettings {
DatabaseName = "players.db"
}
, MySQL = new StorageInfo.MySQLSettings {
Host = "localhost", Port = 3306, DatabaseName = "rust", Username = "root", Password = ""
}
}
;
[JsonProperty(PropertyName = "Loot Settings")]
public LootSettings Loot = new() {
Enabled = true, Loots = new List<LootSettings.LootEntry> {
LootSettings.LootEntry.Create("kills", LootSettings.LootType.Kill), LootSettings.LootEntry.Create("deaths", LootSettings.LootType.Kill, -1f), LootSettings.LootEntry.Create("stones", LootSettings.LootType.Gather, 0.1f), LootSettings.LootEntry.Create("supply_drop", LootSettings.LootType.LootItems, 3), LootSettings.LootEntry.Create("crate_normal", LootSettings.LootType.LootItems, 0.3f), LootSettings.LootEntry.Create("crate_elite", LootSettings.LootType.LootItems, 0.5f), LootSettings.LootEntry.Create("bradley_crate", LootSettings.LootType.LootItems, 5f), LootSettings.LootEntry.Create("heli_crate", LootSettings.LootType.LootItems, 5f), LootSettings.LootEntry.Create("bradleyapc", LootSettings.LootType.Kill, 10f), LootSettings.LootEntry.Create("patrolhelicopter", LootSettings.LootType.Kill, 15f), LootSettings.LootEntry.Create("barrel", LootSettings.LootType.Kill, 0.1f), LootSettings.LootEntry.Create("npc_tunneldweller|npc_tunneldwellerspawned|npc_underwaterdweller|scientistnpc_arena|scientistnpc_bradley|scientistnpc_bradley_heavy|scientistnpc_cargo|scientistnpc_cargo_turret_any|scientistnpc_cargo_turret_lr300|scientistnpc_ch47_gunner|scientistnpc_excavator|scientistnpc_full_any|scientistnpc_full_lr300|scientistnpc_full_mp5|scientistnpc_full_pistol|scientistnpc_full_shotgun|scientistnpc_junkpile_pistol|scientistnpc_oilrig|scientistnpc_patrol|scientistnpc_patrol_arctic|scientistnpc_peacekeeper|scientistnpc_roam|scientistnpc_roam_nvg_variant|scientistnpc_roamtethered", LootSettings.LootType.Kill, 0.5f), LootSettings.LootEntry.Create("scientistnpc_heavy", LootSettings.LootType.Kill, 2f), LootSettings.LootEntry.Create("sulfur.ore", LootSettings.LootType.Gather, 0.5f), LootSettings.LootEntry.Create("metal.ore", LootSettings.LootType.Gather, 0.5f), LootSettings.LootEntry.Create("hq.metal.ore", LootSettings.LootType.Gather, 0.5f), LootSettings.LootEntry.Create("stones", LootSettings.LootType.Gather, 0.5f), LootSettings.LootEntry.Create("cupboard.tool.deployed", LootSettings.LootType.Kill)
}
}
;
[JsonProperty(PropertyName = "Tabs", ObjectCreationHandling = ObjectCreationHandling.Replace)]
public List<TabConfig> Tabs = new() {
new TabConfig {
Name = "GENERAL", Blocks = new List<BlockConfig> {
new() {
BlockType = "Profile", StatFields = new List<StatFieldConfig> {
new() {
Type = LootSettings.LootType.Custom, Prefab = "name", Icon = "avatar", Title = "Profile"
}
, new() {
Type = LootSettings.LootType.Custom, Prefab = "kd", Icon = "https://i.ibb.co/TcWCQjd/icon-kd.png", Title = "K/D"
}
, new() {
Type = LootSettings.LootType.Custom, Prefab = "current_playtime", SecondPrefab = "formatеed_total_playtime", Icon = "https://i.ibb.co/LrYg0tM/icon-time.png", Title = "Session duration"
}
, new() {
Type = LootSettings.LootType.Custom, Prefab = "longest_kill_distance", Icon = "https://i.ibb.co/6RZcHWrz/Frame-Icon-1-1.png", Title = "Longest Kill Distance"
}
, new() {
Type = LootSettings.LootType.Custom, Prefab = "total_resources", Icon = "https://i.ibb.co/0jd7Kcyv/Frame-Icon-1-2.png", Title = "Total Resources Gathered"
}
, new() {
Type = LootSettings.LootType.Custom, Prefab = "favorite_resource", Icon = "https://i.ibb.co/GfpgX0Rm/Frame-Icon-1-3.png", Title = "Favorite Resource"
}
, new() {
Type = LootSettings.LootType.Custom, Prefab = "total_items_crafted", Icon = "https://i.ibb.co/3YLFnH9s/Frame-Icon-1-4.png", Title = "Total Items Crafted"
}
, new() {
Type = LootSettings.LootType.Custom, Prefab = "structures_built", Icon = "https://i.ibb.co/qLf15T0F/Frame-Icon-1-5.png", Title = "Structures Built"
}
, new() {
Type = LootSettings.LootType.Custom, Prefab = "upgrades_performed", Icon = "https://i.ibb.co/wr77GyGX/Frame-Icon-1-6.png", Title = "Upgrades Performed"
}
, new() {
Type = LootSettings.LootType.Custom, Prefab = "favorite_building_material", Icon = "https://i.ibb.co/Zphz6ggv/Frame-Icon-1-7.png", Title = "Favorite Building Material"
}
, new() {
Type = LootSettings.LootType.Custom, Icon = "https://i.ibb.co/4RLGH90w/Frame-Icon-1-8.png", Prefab = "events_won", Title = "Events Won"
}
, new() {
Type = LootSettings.LootType.Custom, Prefab = "favorite_event", Icon = "https://i.ibb.co/wFCXGgLn/Frame-Icon-1-9.png", Title = "Favorite Event"
}
}
}
, new() {
BlockType = "Statistics", Columns = new List<ColumnConfig> {
new() {
Title = "EVENTS", StatFields = new List<StatFieldConfig> {
new() {
Type = LootSettings.LootType.Event, Prefab = "Convoy", Title = "Convoy", Icon = "https://i.ibb.co/Jzf9bq6/icon-convoy.png"
}
, new() {
Type = LootSettings.LootType.Event, Prefab = "Sputnik", Title = "Sputnik", Icon = "https://i.ibb.co/DgQRGH6/icon-sputnik.png"
}
, new() {
Type = LootSettings.LootType.Event, Prefab = "Caravan", Title = "Caravan", Icon = "https://i.ibb.co/TqHMK1k/icon-caravan-png.png"
}
, new() {
Type = LootSettings.LootType.Event, Prefab = "GasStationEvent", Title = "GasStation", Icon = "https://i.ibb.co/mDHn5FL/icon-gas-station.png"
}
, new() {
Type = LootSettings.LootType.Event, Prefab = "AirEvent", Title = "Air", Icon = "https://i.ibb.co/0M2TxGw/icon-air-event.png"
}
, new() {
Type = LootSettings.LootType.Event, Prefab = "SatDishEvent", Title = "SatDish", Icon = "https://i.ibb.co/1qVQLwK/icon-sat-dish.png"
}
, new() {
Type = LootSettings.LootType.Event, Prefab = "Triangulation", Title = "Triangulation", Icon = "https://i.ibb.co/wYPd8Md/icon-triangulation.png"
}
, new() {
Type = LootSettings.LootType.Event, Prefab = "WaterEvent", Title = "Water", Icon = "https://i.ibb.co/0Fj08WP/icon-Water-Treatment.png"
}
, new() {
Type = LootSettings.LootType.Event, Prefab = "HarborEvent", Title = "Harbor", Icon = "https://i.ibb.co/WF8ZnDH/icon-harbor.png"
}
, new() {
Type = LootSettings.LootType.Event, Prefab = "ArcticBaseEvent", Title = "ArcticBase", Icon = "https://i.ibb.co/9GrVv3Z/icon-arctic-base.png"
}
, new() {
Type = LootSettings.LootType.Event, Prefab = "JunkyardEvent", Title = "Junkyard", Icon = "https://i.ibb.co/D4cZ1n2/icon-Junk-Yard.png"
}
, new() {
Type = LootSettings.LootType.Event, Prefab = "SupermarketEvent", Title = "Supermarket", Icon = "https://i.ibb.co/mNR56hB/icon-supermarket.png"
}
, new() {
Type = LootSettings.LootType.Event, Prefab = "PowerPlantEvent", Title = "PowerPlant", Icon = "https://i.ibb.co/VC15pr1/icon-power-plant.png"
}
}
}
}
}
}
}
, new TabConfig {
Name = "RESOURCES", Blocks = new List<BlockConfig> {
new() {
BlockType = "Statistics", Columns = new List<ColumnConfig> {
new() {
Title = "RESOURCES", StatFields = new List<StatFieldConfig> {
new() {
Type = LootSettings.LootType.Gather, Prefab = "stones", Title = "Stone"
}
, new() {
Type = LootSettings.LootType.Gather, Prefab = "wood", Title = "Wood"
}
, new() {
Type = LootSettings.LootType.Gather, Prefab = "sulfur.ore", Title = "Sulfur Ore"
}
, new() {
Type = LootSettings.LootType.Gather, Prefab = "metal.ore", Title = "Metal Ore"
}
, new() {
Type = LootSettings.LootType.Gather, Prefab = "hq.metal.ore", Title = "High Quality Metal Ore"
}
, new() {
Type = LootSettings.LootType.Gather, Prefab = "leather", Title = "Leather"
}
, new() {
Type = LootSettings.LootType.Gather, Prefab = "bone.fragments", Title = "Bone Fragments"
}
, new() {
Type = LootSettings.LootType.Gather, Prefab = "fat.animal", Title = "Animal Fat"
}
, new() {
Type = LootSettings.LootType.LootItems, Prefab = "scrap", Title = "Scrap"
}
}
}
, new() {
Title = "FARMING", StatFields = new List<StatFieldConfig> {
new() {
Type = LootSettings.LootType.Gather, Prefab = "hemp-collectable", Icon = "assets/prefabs/plants/hemp/hemp_clone.icon.png", Title = "Hemp"
}
, new() {
Type = LootSettings.LootType.Gather, Prefab = "blue.berry", Title = "Blue Berry"
}
, new() {
Type = LootSettings.LootType.Gather, Prefab = "red.berry", Title = "Red Berry"
}
, new() {
Type = LootSettings.LootType.Gather, Prefab = "yellow.berry", Title = "Yellow Berry"
}
, new() {
Type = LootSettings.LootType.Gather, Prefab = "black.berry", Title = "Black Berry"
}
, new() {
Type = LootSettings.LootType.Gather, Prefab = "green.berry", Title = "Green Berry"
}
, new() {
Type = LootSettings.LootType.Gather, Prefab = "white.berry", Title = "White Berry"
}
, new() {
Type = LootSettings.LootType.Gather, Prefab = "potato", Title = "Potato"
}
, new() {
Type = LootSettings.LootType.Gather, Prefab = "cloth", Title = "Cloth"
}
, new() {
Type = LootSettings.LootType.Gather, Prefab = "mushroom", Title = "Mushroom"
}
, new() {
Type = LootSettings.LootType.Gather, Prefab = "corn", Title = "Corn"
}
, new() {
Type = LootSettings.LootType.Gather, Prefab = "pumpkin", Title = "Pumpkin"
}
, new() {
Type = LootSettings.LootType.Gather, Prefab = "orchid", Title = "Orchid"
}
, new() {
Type = LootSettings.LootType.Gather, Prefab = "rose", Title = "Rose"
}
, new() {
Type = LootSettings.LootType.Gather, Prefab = "sunflower", Title = "Sunflower"
}
, new() {
Type = LootSettings.LootType.Gather, Prefab = "wheat", Title = "Wheat"
}
}
}
, new() {
Title = "MISC", StatFields = new List<StatFieldConfig> {
new() {
Type = LootSettings.LootType.Kill, Prefab = "bear", Icon = "assets/rust.ai/agents/bear/bearavatar.png", Title = "Bears"
}
, new() {
Type = LootSettings.LootType.Kill, Prefab = "polarbear", Icon = "assets/rust.ai/agents/bear/polarbearavatar.png", Title = "Polar Bears"
}
, new() {
Type = LootSettings.LootType.Kill, Prefab = "boar", Icon = "assets/rust.ai/agents/boar/boaravatar.png", Title = "Boars"
}
, // new()
// {
// Type = LootSettings.LootType.Kill,
// Prefab = "chicken",
// Icon = "assets/rust.ai/agents/chicken/chickenavatar.png",
// Title = "Chicken"
// },
new() {
Type = LootSettings.LootType.Kill, Prefab = "stag", Icon = "assets/rust.ai/agents/stag/stagavatar.png", Title = "Stag"
}
, new() {
Type = LootSettings.LootType.Kill, Prefab = "wolf2", Icon = "assets/rust.ai/agents/wolf/wolfavatar.png", Title = "Wolf"
}
, new() {
Type = LootSettings.LootType.Kill, Prefab = "simpleshark", Icon = "assets/rust.ai/agents/fish/shark/sharkavatar.png", Title = "Shark"
}
, new() {
Type = LootSettings.LootType.Kill, Prefab = "bradleyapc", Icon = "assets/prefabs/npc/m2bradley/bradleyavatar.png", Title = "Bradley"
}
, new() {
Type = LootSettings.LootType.Kill, Prefab = "patrolhelicopter", Icon = "assets/prefabs/npc/patrol helicopter/patrolhelicopteravatar.png", Title = "Helicopter"
}
, new() {
Type = LootSettings.LootType.Kill, Prefab = "npc_underwaterdweller|scientistnpc_arena|scientistnpc_bradley|scientistnpc_bradley_heavy|scientistnpc_cargo|scientistnpc_cargo_turret_any|scientistnpc_cargo_turret_lr300|scientistnpc_ch47_gunner|scientistnpc_excavator|scientistnpc_full_any|scientistnpc_full_lr300|scientistnpc_full_mp5|scientistnpc_full_pistol|scientistnpc_full_shotgun|scientistnpc_junkpile_pistol|scientistnpc_oilrig|scientistnpc_patrol|scientistnpc_patrol_arctic|scientistnpc_peacekeeper|scientistnpc_roam|scientistnpc_roam_nvg_variant|scientistnpc_roamtethered", Icon = "assets/rust.ai/agents/npcplayer/humannpc/scientist/scientistavatar.png", Title = "Scientist"
}
, new() {
Type = LootSettings.LootType.Kill, Prefab = "scientistnpc_heavy", Icon = "assets/rust.ai/agents/npcplayer/humannpc/scientist/heavyscientistavatar.png", Title = "Heavy Scientist"
}
, new() {
Type = LootSettings.LootType.Kill, Prefab = "npc_tunneldweller|npc_tunneldwellerspawned", Icon = "https://i.ibb.co/JFS7L9CT/image.png", Title = "Tunnel Dweller"
}
, new() {
Type = LootSettings.LootType.Kill, Prefab = "npc_underwaterdweller", Icon = "https://i.ibb.co/7t9z9fPQ/image.png", Title = "Underwater Lab Dweller"
}
}
}
, new() {
Title = "RAID", StatFields = new List<StatFieldConfig> {
new() {
Type = LootSettings.LootType.ExplosiveUsed, Prefab = "explosive.satchel", Title = "Satchel"
}
, new() {
Type = LootSettings.LootType.ExplosiveUsed, Prefab = "grenade.molotov", Title = "Molotov"
}
, new() {
Type = LootSettings.LootType.ExplosiveUsed, Prefab = "grenade.flashbang", Title = "Flashbang"
}
, new() {
Type = LootSettings.LootType.ExplosiveUsed, Prefab = "surveycharge", Title = "Survey Charge"
}
, new() {
Type = LootSettings.LootType.ExplosiveUsed, Prefab = "grenade.f1", Title = "Grenade"
}
, new() {
Type = LootSettings.LootType.ExplosiveUsed, Prefab = "grenade.beancan", Title = "Beancan"
}
, new() {
Type = LootSettings.LootType.ExplosiveUsed, Prefab = "ammo.rocket.basic", Title = "Rocket"
}
, new() {
Type = LootSettings.LootType.ExplosiveUsed, Prefab = "ammo.rocket.fire", Title = "Incendiary Rocket"
}
, new() {
Type = LootSettings.LootType.ExplosiveUsed, Prefab = "ammo.rocket.hv", Title = "Rocket HV"
}
, new() {
Type = LootSettings.LootType.ShotFired, Prefab = "ammo.rifle.explosive", Title = "Explosive 5.56 Rifle Ammo"
}
, new() {
Type = LootSettings.LootType.ExplosiveUsed, Prefab = "ammo.grenadelauncher.he", Title = "GL HE"
}
, new() {
Type = LootSettings.LootType.ExplosiveUsed, Prefab = "explosive.timed", Title = "C4"
}
, new() {
Type = LootSettings.LootType.ShotFired, Prefab = "ammo.rocket.mlrs", Title = "MLRS Rocket"
}
}
}
, new() {
Title = "RECYCLED", StatFields = new List<StatFieldConfig> {
new() {
Type = LootSettings.LootType.RecycleItem, Prefab = "propanetank", Title = "Propane Tanks"
}
, new() {
Type = LootSettings.LootType.RecycleItem, Prefab = "gears", Title = "Gears"
}
, new() {
Type = LootSettings.LootType.RecycleItem, Prefab = "metalpipe", Title = "Metal Pipe"
}
, new() {
Type = LootSettings.LootType.RecycleItem, Prefab = "riflebody", Title = "Rifle Body"
}
, new() {
Type = LootSettings.LootType.RecycleItem, Prefab = "semibody", Title = "Semi Body"
}
, new() {
Type = LootSettings.LootType.RecycleItem, Prefab = "metalspring", Title = "Metal Springs"
}
, new() {
Type = LootSettings.LootType.RecycleItem, Prefab = "roadsigns", Title = "Road Signs"
}
, new() {
Type = LootSettings.LootType.RecycleItem, Prefab = "sewingkit", Title = "Sewing Kits"
}
, new() {
Type = LootSettings.LootType.RecycleItem, Prefab = "tarp", Title = "Tarp"
}
, new() {
Type = LootSettings.LootType.RecycleItem, Prefab = "rope", Title = "Rope"
}
, new() {
Type = LootSettings.LootType.RecycleItem, Prefab = "sheetmetal", Title = "Sheet Metal"
}
, new() {
Type = LootSettings.LootType.RecycleItem, Prefab = "fuse", Title = "Fuse"
}
, new() {
Type = LootSettings.LootType.RecycleItem, Prefab = "metalblade", Title = "Metal Blade"
}
, new() {
Type = LootSettings.LootType.RecycleItem, Prefab = "smgbody", Title = "SMG Body"
}
, new() {
Type = LootSettings.LootType.RecycleItem, Prefab = "techparts", Title = "Tech Parts"
}
, new() {
Type = LootSettings.LootType.RecycleItem, Prefab = "targeting.computer", Title = "Targeting Computer"
}
, new() {
Type = LootSettings.LootType.RecycleItem, Prefab = "cctv.camera", Title = "CCTV Camera"
}
}
}
, new() {
Title = "FIRED", StatFields = new List<StatFieldConfig> {
new() {
Type = LootSettings.LootType.ShotFired, Prefab = "ammo.pistol", Title = "Pistol"
}
, new() {
Type = LootSettings.LootType.ShotFired, Prefab = "ammo.pistol.fire", Title = "Pistol Incendiary"
}
, new() {
Type = LootSettings.LootType.ShotFired, Prefab = "ammo.pistol.hv", Title = "Pistol HV"
}
, new() {
Type = LootSettings.LootType.ShotFired, Prefab = "ammo.nailgun.nails", Title = "Nailguns"
}
, new() {
Type = LootSettings.LootType.ShotFired, Prefab = "ammo.rifle", Title = "Rifle"
}
, new() {
Type = LootSettings.LootType.ShotFired, Prefab = "ammo.rifle.hv", Title = "Rifle HV"
}
, new() {
Type = LootSettings.LootType.ShotFired, Prefab = "ammo.rifle.incendiary", Title = "Rifle Incendiary"
}
, new() {
Type = LootSettings.LootType.ShotFired, Prefab = "ammo.handmade.shell", Title = "HandMades"
}
, new() {
Type = LootSettings.LootType.ShotFired, Prefab = "ammo.grenadelauncher.buckshot", Title = "GL Buckshot"
}
, new() {
Type = LootSettings.LootType.ShotFired, Prefab = "ammo.shotgun.slug", Title = "Shotgun Slug"
}
, new() {
Type = LootSettings.LootType.ShotFired, Prefab = "ammo.shotgun.fire", Title = "Shotgun Fire"
}
, new() {
Type = LootSettings.LootType.ShotFired, Prefab = "ammo.shotgun", Title = "Shotgun"
}
, new() {
Type = LootSettings.LootType.ShotFired, Prefab = "snowball", Title = "SnowBall"
}
, new() {
Type = LootSettings.LootType.ShotFired, Prefab = "arrow.wooden", Title = "Wooden Arrow"
}
, new() {
Type = LootSettings.LootType.ShotFired, Prefab = "arrow.fire", Title = "Fire Arrow"
}
, new() {
Type = LootSettings.LootType.ShotFired, Prefab = "arrow.bone", Title = "Bone Arrow"
}
, new() {
Type = LootSettings.LootType.ShotFired, Prefab = "arrow.hv", Title = "High Velocity Arrow"
}
}
}
, new() {
Title = "FISHING", StatFields = new List<StatFieldConfig> {
new() {
Type = LootSettings.LootType.Fishing, Prefab = "fish.anchovy", Title = "Anchovy"
}
, new() {
Type = LootSettings.LootType.Fishing, Prefab = "fish.catfish", Title = "Catfish"
}
, new() {
Type = LootSettings.LootType.Fishing, Prefab = "fish.herring", Title = "Herring"
}
, new() {
Type = LootSettings.LootType.Fishing, Prefab = "fish.orangeroughy", Title = "Orange Roughy"
}
, new() {
Type = LootSettings.LootType.Fishing, Prefab = "fish.salmon", Title = "Salmon"
}
, new() {
Type = LootSettings.LootType.Fishing, Prefab = "fish.sardine", Title = "Sardine"
}
, new() {
Type = LootSettings.LootType.Fishing, Prefab = "fish.smallshark", Title = "Small Shark"
}
, new() {
Type = LootSettings.LootType.Fishing, Prefab = "fish.troutsmall", Title = "Small Trout"
}
, new() {
Type = LootSettings.LootType.Fishing, Prefab = "fish.yellowperch", Title = "Yellow Perch"
}
, new() {
Type = LootSettings.LootType.Fishing, Prefab = "fish.minnows", Title = "Minnows"
}
}
}
, new() {
Title = "CRAFTED", StatFields = new List<StatFieldConfig> {
new() {
Type = LootSettings.LootType.Craft, Prefab = "wall.frame.garagedoor", Title = "Garage Door"
}
, new() {
Type = LootSettings.LootType.Craft, Prefab = "door.double.hinged.metal", Title = "Sheet Metal Double Door"
}
, new() {
Type = LootSettings.LootType.Craft, Prefab = "door.double.hinged.toptier", Title = "Armored Double Door"
}
, new() {
Type = LootSettings.LootType.Craft, Prefab = "door.double.hinged.wood", Title = "Wood Double Door"
}
, new() {
Type = LootSettings.LootType.Craft, Prefab = "door.hinged.metal", Title = "Sheet Metal Door"
}
, new() {
Type = LootSettings.LootType.Craft, Prefab = "door.hinged.toptier", Title = "Armored Door"
}
, new() {
Type = LootSettings.LootType.Craft, Prefab = "door.hinged.wood", Title = "Wooden Door"
}
, new() {
Type = LootSettings.LootType.Craft, Prefab = "box.wooden.large", Title = "Large Wood Box"
}
, new() {
Type = LootSettings.LootType.Craft, Prefab = "box.wooden", Title = "Wood Storage Box"
}
, new() {
Type = LootSettings.LootType.Craft, Prefab = "flameturret", Title = "Flame Turret"
}
, new() {
Type = LootSettings.LootType.Craft, Prefab = "guntrap", Title = "Shotgun Trap"
}
, new() {
Type = LootSettings.LootType.Craft, Prefab = "autoturret", Title = "Auto Turret"
}
, new() {
Type = LootSettings.LootType.Craft, Prefab = "lock.code", Title = "Code Lock"
}
, new() {
Type = LootSettings.LootType.Craft, Prefab = "lock.key", Title = "Key Lock"
}
, new() {
Type = LootSettings.LootType.Craft, Prefab = "ladder.wooden.wall", Title = "Wooden Ladder"
}
, new() {
Type = LootSettings.LootType.Craft, Prefab = "syringe.medical", Title = "Medical Syringe"
}
, new() {
Type = LootSettings.LootType.Craft, Prefab = "bandage", Title = "Bandage"
}
, new() {
Type = LootSettings.LootType.Craft, Prefab = "largemedkit", Title = "Large Medkit"
}
, new() {
Type = LootSettings.LootType.Craft, Prefab = "rocket.launcher", Title = "Rocket Launcher"
}
, new() {
Type = LootSettings.LootType.Craft, Prefab = "ammo.rocket.basic", Title = "Rocket"
}
, new() {
Type = LootSettings.LootType.Craft, Prefab = "ammo.rocket.fire", Title = "Incendiary Rocket"
}
, new() {
Type = LootSettings.LootType.Craft, Prefab = "ammo.rocket.hv", Title = "HV Rocket"
}
, new() {
Type = LootSettings.LootType.Craft, Prefab = "explosive.timed", Title = "C4"
}
, new() {
Type = LootSettings.LootType.Craft, Prefab = "explosive.satchel", Title = "Satchel"
}
, new() {
Type = LootSettings.LootType.Craft, Prefab = "grenade.beancan", Title = "Beancan"
}
, new() {
Type = LootSettings.LootType.Craft, Prefab = "grenade.f1", Title = "Grenade"
}
, new() {
Type = LootSettings.LootType.Craft, Prefab = "ammo.rifle.explosive", Title = "Explosive 5.56 Rifle Ammo"
}
, new() {
Type = LootSettings.LootType.Craft, Prefab = "explosives", Title = "Explosives"
}
, new() {
Type = LootSettings.LootType.Craft, Prefab = "gunpowder", Title = "Gun Powder"
}
, new() {
Type = LootSettings.LootType.Craft, Prefab = "lowgradefuel", Title = "Low Grade Fuel"
}
}
}
, new() {
Title = "LOOTED", StatFields = new List<StatFieldConfig> {
new() {
Type = LootSettings.LootType.Crate, Prefab = "crate_normal_2", Title = "Normal Crate", Icon = "https://i.ibb.co/tsgZ5Nr/radtown-crate-normal-2.png"
}
, new() {
Type = LootSettings.LootType.Crate, Prefab = "crate_basic", Title = "Basic Crate", Icon = "https://i.ibb.co/C2gJtPN/radtown-crate-basic.png"
}
, new() {
Type = LootSettings.LootType.Crate, Prefab = "crate_elite", Title = "Elite Crate", Icon = "https://i.ibb.co/x7cygHS/radtown-crate-elite.png"
}
, new() {
Type = LootSettings.LootType.Crate, Prefab = "crate_normal", Title = "Military Crate", Icon = "https://i.ibb.co/YTCh1Ns/radtown-crate-normal.png"
}
, new() {
Type = LootSettings.LootType.Crate, Prefab = "crate_tools", Title = "Tools Crate", Icon = "https://i.ibb.co/7gMXbJh/radtown-crate-tools.png"
}
, new() {
Type = LootSettings.LootType.Crate, Prefab = "supply_drop", Title = "Supply Drop", Icon = "https://i.ibb.co/YD9P1HP/supplydrop-supply-drop.png"
}
, new() {
Type = LootSettings.LootType.Crate, Prefab = "codelockedhackablecrate|codelockedhackablecrate_oilrig", Title = "Locked Crate", Icon = "https://i.ibb.co/ryBz30Q/deployable-chinooklockedcrate-codelockedhackablecrate.png"
}
}
}
}
, StatFields = new List<StatFieldConfig>(), HitRateImages = new List<HitRateConfig>()
}
}
}
, new TabConfig {
Name = "BUILDING", Blocks = new List<BlockConfig> {
new() {
BlockType = "Building", GradeBanners = new List<GradeBannerConfig> {
new() {
Grade = BuildingGrade.Enum.Twigs.ToString().ToLower(), Image = "https://i.ibb.co/Cs9kRnth/Building-Banner-Twigs
// ... [Code preview truncated due to length. Full source in attached file] ...