more models and consolidation
This commit is contained in:
@@ -1,16 +1,14 @@
|
||||
using Types.Annotations;
|
||||
using Types.Context;
|
||||
|
||||
namespace Server.Context;
|
||||
namespace Types.Context;
|
||||
|
||||
[Injectable(InjectionType.Singleton)]
|
||||
public class ApplicationContext : IApplicationContext
|
||||
public class ApplicationContext
|
||||
{
|
||||
private const short MaxSavedValues = 10;
|
||||
private Dictionary<ContextVariableType, LinkedList<ContextVariable>> variables = new();
|
||||
private object variablesLock = new();
|
||||
|
||||
|
||||
private readonly Dictionary<ContextVariableType, LinkedList<ContextVariable>> variables = new();
|
||||
private readonly object variablesLock = new();
|
||||
|
||||
public ContextVariable? GetLatestValue(ContextVariableType type)
|
||||
{
|
||||
lock (variablesLock)
|
||||
@@ -1,9 +0,0 @@
|
||||
namespace Types.Context;
|
||||
|
||||
public interface IApplicationContext
|
||||
{
|
||||
ContextVariable? GetLatestValue(ContextVariableType type);
|
||||
ICollection<ContextVariable> GetValues(ContextVariableType type);
|
||||
void AddValue(ContextVariableType type, object value);
|
||||
void ClearValues(ContextVariableType type);
|
||||
}
|
||||
@@ -10,6 +10,5 @@
|
||||
|
||||
<ItemGroup>
|
||||
<Folder Include="Helpers\" />
|
||||
<Folder Include="Servers\Http\" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
||||
@@ -4,4 +4,5 @@ public class HttpConfig
|
||||
{
|
||||
public int Port { get; set; }
|
||||
public string Ip { get; set; }
|
||||
public bool LogRequests { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,220 @@
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace Types.Models.Eft.Common.Tables;
|
||||
|
||||
public class BotBase
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public class HideoutImprovement
|
||||
{
|
||||
[JsonPropertyName("completed")]
|
||||
public bool Completed { get; set; }
|
||||
[JsonPropertyName("improveCompleteTimestamp")]
|
||||
public long ImproveCompleteTimestamp { get; set; }
|
||||
}
|
||||
|
||||
public class Productive
|
||||
{
|
||||
public List<Product> Products { get; set; }
|
||||
|
||||
/** Seconds passed of production */
|
||||
public int? Progress { get; set; }
|
||||
|
||||
/** Is craft in some state of being worked on by client (crafting/ready to pick up) */
|
||||
[JsonPropertyName("inProgress")]
|
||||
public bool? InProgress { get; set; }
|
||||
|
||||
public string StartTimestamp { get; set; }
|
||||
public int? SkipTime { get; set; }
|
||||
|
||||
/** Seconds needed to fully craft */
|
||||
public int? ProductionTime { get; set; }
|
||||
|
||||
public List<Item> GivenItemsInStart { get; set; }
|
||||
public bool? Interrupted { get; set; }
|
||||
public string Code { get; set; }
|
||||
public bool? Decoded { get; set; }
|
||||
public bool? AvailableForFinish { get; set; }
|
||||
|
||||
/** Used in hideout production.json */
|
||||
public bool? needFuelForAllProductionTime { get; set; }
|
||||
/** Used when sending data to client */
|
||||
public bool? NeedFuelForAllProductionTime { get; set; }
|
||||
[JsonPropertyName("sptIsScavCase")]
|
||||
public bool? SptIsScavCase { get; set; }
|
||||
|
||||
/** Some crafts are always inProgress, but need to be reset, e.g. water collector */
|
||||
[JsonPropertyName("sptIsComplete")]
|
||||
public bool? SptIsComplete { get; set; }
|
||||
|
||||
/** Is the craft a Continuous, e.g bitcoins/water collector */
|
||||
[JsonPropertyName("sptIsContinuous")]
|
||||
public bool? SptIsContinuous { get; set; }
|
||||
|
||||
/** Stores a list of tools used in this craft and whether they're FiR, to give back once the craft is done */
|
||||
[JsonPropertyName("sptRequiredTools")]
|
||||
public List<Item> SptRequiredTools { get; set; }
|
||||
|
||||
// Craft is cultist circle sacrifice
|
||||
[JsonPropertyName("sptIsCultistCircle")]
|
||||
public bool? SptIsCultistCircle { get; set; }
|
||||
}
|
||||
|
||||
public class Production : Productive
|
||||
{
|
||||
public string RecipeId { get; set; }
|
||||
public int? SkipTime { get; set; }
|
||||
public int? ProductionTime { get; set; }
|
||||
}
|
||||
|
||||
public class ScavCase : Productive
|
||||
{
|
||||
public string RecipeId { get; set; }
|
||||
}
|
||||
|
||||
public class Product
|
||||
{
|
||||
[JsonPropertyName("_id")]
|
||||
public string Id { get; set; }
|
||||
[JsonPropertyName("_tpl")]
|
||||
public string Template { get; set; }
|
||||
[JsonPropertyName("upd")]
|
||||
public Upd? Upd { get; set; }
|
||||
}
|
||||
|
||||
public class BotHideoutArea
|
||||
{
|
||||
[JsonPropertyName("type")]
|
||||
public HideoutAreas Type { get; set; }
|
||||
[JsonPropertyName("level")]
|
||||
public int Level { get; set; }
|
||||
[JsonPropertyName("active")]
|
||||
public bool Active { get; set; }
|
||||
[JsonPropertyName("passiveBonusesEnabled")]
|
||||
public bool PassiveBonusesEnabled { get; set; }
|
||||
/** Must be integer */
|
||||
[JsonPropertyName("completeTime")]
|
||||
public int CompleteTime { get; set; }
|
||||
[JsonPropertyName("constructing")]
|
||||
public bool Constructing { get; set; }
|
||||
[JsonPropertyName("slots")]
|
||||
public List<HideoutSlot> Slots { get; set; }
|
||||
[JsonPropertyName("lastRecipe")]
|
||||
public string LastRecipe { get; set; }
|
||||
}
|
||||
|
||||
public class HideoutSlot
|
||||
{
|
||||
/// <summary>
|
||||
/// SPT specific value to keep track of what index this slot is (0,1,2,3 etc)
|
||||
/// </summary>
|
||||
[JsonPropertyName("locationIndex")]
|
||||
public int LocationIndex { get; set; }
|
||||
[JsonPropertyName("item")]
|
||||
public List<HideoutItem>? Items { get; set; }
|
||||
}
|
||||
|
||||
public class HideoutItem
|
||||
{
|
||||
[JsonPropertyName("_id")]
|
||||
public string Id { get; set; }
|
||||
[JsonPropertyName("_tpl")]
|
||||
public string Template { get; set; }
|
||||
[JsonPropertyName("upd")]
|
||||
public Upd? Upd { get; set; }
|
||||
}
|
||||
|
||||
public class LastCompleted
|
||||
{
|
||||
[JsonPropertyName("$oid")]
|
||||
public string Oid { get; set; }
|
||||
}
|
||||
|
||||
public class Notes
|
||||
{
|
||||
[JsonPropertyName("notes")]
|
||||
public List<Note> DataNotes { get; set; }
|
||||
}
|
||||
|
||||
public enum SurvivorClass {
|
||||
UNKNOWN = 0,
|
||||
NEUTRALIZER = 1,
|
||||
MARAUDER = 2,
|
||||
PARAMEDIC = 3,
|
||||
SURVIVOR = 4,
|
||||
}
|
||||
|
||||
public class QuestStatus
|
||||
{
|
||||
[JsonPropertyName("qid")]
|
||||
public string QuestId { get; set; }
|
||||
[JsonPropertyName("startTime")]
|
||||
public long StartTime { get; set; }
|
||||
[JsonPropertyName("status")]
|
||||
public QuestStatus Status { get; set; }
|
||||
[JsonPropertyName("statusTimers")]
|
||||
public Dictionary<string, long>? StatusTimers { get; set; }
|
||||
/** Property does not exist in live profile data, but is used by ProfileChanges.questsStatus when sent to client */
|
||||
[JsonPropertyName("completedConditions")]
|
||||
public List<string>? CompletedConditions { get; set; }
|
||||
[JsonPropertyName("availableAfter")]
|
||||
public long? AvailableAfter { get; set; }
|
||||
}
|
||||
|
||||
public class TraderInfo
|
||||
{
|
||||
[JsonPropertyName("loyaltyLevel")]
|
||||
public int? LoyaltyLevel { get; set; }
|
||||
[JsonPropertyName("salesSum")]
|
||||
public int SalesSum { get; set; }
|
||||
[JsonPropertyName("standing")]
|
||||
public int Standing { get; set; }
|
||||
[JsonPropertyName("nextResupply")]
|
||||
public int NextResupply { get; set; }
|
||||
[JsonPropertyName("unlocked")]
|
||||
public bool Unlocked { get; set; }
|
||||
[JsonPropertyName("disabled")]
|
||||
public bool Disabled { get; set; }
|
||||
}
|
||||
|
||||
public class RagfairInfo
|
||||
{
|
||||
[JsonPropertyName("rating")]
|
||||
public double Rating { get; set; }
|
||||
[JsonPropertyName("isRatingGrowing")]
|
||||
public bool IsRatingGrowing { get; set; }
|
||||
[JsonPropertyName("offers")]
|
||||
public List<RagfairOffer> Offers { get; set; }
|
||||
}
|
||||
|
||||
|
||||
public class Bonus
|
||||
{
|
||||
[JsonPropertyName("id")]
|
||||
public string? Id { get; set; }
|
||||
[JsonPropertyName("type")]
|
||||
public BonusType Type { get; set; }
|
||||
[JsonPropertyName("templateId")]
|
||||
public string? TemplateId { get; set; }
|
||||
[JsonPropertyName("passive")]
|
||||
public bool? IsPassive { get; set; }
|
||||
[JsonPropertyName("production")]
|
||||
public bool? IsProduction { get; set; }
|
||||
[JsonPropertyName("visible")]
|
||||
public bool? IsVisible { get; set; }
|
||||
[JsonPropertyName("value")]
|
||||
public double? Value { get; set; }
|
||||
[JsonPropertyName("icon")]
|
||||
public string? Icon { get; set; }
|
||||
[JsonPropertyName("filter")]
|
||||
public List<string>? Filter { get; set; }
|
||||
[JsonPropertyName("skillType")]
|
||||
public BonusSkillType? SkillType { get; set; }
|
||||
}
|
||||
|
||||
public class Note {
|
||||
public double Time { get; set; }
|
||||
public string Text { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
namespace Types.Models.Eft.Common.Tables;
|
||||
|
||||
public class BotCore
|
||||
{
|
||||
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
namespace Types.Models.Eft.Common.Tables;
|
||||
|
||||
public class BotType
|
||||
{
|
||||
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
namespace Types.Models.Logging;
|
||||
|
||||
public enum LogBackgroundColor
|
||||
{
|
||||
Default,
|
||||
Black,
|
||||
Red,
|
||||
Green,
|
||||
Yellow,
|
||||
Blue,
|
||||
Magenta,
|
||||
Cyan,
|
||||
White
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
namespace Types.Models.Logging;
|
||||
|
||||
public enum LogTextColor
|
||||
{
|
||||
Black,
|
||||
Red,
|
||||
Green,
|
||||
Yellow,
|
||||
Blue,
|
||||
Magenta,
|
||||
Cyan,
|
||||
White,
|
||||
Gray
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace Types.Models.Spt.Bots;
|
||||
|
||||
public class Bots
|
||||
{
|
||||
public Dictionary<string, BotType> types { get; }
|
||||
[JsonPropertyName("base")]
|
||||
public BotBase Base { get; }
|
||||
public BotCode core { get; }
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
namespace Types.Models.Spt.Server;
|
||||
|
||||
public class DatabaseTables
|
||||
{
|
||||
public Bots? bots { get; }
|
||||
public Hideout? hideout { get; }
|
||||
public LocaleBase? locales { get; }
|
||||
public Locations? locations { get; }
|
||||
public Match? match { get; }
|
||||
public Templates? templates { get; }
|
||||
public Dictionary<string, Trader>? traders { get; }
|
||||
public Globals? globals { get; }
|
||||
public ServerBase? server { get; }
|
||||
public SettingsBase? settings { get; }
|
||||
}
|
||||
@@ -1,5 +1,16 @@
|
||||
namespace Types.Models.Utils;
|
||||
using Types.Models.Logging;
|
||||
|
||||
namespace Types.Models.Utils;
|
||||
|
||||
public interface ILogger
|
||||
{
|
||||
|
||||
void WriteToLogFile(string data);
|
||||
void Log(string data, string color, string? backgroundColor = null);
|
||||
void LogWithColor(string data, LogTextColor textColor, LogBackgroundColor? backgroundColor = null);
|
||||
void Error(string data);
|
||||
void Warning(string data);
|
||||
void Success(string data);
|
||||
void Info(string data);
|
||||
void Debug(string data, bool? onlyShowInConsole = null);
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
using Types.Annotations;
|
||||
|
||||
namespace Types.Servers;
|
||||
|
||||
[Injectable(InjectionType.Singleton)]
|
||||
public class ConfigServer
|
||||
{
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
namespace Types.Servers;
|
||||
|
||||
public class DatabaseServer
|
||||
{
|
||||
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
namespace Types.Servers.Http;
|
||||
|
||||
public interface IHttpListener
|
||||
{
|
||||
bool CanHandle(string sessionId, object req);
|
||||
Task handle(string sessionId, object req, object resp);
|
||||
}
|
||||
@@ -0,0 +1,166 @@
|
||||
using System.Net.WebSockets;
|
||||
using Microsoft.Extensions.Primitives;
|
||||
using Types.Annotations;
|
||||
using Types.Context;
|
||||
using Types.Models.Config;
|
||||
using Types.Servers.Http;
|
||||
using Types.Services;
|
||||
using ILogger = Types.Models.Utils.ILogger;
|
||||
|
||||
namespace Types.Servers;
|
||||
|
||||
[Injectable(InjectionType.Singleton)]
|
||||
public class HttpServer
|
||||
{
|
||||
protected HttpConfig httpConfig;
|
||||
protected bool started;
|
||||
|
||||
private readonly ILogger _logger;
|
||||
private readonly LocalisationService _localisationService;
|
||||
private readonly ConfigServer _configServer;
|
||||
private readonly ApplicationContext _applicationContext;
|
||||
private readonly WebSocketServer _webSocketServer;
|
||||
private readonly IEnumerable<IHttpListener> _httpListeners;
|
||||
|
||||
public HttpServer(
|
||||
ILogger logger,
|
||||
LocalisationService localisationService,
|
||||
ConfigServer configServer,
|
||||
ApplicationContext applicationContext,
|
||||
WebSocketServer webSocketServer,
|
||||
IEnumerable<IHttpListener> httpListeners
|
||||
)
|
||||
{
|
||||
_logger = logger;
|
||||
_localisationService = localisationService;
|
||||
_configServer = configServer;
|
||||
_applicationContext = applicationContext;
|
||||
_webSocketServer = webSocketServer;
|
||||
_httpListeners = httpListeners;
|
||||
|
||||
// TODO: hook up the config server to put the HttpConfig here
|
||||
httpConfig = new HttpConfig() { Ip = "127.0.0.1", Port = 80, LogRequests = true};
|
||||
}
|
||||
|
||||
public void Load(WebApplicationBuilder builder)
|
||||
{
|
||||
builder.WebHost.UseKestrel();
|
||||
//builder.Services.AddControllers();
|
||||
// At the end
|
||||
var app = builder.Build();
|
||||
|
||||
// enable web socket
|
||||
app.UseWebSockets();
|
||||
|
||||
app.UseRouting();
|
||||
app.UseEndpoints(endpointBuilder => { endpointBuilder.MapFallback(HandleFallback); });
|
||||
started = true;
|
||||
app.Run($"http://{httpConfig.Ip}:{httpConfig.Port}");
|
||||
}
|
||||
|
||||
private Task HandleFallback(HttpContext context)
|
||||
{
|
||||
if (context.WebSockets.IsWebSocketRequest)
|
||||
{
|
||||
return context.WebSockets.AcceptWebSocketAsync()
|
||||
.ContinueWith(task => Converse(task.Result));
|
||||
}
|
||||
else
|
||||
{
|
||||
context.Request.Cookies.TryGetValue("PHPSESSID", out var sessionId);
|
||||
_applicationContext.AddValue(ContextVariableType.SESSION_ID, sessionId);
|
||||
|
||||
// Extract headers for original IP detection
|
||||
StringValues? realIp = null;
|
||||
if (context.Request.Headers.ContainsKey("x-real-ip"))
|
||||
realIp = context.Request.Headers["x-real-ip"];
|
||||
StringValues? forwardedFor = null;
|
||||
if (context.Request.Headers.ContainsKey("x-forwarded-for"))
|
||||
forwardedFor = context.Request.Headers["x-forwarded-for"];
|
||||
|
||||
var clientIp = realIp.HasValue
|
||||
? realIp.Value.First()
|
||||
: forwardedFor.HasValue
|
||||
? forwardedFor.Value.First()!.Split(",")[0].Trim()
|
||||
: context.Connection.RemoteIpAddress!.ToString();
|
||||
|
||||
if (httpConfig.LogRequests)
|
||||
{
|
||||
var isLocalRequest = IsLocalRequest(clientIp);
|
||||
if (isLocalRequest.HasValue) {
|
||||
if (isLocalRequest.Value) {
|
||||
_logger.Info(_localisationService.GetText("client_request", req.url));
|
||||
} else {
|
||||
_logger.Info(
|
||||
_localisationService.GetText("client_request_ip", {
|
||||
ip: clientIp,
|
||||
url: req.url.replaceAll("/", "\\"), // Localisation service escapes `/` into hex code `/`
|
||||
}),
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//_httpListeners.Single()
|
||||
// This http request would be passed through the SPT Router and handled by an ICallback
|
||||
}
|
||||
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
|
||||
private bool? IsLocalRequest(string? remoteAddress)
|
||||
{
|
||||
if (remoteAddress == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return (
|
||||
remoteAddress.StartsWith("127.0.0") ||
|
||||
remoteAddress.StartsWith("192.168.") ||
|
||||
remoteAddress.StartsWith("localhost")
|
||||
);
|
||||
}
|
||||
|
||||
protected Dictionary<string, string> GetCookies(HttpRequest req)
|
||||
{
|
||||
var found = new Dictionary<string, string>();
|
||||
|
||||
foreach (var keyValuePair in req.Cookies)
|
||||
{
|
||||
found.Add(keyValuePair.Key, keyValuePair.Value);
|
||||
}
|
||||
|
||||
return found;
|
||||
}
|
||||
|
||||
private void Converse(WebSocket connection)
|
||||
{
|
||||
var buffer = new byte[1024 * 4];
|
||||
var receive = connection.ReceiveAsync(
|
||||
new ArraySegment<byte>(buffer), CancellationToken.None);
|
||||
receive.Wait();
|
||||
var receiveResult = receive.Result;
|
||||
|
||||
while (!receiveResult.CloseStatus.HasValue)
|
||||
{
|
||||
connection.SendAsync(
|
||||
new ArraySegment<byte>(buffer, 0, receiveResult.Count),
|
||||
receiveResult.MessageType,
|
||||
receiveResult.EndOfMessage,
|
||||
CancellationToken.None);
|
||||
|
||||
receive = connection.ReceiveAsync(
|
||||
new ArraySegment<byte>(buffer), CancellationToken.None);
|
||||
receive.Wait();
|
||||
receiveResult = receive.Result;
|
||||
}
|
||||
|
||||
connection.CloseAsync(
|
||||
receiveResult.CloseStatus.Value,
|
||||
receiveResult.CloseStatusDescription,
|
||||
CancellationToken.None);
|
||||
}
|
||||
|
||||
public bool IsStarted() => started;
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
namespace Types.Servers;
|
||||
|
||||
public interface IConfigServer
|
||||
{
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
namespace Types.Servers;
|
||||
|
||||
public interface IHttpServer
|
||||
{
|
||||
public void Load(WebApplicationBuilder builder);
|
||||
public bool IsStarted();
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
namespace Types.Servers;
|
||||
|
||||
public interface IWebSocketServer
|
||||
{
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
using Types.Annotations;
|
||||
|
||||
namespace Types.Servers;
|
||||
|
||||
[Injectable(InjectionType.Singleton)]
|
||||
public class WebSocketServer
|
||||
{
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
namespace Types.Services;
|
||||
|
||||
public class I18nService
|
||||
{
|
||||
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
namespace Types.Services;
|
||||
|
||||
public interface ILocalisationService
|
||||
{
|
||||
}
|
||||
@@ -0,0 +1,178 @@
|
||||
using Types.Annotations;
|
||||
using Types.Servers;
|
||||
using ILogger = Types.Models.Utils.ILogger;
|
||||
|
||||
namespace Types.Services;
|
||||
|
||||
[Injectable(InjectionType.Singleton)]
|
||||
public class LocaleService
|
||||
{
|
||||
private readonly ILogger _logger;
|
||||
private readonly DatabaseServer _databaseServer;
|
||||
private readonly ConfigServer _configServer;
|
||||
|
||||
public LocaleService(ILogger logger, DatabaseServer databaseServer, ConfigServer configServer)
|
||||
{
|
||||
_logger = logger;
|
||||
_databaseServer = databaseServer;
|
||||
_configServer = configServer;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the eft globals db file based on the configured locale in config/locale.json, if not found, fall back to 'en'
|
||||
* @returns dictionary
|
||||
*/
|
||||
public Dictionary<string, string> GetLocaleDb()
|
||||
{
|
||||
/*
|
||||
const desiredLocale = this.databaseServer.getTables().locales.global[this.getDesiredGameLocale()];
|
||||
if (desiredLocale) {
|
||||
return desiredLocale;
|
||||
}
|
||||
|
||||
this.logger.warning(
|
||||
`Unable to find desired locale file using locale: ${this.getDesiredGameLocale()} from config/locale.json, falling back to 'en'`,
|
||||
);
|
||||
|
||||
return this.databaseServer.getTables().locales.global.en;
|
||||
*/
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the game locale key from the locale.json file,
|
||||
* if value is 'system' get system locale
|
||||
* @returns locale e.g en/ge/cz/cn
|
||||
*/
|
||||
public string GetDesiredGameLocale()
|
||||
{
|
||||
/*
|
||||
if (this.localeConfig.gameLocale.toLowerCase() === "system") {
|
||||
return this.getPlatformForClientLocale();
|
||||
}
|
||||
|
||||
return this.localeConfig.gameLocale.toLowerCase();
|
||||
*/
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the game locale key from the locale.json file,
|
||||
* if value is 'system' get system locale
|
||||
* @returns locale e.g en/ge/cz/cn
|
||||
*/
|
||||
public string GetDesiredServerLocale()
|
||||
{
|
||||
/*
|
||||
if (this.localeConfig.serverLocale.toLowerCase() === "system") {
|
||||
return this.getPlatformForServerLocale();
|
||||
}
|
||||
|
||||
return this.localeConfig.serverLocale.toLowerCase();
|
||||
*/
|
||||
}
|
||||
|
||||
/**
|
||||
* Get array of languages supported for localisation
|
||||
* @returns array of locales e.g. en/fr/cn
|
||||
*/
|
||||
public ICollection<string> GetServerSupportedLocales()
|
||||
{
|
||||
// return this.localeConfig.serverSupportedLocales;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get array of languages supported for localisation
|
||||
* @returns array of locales e.g. en/fr/cn
|
||||
*/
|
||||
public Dictionary<string, string> GetLocaleFallbacks()
|
||||
{
|
||||
// return this.localeConfig.fallbacks;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the full locale of the computer running the server lowercased e.g. en-gb / pt-pt
|
||||
* @returns string
|
||||
*/
|
||||
public string GetPlatformForServerLocale()
|
||||
{
|
||||
/*
|
||||
const platformLocale = this.getPlatformLocale();
|
||||
if (!platformLocale) {
|
||||
this.logger.warning("System language could not be found, falling back to english");
|
||||
|
||||
return "en";
|
||||
}
|
||||
|
||||
const baseNameCode = platformLocale.baseName.toLowerCase();
|
||||
if (!this.localeConfig.serverSupportedLocales.includes(baseNameCode)) {
|
||||
// Chek if base language (e.g. CN / EN / DE) exists
|
||||
const languageCode = platformLocale.language.toLocaleLowerCase();
|
||||
if (this.localeConfig.serverSupportedLocales.includes(languageCode)) {
|
||||
if (baseNameCode === "zh") {
|
||||
// Handle edge case of zh
|
||||
return "zh-cn";
|
||||
}
|
||||
|
||||
return languageCode;
|
||||
}
|
||||
|
||||
if (baseNameCode === "pt") {
|
||||
// Handle edge case of pt
|
||||
return "pt-pt";
|
||||
}
|
||||
|
||||
this.logger.warning(`Unsupported system language found: ${baseNameCode}, falling back to english`);
|
||||
|
||||
return "en";
|
||||
}
|
||||
|
||||
return baseNameCode;
|
||||
*/
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the locale of the computer running the server
|
||||
* @returns langage part of locale e.g. 'en' part of 'en-US'
|
||||
*/
|
||||
protected string GetPlatformForClientLocale()
|
||||
{
|
||||
/*
|
||||
const platformLocale = this.getPlatformLocale();
|
||||
if (!platformLocale) {
|
||||
this.logger.warning("System language could not be found, falling back to english");
|
||||
return "en";
|
||||
}
|
||||
|
||||
const locales = this.databaseServer.getTables().locales;
|
||||
const baseNameCode = platformLocale.baseName?.toLocaleLowerCase();
|
||||
if (baseNameCode && locales.global[baseNameCode]) {
|
||||
return baseNameCode;
|
||||
}
|
||||
|
||||
const languageCode = platformLocale.language?.toLowerCase();
|
||||
if (languageCode && locales.global[languageCode]) {
|
||||
return languageCode;
|
||||
}
|
||||
|
||||
const regionCode = platformLocale.region?.toLocaleLowerCase();
|
||||
if (regionCode && locales.global[regionCode]) {
|
||||
return regionCode;
|
||||
}
|
||||
|
||||
// BSG map DE to GE some reason
|
||||
if (platformLocale.language === "de") {
|
||||
return "ge";
|
||||
}
|
||||
|
||||
this.logger.warning(`Unsupported system language found: ${languageCode}, falling back to english`);
|
||||
return "en";
|
||||
*/
|
||||
}
|
||||
|
||||
/**
|
||||
* This is in a function so we can overwrite it during testing
|
||||
* @returns The current platform locale
|
||||
protected getPlatformLocale(): Intl.Locale {
|
||||
return new Intl.Locale(Intl.DateTimeFormat().resolvedOptions().locale);
|
||||
}
|
||||
*/
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
using Types.Annotations;
|
||||
using Types.Servers;
|
||||
using Types.Utils;
|
||||
using ILogger = Types.Models.Utils.ILogger;
|
||||
|
||||
namespace Types.Services;
|
||||
|
||||
[Injectable(InjectionType.Singleton)]
|
||||
public class LocalisationService
|
||||
{
|
||||
private readonly ILogger _logger;
|
||||
private readonly RandomUtil _randomUtil;
|
||||
private readonly DatabaseServer _databaseServer;
|
||||
private readonly LocaleService _localeService;
|
||||
private readonly I18nService _i18nService;
|
||||
|
||||
public LocalisationService(
|
||||
ILogger logger,
|
||||
RandomUtil randomUtil,
|
||||
DatabaseServer databaseServer,
|
||||
LocaleService localeService
|
||||
)
|
||||
{
|
||||
_logger = logger;
|
||||
_randomUtil = randomUtil;
|
||||
_databaseServer = databaseServer;
|
||||
_localeService = localeService;
|
||||
_i18nService = new I18nService();
|
||||
|
||||
File.ReadAllText()
|
||||
}
|
||||
|
||||
public string GetText(string key, object? args = null)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public ICollection<string> GetKeys()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public string GetRandomTextThatMatchesPartialKey(string partialKey)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
using Types.Annotations;
|
||||
using Types.Models.Logging;
|
||||
using ILogger = Types.Models.Utils.ILogger;
|
||||
|
||||
namespace Types.Utils.Logging;
|
||||
|
||||
[Injectable(InjectionType.Singleton)]
|
||||
public class SimpleTextLogger : ILogger
|
||||
{
|
||||
// TODO: for now we simplify the logger into this barebones console writer
|
||||
public void WriteToLogFile(string data)
|
||||
{
|
||||
Console.WriteLine(data);
|
||||
}
|
||||
|
||||
public void Log(string data, string color, string? backgroundColor = null)
|
||||
{
|
||||
Console.WriteLine(data);
|
||||
}
|
||||
|
||||
public void LogWithColor(string data, LogTextColor textColor, LogBackgroundColor? backgroundColor = null)
|
||||
{
|
||||
Console.WriteLine(data);
|
||||
}
|
||||
|
||||
public void Error(string data)
|
||||
{
|
||||
Console.WriteLine(data);
|
||||
}
|
||||
|
||||
public void Warning(string data)
|
||||
{
|
||||
Console.WriteLine(data);
|
||||
}
|
||||
|
||||
public void Success(string data)
|
||||
{
|
||||
Console.WriteLine(data);
|
||||
}
|
||||
|
||||
public void Info(string data)
|
||||
{
|
||||
Console.WriteLine(data);
|
||||
}
|
||||
|
||||
public void Debug(string data, bool? onlyShowInConsole = null)
|
||||
{
|
||||
Console.WriteLine(data);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
namespace Types.Utils;
|
||||
|
||||
public class RandomUtil
|
||||
{
|
||||
|
||||
}
|
||||
@@ -0,0 +1,382 @@
|
||||
{
|
||||
"airdropTypeWeightings": {
|
||||
"mixed": 5,
|
||||
"weaponArmor": 4,
|
||||
"foodMedical": 1,
|
||||
"barter": 1,
|
||||
"radar": 0
|
||||
},
|
||||
"loot": {
|
||||
"mixed": {
|
||||
"icon": "Common",
|
||||
"weaponPresetCount": {
|
||||
"min": 3,
|
||||
"max": 5
|
||||
},
|
||||
"armorPresetCount": {
|
||||
"min": 1,
|
||||
"max": 5
|
||||
},
|
||||
"itemCount": {
|
||||
"min": 15,
|
||||
"max": 35
|
||||
},
|
||||
"weaponCrateCount": {
|
||||
"min": 1,
|
||||
"max": 2
|
||||
},
|
||||
"itemBlacklist": [],
|
||||
"itemTypeWhitelist": [
|
||||
"543be5dd4bdc2deb348b4569",
|
||||
"5485a8684bdc2da71d8b4567",
|
||||
"5d650c3e815116009f6201d2",
|
||||
"5448e8d64bdc2dce718b4568",
|
||||
"5448e8d04bdc2ddf718b4569",
|
||||
"5447e1d04bdc2dff2f8b4567",
|
||||
"57864ee62459775490116fc1",
|
||||
"5448e54d4bdc2dcc718b4568",
|
||||
"5448e5284bdc2dcb718b4567",
|
||||
"5448e53e4bdc2d60728b4567",
|
||||
"5448f3a64bdc2d60728b456a",
|
||||
"5448f3ac4bdc2dce718b4569",
|
||||
"55818ad54bdc2ddc698b4569",
|
||||
"55818af64bdc2d5b648b4570",
|
||||
"55818b0e4bdc2dde698b456e",
|
||||
"5448bc234bdc2d3c308b4569",
|
||||
"57864ada245977548638de91",
|
||||
"5645bcb74bdc2ded0b8b4578",
|
||||
"5448e5724bdc2ddf718b4568",
|
||||
"55818add4bdc2d5b648b456f",
|
||||
"543be6564bdc2df4348b4568",
|
||||
"57864bb7245977548b3b66c2",
|
||||
"550aa4cd4bdc2dd8348b456c",
|
||||
"5448f39d4bdc2d0a728b4568",
|
||||
"5448f3a14bdc2d27728b4569",
|
||||
"5447e1d04bdc2dff2f8b4567",
|
||||
"55818b164bdc2ddc698b456c",
|
||||
"55818ae44bdc2dde698b456c"
|
||||
],
|
||||
"itemLimits": {
|
||||
"5447b5cf4bdc2d65278b4567": 1,
|
||||
"5448e8d04bdc2ddf718b4569": 3,
|
||||
"5448e8d64bdc2dce718b4568": 3,
|
||||
"5448bc234bdc2d3c308b4569": 3,
|
||||
"5448f3a64bdc2d60728b456a": 3,
|
||||
"5448e54d4bdc2dcc718b4568": 3,
|
||||
"5485a8684bdc2da71d8b4567": 4,
|
||||
"57864bb7245977548b3b66c2": 2,
|
||||
"57864ada245977548638de91": 3,
|
||||
"5d650c3e815116009f6201d2": 2,
|
||||
"5645bcb74bdc2ded0b8b4578": 2,
|
||||
"5448e5724bdc2ddf718b4568": 2,
|
||||
"55818add4bdc2d5b648b456f": 2,
|
||||
"543be6564bdc2df4348b4568": 3,
|
||||
"550aa4cd4bdc2dd8348b456c": 2,
|
||||
"5448f39d4bdc2d0a728b4568": 4,
|
||||
"5448f3a14bdc2d27728b4569": 2,
|
||||
"5447e1d04bdc2dff2f8b4567": 1,
|
||||
"55818ad54bdc2ddc698b4569": 3,
|
||||
"55818b164bdc2ddc698b456c": 2,
|
||||
"55818ae44bdc2dde698b456c": 2,
|
||||
"5448e5284bdc2dcb718b4567": 2
|
||||
},
|
||||
"itemStackLimits": {
|
||||
"5fc382a9d724d907e2077dab": {
|
||||
"min": 5,
|
||||
"max": 5
|
||||
},
|
||||
"59e690b686f7746c9f75e848": {
|
||||
"min": 10,
|
||||
"max": 25
|
||||
},
|
||||
"5449016a4bdc2d6f028b456f": {
|
||||
"min": 5000,
|
||||
"max": 50000
|
||||
},
|
||||
"569668774bdc2da2298b4568": {
|
||||
"min": 100,
|
||||
"max": 500
|
||||
},
|
||||
"5696686a4bdc2da3298b456a": {
|
||||
"min": 100,
|
||||
"max": 500
|
||||
},
|
||||
"5d235b4d86f7742e017bc88a": {
|
||||
"min": 10,
|
||||
"max": 50
|
||||
}
|
||||
},
|
||||
"armorLevelWhitelist": [0, 4, 5, 6],
|
||||
"allowBossItems": false
|
||||
},
|
||||
"weaponArmor": {
|
||||
"icon": "Weapon",
|
||||
"weaponPresetCount": {
|
||||
"min": 6,
|
||||
"max": 8
|
||||
},
|
||||
"armorPresetCount": {
|
||||
"min": 3,
|
||||
"max": 6
|
||||
},
|
||||
"itemCount": {
|
||||
"min": 11,
|
||||
"max": 22
|
||||
},
|
||||
"weaponCrateCount": {
|
||||
"min": 0,
|
||||
"max": 2
|
||||
},
|
||||
"itemBlacklist": [],
|
||||
"itemTypeWhitelist": [
|
||||
"5485a8684bdc2da71d8b4567",
|
||||
"5448e8d64bdc2dce718b4568",
|
||||
"5448e8d04bdc2ddf718b4569",
|
||||
"5447e1d04bdc2dff2f8b4567",
|
||||
"5448e54d4bdc2dcc718b4568",
|
||||
"5448e5284bdc2dcb718b4567",
|
||||
"5448e53e4bdc2d60728b4567",
|
||||
"55818ad54bdc2ddc698b4569",
|
||||
"55818af64bdc2d5b648b4570",
|
||||
"55818b0e4bdc2dde698b456e",
|
||||
"5448bc234bdc2d3c308b4569",
|
||||
"5645bcb74bdc2ded0b8b4578",
|
||||
"5448e5724bdc2ddf718b4568",
|
||||
"55818add4bdc2d5b648b456f",
|
||||
"543be6564bdc2df4348b4568",
|
||||
"550aa4cd4bdc2dd8348b456c",
|
||||
"55818b164bdc2ddc698b456c",
|
||||
"55818ae44bdc2dde698b456c"
|
||||
],
|
||||
"itemLimits": {
|
||||
"5448e8d04bdc2ddf718b4569": 3,
|
||||
"5448e8d64bdc2dce718b4568": 3,
|
||||
"5448bc234bdc2d3c308b4569": 3,
|
||||
"5448e54d4bdc2dcc718b4568": 3,
|
||||
"5485a8684bdc2da71d8b4567": 4,
|
||||
"5645bcb74bdc2ded0b8b4578": 2,
|
||||
"5448e5724bdc2ddf718b4568": 2,
|
||||
"55818add4bdc2d5b648b456f": 2,
|
||||
"543be6564bdc2df4348b4568": 3,
|
||||
"550aa4cd4bdc2dd8348b456c": 2,
|
||||
"5447e1d04bdc2dff2f8b4567": 3,
|
||||
"55818ad54bdc2ddc698b4569": 3,
|
||||
"55818b164bdc2ddc698b456c": 2,
|
||||
"55818ae44bdc2dde698b456c": 2,
|
||||
"5448e5284bdc2dcb718b4567": 2
|
||||
},
|
||||
"itemStackLimits": {
|
||||
"5fc382a9d724d907e2077dab": {
|
||||
"min": 5,
|
||||
"max": 5
|
||||
},
|
||||
"59e690b686f7746c9f75e848": {
|
||||
"min": 10,
|
||||
"max": 25
|
||||
},
|
||||
"5d235b4d86f7742e017bc88a": {
|
||||
"min": 10,
|
||||
"max": 50
|
||||
}
|
||||
},
|
||||
"armorLevelWhitelist": [0, 3, 4, 5, 6],
|
||||
"allowBossItems": false
|
||||
},
|
||||
"foodMedical": {
|
||||
"icon": "Medical",
|
||||
"weaponPresetCount": {
|
||||
"min": 0,
|
||||
"max": 0
|
||||
},
|
||||
"armorPresetCount": {
|
||||
"min": 0,
|
||||
"max": 0
|
||||
},
|
||||
"itemCount": {
|
||||
"min": 25,
|
||||
"max": 45
|
||||
},
|
||||
"weaponCrateCount": {
|
||||
"min": 0,
|
||||
"max": 0
|
||||
},
|
||||
"itemBlacklist": [],
|
||||
"itemTypeWhitelist": [
|
||||
"543be5dd4bdc2deb348b4569",
|
||||
"5448e8d64bdc2dce718b4568",
|
||||
"5448e8d04bdc2ddf718b4569",
|
||||
"5448f3a64bdc2d60728b456a",
|
||||
"5448f3ac4bdc2dce718b4569",
|
||||
"5448f39d4bdc2d0a728b4568",
|
||||
"5448f3a14bdc2d27728b4569"
|
||||
],
|
||||
"itemLimits": {
|
||||
"5447b5cf4bdc2d65278b4567": 1,
|
||||
"5448e8d04bdc2ddf718b4569": 3,
|
||||
"5448e8d64bdc2dce718b4568": 3,
|
||||
"5448bc234bdc2d3c308b4569": 3,
|
||||
"5448f3a64bdc2d60728b456a": 3,
|
||||
"5448e54d4bdc2dcc718b4568": 3,
|
||||
"5485a8684bdc2da71d8b4567": 4,
|
||||
"57864bb7245977548b3b66c2": 2,
|
||||
"57864ada245977548638de91": 3,
|
||||
"5d650c3e815116009f6201d2": 2,
|
||||
"5645bcb74bdc2ded0b8b4578": 2,
|
||||
"5448e5724bdc2ddf718b4568": 2,
|
||||
"55818add4bdc2d5b648b456f": 2,
|
||||
"543be6564bdc2df4348b4568": 3,
|
||||
"550aa4cd4bdc2dd8348b456c": 2,
|
||||
"5448f39d4bdc2d0a728b4568": 4,
|
||||
"5448f3a14bdc2d27728b4569": 2,
|
||||
"5447e1d04bdc2dff2f8b4567": 1,
|
||||
"55818ad54bdc2ddc698b4569": 3,
|
||||
"55818b164bdc2ddc698b456c": 2,
|
||||
"55818ae44bdc2dde698b456c": 2,
|
||||
"5448e5284bdc2dcb718b4567": 2
|
||||
},
|
||||
"itemStackLimits": {
|
||||
"5fc382a9d724d907e2077dab": {
|
||||
"min": 5,
|
||||
"max": 5
|
||||
},
|
||||
"59e690b686f7746c9f75e848": {
|
||||
"min": 10,
|
||||
"max": 25
|
||||
},
|
||||
"5449016a4bdc2d6f028b456f": {
|
||||
"min": 5000,
|
||||
"max": 50000
|
||||
},
|
||||
"569668774bdc2da2298b4568": {
|
||||
"min": 100,
|
||||
"max": 500
|
||||
},
|
||||
"5696686a4bdc2da3298b456a": {
|
||||
"min": 100,
|
||||
"max": 500
|
||||
},
|
||||
"5d235b4d86f7742e017bc88a": {
|
||||
"min": 10,
|
||||
"max": 50
|
||||
}
|
||||
},
|
||||
"armorLevelWhitelist": [0],
|
||||
"allowBossItems": false
|
||||
},
|
||||
"barter": {
|
||||
"icon": "Supply",
|
||||
"weaponPresetCount": {
|
||||
"min": 0,
|
||||
"max": 0
|
||||
},
|
||||
"armorPresetCount": {
|
||||
"min": 0,
|
||||
"max": 0
|
||||
},
|
||||
"itemCount": {
|
||||
"min": 20,
|
||||
"max": 35
|
||||
},
|
||||
"weaponCrateCount": {
|
||||
"min": 0,
|
||||
"max": 0
|
||||
},
|
||||
"itemBlacklist": [],
|
||||
"itemTypeWhitelist": [
|
||||
"5d650c3e815116009f6201d2",
|
||||
"57864ee62459775490116fc1",
|
||||
"57864ada245977548638de91",
|
||||
"57864bb7245977548b3b66c2",
|
||||
"57864e4c24597754843f8723",
|
||||
"57864c322459775490116fbf",
|
||||
"57864a66245977548f04a81f"
|
||||
],
|
||||
"itemLimits": {
|
||||
"5447b5cf4bdc2d65278b4567": 1,
|
||||
"57864ee62459775490116fc1": 2,
|
||||
"5448e8d04bdc2ddf718b4569": 3,
|
||||
"5448e8d64bdc2dce718b4568": 3,
|
||||
"5448bc234bdc2d3c308b4569": 3,
|
||||
"5448f3a64bdc2d60728b456a": 3,
|
||||
"5448e54d4bdc2dcc718b4568": 3,
|
||||
"5485a8684bdc2da71d8b4567": 4,
|
||||
"57864bb7245977548b3b66c2": 5,
|
||||
"57864ada245977548638de91": 5,
|
||||
"5d650c3e815116009f6201d2": 5,
|
||||
"5645bcb74bdc2ded0b8b4578": 2,
|
||||
"5448e5724bdc2ddf718b4568": 2,
|
||||
"55818add4bdc2d5b648b456f": 2,
|
||||
"543be6564bdc2df4348b4568": 3,
|
||||
"550aa4cd4bdc2dd8348b456c": 2,
|
||||
"5448f39d4bdc2d0a728b4568": 4,
|
||||
"5448f3a14bdc2d27728b4569": 2,
|
||||
"5447e1d04bdc2dff2f8b4567": 1,
|
||||
"55818ad54bdc2ddc698b4569": 3,
|
||||
"55818b164bdc2ddc698b456c": 2,
|
||||
"55818ae44bdc2dde698b456c": 2,
|
||||
"5448e5284bdc2dcb718b4567": 2
|
||||
},
|
||||
"itemStackLimits": {
|
||||
"5fc382a9d724d907e2077dab": {
|
||||
"min": 5,
|
||||
"max": 5
|
||||
},
|
||||
"59e690b686f7746c9f75e848": {
|
||||
"min": 10,
|
||||
"max": 25
|
||||
},
|
||||
"5449016a4bdc2d6f028b456f": {
|
||||
"min": 5000,
|
||||
"max": 50000
|
||||
},
|
||||
"569668774bdc2da2298b4568": {
|
||||
"min": 100,
|
||||
"max": 500
|
||||
},
|
||||
"5696686a4bdc2da3298b456a": {
|
||||
"min": 100,
|
||||
"max": 500
|
||||
},
|
||||
"5d235b4d86f7742e017bc88a": {
|
||||
"min": 10,
|
||||
"max": 50
|
||||
}
|
||||
},
|
||||
"armorLevelWhitelist": [0],
|
||||
"allowBossItems": false
|
||||
},
|
||||
"radar": {
|
||||
"icon": "Supply",
|
||||
"weaponPresetCount": {
|
||||
"min": 0,
|
||||
"max": 0
|
||||
},
|
||||
"armorPresetCount": {
|
||||
"min": 0,
|
||||
"max": 0
|
||||
},
|
||||
"itemCount": {
|
||||
"min": 0,
|
||||
"max": 0
|
||||
},
|
||||
"weaponCrateCount": {
|
||||
"min": 0,
|
||||
"max": 0
|
||||
},
|
||||
"itemBlacklist": [],
|
||||
"itemTypeWhitelist": [],
|
||||
"itemLimits": {},
|
||||
"itemStackLimits": {},
|
||||
"armorLevelWhitelist": [],
|
||||
"allowBossItems": false,
|
||||
"useForcedLoot": true,
|
||||
"forcedLoot": {
|
||||
"66d9f7256916142b3b02276e": { "min": 2, "max": 4 }
|
||||
}
|
||||
}
|
||||
},
|
||||
"customAirdropMapping": {
|
||||
"66da1b49099cf6adcc07a36b": "radar",
|
||||
"66da1b546916142b3b022777": "radar"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"enabled": true,
|
||||
"maxBackups": 15,
|
||||
"directory": "./user/profiles/backups",
|
||||
"backupInterval": {
|
||||
"enabled": false,
|
||||
"intervalMinutes": 120
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,202 @@
|
||||
{
|
||||
"sptVersion": "3.10.5",
|
||||
"projectName": "SPT",
|
||||
"compatibleTarkovVersion": "0.15.5.33420",
|
||||
"serverName": "SPT Server",
|
||||
"profileSaveIntervalSeconds": 15,
|
||||
"sptFriendNickname": "SPT",
|
||||
"allowProfileWipe": true,
|
||||
"bsgLogging": {
|
||||
"verbosity": 6,
|
||||
"sendToServer": false
|
||||
},
|
||||
"release": {
|
||||
"betaDisclaimerTimeoutDelay": 30
|
||||
},
|
||||
"fixes": {
|
||||
"fixShotgunDispersion": true,
|
||||
"removeModItemsFromProfile": false,
|
||||
"removeInvalidTradersFromProfile": false,
|
||||
"fixProfileBreakingInventoryItemIssues": false
|
||||
},
|
||||
"survey": {
|
||||
"locale": {
|
||||
"en": {
|
||||
"question_1": "How off-topic is general chat on the SPT discord?",
|
||||
"question_1_answer_1": "Not at all",
|
||||
"question_1_answer_2": "A little",
|
||||
"question_1_answer_3": "Sometimes",
|
||||
"question_1_answer_4": "Somewhat often",
|
||||
"question_1_answer_5": "Quite often",
|
||||
"question_1_answer_6": "Most of the time",
|
||||
"question_1_answer_7": "Almost always",
|
||||
"question_1_answer_8": "Always",
|
||||
"question_1_answer_9": "NOT OFF TOPIC ENOUGH",
|
||||
"question_1_answer_10": "I LIVE TO MAKE GENERAL CHAT OFF TOPIC",
|
||||
"question_1_answer_11": "I am posting gifs to general chat as we speak",
|
||||
"question_2": "When you download a mod from the hub do you read the readme/mod description?",
|
||||
"question_2_answer_1": "What's a description",
|
||||
"question_2_answer_2": "I can't read",
|
||||
"question_2_answer_3": "I am illiterate",
|
||||
"question_2_answer_4": "I am too busy making general chat off-topic to read",
|
||||
"question_2_answer_5": "YOU WILL NEVER MAKE ME READ TEXT I WILL ASK IN GENERAL CHAT INSTEAD",
|
||||
"title": "Feedback survey",
|
||||
"time": "About 1 minute",
|
||||
"description": "This is the first SPT survey! Your survey doesn't get sent anywhere, its just for modders to see how it works and maybe make use of.",
|
||||
"farewell": "I told you at the start the survey doesn't get sent anywhere and yet you still completed it, curious."
|
||||
}
|
||||
},
|
||||
"survey": {
|
||||
"id": 1,
|
||||
"welcomePageData": {
|
||||
"titleLocaleKey": "title",
|
||||
"timeLocaleKey": "time",
|
||||
"descriptionLocaleKey": "description"
|
||||
},
|
||||
"farewellPageData": {
|
||||
"textLocaleKey": "farewell"
|
||||
},
|
||||
"pages": [[0, 1]],
|
||||
"questions": [
|
||||
{
|
||||
"id": 0,
|
||||
"sortIndex": 1,
|
||||
"titleLocaleKey": "question_1",
|
||||
"hintLocaleKey": "",
|
||||
"answerLimit": 10,
|
||||
"answerType": "MultiOption",
|
||||
"answers": [
|
||||
{
|
||||
"id": 0,
|
||||
"questionId": 0,
|
||||
"sortIndex": 1,
|
||||
"localeKey": "question_1_answer_1"
|
||||
},
|
||||
{
|
||||
"id": 1,
|
||||
"questionId": 0,
|
||||
"sortIndex": 1,
|
||||
"localeKey": "question_1_answer_2"
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"questionId": 0,
|
||||
"sortIndex": 1,
|
||||
"localeKey": "question_1_answer_3"
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"questionId": 0,
|
||||
"sortIndex": 1,
|
||||
"localeKey": "question_1_answer_4"
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"questionId": 0,
|
||||
"sortIndex": 1,
|
||||
"localeKey": "question_1_answer_5"
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"questionId": 0,
|
||||
"sortIndex": 1,
|
||||
"localeKey": "question_1_answer_6"
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"questionId": 0,
|
||||
"sortIndex": 1,
|
||||
"localeKey": "question_1_answer_7"
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"questionId": 0,
|
||||
"sortIndex": 1,
|
||||
"localeKey": "question_1_answer_8"
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"questionId": 0,
|
||||
"sortIndex": 1,
|
||||
"localeKey": "question_1_answer_9"
|
||||
},
|
||||
{
|
||||
"id": 9,
|
||||
"questionId": 0,
|
||||
"sortIndex": 1,
|
||||
"localeKey": "question_1_answer_10"
|
||||
},
|
||||
{
|
||||
"id": 10,
|
||||
"questionId": 0,
|
||||
"sortIndex": 1,
|
||||
"localeKey": "question_1_answer_11"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 1,
|
||||
"sortIndex": 1,
|
||||
"titleLocaleKey": "question_2",
|
||||
"hintLocaleKey": "",
|
||||
"answerLimit": 5,
|
||||
"answerType": "SingleOption",
|
||||
"answers": [
|
||||
{
|
||||
"id": 0,
|
||||
"questionId": 1,
|
||||
"sortIndex": 1,
|
||||
"localeKey": "question_2_answer_1"
|
||||
},
|
||||
{
|
||||
"id": 1,
|
||||
"questionId": 1,
|
||||
"sortIndex": 1,
|
||||
"localeKey": "question_2_answer_2"
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"questionId": 1,
|
||||
"sortIndex": 1,
|
||||
"localeKey": "question_2_answer_3"
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"questionId": 1,
|
||||
"sortIndex": 1,
|
||||
"localeKey": "question_2_answer_4"
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"questionId": 1,
|
||||
"sortIndex": 1,
|
||||
"localeKey": "question_2_answer_5"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"isNew": false
|
||||
}
|
||||
},
|
||||
"features": {
|
||||
"autoInstallModDependencies": false,
|
||||
"compressProfile": false,
|
||||
"chatbotFeatures": {
|
||||
"sptFriendEnabled": true,
|
||||
"sptFriendGiftsEnabled": true,
|
||||
"commandoEnabled": true,
|
||||
"commandoFeatures": {
|
||||
"giveCommandEnabled": true
|
||||
},
|
||||
"commandUseLimits": {
|
||||
"StashRows": 15
|
||||
},
|
||||
"ids": {
|
||||
"commando": "6723fd51c5924c57ce0ca01e",
|
||||
"spt": "6723fd51c5924c57ce0ca01f"
|
||||
}
|
||||
},
|
||||
"createNewProfileTypesBlacklist": []
|
||||
},
|
||||
"customWatermarkLocaleKeys": []
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"healthMultipliers": {
|
||||
"death": 0.3,
|
||||
"blacked": 0.1
|
||||
},
|
||||
"save": {
|
||||
"health": true,
|
||||
"effects": true
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,187 @@
|
||||
{
|
||||
"runIntervalSeconds": 10,
|
||||
"hoursForSkillCrafting": 28800,
|
||||
"runIntervalValues": {
|
||||
"inRaid": 60,
|
||||
"outOfRaid": 10
|
||||
},
|
||||
"expCraftAmount": 10,
|
||||
"overrideCraftTimeSeconds": -1,
|
||||
"overrideBuildTimeSeconds": -1,
|
||||
"updateProfileHideoutWhenActiveWithinMinutes": 90,
|
||||
"cultistCircle": {
|
||||
"maxRewardItemCount": 5,
|
||||
"maxAttemptsToPickRewardsWithinBudget": 5,
|
||||
"rewardPriceMultiplerMinMax": {
|
||||
"min": 0.7,
|
||||
"max": 1.4
|
||||
},
|
||||
"bonusChanceMultiplier": 0.25,
|
||||
"bonusAmountMultiplier": 0.43,
|
||||
"highValueThresholdRub": 70000,
|
||||
"hideoutTaskRewardTimeSeconds": 21600,
|
||||
"hideoutCraftSacrificeThresholdRub": 400000,
|
||||
"craftTimeThreshholds": [
|
||||
{
|
||||
"min": 1,
|
||||
"max": 350000,
|
||||
"craftTimeSeconds": 43200
|
||||
},
|
||||
{
|
||||
"min": 350001,
|
||||
"max": 399999,
|
||||
"craftTimeSeconds": 50400
|
||||
},
|
||||
{
|
||||
"min": 400000,
|
||||
"max": 99999999,
|
||||
"craftTimeSeconds": 50400
|
||||
}
|
||||
],
|
||||
"craftTimeOverride": -1,
|
||||
"directRewards": [
|
||||
{
|
||||
"reward": ["5857a8bc2459772bad15db29"],
|
||||
"requiredItems": ["665ee77ccf2d642e98220bca"],
|
||||
"craftTimeSeconds": 360,
|
||||
"repeatable": false
|
||||
},
|
||||
{
|
||||
"reward": ["5c093ca986f7740a1867ab12"],
|
||||
"requiredItems": ["5732ee6a24597719ae0c0281"],
|
||||
"craftTimeSeconds": 3960,
|
||||
"repeatable": false
|
||||
},
|
||||
{
|
||||
"reward": ["655c669103999d3c810c025b"],
|
||||
"requiredItems": ["635267ab3c89e2112001f826"],
|
||||
"craftTimeSeconds": 3960,
|
||||
"repeatable": false
|
||||
},
|
||||
{
|
||||
"reward": ["5fc64ea372b0dd78d51159dc"],
|
||||
"requiredItems": [
|
||||
"635267ab3c89e2112001f826",
|
||||
"635267ab3c89e2112001f826",
|
||||
"635267ab3c89e2112001f826",
|
||||
"635267ab3c89e2112001f826",
|
||||
"635267ab3c89e2112001f826"
|
||||
],
|
||||
"craftTimeSeconds": 3960,
|
||||
"repeatable": false
|
||||
},
|
||||
{
|
||||
"reward": ["5c0e874186f7745dc7616606"],
|
||||
"requiredItems": ["66572c82ad599021091c6118"],
|
||||
"craftTimeSeconds": 3960,
|
||||
"repeatable": false
|
||||
},
|
||||
{
|
||||
"reward": ["60a7ad3a0c5cb24b0134664a", "60a7ad2a2198820d95707a2e"],
|
||||
"requiredItems": ["66572cbdad599021091c611a"],
|
||||
"craftTimeSeconds": 3960,
|
||||
"repeatable": false
|
||||
},
|
||||
{
|
||||
"reward": ["5b3b713c5acfc4330140bd8d"],
|
||||
"requiredItems": ["66572be36a723f7f005a066e"],
|
||||
"craftTimeSeconds": 3960,
|
||||
"repeatable": false
|
||||
},
|
||||
{
|
||||
"reward": ["62a09dd4621468534a797ac7", "5bc9b9ecd4351e3bac122519"],
|
||||
"requiredItems": ["66572b8d80b1cd4b6a67847f"],
|
||||
"craftTimeSeconds": 3960,
|
||||
"repeatable": false
|
||||
},
|
||||
{
|
||||
"reward": ["5d40407c86f774318526545a", "5d40407c86f774318526545a", "5d40407c86f774318526545a"],
|
||||
"requiredItems": ["655c66e40b2de553b618d4b8"],
|
||||
"craftTimeSeconds": 3960,
|
||||
"repeatable": false
|
||||
},
|
||||
{
|
||||
"reward": ["572b7adb24597762ae139821", "56e335e4d2720b6c058b456d"],
|
||||
"requiredItems": ["655c673673a43e23e857aebd"],
|
||||
"craftTimeSeconds": 3960,
|
||||
"repeatable": false
|
||||
},
|
||||
{
|
||||
"reward": ["637b60c3b7afa97bfc3d7001", "59e3577886f774176a362503"],
|
||||
"requiredItems": ["655c67782a1356436041c9c5"],
|
||||
"craftTimeSeconds": 3960,
|
||||
"repeatable": false
|
||||
},
|
||||
{
|
||||
"reward": ["590c657e86f77412b013051d"],
|
||||
"requiredItems": ["655c652d60d0ac437100fed7"],
|
||||
"craftTimeSeconds": 3960,
|
||||
"repeatable": false
|
||||
},
|
||||
{
|
||||
"reward": ["5c0e655586f774045612eeb2"],
|
||||
"requiredItems": ["655c663a6689c676ce57af85"],
|
||||
"craftTimeSeconds": 3960,
|
||||
"repeatable": false
|
||||
},
|
||||
{
|
||||
"reward": ["5d1b376e86f774252519444e"],
|
||||
"requiredItems": ["6582dbf0b8d7830efc45016f"],
|
||||
"craftTimeSeconds": 3960,
|
||||
"repeatable": true
|
||||
},
|
||||
{
|
||||
"reward": ["62a091170b9d3c46de5b6cf2"],
|
||||
"requiredItems": ["5aa2b986e5b5b00014028f4c"],
|
||||
"craftTimeSeconds": 3960,
|
||||
"repeatable": true
|
||||
},
|
||||
{
|
||||
"reward": ["62a0a098de7ac8199358053b"],
|
||||
"requiredItems": ["5c13cd2486f774072c757944"],
|
||||
"craftTimeSeconds": 3960,
|
||||
"repeatable": true
|
||||
},
|
||||
{
|
||||
"reward": ["5d1b392c86f77425243e98fe", "5d1b392c86f77425243e98fe"],
|
||||
"requiredItems": ["5a0c27731526d80618476ac4"],
|
||||
"craftTimeSeconds": 3960,
|
||||
"repeatable": true
|
||||
},
|
||||
{
|
||||
"reward": [
|
||||
"5e2aedd986f7746d404f3aa4",
|
||||
"5e2aedd986f7746d404f3aa4",
|
||||
"5c12620d86f7743f8b198b72",
|
||||
"5c12620d86f7743f8b198b72"
|
||||
],
|
||||
"requiredItems": ["59faff1d86f7746c51718c9c"],
|
||||
"craftTimeSeconds": 39960,
|
||||
"repeatable": true
|
||||
},
|
||||
{
|
||||
"reward": ["6389c8c5dbfd5e4b95197e6b"],
|
||||
"requiredItems": ["5c0530ee86f774697952d952"],
|
||||
"craftTimeSeconds": 39960,
|
||||
"repeatable": true
|
||||
}
|
||||
],
|
||||
"directRewardStackSize": {
|
||||
"exampleParentId": { "min": 1000, "max": 50000 }
|
||||
},
|
||||
"rewardItemBlacklist": [
|
||||
"5696686a4bdc2da3298b456a",
|
||||
"5449016a4bdc2d6f028b456f",
|
||||
"569668774bdc2da2298b4568",
|
||||
"5485a8684bdc2da71d8b4567",
|
||||
"543be5dd4bdc2deb348b4569"
|
||||
],
|
||||
"additionalRewardItemPool": [],
|
||||
"currencyRewards": {
|
||||
"5449016a4bdc2d6f028b456f": { "min": 20, "max": 50 },
|
||||
"569668774bdc2da2298b4568": { "min": 20, "max": 50 },
|
||||
"5696686a4bdc2da3298b456a": { "min": 20, "max": 50 },
|
||||
"5d235b4d86f7742e017bc88a": { "min": 20, "max": 40 }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"ip": "127.0.0.1",
|
||||
"port": 6969,
|
||||
"backendIp": "127.0.0.1",
|
||||
"backendPort": 6969,
|
||||
"webSocketPingDelayMs": 90000,
|
||||
"logRequests": true,
|
||||
"serverImagePathOverride": {}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"raidMenuSettings": {
|
||||
"aiAmount": "AsOnline",
|
||||
"aiDifficulty": "AsOnline",
|
||||
"bossEnabled": true,
|
||||
"scavWars": false,
|
||||
"taggedAndCursed": false,
|
||||
"enablePve": true,
|
||||
"randomWeather": false,
|
||||
"randomTime": false
|
||||
},
|
||||
"save": {
|
||||
"loot": true
|
||||
},
|
||||
"carExtracts": ["Dorms V-Ex", "PP Exfil", "V-Ex_light", "South V-Ex", "E7_car", "Sandbox_VExit", "Shorl_V-Ex"],
|
||||
"coopExtracts": [
|
||||
"Interchange Cooperation",
|
||||
"tunnel_shared",
|
||||
"EXFIL_ScavCooperation",
|
||||
"Factory Gate",
|
||||
"Exit_E10_coop",
|
||||
"Smugglers_Trail_coop",
|
||||
"Scav_coop_exit"
|
||||
],
|
||||
"carExtractBaseStandingGain": 0.2,
|
||||
"coopExtractBaseStandingGain": 0.25,
|
||||
"scavExtractStandingGain": 0.01,
|
||||
"pmcKillProbabilityForScavGain": 0.2,
|
||||
"keepFiRSecureContainerOnDeath": false,
|
||||
"alwaysKeepFoundInRaidonRaidEnd": false,
|
||||
"playerScavHostileChancePercent": 15
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"returnChancePercent": {
|
||||
"54cb50c76803fa8b248b4571": 85,
|
||||
"54cb57776803fa99248b456e": 95
|
||||
},
|
||||
"blacklistedEquipment": ["SpecialSlot1", "SpecialSlot2", "SpecialSlot3"],
|
||||
"slotIdsToAlwaysRemove": ["cartridges", "patron_in_weapon"],
|
||||
"returnTimeOverrideSeconds": 0,
|
||||
"storageTimeOverrideSeconds": 0,
|
||||
"runIntervalSeconds": 600,
|
||||
"minAttachmentRoublePriceToBeTaken": 15000,
|
||||
"chanceNoAttachmentsTakenPercent": 10,
|
||||
"simulateItemsBeingTaken": true
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,167 @@
|
||||
{
|
||||
"blacklist": [
|
||||
"54490a4d4bdc2dbc018b4573",
|
||||
"544a3d0a4bdc2d1b388b4567",
|
||||
"55d617094bdc2d89028b4568",
|
||||
"590de52486f774226a0c24c2",
|
||||
"5648b62b4bdc2d9d488b4585",
|
||||
"544a3f024bdc2d1d388b4568",
|
||||
"590de4a286f77423d9312a32",
|
||||
"5751961824597720a31c09ac",
|
||||
"63b35f281745dd52341e5da7",
|
||||
"5996f6cb86f774678763a6ca",
|
||||
"5996f6d686f77467977ba6cc",
|
||||
"5943d9c186f7745a13413ac9",
|
||||
"5cdeb229d7f00c000e7ce174",
|
||||
"5996f6fc86f7745e585b4de3",
|
||||
"5cde8864d7f00c0010373be1",
|
||||
"5d2f2ab648f03550091993ca",
|
||||
"5ae083b25acfc4001a5fc702",
|
||||
"5e85aac65505fa48730d8af2",
|
||||
"58ac60eb86f77401897560ff",
|
||||
"59e8936686f77467ce798647",
|
||||
"56e294cdd2720b603a8b4575",
|
||||
"5d53f4b7a4b936793d58c780",
|
||||
"6241c316234b593b5676b637",
|
||||
"5e99735686f7744bfc4af32c",
|
||||
"62811d61578c54356d6d67ea",
|
||||
"6281214c1d5df4475f46a33a",
|
||||
"6281215b4fa03b6b6c35dc6c",
|
||||
"628121651d5df4475f46a33c",
|
||||
"628120415631d45211793c99",
|
||||
"628120f210e26c1f344e6558",
|
||||
"5ede47641cf3836a88318df1",
|
||||
"5d70e500a4b9364de70d38ce",
|
||||
"624c0570c9b794431568f5d5",
|
||||
"624c09cfbc2e27219346d955",
|
||||
"624c09da2cec124eb67c1046",
|
||||
"624c09e49b98e019a3315b66",
|
||||
"5cffa483d7ad1a049e54ef1c",
|
||||
"5f647fd3f6e4ab66c82faed6",
|
||||
"5671446a4bdc2d97058b4569",
|
||||
"57518f7724597720a31c09ab",
|
||||
"61a4cda622af7f4f6a3ce617",
|
||||
"6087e570b998180e9f76dc24",
|
||||
"5efdafc1e70b5e33f86de058",
|
||||
"63dbd45917fff4dee40fe16e",
|
||||
"648c1a965043c4052a4f8505",
|
||||
"5ae089fb5acfc408fb13989b",
|
||||
"6241c2c2117ad530666a5108",
|
||||
"5580239d4bdc2de7118b4583",
|
||||
"66da1b49099cf6adcc07a36b",
|
||||
"66da1b546916142b3b022777",
|
||||
"670ad7f1ad195290cd00da7a",
|
||||
"66ec2aa6daf127599c0c31f1"
|
||||
],
|
||||
"rewardItemTypeBlacklist": ["65649eb40bf0ed77b8044453"],
|
||||
"lootableItemBlacklist": ["660bbc47c38b837877075e47", "660bc341c38b837877075e4c"],
|
||||
"rewardItemBlacklist": [
|
||||
"58ac60eb86f77401897560ff",
|
||||
"5e997f0b86f7741ac73993e2",
|
||||
"5b44abe986f774283e2e3512",
|
||||
"5e99711486f7744bfc4af328",
|
||||
"5e99735686f7744bfc4af32c",
|
||||
"6087e570b998180e9f76dc24",
|
||||
"5d52d479a4b936793d58c76b",
|
||||
"5e85aac65505fa48730d8af2",
|
||||
"63495c500c297e20065a08b1",
|
||||
"5cde8864d7f00c0010373be1",
|
||||
"5b3b713c5acfc4330140bd8d",
|
||||
"60c080eb991ac167ad1c3ad4",
|
||||
"6389c7f115805221fb410466",
|
||||
"64d0b40fbe2eed70e254e2d4",
|
||||
"6389c88b33a719183c7f63b6",
|
||||
"57cd379a24597778e7682ecf",
|
||||
"5fc64ea372b0dd78d51159dc",
|
||||
"5c0e842486f77443a74d2976",
|
||||
"5c0e874186f7745dc7616606",
|
||||
"5c0e541586f7747fa54205c9",
|
||||
"63626d904aa74b8fe30ab426",
|
||||
"6275303a9f372d6ea97f9ec7",
|
||||
"628bc7fb408e2b2e9c0801b1",
|
||||
"5ede4739e0350d05467f73e8",
|
||||
"5ede47405b097655935d7d16",
|
||||
"5ede474b0c226a66f5402622",
|
||||
"5ede475339ee016e8c534742",
|
||||
"5ede475b549eed7c6d5c18fb",
|
||||
"62e910aaf957f2915e0a5e36",
|
||||
"619bc61e86e01e16f839a999",
|
||||
"619bddc6c9546643a67df6ee",
|
||||
"6241c316234b593b5676b637",
|
||||
"5d70e500a4b9364de70d38ce",
|
||||
"619bde3dc9546643a67df6f2",
|
||||
"619bdeb986e01e16f839a99e",
|
||||
"619bddffc9546643a67df6f0",
|
||||
"619bdf9cc9546643a67df6f8",
|
||||
"63a0b2eabea67a6d93009e52",
|
||||
"5d2f2ab648f03550091993ca",
|
||||
"614451b71e5874611e2c7ae5",
|
||||
"59f32bb586f774757e1e8442",
|
||||
"6662e9aca7e0b43baa3d5f74",
|
||||
"6662e9cda7e0b43baa3d5f76",
|
||||
"59f32c3b86f77472a31742f0",
|
||||
"6662e9f37fa79a6d83730fa0",
|
||||
"6662ea05f6259762c56f3189",
|
||||
"6638a5474e92f038531e210e",
|
||||
"65ddcc9cfa85b9f17d0dfb07",
|
||||
"6331ba83f2ab4f3f09502983",
|
||||
"6331bb0d1aa9f42b804997a6",
|
||||
"66d9f7e7099cf6adcc07a369",
|
||||
"6655e35b6bc645cb7b059912",
|
||||
"66d9f7256916142b3b02276e",
|
||||
"671d85439ae8365d69117ba6",
|
||||
"671d8617a3e45c1f5908278c",
|
||||
"670e8eab8c1bb0e5a7075acf",
|
||||
"671d8ac8a3e45c1f59082799",
|
||||
"671d8b38b769f0d88c0950f8",
|
||||
"671d8b8c0959c721a50ca838",
|
||||
"660bc341c38b837877075e4c",
|
||||
"67409848d0b2f8eb9b034db9",
|
||||
"67449b6c89d5e1ddc603f504"
|
||||
],
|
||||
"bossItems": [
|
||||
"6275303a9f372d6ea97f9ec7",
|
||||
"62a61bbf8ec41a51b34758d2",
|
||||
"628e4dd1f477aa12234918aa",
|
||||
"628b9784bcf6e2659e09b8a2",
|
||||
"628bc7fb408e2b2e9c0801b1",
|
||||
"628baf0b967de16aab5a4f36",
|
||||
"62963c18dbc8ab5f0d382d0b",
|
||||
"628b9c7d45122232a872358f",
|
||||
"5fc64ea372b0dd78d51159dc",
|
||||
"64ca3d3954fc657e230529cc",
|
||||
"64637076203536ad5600c990",
|
||||
"5c0e874186f7745dc7616606",
|
||||
"5c0e842486f77443a74d2976",
|
||||
"5c0e541586f7747fa54205c9",
|
||||
"5b3b713c5acfc4330140bd8d",
|
||||
"5e997f0b86f7741ac73993e2",
|
||||
"5d08d21286f774736e7c94c3",
|
||||
"6087e570b998180e9f76dc24",
|
||||
"60a7ad2a2198820d95707a2e",
|
||||
"60a7ad3a0c5cb24b0134664a",
|
||||
"60a7acf20c5cb24b01346648",
|
||||
"636270263f2495c26f00b007",
|
||||
"63626d904aa74b8fe30ab426",
|
||||
"63611865ba5b90db0c0399d1",
|
||||
"5eff09cd30a7dc22fd1ddfed",
|
||||
"5efde6b4f5448336730dbd61",
|
||||
"609e860ebd219504d8507525",
|
||||
"63a0b208f444d32d6f03ea1e",
|
||||
"63495c500c297e20065a08b1",
|
||||
"6530e8587cbfc1e309011e37",
|
||||
"6531119b9afebff7ff0a1769",
|
||||
"6540d2162ae6d96b540afcaf",
|
||||
"5e99735686f7744bfc4af32c",
|
||||
"5e99711486f7744bfc4af328",
|
||||
"61b9e1aaef9a1b5d6a79899a",
|
||||
"5a43943586f77416ad2f06e2",
|
||||
"5a43957686f7742a2c2f11b0",
|
||||
"5c1a1e3f2e221602b66cc4c2"
|
||||
],
|
||||
"handbookPriceOverride": {
|
||||
"63a8970d7108f713591149f5": { "price": 5000, "parentId": "5b5f6fa186f77409407a7eb7" },
|
||||
"63a898a328e385334e0640a5": { "price": 10000, "parentId": "5b5f6fa186f77409407a7eb7" },
|
||||
"63a897c6b1ff6e29734fcc95": { "price": 20000, "parentId": "5b5f6fa186f77409407a7eb7" }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"gameLocale": "system",
|
||||
"serverLocale": "system",
|
||||
"serverSupportedLocales": [
|
||||
"ar",
|
||||
"en",
|
||||
"cs",
|
||||
"da",
|
||||
"de",
|
||||
"el",
|
||||
"es-es",
|
||||
"fr",
|
||||
"nl",
|
||||
"no",
|
||||
"tr",
|
||||
"hi",
|
||||
"hu",
|
||||
"id",
|
||||
"it",
|
||||
"ja",
|
||||
"ko",
|
||||
"nl",
|
||||
"no",
|
||||
"pl",
|
||||
"pt-br",
|
||||
"pt-pt",
|
||||
"ru",
|
||||
"sv",
|
||||
"vi",
|
||||
"zh-cn"
|
||||
],
|
||||
"fallbacks": {
|
||||
"en-*": "en",
|
||||
"pt-*": "pt-pt",
|
||||
"zh-*": "zh-cn",
|
||||
"es-*": "es-es"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,543 @@
|
||||
{
|
||||
"looseLootMultiplier": {
|
||||
"bigmap": 2.5,
|
||||
"develop": 1,
|
||||
"factory4_day": 3.5,
|
||||
"factory4_night": 3.5,
|
||||
"interchange": 2.8,
|
||||
"laboratory": 2.8,
|
||||
"rezervbase": 2.9,
|
||||
"shoreline": 3.7,
|
||||
"woods": 1.9,
|
||||
"hideout": 0,
|
||||
"lighthouse": 2.8,
|
||||
"privatearea": 1,
|
||||
"suburbs": 1,
|
||||
"tarkovstreets": 3,
|
||||
"terminal": 1,
|
||||
"sandbox": 2.8,
|
||||
"sandbox_high": 2.8,
|
||||
"town": 0
|
||||
},
|
||||
"staticLootMultiplier": {
|
||||
"bigmap": 1,
|
||||
"develop": 1,
|
||||
"factory4_day": 1,
|
||||
"factory4_night": 1,
|
||||
"interchange": 1,
|
||||
"laboratory": 1,
|
||||
"rezervbase": 1,
|
||||
"shoreline": 1,
|
||||
"woods": 1,
|
||||
"hideout": 0,
|
||||
"lighthouse": 1,
|
||||
"privatearea": 1,
|
||||
"suburbs": 1,
|
||||
"tarkovstreets": 1,
|
||||
"terminal": 1,
|
||||
"sandbox": 1,
|
||||
"sandbox_high": 1,
|
||||
"town": 1
|
||||
},
|
||||
"customWaves": {
|
||||
"boss": {
|
||||
"bigmap": [
|
||||
{
|
||||
"sptId": "usecbigmap",
|
||||
"BossChance": 50,
|
||||
"BossDifficult": "normal",
|
||||
"BossEscortAmount": "0,0,2,2,2,1,1,1,1,1,0,2,3",
|
||||
"BossEscortDifficult": "normal",
|
||||
"BossEscortType": "pmcUSEC",
|
||||
"BossName": "pmcUSEC",
|
||||
"BossPlayer": false,
|
||||
"BossZone": "",
|
||||
"Delay": 0,
|
||||
"DependKarma": false,
|
||||
"DependKarmaPVE": false,
|
||||
"ForceSpawn": false,
|
||||
"IgnoreMaxBots": true,
|
||||
"RandomTimeSpawn": false,
|
||||
"SpawnMode": ["pve"],
|
||||
"Supports": null,
|
||||
"Time": -1,
|
||||
"TriggerId": "",
|
||||
"TriggerName": ""
|
||||
},
|
||||
{
|
||||
"sptId": "bearbigmap",
|
||||
"BossChance": 50,
|
||||
"BossDifficult": "normal",
|
||||
"BossEscortAmount": "0,0,2,2,2,1,1,1,1,1,0,2,3",
|
||||
"BossEscortDifficult": "normal",
|
||||
"BossEscortType": "pmcBEAR",
|
||||
"BossName": "pmcBEAR",
|
||||
"BossPlayer": false,
|
||||
"BossZone": "",
|
||||
"Delay": 0,
|
||||
"DependKarma": false,
|
||||
"DependKarmaPVE": false,
|
||||
"ForceSpawn": false,
|
||||
"IgnoreMaxBots": true,
|
||||
"RandomTimeSpawn": false,
|
||||
"SpawnMode": ["pve"],
|
||||
"Supports": null,
|
||||
"Time": -1,
|
||||
"TriggerId": "",
|
||||
"TriggerName": ""
|
||||
}
|
||||
],
|
||||
"woods": [
|
||||
{
|
||||
"sptId": "usecbigmap",
|
||||
"BossChance": 50,
|
||||
"BossDifficult": "normal",
|
||||
"BossEscortAmount": "0,0,2,2,2,1,1,1,1,1,1,2,3",
|
||||
"BossEscortDifficult": "normal",
|
||||
"BossEscortType": "pmcUSEC",
|
||||
"BossName": "pmcUSEC",
|
||||
"BossPlayer": false,
|
||||
"BossZone": "",
|
||||
"Delay": 0,
|
||||
"DependKarma": false,
|
||||
"DependKarmaPVE": false,
|
||||
"ForceSpawn": false,
|
||||
"IgnoreMaxBots": true,
|
||||
"RandomTimeSpawn": false,
|
||||
"SpawnMode": ["pve"],
|
||||
"Supports": null,
|
||||
"Time": -1,
|
||||
"TriggerId": "",
|
||||
"TriggerName": ""
|
||||
},
|
||||
{
|
||||
"sptId": "bearbigmap",
|
||||
"BossChance": 50,
|
||||
"BossDifficult": "normal",
|
||||
"BossEscortAmount": "0,0,2,2,2,1,1,1,1,1,1,2,3",
|
||||
"BossEscortDifficult": "normal",
|
||||
"BossEscortType": "pmcBEAR",
|
||||
"BossName": "pmcBEAR",
|
||||
"BossPlayer": false,
|
||||
"BossZone": "",
|
||||
"Delay": 0,
|
||||
"DependKarma": false,
|
||||
"DependKarmaPVE": false,
|
||||
"ForceSpawn": false,
|
||||
"IgnoreMaxBots": true,
|
||||
"RandomTimeSpawn": false,
|
||||
"SpawnMode": ["pve"],
|
||||
"Supports": null,
|
||||
"Time": -1,
|
||||
"TriggerId": "",
|
||||
"TriggerName": ""
|
||||
}
|
||||
],
|
||||
"sandbox_high": [
|
||||
{
|
||||
"sptId": "usecbigmap",
|
||||
"BossChance": 50,
|
||||
"BossDifficult": "normal",
|
||||
"BossEscortAmount": "0,0,2,2,2,1,1,1,1,1,0,2,3",
|
||||
"BossEscortDifficult": "normal",
|
||||
"BossEscortType": "pmcUSEC",
|
||||
"BossName": "pmcUSEC",
|
||||
"BossPlayer": false,
|
||||
"BossZone": "",
|
||||
"Delay": 0,
|
||||
"DependKarma": false,
|
||||
"DependKarmaPVE": false,
|
||||
"ForceSpawn": false,
|
||||
"IgnoreMaxBots": true,
|
||||
"RandomTimeSpawn": false,
|
||||
"SpawnMode": ["pve"],
|
||||
"Supports": null,
|
||||
"Time": -1,
|
||||
"TriggerId": "",
|
||||
"TriggerName": ""
|
||||
},
|
||||
{
|
||||
"sptId": "bearbigmap",
|
||||
"BossChance": 50,
|
||||
"BossDifficult": "normal",
|
||||
"BossEscortAmount": "0,0,2,2,2,1,1,1,1,1,0,2,3",
|
||||
"BossEscortDifficult": "normal",
|
||||
"BossEscortType": "pmcBEAR",
|
||||
"BossName": "pmcBEAR",
|
||||
"BossPlayer": false,
|
||||
"BossZone": "",
|
||||
"Delay": 0,
|
||||
"DependKarma": false,
|
||||
"DependKarmaPVE": false,
|
||||
"ForceSpawn": false,
|
||||
"IgnoreMaxBots": true,
|
||||
"RandomTimeSpawn": false,
|
||||
"SpawnMode": ["pve"],
|
||||
"Supports": null,
|
||||
"Time": -1,
|
||||
"TriggerId": "",
|
||||
"TriggerName": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
"normal": {}
|
||||
},
|
||||
"openZones": {},
|
||||
"forcedLootSingleSpawnById": {
|
||||
"bigmap": [
|
||||
"5ac620eb86f7743a8e6e0da0",
|
||||
"5939e5a786f77461f11c0098",
|
||||
"64e74a3d4d49d23b2c39d319",
|
||||
"6614230055afee107f05e998",
|
||||
"66b22630a6b4e5ec7c02cdb7"
|
||||
],
|
||||
"interchange": ["64e74a5ac2b4f829615ec336"],
|
||||
"lighthouse": [
|
||||
"6331bb0d1aa9f42b804997a6",
|
||||
"6398a0861c712b1e1d4dadf1",
|
||||
"6399f54b0a36db13c823ad21",
|
||||
"64e74a64aac4cd0a7264ecdf",
|
||||
"661666458c2aa9cb1602503b"
|
||||
],
|
||||
"rezervbase": ["64e74a4baac4cd0a7264ecdd", "6398a072e301557ae24cec92"],
|
||||
"shoreline": [
|
||||
"64e74a534d49d23b2c39d31b",
|
||||
"661421c7c1f2f548c50ee649",
|
||||
"6614217b6d9d5abcad0ff098",
|
||||
"661423200d240a5f5d0f679b"
|
||||
],
|
||||
"tarkovstreets": [
|
||||
"638df4cc7b560b03794a18d2",
|
||||
"638cbc68a63f1b49be6a3010",
|
||||
"638e0057ab150a5f56238960",
|
||||
"63927b29c115f907b14700b9",
|
||||
"638dfc803083a019d447768e",
|
||||
"638e9d5536b3b72c944e2fc7",
|
||||
"6393262086e646067c176aa2",
|
||||
"63989ced706b793c7d60cfef",
|
||||
"63a39e1d234195315d4020bd",
|
||||
"64e74a35aac4cd0a7264ecdb",
|
||||
"64e74a186393886f74114a96",
|
||||
"64e74a1faac4cd0a7264ecd9",
|
||||
"64e73909cd54ef0580746af3",
|
||||
"64e74a2fc2b4f829615ec332",
|
||||
"64e74a274d49d23b2c39d317",
|
||||
"64f09c02b63b74469b6c149f",
|
||||
"64f07f7726cfa02c506f8ac0",
|
||||
"64f69b4267e11a7c6206e010",
|
||||
"64f5b4f71a5f313cb144c06c",
|
||||
"657acb2ac900be5902191ac9",
|
||||
"6582dbf0b8d7830efc45016f"
|
||||
],
|
||||
"laboratory": ["6398a4cfb5992f573c6562b3", "64e74a44c2b4f829615ec334"],
|
||||
"sandbox": ["6575a6ca8778e96ded05a802", "6582bd252b50c61c565828e2"],
|
||||
"factory4_day": ["591093bb86f7747caa7bb2ee", "66c0b39ca1f68fcc1d0c0cc3"]
|
||||
},
|
||||
"splitWaveIntoSingleSpawnsSettings": {
|
||||
"enabled": true,
|
||||
"ignoreMaps": [
|
||||
"base",
|
||||
"develop",
|
||||
"hideout",
|
||||
"privatearea",
|
||||
"suburbs",
|
||||
"terminal",
|
||||
"town",
|
||||
"factory4_day",
|
||||
"factory4_night"
|
||||
],
|
||||
"waveSizeThreshold": 4
|
||||
},
|
||||
"rogueLighthouseSpawnTimeSettings": {
|
||||
"enabled": false,
|
||||
"waitTimeSeconds": 120
|
||||
},
|
||||
"fitLootIntoContainerAttempts": 3,
|
||||
"addOpenZonesToAllMaps": true,
|
||||
"addCustomBotWavesToMaps": true,
|
||||
"enableBotTypeLimits": true,
|
||||
"botTypeLimits": {
|
||||
"tarkovstreets": [
|
||||
{
|
||||
"type": "marksman",
|
||||
"min": 2,
|
||||
"max": 4
|
||||
}
|
||||
],
|
||||
"woods": [
|
||||
{
|
||||
"type": "marksman",
|
||||
"min": 2,
|
||||
"max": 5
|
||||
}
|
||||
],
|
||||
"bigmap": [
|
||||
{
|
||||
"type": "marksman",
|
||||
"min": 2,
|
||||
"max": 4
|
||||
}
|
||||
]
|
||||
},
|
||||
"containerRandomisationSettings": {
|
||||
"enabled": true,
|
||||
"maps": {
|
||||
"tarkovstreets": true,
|
||||
"factory4_day": true,
|
||||
"factory4_night": true,
|
||||
"bigmap": true,
|
||||
"woods": true,
|
||||
"shoreline": true,
|
||||
"interchange": true,
|
||||
"lighthouse": true,
|
||||
"laboratory": true,
|
||||
"rezervbase": true,
|
||||
"sandbox": true
|
||||
},
|
||||
"containerTypesToNotRandomise": [
|
||||
"5d6fd45b86f774317075ed43",
|
||||
"5909d89086f77472591234a0",
|
||||
"578f87b7245977356274f2cd",
|
||||
"5909d76c86f77471e53d2adf",
|
||||
"578f8782245977354405a1e3",
|
||||
"5d6fe50986f77449d97f7463",
|
||||
"578f879c24597735401e6bc6",
|
||||
"578f8782245977354405a1e3",
|
||||
"5d6fd13186f77424ad2a8c69"
|
||||
],
|
||||
"containerGroupMinSizeMultiplier": 1,
|
||||
"containerGroupMaxSizeMultiplier": 1
|
||||
},
|
||||
"minFillLooseMagazinePercent": 50,
|
||||
"minFillStaticMagazinePercent": 50,
|
||||
"allowDuplicateItemsInStaticContainers": true,
|
||||
"magazineLootHasAmmoChancePercent": 50,
|
||||
"staticMagazineLootHasAmmoChancePercent": 0,
|
||||
"looseLootBlacklist": {},
|
||||
"scavRaidTimeSettings": {
|
||||
"settings": {
|
||||
"trainArrivalDelayObservedSeconds": 90
|
||||
},
|
||||
"maps": {
|
||||
"bigmap": {
|
||||
"reduceLootByPercent": true,
|
||||
"minDynamicLootPercent": 50,
|
||||
"minStaticLootPercent": 40,
|
||||
"reducedChancePercent": 95,
|
||||
"reductionPercentWeights": {
|
||||
"20": 1,
|
||||
"25": 2,
|
||||
"30": 4,
|
||||
"35": 4,
|
||||
"40": 4,
|
||||
"45": 4,
|
||||
"50": 4,
|
||||
"60": 2,
|
||||
"70": 2
|
||||
},
|
||||
"adjustWaves": true
|
||||
},
|
||||
"factory4_day": {
|
||||
"reduceLootByPercent": true,
|
||||
"minDynamicLootPercent": 50,
|
||||
"minStaticLootPercent": 40,
|
||||
"reducedChancePercent": 95,
|
||||
"reductionPercentWeights": {
|
||||
"5": 2,
|
||||
"20": 3,
|
||||
"25": 3,
|
||||
"30": 5,
|
||||
"40": 5,
|
||||
"50": 5,
|
||||
"60": 2,
|
||||
"65": 2
|
||||
},
|
||||
"adjustWaves": true
|
||||
},
|
||||
"factory4_night": {
|
||||
"reduceLootByPercent": true,
|
||||
"minDynamicLootPercent": 50,
|
||||
"minStaticLootPercent": 40,
|
||||
"reducedChancePercent": 75,
|
||||
"reductionPercentWeights": {
|
||||
"20": 4,
|
||||
"30": 3,
|
||||
"40": 3,
|
||||
"60": 2,
|
||||
"65": 2
|
||||
},
|
||||
"adjustWaves": true
|
||||
},
|
||||
"interchange": {
|
||||
"reduceLootByPercent": true,
|
||||
"minDynamicLootPercent": 50,
|
||||
"minStaticLootPercent": 40,
|
||||
"reducedChancePercent": 95,
|
||||
"reductionPercentWeights": {
|
||||
"20": 5,
|
||||
"25": 5,
|
||||
"30": 5,
|
||||
"35": 5,
|
||||
"40": 5,
|
||||
"50": 5,
|
||||
"55": 2
|
||||
},
|
||||
"adjustWaves": true
|
||||
},
|
||||
"rezervbase": {
|
||||
"reduceLootByPercent": true,
|
||||
"minDynamicLootPercent": 50,
|
||||
"minStaticLootPercent": 40,
|
||||
"reducedChancePercent": 95,
|
||||
"reductionPercentWeights": {
|
||||
"20": 3,
|
||||
"30": 3,
|
||||
"40": 4,
|
||||
"50": 4,
|
||||
"60": 2
|
||||
},
|
||||
"adjustWaves": true
|
||||
},
|
||||
"laboratory": {
|
||||
"reduceLootByPercent": true,
|
||||
"minDynamicLootPercent": 50,
|
||||
"minStaticLootPercent": 40,
|
||||
"reducedChancePercent": 95,
|
||||
"reductionPercentWeights": {
|
||||
"20": 3,
|
||||
"30": 5,
|
||||
"40": 5,
|
||||
"50": 5,
|
||||
"60": 2
|
||||
},
|
||||
"adjustWaves": true
|
||||
},
|
||||
"lighthouse": {
|
||||
"reduceLootByPercent": true,
|
||||
"minDynamicLootPercent": 50,
|
||||
"minStaticLootPercent": 40,
|
||||
"reducedChancePercent": 95,
|
||||
"reductionPercentWeights": {
|
||||
"20": 2,
|
||||
"25": 2,
|
||||
"30": 4,
|
||||
"40": 4,
|
||||
"50": 4,
|
||||
"60": 2
|
||||
},
|
||||
"adjustWaves": true
|
||||
},
|
||||
"shoreline": {
|
||||
"reduceLootByPercent": true,
|
||||
"minDynamicLootPercent": 50,
|
||||
"minStaticLootPercent": 40,
|
||||
"reducedChancePercent": 95,
|
||||
"reductionPercentWeights": {
|
||||
"20": 2,
|
||||
"25": 3,
|
||||
"30": 5,
|
||||
"35": 5,
|
||||
"40": 5,
|
||||
"50": 5,
|
||||
"60": 2,
|
||||
"65": 1
|
||||
},
|
||||
"adjustWaves": true
|
||||
},
|
||||
"tarkovstreets": {
|
||||
"reduceLootByPercent": true,
|
||||
"minDynamicLootPercent": 70,
|
||||
"minStaticLootPercent": 60,
|
||||
"reducedChancePercent": 95,
|
||||
"reductionPercentWeights": {
|
||||
"20": 3,
|
||||
"30": 4,
|
||||
"40": 5,
|
||||
"50": 4,
|
||||
"60": 3
|
||||
},
|
||||
"adjustWaves": true
|
||||
},
|
||||
"woods": {
|
||||
"reduceLootByPercent": true,
|
||||
"minDynamicLootPercent": 50,
|
||||
"minStaticLootPercent": 40,
|
||||
"reducedChancePercent": 95,
|
||||
"reductionPercentWeights": {
|
||||
"20": 3,
|
||||
"30": 5,
|
||||
"40": 5,
|
||||
"50": 5,
|
||||
"60": 1,
|
||||
"65": 1
|
||||
},
|
||||
"adjustWaves": true
|
||||
},
|
||||
"sandbox": {
|
||||
"reduceLootByPercent": true,
|
||||
"minDynamicLootPercent": 50,
|
||||
"minStaticLootPercent": 40,
|
||||
"reducedChancePercent": 95,
|
||||
"reductionPercentWeights": {
|
||||
"20": 3,
|
||||
"30": 5,
|
||||
"40": 5,
|
||||
"50": 5,
|
||||
"60": 1,
|
||||
"65": 1
|
||||
},
|
||||
"adjustWaves": true
|
||||
},
|
||||
"sandbox_high": {
|
||||
"reduceLootByPercent": true,
|
||||
"minDynamicLootPercent": 50,
|
||||
"minStaticLootPercent": 40,
|
||||
"reducedChancePercent": 95,
|
||||
"reductionPercentWeights": {
|
||||
"20": 3,
|
||||
"30": 5,
|
||||
"40": 5,
|
||||
"50": 5,
|
||||
"60": 1,
|
||||
"65": 1
|
||||
},
|
||||
"adjustWaves": true
|
||||
},
|
||||
"default": {
|
||||
"reduceLootByPercent": true,
|
||||
"minDynamicLootPercent": 50,
|
||||
"minStaticLootPercent": 50,
|
||||
"reducedChancePercent": 95,
|
||||
"reductionPercentWeights": {
|
||||
"10": 1,
|
||||
"20": 2,
|
||||
"30": 5,
|
||||
"40": 5,
|
||||
"50": 5,
|
||||
"60": 2,
|
||||
"70": 1
|
||||
},
|
||||
"adjustWaves": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"equipmentLootSettings": {
|
||||
"modSpawnChancePercent": {
|
||||
"mod_nvg": 5,
|
||||
"front_plate": 100,
|
||||
"back_plate": 100,
|
||||
"left_side_plate": 25,
|
||||
"right_side_plate": 25,
|
||||
"mod_equipment_000": 5,
|
||||
"mod_equipment_001": 5,
|
||||
"mod_equipment_002": 5,
|
||||
"mod_mount": 5,
|
||||
"mod_equipment": 5
|
||||
}
|
||||
},
|
||||
"reserveRaiderSpawnChanceOverrides": {
|
||||
"nonTriggered": 80,
|
||||
"triggered": 90
|
||||
},
|
||||
"nonMaps": ["base", "develop", "hideout", "privatearea", "suburbs", "terminal", "town"]
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"looseLoot": {
|
||||
"woods": [],
|
||||
"bigmap": [],
|
||||
"laboratory": []
|
||||
},
|
||||
"looseLootSpawnPointAdjustments": {
|
||||
"bigmap": {},
|
||||
"rezervbase": {},
|
||||
"tarkovstreets": {}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"equipment": {
|
||||
"ArmBand": false,
|
||||
"Compass": false,
|
||||
"Headwear": true,
|
||||
"Earpiece": true,
|
||||
"FaceCover": true,
|
||||
"ArmorVest": true,
|
||||
"Eyewear": true,
|
||||
"TacticalVest": true,
|
||||
"PocketItems": true,
|
||||
"Backpack": true,
|
||||
"Holster": true,
|
||||
"FirstPrimaryWeapon": true,
|
||||
"SecondPrimaryWeapon": true,
|
||||
"Scabbard": false,
|
||||
"SecuredContainer": false
|
||||
},
|
||||
"questItems": true,
|
||||
"specialSlotItems": false
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"enabled": false,
|
||||
"randomiseMapContainers": {
|
||||
"tarkovstreets": false,
|
||||
"factory4_day": false,
|
||||
"factory4_night": false,
|
||||
"bigmap": false,
|
||||
"woods": false,
|
||||
"shoreline": false,
|
||||
"interchange": false,
|
||||
"lighthouse": false,
|
||||
"laboratory": false,
|
||||
"rezervbase": false
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,897 @@
|
||||
{
|
||||
"gameVersionWeight": {
|
||||
"standard": 2,
|
||||
"left_behind": 1,
|
||||
"prepare_for_escape": 1,
|
||||
"edge_of_darkness": 4,
|
||||
"unheard_edition": 2
|
||||
},
|
||||
"accountTypeWeight": {
|
||||
"0": 75,
|
||||
"1": 1,
|
||||
"256": 2,
|
||||
"512": 2
|
||||
},
|
||||
"vestLoot": {
|
||||
"whitelist": [
|
||||
"5485a8684bdc2da71d8b4567",
|
||||
"5448bc234bdc2d3c308b4569",
|
||||
"5448f3a14bdc2d27728b4569",
|
||||
"5448f3a64bdc2d60728b456a",
|
||||
"5448f39d4bdc2d0a728b4568",
|
||||
"5448e8d04bdc2ddf718b4569",
|
||||
"5448e8d64bdc2dce718b4568",
|
||||
"590c745b86f7743cc433c5f2",
|
||||
"543be6564bdc2df4348b4568",
|
||||
"5448f3ac4bdc2dce718b4569"
|
||||
],
|
||||
"blacklist": [
|
||||
"57864a3d24597754843f8721",
|
||||
"57864a66245977548f04a81f",
|
||||
"57864ada245977548638de91",
|
||||
"57864bb7245977548b3b66c2",
|
||||
"57864c322459775490116fbf",
|
||||
"57864e4c24597754843f8723",
|
||||
"57864ee62459775490116fc1",
|
||||
"5c164d2286f774194c5e69fa",
|
||||
"5c99f98d86f7745c314214b3",
|
||||
"55818add4bdc2d5b648b456f",
|
||||
"55818ad54bdc2ddc698b4569",
|
||||
"55818aeb4bdc2ddc698b456a",
|
||||
"55818ae44bdc2dde698b456c",
|
||||
"55818b164bdc2ddc698b456c",
|
||||
"5447e1d04bdc2dff2f8b4567",
|
||||
"5448eb774bdc2d0a728b4567",
|
||||
"550aa4cd4bdc2dd8348b456c",
|
||||
"55818af64bdc2d5b648b4570",
|
||||
"5448ecbe4bdc2d60728b4568",
|
||||
"5d650c3e815116009f6201d2",
|
||||
"5448e54d4bdc2dcc718b4568",
|
||||
"543be5cb4bdc2deb348b4568",
|
||||
"5485a8684bdc2da71d8b4567",
|
||||
"543be5dd4bdc2deb348b4569",
|
||||
"5fca13ca637ee0341a484f46",
|
||||
"59f32c3b86f77472a31742f0",
|
||||
"6662e9f37fa79a6d83730fa0",
|
||||
"6662ea05f6259762c56f3189",
|
||||
"59f32bb586f774757e1e8442",
|
||||
"6662e9aca7e0b43baa3d5f74",
|
||||
"6662e9cda7e0b43baa3d5f76",
|
||||
"617aa4dd8166f034d57de9c5",
|
||||
"5a2a57cfc4a2826c6e06d44a",
|
||||
"619256e5f8af2c1a4e1f5d92",
|
||||
"5a0c27731526d80618476ac4",
|
||||
"57864c8c245977548867e7f1",
|
||||
"6087e570b998180e9f76dc24",
|
||||
"6391fcf5744e45201147080f",
|
||||
"614451b71e5874611e2c7ae5",
|
||||
"6540d2162ae6d96b540afcaf",
|
||||
"65ca457b4aafb5d7fc0dcb5d",
|
||||
"6331ba83f2ab4f3f09502983",
|
||||
"67409848d0b2f8eb9b034db9",
|
||||
"67449b6c89d5e1ddc603f504"
|
||||
]
|
||||
},
|
||||
"pocketLoot": {
|
||||
"whitelist": [
|
||||
"5485a8684bdc2da71d8b4567",
|
||||
"5448f3a14bdc2d27728b4569",
|
||||
"5448f3a64bdc2d60728b456a",
|
||||
"5448f39d4bdc2d0a728b4568",
|
||||
"543be6564bdc2df4348b4568",
|
||||
"590c745b86f7743cc433c5f2",
|
||||
"543be5dd4bdc2deb348b4569",
|
||||
"5448bc234bdc2d3c308b4569",
|
||||
"57864a3d24597754843f8721",
|
||||
"57864a66245977548f04a81f",
|
||||
"57864ada245977548638de91",
|
||||
"57864bb7245977548b3b66c2",
|
||||
"57864c322459775490116fbf",
|
||||
"57864e4c24597754843f8723",
|
||||
"55818af64bdc2d5b648b4570",
|
||||
"5448ecbe4bdc2d60728b4568",
|
||||
"5448eb774bdc2d0a728b4567",
|
||||
"5448f3ac4bdc2dce718b4569"
|
||||
],
|
||||
"blacklist": [
|
||||
"5448e8d04bdc2ddf718b4569",
|
||||
"5448e8d64bdc2dce718b4568",
|
||||
"57864ee62459775490116fc1",
|
||||
"5c164d2286f774194c5e69fa",
|
||||
"5c99f98d86f7745c314214b3",
|
||||
"55818add4bdc2d5b648b456f",
|
||||
"55818ad54bdc2ddc698b4569",
|
||||
"55818aeb4bdc2ddc698b456a",
|
||||
"55818ae44bdc2dde698b456c",
|
||||
"55818b164bdc2ddc698b456c",
|
||||
"5447e1d04bdc2dff2f8b4567",
|
||||
"550aa4cd4bdc2dd8348b456c",
|
||||
"5d650c3e815116009f6201d2",
|
||||
"5448e54d4bdc2dcc718b4568",
|
||||
"543be5cb4bdc2deb348b4568",
|
||||
"5fca13ca637ee0341a484f46",
|
||||
"59f32c3b86f77472a31742f0",
|
||||
"6662e9f37fa79a6d83730fa0",
|
||||
"6662ea05f6259762c56f3189",
|
||||
"59f32bb586f774757e1e8442",
|
||||
"6662e9aca7e0b43baa3d5f74",
|
||||
"6662e9cda7e0b43baa3d5f76",
|
||||
"617aa4dd8166f034d57de9c5",
|
||||
"5a2a57cfc4a2826c6e06d44a",
|
||||
"619256e5f8af2c1a4e1f5d92",
|
||||
"5a0c27731526d80618476ac4",
|
||||
"57864c8c245977548867e7f1",
|
||||
"6087e570b998180e9f76dc24",
|
||||
"6391fcf5744e45201147080f",
|
||||
"65ca457b4aafb5d7fc0dcb5d",
|
||||
"660bbc98c38b837877075e4a",
|
||||
"6331ba83f2ab4f3f09502983",
|
||||
"67449b6c89d5e1ddc603f504"
|
||||
]
|
||||
},
|
||||
"backpackLoot": {
|
||||
"whitelist": [
|
||||
"57864a3d24597754843f8721",
|
||||
"57864a66245977548f04a81f",
|
||||
"57864ada245977548638de91",
|
||||
"57864bb7245977548b3b66c2",
|
||||
"57864c322459775490116fbf",
|
||||
"57864c8c245977548867e7f1",
|
||||
"57864e4c24597754843f8723",
|
||||
"57864ee62459775490116fc1",
|
||||
"5c164d2286f774194c5e69fa",
|
||||
"5c99f98d86f7745c314214b3",
|
||||
"55818add4bdc2d5b648b456f",
|
||||
"55818ad54bdc2ddc698b4569",
|
||||
"55818aeb4bdc2ddc698b456a",
|
||||
"55818ae44bdc2dde698b456c",
|
||||
"55818b164bdc2ddc698b456c",
|
||||
"5448bc234bdc2d3c308b4569",
|
||||
"5447e1d04bdc2dff2f8b4567",
|
||||
"5448eb774bdc2d0a728b4567",
|
||||
"550aa4cd4bdc2dd8348b456c",
|
||||
"55818af64bdc2d5b648b4570",
|
||||
"5448ecbe4bdc2d60728b4568",
|
||||
"5448e8d04bdc2ddf718b4569",
|
||||
"5d650c3e815116009f6201d2",
|
||||
"5448e8d64bdc2dce718b4568",
|
||||
"5448f3a14bdc2d27728b4569",
|
||||
"5448e54d4bdc2dcc718b4568",
|
||||
"5448f3a64bdc2d60728b456a",
|
||||
"543be5cb4bdc2deb348b4568",
|
||||
"5485a8684bdc2da71d8b4567",
|
||||
"543be5dd4bdc2deb348b4569",
|
||||
"590c745b86f7743cc433c5f2",
|
||||
"5448f39d4bdc2d0a728b4568",
|
||||
"543be6564bdc2df4348b4568",
|
||||
"5448f3ac4bdc2dce718b4569"
|
||||
],
|
||||
"blacklist": [
|
||||
"5e99711486f7744bfc4af328",
|
||||
"5fca13ca637ee0341a484f46",
|
||||
"59f32c3b86f77472a31742f0",
|
||||
"6662e9f37fa79a6d83730fa0",
|
||||
"6662ea05f6259762c56f3189",
|
||||
"59f32bb586f774757e1e8442",
|
||||
"6662e9aca7e0b43baa3d5f74",
|
||||
"6662e9cda7e0b43baa3d5f76",
|
||||
"617aa4dd8166f034d57de9c5",
|
||||
"5a2a57cfc4a2826c6e06d44a",
|
||||
"619256e5f8af2c1a4e1f5d92",
|
||||
"5a0c27731526d80618476ac4",
|
||||
"6087e570b998180e9f76dc24",
|
||||
"63495c500c297e20065a08b1",
|
||||
"6391fcf5744e45201147080f",
|
||||
"614451b71e5874611e2c7ae5",
|
||||
"6540d2162ae6d96b540afcaf",
|
||||
"65ca457b4aafb5d7fc0dcb5d",
|
||||
"660bbc98c38b837877075e4a",
|
||||
"66d9f7256916142b3b02276e",
|
||||
"6331ba83f2ab4f3f09502983",
|
||||
"67409848d0b2f8eb9b034db9",
|
||||
"67449b6c89d5e1ddc603f504"
|
||||
]
|
||||
},
|
||||
"useDifficultyOverride": false,
|
||||
"difficulty": "AsOnline",
|
||||
"botRelativeLevelDeltaMax": 10,
|
||||
"botRelativeLevelDeltaMin": 70,
|
||||
"_isUsec": "Percentage chance PMC will be USEC",
|
||||
"isUsec": 50,
|
||||
"_pmcType": "Controls what bot brain can be chosen for each PMC bot type, the number is the weighting to be picked",
|
||||
"pmcType": {
|
||||
"pmcbear": {
|
||||
"factory4_day": {
|
||||
"bossKilla": 2,
|
||||
"bossKnight": 2,
|
||||
"bossGluhar": 0,
|
||||
"bossSanitar": 1,
|
||||
"bossTagilla": 1,
|
||||
"bossZryachiy": 0,
|
||||
"bossBoar": 0,
|
||||
"followerGluharAssault": 0,
|
||||
"followerBully": 2,
|
||||
"followerBigPipe": 2,
|
||||
"followerSanitar": 0,
|
||||
"assault": 5,
|
||||
"cursedAssault": 0,
|
||||
"exUsec": 5,
|
||||
"arenaFighter": 0,
|
||||
"arenaFighterEvent": 0,
|
||||
"crazyAssaultEvent": 3,
|
||||
"pmcBot": 5,
|
||||
"pmcBEAR": 4
|
||||
},
|
||||
"factory4_night": {
|
||||
"bossKilla": 2,
|
||||
"bossKnight": 2,
|
||||
"bossGluhar": 0,
|
||||
"bossSanitar": 1,
|
||||
"bossTagilla": 1,
|
||||
"bossZryachiy": 0,
|
||||
"bossBoar": 0,
|
||||
"followerGluharAssault": 0,
|
||||
"followerBully": 2,
|
||||
"followerBigPipe": 2,
|
||||
"followerSanitar": 0,
|
||||
"assault": 5,
|
||||
"cursedAssault": 0,
|
||||
"exUsec": 5,
|
||||
"arenaFighter": 0,
|
||||
"arenaFighterEvent": 0,
|
||||
"crazyAssaultEvent": 3,
|
||||
"pmcBot": 5,
|
||||
"pmcBEAR": 4
|
||||
},
|
||||
"bigmap": {
|
||||
"bossKilla": 2,
|
||||
"bossKnight": 2,
|
||||
"bossGluhar": 0,
|
||||
"bossSanitar": 1,
|
||||
"bossTagilla": 1,
|
||||
"bossZryachiy": 0,
|
||||
"bossBoar": 0,
|
||||
"followerGluharAssault": 0,
|
||||
"followerBully": 2,
|
||||
"followerBigPipe": 2,
|
||||
"followerSanitar": 0,
|
||||
"assault": 5,
|
||||
"cursedAssault": 0,
|
||||
"exUsec": 5,
|
||||
"arenaFighter": 0,
|
||||
"arenaFighterEvent": 0,
|
||||
"crazyAssaultEvent": 3,
|
||||
"pmcBot": 5,
|
||||
"pmcBEAR": 4
|
||||
},
|
||||
"laboratory": {
|
||||
"bossKilla": 2,
|
||||
"bossKnight": 2,
|
||||
"bossGluhar": 0,
|
||||
"bossSanitar": 1,
|
||||
"bossTagilla": 1,
|
||||
"bossZryachiy": 0,
|
||||
"bossBoar": 0,
|
||||
"followerGluharAssault": 0,
|
||||
"followerBully": 2,
|
||||
"followerBigPipe": 2,
|
||||
"followerSanitar": 0,
|
||||
"assault": 5,
|
||||
"cursedAssault": 0,
|
||||
"exUsec": 5,
|
||||
"arenaFighter": 0,
|
||||
"arenaFighterEvent": 0,
|
||||
"crazyAssaultEvent": 3,
|
||||
"pmcBot": 5,
|
||||
"pmcBEAR": 4
|
||||
},
|
||||
"woods": {
|
||||
"bossKilla": 2,
|
||||
"bossKnight": 2,
|
||||
"bossGluhar": 0,
|
||||
"bossSanitar": 1,
|
||||
"bossTagilla": 1,
|
||||
"bossKojaniy": 0,
|
||||
"bossZryachiy": 0,
|
||||
"bossBoar": 0,
|
||||
"followerGluharAssault": 0,
|
||||
"followerBully": 2,
|
||||
"followerBigPipe": 2,
|
||||
"followerSanitar": 0,
|
||||
"assault": 5,
|
||||
"cursedAssault": 0,
|
||||
"exUsec": 5,
|
||||
"arenaFighter": 0,
|
||||
"arenaFighterEvent": 0,
|
||||
"crazyAssaultEvent": 3,
|
||||
"pmcBot": 5,
|
||||
"pmcBEAR": 4
|
||||
},
|
||||
"interchange": {
|
||||
"bossKilla": 2,
|
||||
"bossKnight": 2,
|
||||
"bossGluhar": 0,
|
||||
"bossSanitar": 1,
|
||||
"bossTagilla": 1,
|
||||
"bossZryachiy": 0,
|
||||
"bossBoar": 0,
|
||||
"followerGluharAssault": 0,
|
||||
"followerBully": 2,
|
||||
"followerBigPipe": 2,
|
||||
"followerSanitar": 0,
|
||||
"assault": 5,
|
||||
"cursedAssault": 0,
|
||||
"exUsec": 5,
|
||||
"arenaFighter": 0,
|
||||
"arenaFighterEvent": 0,
|
||||
"crazyAssaultEvent": 3,
|
||||
"pmcBot": 5,
|
||||
"pmcBEAR": 4
|
||||
},
|
||||
"lighthouse": {
|
||||
"bossKilla": 2,
|
||||
"bossKnight": 2,
|
||||
"bossGluhar": 0,
|
||||
"bossSanitar": 1,
|
||||
"bossTagilla": 1,
|
||||
"bossZryachiy": 0,
|
||||
"bossBoar": 0,
|
||||
"followerGluharAssault": 0,
|
||||
"followerBully": 2,
|
||||
"followerBigPipe": 2,
|
||||
"followerSanitar": 0,
|
||||
"assault": 5,
|
||||
"cursedAssault": 0,
|
||||
"exUsec": 5,
|
||||
"arenaFighter": 0,
|
||||
"arenaFighterEvent": 0,
|
||||
"crazyAssaultEvent": 3,
|
||||
"pmcBot": 5,
|
||||
"pmcBEAR": 4
|
||||
},
|
||||
"rezervbase": {
|
||||
"bossKilla": 2,
|
||||
"bossKnight": 0,
|
||||
"bossGluhar": 0,
|
||||
"bossSanitar": 1,
|
||||
"bossTagilla": 1,
|
||||
"bossZryachiy": 0,
|
||||
"bossBoar": 0,
|
||||
"followerGluharAssault": 0,
|
||||
"followerBully": 0,
|
||||
"followerBigPipe": 0,
|
||||
"followerSanitar": 0,
|
||||
"assault": 4,
|
||||
"cursedAssault": 0,
|
||||
"exUsec": 0,
|
||||
"arenaFighter": 0,
|
||||
"arenaFighterEvent": 1,
|
||||
"crazyAssaultEvent": 3,
|
||||
"pmcBot": 5,
|
||||
"pmcBEAR": 4
|
||||
},
|
||||
"shoreline": {
|
||||
"bossKilla": 2,
|
||||
"bossKnight": 2,
|
||||
"bossGluhar": 0,
|
||||
"bossSanitar": 1,
|
||||
"bossTagilla": 1,
|
||||
"bossZryachiy": 0,
|
||||
"bossBoar": 0,
|
||||
"followerGluharAssault": 0,
|
||||
"followerBully": 2,
|
||||
"followerBigPipe": 2,
|
||||
"followerSanitar": 0,
|
||||
"assault": 5,
|
||||
"cursedAssault": 0,
|
||||
"exUsec": 0,
|
||||
"arenaFighter": 0,
|
||||
"arenaFighterEvent": 0,
|
||||
"crazyAssaultEvent": 3,
|
||||
"pmcBot": 5,
|
||||
"pmcBEAR": 4
|
||||
},
|
||||
"tarkovstreets": {
|
||||
"bossKilla": 2,
|
||||
"bossKnight": 0,
|
||||
"bossGluhar": 0,
|
||||
"bossSanitar": 1,
|
||||
"bossTagilla": 1,
|
||||
"bossZryachiy": 0,
|
||||
"bossBoar": 0,
|
||||
"followerGluharAssault": 0,
|
||||
"followerBully": 2,
|
||||
"followerBigPipe": 0,
|
||||
"followerSanitar": 0,
|
||||
"assault": 5,
|
||||
"cursedAssault": 0,
|
||||
"exUsec": 0,
|
||||
"arenaFighter": 2,
|
||||
"arenaFighterEvent": 0,
|
||||
"crazyAssaultEvent": 3,
|
||||
"pmcBot": 5,
|
||||
"pmcBEAR": 4
|
||||
},
|
||||
"sandbox": {
|
||||
"bossKilla": 2,
|
||||
"bossKnight": 0,
|
||||
"bossGluhar": 0,
|
||||
"bossSanitar": 1,
|
||||
"bossTagilla": 0,
|
||||
"bossZryachiy": 0,
|
||||
"bossBoar": 0,
|
||||
"followerGluharAssault": 0,
|
||||
"followerBully": 2,
|
||||
"followerBigPipe": 0,
|
||||
"followerSanitar": 0,
|
||||
"followerKolontayAssault": 0,
|
||||
"followerKolontaySecurity": 0,
|
||||
"assault": 3,
|
||||
"cursedAssault": 0,
|
||||
"exUsec": 0,
|
||||
"arenaFighter": 0,
|
||||
"arenaFighterEvent": 1,
|
||||
"crazyAssaultEvent": 1,
|
||||
"pmcBot": 7,
|
||||
"pmcBEAR": 4
|
||||
},
|
||||
"sandbox_high": {
|
||||
"bossKilla": 2,
|
||||
"bossKnight": 0,
|
||||
"bossGluhar": 0,
|
||||
"bossSanitar": 1,
|
||||
"bossTagilla": 0,
|
||||
"bossZryachiy": 0,
|
||||
"bossBoar": 0,
|
||||
"followerGluharAssault": 0,
|
||||
"followerBully": 2,
|
||||
"followerBigPipe": 0,
|
||||
"followerSanitar": 0,
|
||||
"followerKolontayAssault": 0,
|
||||
"followerKolontaySecurity": 0,
|
||||
"assault": 3,
|
||||
"cursedAssault": 0,
|
||||
"exUsec": 0,
|
||||
"arenaFighter": 0,
|
||||
"arenaFighterEvent": 1,
|
||||
"crazyAssaultEvent": 1,
|
||||
"pmcBot": 7,
|
||||
"pmcBEAR": 4
|
||||
}
|
||||
},
|
||||
"pmcusec": {
|
||||
"factory4_day": {
|
||||
"bossKilla": 2,
|
||||
"bossKnight": 2,
|
||||
"bossGluhar": 0,
|
||||
"bossSanitar": 1,
|
||||
"bossTagilla": 1,
|
||||
"bossZryachiy": 0,
|
||||
"bossBoar": 0,
|
||||
"followerGluharAssault": 0,
|
||||
"followerBully": 2,
|
||||
"followerBigPipe": 2,
|
||||
"followerSanitar": 0,
|
||||
"assault": 5,
|
||||
"cursedAssault": 0,
|
||||
"exUsec": 5,
|
||||
"arenaFighter": 0,
|
||||
"arenaFighterEvent": 0,
|
||||
"crazyAssaultEvent": 3,
|
||||
"pmcBot": 5,
|
||||
"pmcUSEC": 4
|
||||
},
|
||||
"factory4_night": {
|
||||
"bossKilla": 2,
|
||||
"bossKnight": 2,
|
||||
"bossGluhar": 0,
|
||||
"bossSanitar": 1,
|
||||
"bossTagilla": 1,
|
||||
"bossZryachiy": 0,
|
||||
"bossBoar": 0,
|
||||
"followerGluharAssault": 0,
|
||||
"followerBully": 2,
|
||||
"followerBigPipe": 2,
|
||||
"followerSanitar": 0,
|
||||
"assault": 5,
|
||||
"cursedAssault": 0,
|
||||
"exUsec": 5,
|
||||
"arenaFighter": 0,
|
||||
"arenaFighterEvent": 0,
|
||||
"crazyAssaultEvent": 3,
|
||||
"pmcBot": 5,
|
||||
"pmcUSEC": 4
|
||||
},
|
||||
"bigmap": {
|
||||
"bossKilla": 0,
|
||||
"bossKnight": 0,
|
||||
"bossGluhar": 0,
|
||||
"bossSanitar": 1,
|
||||
"bossTagilla": 0,
|
||||
"bossZryachiy": 0,
|
||||
"bossBoar": 0,
|
||||
"followerGluharAssault": 0,
|
||||
"followerBully": 0,
|
||||
"followerBigPipe": 0,
|
||||
"followerSanitar": 0,
|
||||
"assault": 1,
|
||||
"cursedAssault": 0,
|
||||
"exUsec": 0,
|
||||
"arenaFighter": 0,
|
||||
"arenaFighterEvent": 0,
|
||||
"crazyAssaultEvent": 2,
|
||||
"pmcBot": 6,
|
||||
"pmcUSEC": 4
|
||||
},
|
||||
"laboratory": {
|
||||
"bossKilla": 2,
|
||||
"bossKnight": 2,
|
||||
"bossGluhar": 0,
|
||||
"bossSanitar": 1,
|
||||
"bossTagilla": 1,
|
||||
"bossZryachiy": 0,
|
||||
"bossBoar": 0,
|
||||
"followerGluharAssault": 0,
|
||||
"followerBully": 2,
|
||||
"followerBigPipe": 2,
|
||||
"followerSanitar": 0,
|
||||
"assault": 5,
|
||||
"cursedAssault": 0,
|
||||
"exUsec": 5,
|
||||
"arenaFighter": 0,
|
||||
"arenaFighterEvent": 0,
|
||||
"crazyAssaultEvent": 3,
|
||||
"pmcBot": 5,
|
||||
"pmcUSEC": 4
|
||||
},
|
||||
"woods": {
|
||||
"bossKilla": 2,
|
||||
"bossKnight": 2,
|
||||
"bossGluhar": 0,
|
||||
"bossSanitar": 1,
|
||||
"bossTagilla": 1,
|
||||
"bossKojaniy": 0,
|
||||
"bossZryachiy": 0,
|
||||
"bossBoar": 0,
|
||||
"followerGluharAssault": 0,
|
||||
"followerBully": 2,
|
||||
"followerBigPipe": 2,
|
||||
"followerSanitar": 0,
|
||||
"assault": 5,
|
||||
"cursedAssault": 0,
|
||||
"exUsec": 5,
|
||||
"arenaFighter": 0,
|
||||
"arenaFighterEvent": 0,
|
||||
"crazyAssaultEvent": 3,
|
||||
"pmcBot": 5,
|
||||
"pmcUSEC": 4
|
||||
},
|
||||
"interchange": {
|
||||
"bossKilla": 2,
|
||||
"bossKnight": 2,
|
||||
"bossGluhar": 0,
|
||||
"bossSanitar": 1,
|
||||
"bossTagilla": 1,
|
||||
"bossZryachiy": 0,
|
||||
"bossBoar": 0,
|
||||
"followerGluharAssault": 0,
|
||||
"followerBully": 2,
|
||||
"followerBigPipe": 2,
|
||||
"followerSanitar": 0,
|
||||
"assault": 5,
|
||||
"cursedAssault": 0,
|
||||
"exUsec": 5,
|
||||
"arenaFighter": 0,
|
||||
"arenaFighterEvent": 0,
|
||||
"crazyAssaultEvent": 3,
|
||||
"pmcBot": 5,
|
||||
"pmcUSEC": 4
|
||||
},
|
||||
"lighthouse": {
|
||||
"bossKilla": 2,
|
||||
"bossKnight": 2,
|
||||
"bossGluhar": 0,
|
||||
"bossSanitar": 1,
|
||||
"bossTagilla": 1,
|
||||
"bossZryachiy": 0,
|
||||
"bossBoar": 0,
|
||||
"followerGluharAssault": 0,
|
||||
"followerBully": 2,
|
||||
"followerBigPipe": 2,
|
||||
"followerSanitar": 0,
|
||||
"assault": 5,
|
||||
"cursedAssault": 0,
|
||||
"exUsec": 5,
|
||||
"arenaFighter": 0,
|
||||
"arenaFighterEvent": 0,
|
||||
"crazyAssaultEvent": 3,
|
||||
"pmcBot": 5,
|
||||
"pmcUSEC": 4
|
||||
},
|
||||
"rezervbase": {
|
||||
"bossKilla": 2,
|
||||
"bossKnight": 0,
|
||||
"bossGluhar": 0,
|
||||
"bossSanitar": 1,
|
||||
"bossTagilla": 1,
|
||||
"bossZryachiy": 0,
|
||||
"bossBoar": 0,
|
||||
"followerGluharAssault": 0,
|
||||
"followerBully": 0,
|
||||
"followerBigPipe": 0,
|
||||
"followerSanitar": 0,
|
||||
"assault": 4,
|
||||
"cursedAssault": 0,
|
||||
"exUsec": 0,
|
||||
"arenaFighter": 0,
|
||||
"arenaFighterEvent": 1,
|
||||
"crazyAssaultEvent": 3,
|
||||
"pmcBot": 5,
|
||||
"pmcUSEC": 4
|
||||
},
|
||||
"shoreline": {
|
||||
"bossKilla": 2,
|
||||
"bossKnight": 2,
|
||||
"bossGluhar": 0,
|
||||
"bossSanitar": 1,
|
||||
"bossTagilla": 1,
|
||||
"bossZryachiy": 0,
|
||||
"bossBoar": 0,
|
||||
"followerGluharAssault": 0,
|
||||
"followerBully": 2,
|
||||
"followerBigPipe": 2,
|
||||
"followerSanitar": 0,
|
||||
"assault": 5,
|
||||
"cursedAssault": 0,
|
||||
"exUsec": 0,
|
||||
"arenaFighter": 0,
|
||||
"arenaFighterEvent": 0,
|
||||
"crazyAssaultEvent": 3,
|
||||
"pmcBot": 5,
|
||||
"pmcUSEC": 4
|
||||
},
|
||||
"tarkovstreets": {
|
||||
"bossKilla": 2,
|
||||
"bossKnight": 0,
|
||||
"bossGluhar": 0,
|
||||
"bossSanitar": 1,
|
||||
"bossTagilla": 1,
|
||||
"bossZryachiy": 0,
|
||||
"bossBoar": 0,
|
||||
"followerGluharAssault": 0,
|
||||
"followerBully": 2,
|
||||
"followerBigPipe": 0,
|
||||
"followerSanitar": 0,
|
||||
"assault": 5,
|
||||
"cursedAssault": 0,
|
||||
"exUsec": 0,
|
||||
"arenaFighter": 2,
|
||||
"arenaFighterEvent": 0,
|
||||
"crazyAssaultEvent": 3,
|
||||
"pmcBot": 5,
|
||||
"pmcUSEC": 4
|
||||
},
|
||||
"sandbox": {
|
||||
"bossKilla": 2,
|
||||
"bossKnight": 0,
|
||||
"bossGluhar": 0,
|
||||
"bossSanitar": 1,
|
||||
"bossTagilla": 0,
|
||||
"bossZryachiy": 0,
|
||||
"bossBoar": 0,
|
||||
"followerGluharAssault": 0,
|
||||
"followerBully": 2,
|
||||
"followerBigPipe": 0,
|
||||
"followerSanitar": 0,
|
||||
"followerKolontayAssault": 0,
|
||||
"followerKolontaySecurity": 0,
|
||||
"assault": 3,
|
||||
"cursedAssault": 0,
|
||||
"exUsec": 0,
|
||||
"arenaFighter": 0,
|
||||
"arenaFighterEvent": 1,
|
||||
"crazyAssaultEvent": 1,
|
||||
"pmcBot": 7,
|
||||
"pmcUSEC": 4
|
||||
},
|
||||
"sandbox_high": {
|
||||
"bossKilla": 2,
|
||||
"bossKnight": 0,
|
||||
"bossGluhar": 0,
|
||||
"bossSanitar": 1,
|
||||
"bossTagilla": 0,
|
||||
"bossZryachiy": 0,
|
||||
"bossBoar": 0,
|
||||
"followerGluharAssault": 0,
|
||||
"followerBully": 2,
|
||||
"followerBigPipe": 0,
|
||||
"followerSanitar": 0,
|
||||
"followerKolontayAssault": 0,
|
||||
"followerKolontaySecurity": 0,
|
||||
"assault": 3,
|
||||
"cursedAssault": 0,
|
||||
"exUsec": 0,
|
||||
"arenaFighter": 0,
|
||||
"arenaFighterEvent": 1,
|
||||
"crazyAssaultEvent": 1,
|
||||
"pmcBot": 7,
|
||||
"pmcUSEC": 4
|
||||
}
|
||||
}
|
||||
},
|
||||
"usecType": "pmcUSEC",
|
||||
"bearType": "pmcBEAR",
|
||||
"looseWeaponInBackpackChancePercent": 15,
|
||||
"weaponHasEnhancementChancePercent": 5,
|
||||
"looseWeaponInBackpackLootMinMax": {
|
||||
"min": 1,
|
||||
"max": 1
|
||||
},
|
||||
"maxBackpackLootTotalRub": [
|
||||
{
|
||||
"min": 1,
|
||||
"max": 15,
|
||||
"value": 100000
|
||||
},
|
||||
{
|
||||
"min": 16,
|
||||
"max": 35,
|
||||
"value": 250000
|
||||
},
|
||||
{
|
||||
"min": 36,
|
||||
"max": 45,
|
||||
"value": 450000
|
||||
},
|
||||
{
|
||||
"min": 46,
|
||||
"max": 64,
|
||||
"value": 750000
|
||||
},
|
||||
{
|
||||
"min": 65,
|
||||
"max": 100,
|
||||
"value": 2500000
|
||||
}
|
||||
],
|
||||
"maxPocketLootTotalRub": 50000,
|
||||
"maxVestLootTotalRub": 50000,
|
||||
"convertIntoPmcChance": {
|
||||
"default": {
|
||||
"assault": {
|
||||
"min": 25,
|
||||
"max": 35
|
||||
},
|
||||
"cursedassault": {
|
||||
"min": 15,
|
||||
"max": 30
|
||||
},
|
||||
"pmcbot": {
|
||||
"min": 5,
|
||||
"max": 10
|
||||
},
|
||||
"exusec": {
|
||||
"min": 5,
|
||||
"max": 5
|
||||
},
|
||||
"arenafighter": {
|
||||
"min": 0,
|
||||
"max": 0
|
||||
},
|
||||
"arenafighterevent": {
|
||||
"min": 0,
|
||||
"max": 0
|
||||
},
|
||||
"crazyassaultevent": {
|
||||
"min": 0,
|
||||
"max": 0
|
||||
}
|
||||
},
|
||||
"factory4_day": {
|
||||
"assault": {
|
||||
"min": 10,
|
||||
"max": 15
|
||||
}
|
||||
},
|
||||
"laboratory": {
|
||||
"pmcbot": {
|
||||
"min": 1,
|
||||
"max": 5
|
||||
}
|
||||
},
|
||||
"rezervbase": {
|
||||
"pmcbot": {
|
||||
"min": 0,
|
||||
"max": 0
|
||||
}
|
||||
}
|
||||
},
|
||||
"hostilitySettings": {
|
||||
"pmcusec": {
|
||||
"additionalEnemyTypes": [
|
||||
"bossPartisan",
|
||||
"peacemaker",
|
||||
"skier",
|
||||
"ravangeZryachiyEvent",
|
||||
"infectedAssault",
|
||||
"infectedPmc",
|
||||
"infectedCivil",
|
||||
"infectedLaborant",
|
||||
"infectedTagilla"
|
||||
],
|
||||
"additionalFriendlyTypes": ["shooterBTR", "sectactPriestEvent", "peacefullZryachiyEvent"],
|
||||
"chancedEnemies": [
|
||||
{
|
||||
"EnemyChance": 100,
|
||||
"Role": "assault"
|
||||
},
|
||||
{
|
||||
"EnemyChance": 100,
|
||||
"Role": "marksman"
|
||||
},
|
||||
{
|
||||
"EnemyChance": 85,
|
||||
"Role": "pmcUSEC"
|
||||
},
|
||||
{
|
||||
"EnemyChance": 100,
|
||||
"Role": "pmcBEAR"
|
||||
}
|
||||
],
|
||||
"bearEnemyChance": 100,
|
||||
"usecEnemyChance": 85,
|
||||
"savageEnemyChance": 95,
|
||||
"savagePlayerBehaviour": "AlwaysEnemies"
|
||||
},
|
||||
"pmcbear": {
|
||||
"additionalEnemyTypes": [
|
||||
"bossPartisan",
|
||||
"peacemaker",
|
||||
"skier",
|
||||
"ravangeZryachiyEvent",
|
||||
"infectedAssault",
|
||||
"infectedPmc",
|
||||
"infectedCivil",
|
||||
"infectedLaborant",
|
||||
"infectedTagilla"
|
||||
],
|
||||
"additionalFriendlyTypes": ["shooterBTR", "sectactPriestEvent", "peacefullZryachiyEvent"],
|
||||
"chancedEnemies": [
|
||||
{
|
||||
"EnemyChance": 100,
|
||||
"Role": "assault"
|
||||
},
|
||||
{
|
||||
"EnemyChance": 100,
|
||||
"Role": "marksman"
|
||||
},
|
||||
{
|
||||
"EnemyChance": 85,
|
||||
"Role": "pmcBEAR"
|
||||
},
|
||||
{
|
||||
"EnemyChance": 100,
|
||||
"Role": "pmcUSEC"
|
||||
}
|
||||
],
|
||||
"bearEnemyChance": 85,
|
||||
"usecEnemyChance": 100,
|
||||
"savageEnemyChance": 95,
|
||||
"savagePlayerBehaviour": "AlwaysEnemies"
|
||||
}
|
||||
},
|
||||
"forceHealingItemsIntoSecure": true,
|
||||
"addPrefixToSameNamePMCAsPlayerChance": 40,
|
||||
"allPMCsHavePlayerNameWithRandomPrefixChance": 1,
|
||||
"locationSpecificPmcLevelOverride": {
|
||||
"sandbox": {
|
||||
"min": 1,
|
||||
"max": 20
|
||||
},
|
||||
"sandbox_high": {
|
||||
"min": 21,
|
||||
"max": 100
|
||||
}
|
||||
},
|
||||
"addSecureContainerLootFromBotConfig": false
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"victim": {
|
||||
"responseChancePercent": 7,
|
||||
"responseTypeWeights": {
|
||||
"positive": 7,
|
||||
"negative": 2,
|
||||
"plead": 2
|
||||
},
|
||||
"stripCapitalisationChancePercent": 20,
|
||||
"allCapsChancePercent": 20,
|
||||
"appendBroToMessageEndChancePercent": 35
|
||||
},
|
||||
"killer": {
|
||||
"responseChancePercent": 16,
|
||||
"responseTypeWeights": {
|
||||
"positive": 5,
|
||||
"negative": 2,
|
||||
"plead": 2,
|
||||
"pity": 1
|
||||
},
|
||||
"stripCapitalisationChancePercent": 20,
|
||||
"allCapsChancePercent": 15,
|
||||
"appendBroToMessageEndChancePercent": 15
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,437 @@
|
||||
{
|
||||
"runIntervalSeconds": 8,
|
||||
"runIntervalValues": {
|
||||
"inRaid": 60,
|
||||
"outOfRaid": 8
|
||||
},
|
||||
"sell": {
|
||||
"fees": true,
|
||||
"chance": {
|
||||
"base": 50,
|
||||
"sellMultiplier": 1.24,
|
||||
"maxSellChancePercent": 100,
|
||||
"minSellChancePercent": 0
|
||||
},
|
||||
"time": {
|
||||
"min": 0,
|
||||
"max": 1.0
|
||||
},
|
||||
"expireSeconds": 71
|
||||
},
|
||||
"traders": {
|
||||
"54cb50c76803fa8b248b4571": true,
|
||||
"54cb57776803fa99248b456e": true,
|
||||
"579dc571d53a0658a154fbec": false,
|
||||
"58330581ace78e27b8b10cee": true,
|
||||
"5935c25fb3acc3127c3d8cd9": true,
|
||||
"5a7c2eca46aef81a7ca2145d": true,
|
||||
"5ac3b934156ae10c4430e83c": true,
|
||||
"5c0647fdd443bc2504c2d371": true,
|
||||
"6617beeaa9cfa777ca915b7c": true,
|
||||
"ragfair": false
|
||||
},
|
||||
"dynamic": {
|
||||
"purchasesAreFoundInRaid": false,
|
||||
"useTraderPriceForOffersIfHigher": true,
|
||||
"barter": {
|
||||
"chancePercent": 20,
|
||||
"itemCountMin": 1,
|
||||
"itemCountMax": 3,
|
||||
"priceRangeVariancePercent": 15,
|
||||
"minRoubleCostToBecomeBarter": 20000,
|
||||
"makeSingleStackOnly": true,
|
||||
"itemTypeBlacklist": [
|
||||
"55802f4a4bdc2ddb688b4569",
|
||||
"55802f3e4bdc2de7118b4584",
|
||||
"543be5cb4bdc2deb348b4568",
|
||||
"55818ac54bdc2d5b648b456e",
|
||||
"5a74651486f7744e73386dd1"
|
||||
]
|
||||
},
|
||||
"pack": {
|
||||
"chancePercent": 6,
|
||||
"itemCountMin": 4,
|
||||
"itemCountMax": 17,
|
||||
"itemTypeWhitelist": [
|
||||
"5448eb774bdc2d0a728b4567",
|
||||
"5448e8d64bdc2dce718b4568",
|
||||
"5448f3ac4bdc2dce718b4569",
|
||||
"543be6674bdc2df1348b4569",
|
||||
"57864a3d24597754843f8721",
|
||||
"57864a66245977548f04a81f",
|
||||
"57864ada245977548638de91",
|
||||
"57864ada245977548638de91"
|
||||
]
|
||||
},
|
||||
"offerAdjustment": {
|
||||
"adjustPriceWhenBelowHandbookPrice": false,
|
||||
"maxPriceDifferenceBelowHandbookPercent": 64,
|
||||
"handbookPriceMultipier": 1.1,
|
||||
"priceThreshholdRub": 20000
|
||||
},
|
||||
"expiredOfferThreshold": 1400,
|
||||
"offerItemCount": {
|
||||
"min": 7,
|
||||
"max": 30
|
||||
},
|
||||
"priceRanges": {
|
||||
"default": {
|
||||
"min": 0.8,
|
||||
"max": 1.2
|
||||
},
|
||||
"preset": {
|
||||
"min": 0.95,
|
||||
"max": 1.05
|
||||
},
|
||||
"pack": {
|
||||
"min": 0.75,
|
||||
"max": 0.96
|
||||
}
|
||||
},
|
||||
"ignoreQualityPriceVarianceBlacklist": [
|
||||
"59e3577886f774176a362503",
|
||||
"5d02797c86f774203f38e30a",
|
||||
"5ab8e79e86f7742d8b372e78"
|
||||
],
|
||||
"showDefaultPresetsOnly": true,
|
||||
"endTimeSeconds": {
|
||||
"min": 360,
|
||||
"max": 3600
|
||||
},
|
||||
"condition": {
|
||||
"5422acb9af1c889c16000029": {
|
||||
"_name": "WEAPON",
|
||||
"conditionChance": 0.2,
|
||||
"current": {
|
||||
"min": 0,
|
||||
"max": 1
|
||||
},
|
||||
"max": {
|
||||
"min": 0.6,
|
||||
"max": 1
|
||||
}
|
||||
},
|
||||
"543be5664bdc2dd4348b4569": {
|
||||
"_name": "MEDS",
|
||||
"conditionChance": 0.2,
|
||||
"current": {
|
||||
"min": 0,
|
||||
"max": 1
|
||||
},
|
||||
"max": {
|
||||
"min": 0.6,
|
||||
"max": 1
|
||||
}
|
||||
},
|
||||
"5447e0e74bdc2d3c308b4567": {
|
||||
"_name": "SPEC_ITEM",
|
||||
"conditionChance": 0.3,
|
||||
"current": {
|
||||
"min": 0,
|
||||
"max": 1
|
||||
},
|
||||
"max": {
|
||||
"min": 0.02,
|
||||
"max": 1
|
||||
}
|
||||
},
|
||||
"543be5e94bdc2df1348b4568": {
|
||||
"_name": "KEY",
|
||||
"conditionChance": 0.04,
|
||||
"current": {
|
||||
"min": 0,
|
||||
"max": 1
|
||||
},
|
||||
"max": {
|
||||
"min": 0.96,
|
||||
"max": 1
|
||||
}
|
||||
},
|
||||
"5448e5284bdc2dcb718b4567": {
|
||||
"_name": "VEST",
|
||||
"conditionChance": 0.2,
|
||||
"current": {
|
||||
"min": 0,
|
||||
"max": 1
|
||||
},
|
||||
"max": {
|
||||
"min": 0.45,
|
||||
"max": 1
|
||||
}
|
||||
},
|
||||
"5448e54d4bdc2dcc718b4568": {
|
||||
"_name": "ARMOR",
|
||||
"conditionChance": 0.2,
|
||||
"current": {
|
||||
"min": 0,
|
||||
"max": 1
|
||||
},
|
||||
"max": {
|
||||
"min": 0.45,
|
||||
"max": 1
|
||||
}
|
||||
},
|
||||
"644120aa86ffbe10ee032b6f": {
|
||||
"_name": "ARMOR_PLATE",
|
||||
"conditionChance": 0.45,
|
||||
"current": {
|
||||
"min": 0,
|
||||
"max": 1
|
||||
},
|
||||
"max": {
|
||||
"min": 0.7,
|
||||
"max": 1
|
||||
}
|
||||
},
|
||||
"65649eb40bf0ed77b8044453": {
|
||||
"_name": "BUILT_IN_INSERTS",
|
||||
"conditionChance": 0.3,
|
||||
"current": {
|
||||
"min": 0,
|
||||
"max": 1
|
||||
},
|
||||
"max": {
|
||||
"min": 0.3,
|
||||
"max": 1
|
||||
}
|
||||
},
|
||||
"543be6674bdc2df1348b4569": {
|
||||
"_name": "FOOD_DRINK",
|
||||
"conditionChance": 0.05,
|
||||
"current": {
|
||||
"min": 1,
|
||||
"max": 1
|
||||
},
|
||||
"max": {
|
||||
"min": 0.05,
|
||||
"max": 1
|
||||
}
|
||||
},
|
||||
"5d650c3e815116009f6201d2": {
|
||||
"_name": "FUEL",
|
||||
"conditionChance": 0.12,
|
||||
"current": {
|
||||
"min": 1,
|
||||
"max": 1
|
||||
},
|
||||
"max": {
|
||||
"min": 0.7,
|
||||
"max": 1
|
||||
}
|
||||
},
|
||||
"5a341c4686f77469e155819e": {
|
||||
"_name": "FACECOVER",
|
||||
"conditionChance": 0.32,
|
||||
"current": {
|
||||
"min": 0,
|
||||
"max": 1
|
||||
},
|
||||
"max": {
|
||||
"min": 0.6,
|
||||
"max": 1
|
||||
}
|
||||
},
|
||||
"5448e5724bdc2ddf718b4568": {
|
||||
"_name": "VISORS",
|
||||
"conditionChance": 0.32,
|
||||
"current": {
|
||||
"min": 0,
|
||||
"max": 1
|
||||
},
|
||||
"max": {
|
||||
"min": 0.7,
|
||||
"max": 1
|
||||
}
|
||||
},
|
||||
"5a341c4086f77401f2541505": {
|
||||
"_name": "HELMETS",
|
||||
"conditionChance": 0.32,
|
||||
"current": {
|
||||
"min": 0,
|
||||
"max": 1
|
||||
},
|
||||
"max": {
|
||||
"min": 0.45,
|
||||
"max": 1
|
||||
}
|
||||
},
|
||||
"57bef4c42459772e8d35a53b": {
|
||||
"_name": "ARMORED_EQUIPMENT",
|
||||
"conditionChance": 0.25,
|
||||
"current": {
|
||||
"min": 0,
|
||||
"max": 1
|
||||
},
|
||||
"max": {
|
||||
"min": 0.05,
|
||||
"max": 1
|
||||
}
|
||||
}
|
||||
},
|
||||
"stackablePercent": {
|
||||
"min": 10,
|
||||
"max": 600
|
||||
},
|
||||
"nonStackableCount": {
|
||||
"min": 1,
|
||||
"max": 10
|
||||
},
|
||||
"rating": {
|
||||
"min": -2,
|
||||
"max": 20
|
||||
},
|
||||
"armor": {
|
||||
"removeRemovablePlateChance": 40,
|
||||
"plateSlotIdToRemovePool": ["front_plate", "back_plate"]
|
||||
},
|
||||
"itemPriceMultiplier": {
|
||||
"5737292724597765e5728562": 6,
|
||||
"57372ac324597767001bc261": 5,
|
||||
"5c110624d174af029e69734c": 38
|
||||
},
|
||||
"_currencies": "what percentage of the offers are in each currency",
|
||||
"currencies": {
|
||||
"5449016a4bdc2d6f028b456f": 78,
|
||||
"5696686a4bdc2da3298b456a": 14,
|
||||
"569668774bdc2da2298b4568": 8
|
||||
},
|
||||
"showAsSingleStack": [
|
||||
"5422acb9af1c889c16000029",
|
||||
"5448e54d4bdc2dcc718b4568",
|
||||
"5795f317245977243854e041",
|
||||
"5448e53e4bdc2d60728b4567",
|
||||
"5448bf274bdc2dfc2f8b456a",
|
||||
"543be5e94bdc2df1348b4568",
|
||||
"5448f39d4bdc2d0a728b4568",
|
||||
"62e910aaf957f2915e0a5e36",
|
||||
"5447e1d04bdc2dff2f8b4567",
|
||||
"57bef4c42459772e8d35a53b",
|
||||
"55802f4a4bdc2ddb688b4569",
|
||||
"616eb7aea207f41933308f46"
|
||||
],
|
||||
"removeSeasonalItemsWhenNotInEvent": true,
|
||||
"blacklist": {
|
||||
"damagedAmmoPacks": true,
|
||||
"custom": [],
|
||||
"enableBsgList": true,
|
||||
"enableQuestList": true,
|
||||
"traderItems": false,
|
||||
"armorPlate": {
|
||||
"maxProtectionLevel": 4,
|
||||
"ignoreSlots": ["right_side_plate", "left_side_plate"]
|
||||
},
|
||||
"enableCustomItemCategoryList": false,
|
||||
"customItemCategoryList": []
|
||||
},
|
||||
"unreasonableModPrices": {
|
||||
"5448fe124bdc2da5018b4567": {
|
||||
"itemType": "Weapon Mod",
|
||||
"enabled": true,
|
||||
"handbookPriceOverMultiplier": 6,
|
||||
"newPriceHandbookMultiplier": 6
|
||||
},
|
||||
"57864a66245977548f04a81f": {
|
||||
"itemType": "Electronics",
|
||||
"enabled": true,
|
||||
"handbookPriceOverMultiplier": 11,
|
||||
"newPriceHandbookMultiplier": 11
|
||||
}
|
||||
},
|
||||
"itemPriceOverrideRouble":{
|
||||
"66bc98a01a47be227a5e956e": 500000,
|
||||
"63a8970d7108f713591149f5": 50000,
|
||||
"63a898a328e385334e0640a5": 100000,
|
||||
"63a897c6b1ff6e29734fcc95": 200000
|
||||
}
|
||||
},
|
||||
"tieredFlea": {
|
||||
"enabled": false,
|
||||
"unlocksTpl": {
|
||||
"5d5d940f86f7742797262046": 32,
|
||||
"545cdae64bdc2d39198b4568": 30,
|
||||
"5b44c6ae86f7742d1627baea": 30,
|
||||
"628e1ffc83ec92260c0f437f": 30,
|
||||
"5f5e467b0bc58666c37e7821": 30,
|
||||
|
||||
"5c0e6a1586f77404597b4965": 26,
|
||||
"5df8a42886f77412640e2e75": 25,
|
||||
|
||||
"5c94bbff86f7747ee735c08f": 30,
|
||||
"63a0b208f444d32d6f03ea1e": 25,
|
||||
"5c0530ee86f774697952d952": 25,
|
||||
"57347ca924597744596b4e71": 35,
|
||||
|
||||
"5af04b6486f774195a3ebb49": 30,
|
||||
"590c2e1186f77425357b6124": 30,
|
||||
"590c5bbd86f774785762df04": 30,
|
||||
"59e36c6f86f774176c10a2a7": 30,
|
||||
"590a3b0486f7743954552bdb": 30,
|
||||
"5c06782b86f77426df5407d2": 30,
|
||||
"5c06779c86f77426e00dd782": 30,
|
||||
"5d1b2fa286f77425227d1674": 30,
|
||||
"57347cd0245977445a2d6ff1": 30,
|
||||
|
||||
"5d1b385e86f774252167b98a": 30,
|
||||
|
||||
"62a0a124de7ac81993580542": 40,
|
||||
"5e42c81886f7742a01529f57": 40,
|
||||
"5d1b371186f774253763a656": 35,
|
||||
"5d1b36a186f7742523398433": 35,
|
||||
"5e2af29386f7746d4159f077": 35,
|
||||
"5d1b3a5d86f774252167ba22": 35,
|
||||
"59e3577886f774176a362503": 35
|
||||
},
|
||||
"unlocksType": {
|
||||
"57864a3d24597754843f8721": 35,
|
||||
"57864a66245977548f04a81f": 20,
|
||||
"57864ada245977548638de91": 20,
|
||||
"590c745b86f7743cc433c5f2": 20,
|
||||
|
||||
"5447bedf4bdc2d87278b4568": 50,
|
||||
"5447bed64bdc2d97278b4568": 40,
|
||||
"5447b6254bdc2dc3278b4568": 35,
|
||||
"5447b6194bdc2d67278b4567": 35,
|
||||
"5447b5f14bdc2d61278b4567": 35,
|
||||
"5447b5e04bdc2d62278b4567": 20,
|
||||
"5447b6094bdc2dc3278b4567": 15,
|
||||
"5447bee84bdc2dc3278b4569": 15,
|
||||
"617f1ef5e8b54b0998387733": 10,
|
||||
"5447b5cf4bdc2d65278b4567": 5,
|
||||
|
||||
"55818acf4bdc2dde698b456b": 20,
|
||||
"55818ad54bdc2ddc698b4569": 23,
|
||||
"55818add4bdc2d5b648b456f": 25,
|
||||
"55818ae44bdc2dde698b456c": 30,
|
||||
"55818aeb4bdc2ddc698b456a": 45,
|
||||
|
||||
"543be5cb4bdc2deb348b4568": 50,
|
||||
|
||||
"5c164d2286f774194c5e69fa": 40,
|
||||
"5c99f98d86f7745c314214b3": 35
|
||||
},
|
||||
"ammoTiersEnabled": true,
|
||||
"ammoTplUnlocks": {
|
||||
"619636be6db0f2477964e710": 50,
|
||||
"5fc382c1016cce60e8341b20": 50,
|
||||
"5efb0cabfb3e451d70735af5": 35,
|
||||
"64b8ee384b75259c590fa89b": 35,
|
||||
"5d6e6911a4b9361bd5780d52": 35,
|
||||
"5e85aa1a988a8701445df1f5": 35,
|
||||
"6576f93989f0062e741ba952": 25,
|
||||
|
||||
"56dff061d2720bb5668b4567": 45,
|
||||
"56dff2ced2720bb4668b4567": 40,
|
||||
|
||||
"64b7af434b75259c590fa893": 45,
|
||||
|
||||
"60194943740c5d77f6705eea": 35,
|
||||
|
||||
"5656d7c34bdc2d9d198b4587": 35,
|
||||
|
||||
"5e023e53d4353e3302577c4c": 25,
|
||||
|
||||
"5887431f2459777e1612938f": 30,
|
||||
"59e77a2386f7742ee578960a": 35
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,186 @@
|
||||
{
|
||||
"priceMultiplier": 1,
|
||||
"applyRandomizeDurabilityLoss": true,
|
||||
"weaponSkillRepairGain": 4.06,
|
||||
"armorKitSkillPointGainPerRepairPointMultiplier": 0.05,
|
||||
"repairKitIntellectGainMultiplier": {
|
||||
"weapon": 0.045,
|
||||
"armor": 0.03
|
||||
},
|
||||
"maxIntellectGainPerRepair": {
|
||||
"kit": 0.6,
|
||||
"trader": 0.6
|
||||
},
|
||||
"weaponTreatment": {
|
||||
"critSuccessChance": 0.1,
|
||||
"critSuccessAmount": 4,
|
||||
"critFailureChance": 0.1,
|
||||
"critFailureAmount": 4,
|
||||
"pointGainMultiplier": 0.6
|
||||
},
|
||||
"repairKit": {
|
||||
"armor": {
|
||||
"rarityWeight": {
|
||||
"Common": 5,
|
||||
"Rare": 1
|
||||
},
|
||||
"bonusTypeWeight": {
|
||||
"DamageReduction": 1
|
||||
},
|
||||
"Common": {
|
||||
"DamageReduction": {
|
||||
"valuesMinMax": {
|
||||
"min": 0.9,
|
||||
"max": 0.98
|
||||
},
|
||||
"activeDurabilityPercentMinMax": {
|
||||
"min": 75,
|
||||
"max": 90
|
||||
}
|
||||
}
|
||||
},
|
||||
"Rare": {
|
||||
"DamageReduction": {
|
||||
"valuesMinMax": {
|
||||
"min": 0.8,
|
||||
"max": 0.9
|
||||
},
|
||||
"activeDurabilityPercentMinMax": {
|
||||
"min": 75,
|
||||
"max": 90
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"vest": {
|
||||
"rarityWeight": {
|
||||
"Common": 5,
|
||||
"Rare": 1
|
||||
},
|
||||
"bonusTypeWeight": {
|
||||
"DamageReduction": 1
|
||||
},
|
||||
"Common": {
|
||||
"DamageReduction": {
|
||||
"valuesMinMax": {
|
||||
"min": 0.9,
|
||||
"max": 0.98
|
||||
},
|
||||
"activeDurabilityPercentMinMax": {
|
||||
"min": 75,
|
||||
"max": 90
|
||||
}
|
||||
}
|
||||
},
|
||||
"Rare": {
|
||||
"DamageReduction": {
|
||||
"valuesMinMax": {
|
||||
"min": 0.8,
|
||||
"max": 0.9
|
||||
},
|
||||
"activeDurabilityPercentMinMax": {
|
||||
"min": 75,
|
||||
"max": 90
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"headwear": {
|
||||
"rarityWeight": {
|
||||
"Common": 5,
|
||||
"Rare": 1
|
||||
},
|
||||
"bonusTypeWeight": {
|
||||
"DamageReduction": 1
|
||||
},
|
||||
"Common": {
|
||||
"DamageReduction": {
|
||||
"valuesMinMax": {
|
||||
"min": 0.9,
|
||||
"max": 0.98
|
||||
},
|
||||
"activeDurabilityPercentMinMax": {
|
||||
"min": 75,
|
||||
"max": 90
|
||||
}
|
||||
}
|
||||
},
|
||||
"Rare": {
|
||||
"DamageReduction": {
|
||||
"valuesMinMax": {
|
||||
"min": 0.8,
|
||||
"max": 0.9
|
||||
},
|
||||
"activeDurabilityPercentMinMax": {
|
||||
"min": 75,
|
||||
"max": 90
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"weapon": {
|
||||
"rarityWeight": {
|
||||
"Common": 5,
|
||||
"Rare": 1
|
||||
},
|
||||
"bonusTypeWeight": {
|
||||
"WeaponSpread": 1,
|
||||
"MalfunctionProtections": 1
|
||||
},
|
||||
"Common": {
|
||||
"WeaponSpread": {
|
||||
"valuesMinMax": {
|
||||
"min": 0.9,
|
||||
"max": 0.99
|
||||
},
|
||||
"activeDurabilityPercentMinMax": {
|
||||
"min": 75,
|
||||
"max": 90
|
||||
}
|
||||
},
|
||||
"MalfunctionProtections": {
|
||||
"valuesMinMax": {
|
||||
"min": 0.94,
|
||||
"max": 0.96
|
||||
},
|
||||
"activeDurabilityPercentMinMax": {
|
||||
"min": 75,
|
||||
"max": 90
|
||||
}
|
||||
}
|
||||
},
|
||||
"Rare": {
|
||||
"WeaponSpread": {
|
||||
"valuesMinMax": {
|
||||
"min": 0.8,
|
||||
"max": 0.9
|
||||
},
|
||||
"activeDurabilityPercentMinMax": {
|
||||
"min": 75,
|
||||
"max": 90
|
||||
}
|
||||
},
|
||||
"MalfunctionProtections": {
|
||||
"valuesMinMax": {
|
||||
"min": 0.75,
|
||||
"max": 0.9
|
||||
},
|
||||
"activeDurabilityPercentMinMax": {
|
||||
"min": 75,
|
||||
"max": 90
|
||||
}
|
||||
},
|
||||
"WeaponDamage": {
|
||||
"valuesMinMax": {
|
||||
"min": 0.3,
|
||||
"max": 0.6
|
||||
},
|
||||
"activeDurabilityPercentMinMax": {
|
||||
"min": 75,
|
||||
"max": 90
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,111 @@
|
||||
{
|
||||
"rewardItemValueRangeRub": {
|
||||
"common": {
|
||||
"min": 100,
|
||||
"max": 10000
|
||||
},
|
||||
"rare": {
|
||||
"min": 1001,
|
||||
"max": 100000
|
||||
},
|
||||
"superrare": {
|
||||
"min": 10001,
|
||||
"max": 1200000
|
||||
}
|
||||
},
|
||||
"rewardItemParentBlacklist": [
|
||||
"5485a8684bdc2da71d8b4567",
|
||||
"543be5dd4bdc2deb348b4569",
|
||||
"55802f4a4bdc2ddb688b4569",
|
||||
"5448bf274bdc2dfc2f8b456a",
|
||||
"5d52cc5ba4b9367408500062",
|
||||
"62f109593b54472778797866",
|
||||
"65649eb40bf0ed77b8044453"
|
||||
],
|
||||
"rewardItemBlacklist": [],
|
||||
"moneyRewards": {
|
||||
"moneyRewardChancePercent": 5,
|
||||
"rubCount": {
|
||||
"common": {
|
||||
"min": 2000,
|
||||
"max": 20000
|
||||
},
|
||||
"rare": {
|
||||
"min": 10000,
|
||||
"max": 40000
|
||||
},
|
||||
"superrare": {
|
||||
"min": 50000,
|
||||
"max": 200000
|
||||
}
|
||||
},
|
||||
"usdCount": {
|
||||
"common": {
|
||||
"min": 100,
|
||||
"max": 400
|
||||
},
|
||||
"rare": {
|
||||
"min": 400,
|
||||
"max": 900
|
||||
},
|
||||
"superrare": {
|
||||
"min": 900,
|
||||
"max": 2000
|
||||
}
|
||||
},
|
||||
"eurCount": {
|
||||
"common": {
|
||||
"min": 100,
|
||||
"max": 400
|
||||
},
|
||||
"rare": {
|
||||
"min": 400,
|
||||
"max": 900
|
||||
},
|
||||
"superrare": {
|
||||
"min": 900,
|
||||
"max": 2000
|
||||
}
|
||||
},
|
||||
"gpCount": {
|
||||
"common": {
|
||||
"min": 1,
|
||||
"max": 2
|
||||
},
|
||||
"rare": {
|
||||
"min": 2,
|
||||
"max": 5
|
||||
},
|
||||
"superrare": {
|
||||
"min": 5,
|
||||
"max": 15
|
||||
}
|
||||
}
|
||||
},
|
||||
"ammoRewards": {
|
||||
"ammoRewardChancePercent": 10,
|
||||
"minStackSize": 10,
|
||||
"ammoRewardBlacklist": {
|
||||
"common": ["59e690b686f7746c9f75e848"],
|
||||
"rare": [],
|
||||
"superrare": []
|
||||
},
|
||||
"ammoRewardValueRangeRub": {
|
||||
"common": {
|
||||
"min": 1,
|
||||
"max": 50
|
||||
},
|
||||
"rare": {
|
||||
"min": 35,
|
||||
"max": 350
|
||||
},
|
||||
"superrare": {
|
||||
"min": 250,
|
||||
"max": 50000
|
||||
}
|
||||
}
|
||||
},
|
||||
"allowMultipleMoneyRewardsPerRarity": false,
|
||||
"allowMultipleAmmoRewardsPerRarity": true,
|
||||
"allowBossItemsAsRewards": false
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,455 @@
|
||||
{
|
||||
"updateTime": [
|
||||
{
|
||||
"_name": "prapor",
|
||||
"traderId": "54cb50c76803fa8b248b4571",
|
||||
"seconds": {
|
||||
"min": 7000,
|
||||
"max": 13500
|
||||
}
|
||||
},
|
||||
{
|
||||
"_name": "therapist",
|
||||
"traderId": "54cb57776803fa99248b456e",
|
||||
"seconds": {
|
||||
"min": 3000,
|
||||
"max": 9500
|
||||
}
|
||||
},
|
||||
{
|
||||
"_name": "fence",
|
||||
"traderId": "579dc571d53a0658a154fbec",
|
||||
"seconds": {
|
||||
"min": 3000,
|
||||
"max": 9000
|
||||
}
|
||||
},
|
||||
{
|
||||
"_name": "skier",
|
||||
"traderId": "58330581ace78e27b8b10cee",
|
||||
"seconds": {
|
||||
"min": 5000,
|
||||
"max": 9000
|
||||
}
|
||||
},
|
||||
{
|
||||
"_name": "peacekeeper",
|
||||
"traderId": "5935c25fb3acc3127c3d8cd9",
|
||||
"seconds": {
|
||||
"min": 2000,
|
||||
"max": 15000
|
||||
}
|
||||
},
|
||||
{
|
||||
"_name": "mechanic",
|
||||
"traderId": "5a7c2eca46aef81a7ca2145d",
|
||||
"seconds": {
|
||||
"min": 6500,
|
||||
"max": 13500
|
||||
}
|
||||
},
|
||||
{
|
||||
"_name": "ragman",
|
||||
"traderId": "5ac3b934156ae10c4430e83c",
|
||||
"seconds": {
|
||||
"min": 6500,
|
||||
"max": 15000
|
||||
}
|
||||
},
|
||||
{
|
||||
"_name": "jaeger",
|
||||
"traderId": "5c0647fdd443bc2504c2d371",
|
||||
"seconds": {
|
||||
"min": 2000,
|
||||
"max": 5500
|
||||
}
|
||||
},
|
||||
{
|
||||
"_name": "btr",
|
||||
"traderId": "656f0f98d80a697f855d34b1",
|
||||
"seconds": {
|
||||
"min": 3000,
|
||||
"max": 7500
|
||||
}
|
||||
},
|
||||
{
|
||||
"_name": "Ref",
|
||||
"traderId": "6617beeaa9cfa777ca915b7c",
|
||||
"seconds": {
|
||||
"min": 3000,
|
||||
"max": 7500
|
||||
}
|
||||
},
|
||||
{
|
||||
"traderId": "ragfair",
|
||||
"seconds": {
|
||||
"min": 3600,
|
||||
"max": 3600
|
||||
}
|
||||
}
|
||||
],
|
||||
"updateTimeDefault": 3600,
|
||||
"tradersResetFromServerStart": true,
|
||||
"purchasesAreFoundInRaid": false,
|
||||
"traderPriceMultipler": 1,
|
||||
"fence": {
|
||||
"discountOptions": {
|
||||
"assortSize": 45,
|
||||
"itemPriceMult": 0.8,
|
||||
"presetPriceMult": 1.15,
|
||||
"weaponPresetMinMax": {
|
||||
"min": 5,
|
||||
"max": 12
|
||||
},
|
||||
"equipmentPresetMinMax": {
|
||||
"min": 5,
|
||||
"max": 12
|
||||
}
|
||||
},
|
||||
"partialRefreshTimeSeconds": 240,
|
||||
"partialRefreshChangePercent": 15,
|
||||
"assortSize": 120,
|
||||
"weaponPresetMinMax": {
|
||||
"min": 12,
|
||||
"max": 19
|
||||
},
|
||||
"equipmentPresetMinMax": {
|
||||
"min": 8,
|
||||
"max": 15
|
||||
},
|
||||
"itemPriceMult": 1.3,
|
||||
"presetPriceMult": 1.3,
|
||||
"regenerateAssortsOnRefresh": false,
|
||||
"itemTypeLimits": {
|
||||
"5448eb774bdc2d0a728b4567": 10,
|
||||
"5c518ec986f7743b68682ce2": 3,
|
||||
"5c518ed586f774119a772aee": 0,
|
||||
"5448bc234bdc2d3c308b4569": 16,
|
||||
"55802f4a4bdc2ddb688b4569": 3,
|
||||
"644120aa86ffbe10ee032b6f": 3,
|
||||
"5c99f98d86f7745c314214b3": 2,
|
||||
"5447b5cf4bdc2d65278b4567": 4,
|
||||
"55818a104bdc2db9688b4569": 1,
|
||||
"55818a304bdc2db5418b457d": 1,
|
||||
"5448fe394bdc2d0d028b456c": 0,
|
||||
"55818a594bdc2db9688b456a": 0,
|
||||
"55818a604bdc2db5418b457e": 0,
|
||||
"55818a684bdc2ddd698b456d": 1,
|
||||
"55818a6f4bdc2db9688b456b": 1,
|
||||
"55818ac54bdc2d5b648b456e": 1,
|
||||
"55818acf4bdc2dde698b456b": 0,
|
||||
"55818ad54bdc2ddc698b4569": 0,
|
||||
"55818add4bdc2d5b648b456f": 0,
|
||||
"55818ae44bdc2dde698b456c": 0,
|
||||
"55818aeb4bdc2ddc698b456a": 0,
|
||||
"55818af64bdc2d5b648b4570": 0,
|
||||
"55818afb4bdc2dde698b456d": 1,
|
||||
"55818b014bdc2ddc698b456b": 1,
|
||||
"55818b084bdc2d5b648b4571": 1,
|
||||
"55818b0e4bdc2dde698b456e": 0,
|
||||
"55818b164bdc2ddc698b456c": 0,
|
||||
"55818b1d4bdc2d5b648b4572": 1,
|
||||
"55818b224bdc2dde698b456f": 1,
|
||||
"550aa4cd4bdc2dd8348b456c": 0,
|
||||
"550aa4dd4bdc2dc9348b4569": 1,
|
||||
"5a74651486f7744e73386dd1": 0,
|
||||
"5a2c3a9486f774688b05e574": 0,
|
||||
"56ea9461d2720b67698b456f": 0,
|
||||
"5448f3a64bdc2d60728b456a": 0,
|
||||
"5a341c4686f77469e155819e": 7,
|
||||
"5485a8684bdc2da71d8b4567": 23,
|
||||
"5f4fbaaca5573a5ac31db429": 0,
|
||||
"5447e0e74bdc2d3c308b4567": 4,
|
||||
"57bef4c42459772e8d35a53b": 2,
|
||||
"5b3f15d486f77432d0509248": 3,
|
||||
"543be6564bdc2df4348b4568": 0,
|
||||
"5448ecbe4bdc2d60728b4568": 0,
|
||||
"5671435f4bdc2d96058b4569": 0,
|
||||
"543be5cb4bdc2deb348b4568": 5,
|
||||
"5448e53e4bdc2d60728b4567": 7
|
||||
},
|
||||
"preventDuplicateOffersOfCategory": [
|
||||
"543be5cb4bdc2deb348b4568",
|
||||
"57bef4c42459772e8d35a53b",
|
||||
"5485a8684bdc2da71d8b4567",
|
||||
"5448f3ac4bdc2dce718b4569",
|
||||
"5448f39d4bdc2d0a728b4568",
|
||||
"5448f3a14bdc2d27728b4569",
|
||||
"5448bc234bdc2d3c308b4569",
|
||||
"543be5e94bdc2df1348b4568",
|
||||
"5448eb774bdc2d0a728b4567",
|
||||
"5447e1d04bdc2dff2f8b4567",
|
||||
"5448e53e4bdc2d60728b4567",
|
||||
"5448ecbe4bdc2d60728b4568",
|
||||
"543be6674bdc2df1348b4569",
|
||||
"5448fe124bdc2da5018b4567",
|
||||
"567849dd4bdc2d150f8b456e",
|
||||
"5a341c4686f77469e155819e",
|
||||
"5448e5284bdc2dcb718b4567",
|
||||
"5447e0e74bdc2d3c308b4567",
|
||||
"5b3f15d486f77432d0509248",
|
||||
"5645bcb74bdc2ded0b8b4578",
|
||||
"5795f317245977243854e041"
|
||||
],
|
||||
"weaponDurabilityPercentMinMax": {
|
||||
"current": {
|
||||
"min": 40,
|
||||
"max": 100
|
||||
},
|
||||
"max": {
|
||||
"min": 89,
|
||||
"max": 100
|
||||
}
|
||||
},
|
||||
"chancePlateExistsInArmorPercent": {
|
||||
"3": 95,
|
||||
"4": 75,
|
||||
"5": 25,
|
||||
"6": 10
|
||||
},
|
||||
"armorMaxDurabilityPercentMinMax": {
|
||||
"current": {
|
||||
"min": 50,
|
||||
"max": 100
|
||||
},
|
||||
"max": {
|
||||
"min": 80,
|
||||
"max": 100
|
||||
}
|
||||
},
|
||||
"itemStackSizeOverrideMinMax": {
|
||||
"59e690b686f7746c9f75e848": {
|
||||
"min": 5,
|
||||
"max": 15
|
||||
},
|
||||
"5485a8684bdc2da71d8b4567": {
|
||||
"min": 80,
|
||||
"max": 7000
|
||||
},
|
||||
"543be5cb4bdc2deb348b4568": {
|
||||
"min": 1,
|
||||
"max": 16
|
||||
},
|
||||
"5b432b965acfc47a8774094e": {
|
||||
"min": 120,
|
||||
"max": 352
|
||||
},
|
||||
"544fb25a4bdc2dfb738b4567": {
|
||||
"min": 120,
|
||||
"max": 700
|
||||
},
|
||||
"5e831507ea0a7c419c2f9bd9": {
|
||||
"min": 5,
|
||||
"max": 100
|
||||
},
|
||||
"5755356824597772cb798962": {
|
||||
"min": 1,
|
||||
"max": 400
|
||||
},
|
||||
"544fb3364bdc2d34748b456a": {
|
||||
"min": 1,
|
||||
"max": 800
|
||||
},
|
||||
"5448bc234bdc2d3c308b4569": {
|
||||
"min": 1,
|
||||
"max": 50
|
||||
},
|
||||
"5448f3a14bdc2d27728b4569": {
|
||||
"min": 1,
|
||||
"max": 25
|
||||
}
|
||||
},
|
||||
"itemCategoryRoublePriceLimit": {
|
||||
"5448eb774bdc2d0a728b4567": 14000,
|
||||
"5485a8684bdc2da71d8b4567": 230,
|
||||
"5795f317245977243854e041": 30000,
|
||||
"5448ecbe4bdc2d60728b4568": 40000,
|
||||
"57864a3d24597754843f8721": 40000,
|
||||
"5448e53e4bdc2d60728b4567": 90000,
|
||||
"5a341c4686f77469e155819e": 24000,
|
||||
"57864a66245977548f04a81f": 71000,
|
||||
"5448e54d4bdc2dcc718b4568": 100000,
|
||||
"5a2c3a9486f774688b05e574": 70000,
|
||||
"5448f3a64bdc2d60728b456a": 70000,
|
||||
"5447b6194bdc2d67278b4567": 103000,
|
||||
"550aa4cd4bdc2dd8348b456c": 70000,
|
||||
"57864ee62459775490116fc1": 95000,
|
||||
"5448bc234bdc2d3c308b4569": 29000,
|
||||
"5447b6094bdc2dc3278b4567": 35009,
|
||||
"5447bedf4bdc2d87278b4568": 27008,
|
||||
"5447bed64bdc2d97278b4568": 27007,
|
||||
"5447b5e04bdc2d62278b4567": 33006,
|
||||
"5447b5fc4bdc2d87278b4567": 60000,
|
||||
"5447b5f14bdc2d61278b4567": 60000,
|
||||
"5447b5cf4bdc2d65278b4567": 28003,
|
||||
"5447b6254bdc2dc3278b4568": 28002,
|
||||
"5447e1d04bdc2dff2f8b4567": 19001,
|
||||
"55818ae44bdc2dde698b456c": 45000,
|
||||
"55818add4bdc2d5b648b456f": 35000,
|
||||
"590c745b86f7743cc433c5f2": 64000,
|
||||
"57864bb7245977548b3b66c2": 85000,
|
||||
"5448e5284bdc2dcb718b4567": 59001,
|
||||
"5a341c4086f77401f2541505": 35000,
|
||||
"5d21f59b6dbe99052b54ef83": 45000,
|
||||
"5645bcb74bdc2ded0b8b4578": 35000,
|
||||
"644120aa86ffbe10ee032b6f": 20000,
|
||||
"57864c8c245977548867e7f1": 15000,
|
||||
"5447e0e74bdc2d3c308b4567": 20000,
|
||||
"616eb7aea207f41933308f46": 40000,
|
||||
"5b3f15d486f77432d0509248": 5000,
|
||||
"5448f3ac4bdc2dce718b4569": 42000,
|
||||
"5448f3a14bdc2d27728b4569": 20000,
|
||||
"543be5cb4bdc2deb348b4568": 15000,
|
||||
"5c99f98d86f7745c314214b3": 15000
|
||||
},
|
||||
"presetSlotsToRemoveChancePercent": {
|
||||
"mod_scope": 70,
|
||||
"mod_magazine": 50,
|
||||
"mod_sight_rear": 20,
|
||||
"mod_sight_front": 20,
|
||||
"mod_muzzle": 40,
|
||||
"mod_pistol_grip": 5,
|
||||
"mod_stock": 5,
|
||||
"mod_handguard": 10,
|
||||
"mod_barrel": 5,
|
||||
"mod_stock_000": 10,
|
||||
"mod_tactical_2": 35,
|
||||
"mod_foregrip": 20,
|
||||
"mod_mount": 40,
|
||||
"mod_reciever": 5,
|
||||
"mod_charge": 5,
|
||||
"mod_mount_000": 20,
|
||||
"mod_mount_002": 20,
|
||||
"mod_mount_003": 20,
|
||||
"mod_mount_004": 20,
|
||||
"mod_tactical": 40,
|
||||
"mod_tactical_000": 40,
|
||||
"mod_tactical_001": 40,
|
||||
"mod_tactical_002": 40,
|
||||
"mod_tactical_003": 40,
|
||||
"front_plate": 25,
|
||||
"back_plate": 75,
|
||||
"left_side_plate": 75,
|
||||
"right_side_plate": 75
|
||||
},
|
||||
"ammoMaxPenLimit": 20,
|
||||
"blacklistSeasonalItems": true,
|
||||
"blacklist": [
|
||||
"5c164d2286f774194c5e69fa",
|
||||
"543be6674bdc2df1348b4569",
|
||||
"5448bf274bdc2dfc2f8b456a",
|
||||
"5447bedf4bdc2d87278b4568",
|
||||
"6275303a9f372d6ea97f9ec7",
|
||||
"62e9103049c018f425059f38",
|
||||
"59f32c3b86f77472a31742f0",
|
||||
"6662e9f37fa79a6d83730fa0",
|
||||
"6662ea05f6259762c56f3189",
|
||||
"59f32bb586f774757e1e8442",
|
||||
"6662e9aca7e0b43baa3d5f74",
|
||||
"6662e9cda7e0b43baa3d5f76",
|
||||
"627bce33f21bc425b06ab967",
|
||||
"62f109593b54472778797866",
|
||||
"5d52cc5ba4b9367408500062",
|
||||
"5d52d479a4b936793d58c76b",
|
||||
"5e99711486f7744bfc4af328",
|
||||
"62f10b79e7ee985f386b2f47",
|
||||
"633ffb5d419dbf4bea7004c6",
|
||||
"543be5dd4bdc2deb348b4569",
|
||||
"65649eb40bf0ed77b8044453",
|
||||
"5448e54d4bdc2dcc718b4568",
|
||||
"5a341c4086f77401f2541505",
|
||||
"5422acb9af1c889c16000029",
|
||||
"64d0b40fbe2eed70e254e2d4",
|
||||
"5fc22d7c187fea44d52eda44",
|
||||
"646372518610c40fc20204e8",
|
||||
"65ddcc9cfa85b9f17d0dfb07",
|
||||
"660312cc4d6cdfa6f500c703",
|
||||
"6655e35b6bc645cb7b059912"
|
||||
],
|
||||
"coopExtractGift": {
|
||||
"sendGift": true,
|
||||
"messageLocaleIds": ["5da89b1886f77439d7741002 0", "5da89b3a86f7742f9026cb83 0"],
|
||||
"giftExpiryHours": 168,
|
||||
"weaponPresetCount": {
|
||||
"min": 0,
|
||||
"max": 0
|
||||
},
|
||||
"armorPresetCount": {
|
||||
"min": 0,
|
||||
"max": 0
|
||||
},
|
||||
"itemCount": {
|
||||
"min": 2,
|
||||
"max": 5
|
||||
},
|
||||
"weaponCrateCount": {
|
||||
"min": 0,
|
||||
"max": 0
|
||||
},
|
||||
"itemBlacklist": [
|
||||
"5e997f0b86f7741ac73993e2",
|
||||
"5b44abe986f774283e2e3512",
|
||||
"5e99711486f7744bfc4af328",
|
||||
"5e99735686f7744bfc4af32c",
|
||||
"6087e570b998180e9f76dc24",
|
||||
"5d52d479a4b936793d58c76b",
|
||||
"5e85aac65505fa48730d8af2",
|
||||
"63495c500c297e20065a08b1",
|
||||
"5cde8864d7f00c0010373be1",
|
||||
"5b3b713c5acfc4330140bd8d",
|
||||
"60c080eb991ac167ad1c3ad4",
|
||||
"6389c7f115805221fb410466"
|
||||
],
|
||||
"itemTypeWhitelist": [
|
||||
"5d650c3e815116009f6201d2",
|
||||
"57864ee62459775490116fc1",
|
||||
"57864ada245977548638de91",
|
||||
"57864bb7245977548b3b66c2",
|
||||
"57864e4c24597754843f8723",
|
||||
"57864c322459775490116fbf",
|
||||
"57864a66245977548f04a81f"
|
||||
],
|
||||
"itemLimits": {
|
||||
"5d650c3e815116009f6201d2": 1,
|
||||
"57864ee62459775490116fc1": 1,
|
||||
"57864ada245977548638de91": 2,
|
||||
"57864bb7245977548b3b66c2": 1,
|
||||
"57864e4c24597754843f8723": 1,
|
||||
"57864a66245977548f04a81f": 1,
|
||||
"5448e8d04bdc2ddf718b4569": 1,
|
||||
"5448e8d64bdc2dce718b4568": 1,
|
||||
"5448bc234bdc2d3c308b4569": 1,
|
||||
"5448e5724bdc2ddf718b4568": 1,
|
||||
"55818add4bdc2d5b648b456f": 1,
|
||||
"543be6564bdc2df4348b4568": 1,
|
||||
"550aa4cd4bdc2dd8348b456c": 1,
|
||||
"5448f39d4bdc2d0a728b4568": 1,
|
||||
"5448f3a14bdc2d27728b4569": 1,
|
||||
"5447e1d04bdc2dff2f8b4567": 1,
|
||||
"55818ad54bdc2ddc698b4569": 1
|
||||
},
|
||||
"itemStackLimits": {
|
||||
"5449016a4bdc2d6f028b456f": {
|
||||
"min": 5000,
|
||||
"max": 20000
|
||||
},
|
||||
"569668774bdc2da2298b4568": {
|
||||
"min": 75,
|
||||
"max": 150
|
||||
},
|
||||
"5696686a4bdc2da3298b456a": {
|
||||
"min": 75,
|
||||
"max": 150
|
||||
}
|
||||
},
|
||||
"allowBossItems": false,
|
||||
"useRewarditemBlacklist": true
|
||||
},
|
||||
"btrDeliveryExpireHours": 240,
|
||||
"playerRepMin": -7,
|
||||
"playerRepMax": 15
|
||||
},
|
||||
"moddedTraders": {
|
||||
"clothingService": []
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,181 @@
|
||||
{
|
||||
"acceleration": 7,
|
||||
"weather": {
|
||||
"generateWeatherAmountHours": 24,
|
||||
"clouds": {
|
||||
"values": [-1, -0.8, -0.5, 0.1, 0, 0.15, 0.4, 1],
|
||||
"weights": [80, 22, 22, 15, 15, 15, 5, 4]
|
||||
},
|
||||
"windSpeed": {
|
||||
"values": [0, 1, 2, 3, 4],
|
||||
"weights": [6, 3, 2, 1, 1]
|
||||
},
|
||||
"windDirection": {
|
||||
"values": [1, 2, 3, 4, 5, 6, 7, 8],
|
||||
"weights": [1, 1, 1, 1, 1, 1, 1, 1]
|
||||
},
|
||||
"windGustiness": {
|
||||
"min": 0,
|
||||
"max": 1
|
||||
},
|
||||
"rain": {
|
||||
"values": [1, 2, 3, 4, 5],
|
||||
"weights": [20, 1, 1, 1, 1]
|
||||
},
|
||||
"rainIntensity": {
|
||||
"min": 0,
|
||||
"max": 1
|
||||
},
|
||||
"fog": {
|
||||
"values": [0.0013, 0.0018, 0.002, 0.004, 0.006],
|
||||
"weights": [35, 6, 4, 3, 1]
|
||||
},
|
||||
"temp": {
|
||||
"0": {
|
||||
"day": {
|
||||
"min": 17,
|
||||
"max": 32
|
||||
},
|
||||
"night": {
|
||||
"min": 14,
|
||||
"max": 24
|
||||
}
|
||||
},
|
||||
"1": {
|
||||
"day": {
|
||||
"min": 7,
|
||||
"max": 15
|
||||
},
|
||||
"night": {
|
||||
"min": 2,
|
||||
"max": 12
|
||||
}
|
||||
},
|
||||
"2": {
|
||||
"day": {
|
||||
"min": -10,
|
||||
"max": 5
|
||||
},
|
||||
"night": {
|
||||
"min": -20,
|
||||
"max": 0
|
||||
}
|
||||
},
|
||||
"3": {
|
||||
"day": {
|
||||
"min": 1,
|
||||
"max": 15
|
||||
},
|
||||
"night": {
|
||||
"min": -10,
|
||||
"max": 5
|
||||
}
|
||||
},
|
||||
"4": {
|
||||
"day": {
|
||||
"min": 3,
|
||||
"max": 11
|
||||
},
|
||||
"night": {
|
||||
"min": -2,
|
||||
"max": 8
|
||||
}
|
||||
},
|
||||
"5": {
|
||||
"day": {
|
||||
"min": -4,
|
||||
"max": 7
|
||||
},
|
||||
"night": {
|
||||
"min": -10,
|
||||
"max": 3
|
||||
}
|
||||
},
|
||||
"6": {
|
||||
"day": {
|
||||
"min": 0,
|
||||
"max": 24
|
||||
},
|
||||
"night": {
|
||||
"min": -10,
|
||||
"max": 8
|
||||
}
|
||||
}
|
||||
},
|
||||
"pressure": {
|
||||
"min": 760,
|
||||
"max": 780
|
||||
},
|
||||
"timePeriod": {
|
||||
"values": [15, 30],
|
||||
"weights": [1, 2]
|
||||
}
|
||||
},
|
||||
"seasonDates": [
|
||||
{
|
||||
"seasonType": 0,
|
||||
"name": "SUMMER",
|
||||
"startDay": "2",
|
||||
"startMonth": "6",
|
||||
"endDay": "15",
|
||||
"endMonth": "10"
|
||||
},
|
||||
{
|
||||
"seasonType": 1,
|
||||
"name": "AUTUMN",
|
||||
"startDay": "15",
|
||||
"startMonth": "10",
|
||||
"endDay": "1",
|
||||
"endMonth": "11"
|
||||
},
|
||||
{
|
||||
"seasonType": 4,
|
||||
"name": "AUTUMN_LATE",
|
||||
"startDay": "1",
|
||||
"startMonth": "11",
|
||||
"endDay": "21",
|
||||
"endMonth": "12"
|
||||
},
|
||||
{
|
||||
"seasonType": 2,
|
||||
"name": "WINTER_START",
|
||||
"startDay": "21",
|
||||
"startMonth": "12",
|
||||
"endDay": "31",
|
||||
"endMonth": "12"
|
||||
},
|
||||
{
|
||||
"seasonType": 2,
|
||||
"name": "WINTER_END",
|
||||
"startDay": "1",
|
||||
"startMonth": "1",
|
||||
"endDay": "9",
|
||||
"endMonth": "1"
|
||||
},
|
||||
{
|
||||
"seasonType": 5,
|
||||
"name": "SPRING_EARLY",
|
||||
"startDay": "9",
|
||||
"startMonth": "1",
|
||||
"endDay": "25",
|
||||
"endMonth": "3"
|
||||
},
|
||||
{
|
||||
"seasonType": 3,
|
||||
"name": "SPRING",
|
||||
"startDay": "25",
|
||||
"startMonth": "3",
|
||||
"endDay": "2",
|
||||
"endMonth": "6"
|
||||
},
|
||||
{
|
||||
"seasonType": 4,
|
||||
"name": "STORM",
|
||||
"startDay": "24",
|
||||
"startMonth": "10",
|
||||
"endDay": "4",
|
||||
"endMonth": "11"
|
||||
}
|
||||
],
|
||||
"overrideSeason": null
|
||||
}
|
||||
@@ -0,0 +1,92 @@
|
||||
{
|
||||
"_id": "60dc8576337fdf54e60e1800",
|
||||
"aid": 0,
|
||||
"savage": null,
|
||||
"Info": {
|
||||
"Nickname": "BOTNAME",
|
||||
"LowerNickname": "",
|
||||
"Side": "Savage",
|
||||
"Voice": "Scav_1",
|
||||
"Level": 1,
|
||||
"Experience": 0,
|
||||
"RegistrationDate": 0,
|
||||
"GameVersion": "",
|
||||
"AccountType": 0,
|
||||
"MemberCategory": 0,
|
||||
"SelectedMemberCategory": 0,
|
||||
"lockedMoveCommands": false,
|
||||
"SavageLockTime": 0,
|
||||
"LastTimePlayedAsSavage": 0,
|
||||
"Settings": {
|
||||
"Role": "assault",
|
||||
"BotDifficulty": "normal",
|
||||
"Experience": -1,
|
||||
"StandingForKill": -0.04,
|
||||
"AggressorBonus": 0.02
|
||||
},
|
||||
"NicknameChangeDate": 0,
|
||||
"NeedWipeOptions": [],
|
||||
"lastCompletedWipe": null,
|
||||
"lastCompletedEvent": null,
|
||||
"BannedState": false,
|
||||
"BannedUntil": 0,
|
||||
"IsStreamerModeAvailable": false,
|
||||
"SquadInviteRestriction": false,
|
||||
"HasCoopExtension": false,
|
||||
"isMigratedSkills": false,
|
||||
"HasPveGame": false
|
||||
},
|
||||
"Customization": {
|
||||
"Head": "5cc2e4d014c02e000d0115f8",
|
||||
"Body": "5cc2e59214c02e000f16684e",
|
||||
"Feet": "5cde9fb87d6c8b0474535da9",
|
||||
"Hands": "5cc2e68f14c02e28b47de290"
|
||||
},
|
||||
"Health": {
|
||||
"UpdateTime": 0,
|
||||
"Immortal": false
|
||||
},
|
||||
"Inventory": {
|
||||
"fastPanel": {},
|
||||
"hideoutAreaStashes": {},
|
||||
"favoriteItems": []
|
||||
},
|
||||
"Skills": {
|
||||
"Common": [],
|
||||
"Mastering": [],
|
||||
"Points": 0
|
||||
},
|
||||
"Stats": {
|
||||
"Eft": {
|
||||
"SessionCounters": {
|
||||
"Items": []
|
||||
},
|
||||
"OverallCounters": {
|
||||
"Items": []
|
||||
},
|
||||
"SessionExperienceMult": 0,
|
||||
"ExperienceBonusMult": 0,
|
||||
"TotalSessionExperience": 0,
|
||||
"LastSessionDate": 0,
|
||||
"Aggressor": null,
|
||||
"DroppedItems": [],
|
||||
"FoundInRaidItems": [],
|
||||
"Victims": [],
|
||||
"CarriedQuestItems": [],
|
||||
"DamageHistory": {
|
||||
"LethalDamagePart": "Head",
|
||||
"LethalDamage": null,
|
||||
"BodyParts": []
|
||||
},
|
||||
"LastPlayerState": null,
|
||||
"TotalInGameTime": 0,
|
||||
"SurvivorClass": "Unknown"
|
||||
}
|
||||
},
|
||||
"Encyclopedia": null,
|
||||
"TaskConditionCounters": {},
|
||||
"InsuredItems": [],
|
||||
"Hideout": null,
|
||||
"Bonuses": [],
|
||||
"WishList": []
|
||||
}
|
||||
@@ -0,0 +1,135 @@
|
||||
{
|
||||
"SAVAGE_KILL_DIST": 90,
|
||||
"SOUND_DOOR_BREACH_METERS": 35.0,
|
||||
"SOUND_DOOR_OPEN_METERS": 10.0,
|
||||
"STEP_NOISE_DELTA": 1.0,
|
||||
"JUMP_NOISE_DELTA": 1.0,
|
||||
"GUNSHOT_SPREAD": 280,
|
||||
"GUNSHOT_SPREAD_SILENCE": 60,
|
||||
"BASE_WALK_SPEREAD2": 26.0,
|
||||
"MOVE_SPEED_COEF_MAX": 2.1,
|
||||
"SPEED_SERV_SOUND_COEF_A": 0.3,
|
||||
"SPEED_SERV_SOUND_COEF_B": 0.7,
|
||||
"G": 9.81,
|
||||
"STAY_COEF": 1.0,
|
||||
"SIT_COEF": 0.8,
|
||||
"LAY_COEF": 0.8,
|
||||
"MAX_ITERATIONS": 2,
|
||||
"START_DIST_TO_COV": 12100.0,
|
||||
"MAX_DIST_TO_COV": 220.0,
|
||||
"STAY_HEIGHT": 1.1,
|
||||
"CLOSE_POINTS": 3.0,
|
||||
"COUNT_TURNS": 5,
|
||||
"SIMPLE_POINT_LIFE_TIME_SEC": 30.0,
|
||||
"DANGER_POINT_LIFE_TIME_SEC": 60.0,
|
||||
"DANGER_POWER": 115.0,
|
||||
"COVER_DIST_CLOSE": 10.0,
|
||||
"GOOD_DIST_TO_POINT": 7.0,
|
||||
"COVER_TOOFAR_FROM_BOSS": 20.0,
|
||||
"COVER_TOOFAR_FROM_BOSS_SQRT": 400.0,
|
||||
"MAX_Y_DIFF_TO_PROTECT": 1.0,
|
||||
"FLARE_POWER": 8.0,
|
||||
"MOVE_COEF": 1.2,
|
||||
"PRONE_POSE": 0.7,
|
||||
"LOWER_POSE": 0.5,
|
||||
"MAX_POSE": 1.5,
|
||||
"FLARE_TIME": 1.5,
|
||||
"MAX_REQUESTS__PER_GROUP": 10,
|
||||
"UPDATE_GOAL_TIMER_SEC": 3.3,
|
||||
"DIST_NOT_TO_GROUP": 300.0,
|
||||
"DIST_NOT_TO_GROUP_SQR": 90000.0,
|
||||
"LAST_SEEN_POS_LIFETIME": 60.0,
|
||||
"DELTA_GRENADE_START_TIME": 0.9,
|
||||
"DELTA_GRENADE_END_TIME": 7.0,
|
||||
"DELTA_GRENADE_RUN_DIST": 11,
|
||||
"DELTA_GRENADE_RUN_DIST_SQRT": 56.25,
|
||||
"PATROL_MIN_LIGHT_DIST": 8.0,
|
||||
"HOLD_MIN_LIGHT_DIST": 3.5,
|
||||
"STANDART_BOT_PAUSE_DOOR": 2.1,
|
||||
"ARMOR_CLASS_COEF": 6.0,
|
||||
"SHOTGUN_POWER": 30.0,
|
||||
"RIFLE_POWER": 60.0,
|
||||
"PISTOL_POWER": 20.0,
|
||||
"SMG_POWER": 45.0,
|
||||
"SNIPE_POWER": 55.0,
|
||||
"GESTUS_PERIOD_SEC": 3.0,
|
||||
"GESTUS_AIMING_DELAY": 2.5,
|
||||
"GESTUS_REQUEST_LIFETIME": 10.0,
|
||||
"GESTUS_FIRST_STAGE_MAX_TIME": 5.0,
|
||||
"GESTUS_SECOND_STAGE_MAX_TIME": 2.0,
|
||||
"GESTUS_MAX_ANSWERS": 4,
|
||||
"GESTUS_FUCK_TO_SHOOT": 3,
|
||||
"GESTUS_DIST_ANSWERS": 6.0,
|
||||
"GESTUS_DIST_ANSWERS_SQRT": 36.0,
|
||||
"GESTUS_ANYWAY_CHANCE": 10.0,
|
||||
"TALK_DELAY": 5.0,
|
||||
"CAN_SHOOT_TO_HEAD": true,
|
||||
"CAN_TILT": true,
|
||||
"TILT_CHANCE": 100.0,
|
||||
"MIN_BLOCK_DIST": 3.0,
|
||||
"MIN_BLOCK_TIME": 5.0,
|
||||
"COVER_SECONDS_AFTER_LOSE_VISION": 10.0,
|
||||
"MIN_ARG_COEF": 0.3,
|
||||
"MAX_ARG_COEF": 100.0,
|
||||
"DEAD_AGR_DIST": 60.0,
|
||||
"MAX_DANGER_CARE_DIST_SQRT": 52900.0,
|
||||
"MAX_DANGER_CARE_DIST": 230.0,
|
||||
"MIN_MAX_PERSON_SEARCH": 2,
|
||||
"PERCENT_PERSON_SEARCH": 0.3,
|
||||
"LOOK_ANYSIDE_BY_WALL_SEC_OF_ENEMY": 20.0,
|
||||
"CLOSE_TO_WALL_ROTATE_BY_WALL_SQRT": 4.0,
|
||||
"SHOOT_TO_CHANGE_RND_PART_MIN": 2,
|
||||
"SHOOT_TO_CHANGE_RND_PART_MAX": 5,
|
||||
"SHOOT_TO_CHANGE_RND_PART_DELTA": 9.0,
|
||||
"FORMUL_COEF_DELTA_DIST": 2.6,
|
||||
"FORMUL_COEF_DELTA_SHOOT": 1.0,
|
||||
"FORMUL_COEF_DELTA_FRIEND_COVER": 15.0,
|
||||
"SUSPETION_POINT_DIST_CHECK": 5.0,
|
||||
"MAX_BASE_REQUESTS_PER_PLAYER": 1,
|
||||
"MAX_HOLD_REQUESTS_PER_PLAYER": 3,
|
||||
"MAX_GO_TO_REQUESTS_PER_PLAYER": 3,
|
||||
"MAX_COME_WITH_ME_REQUESTS_PER_PLAYER": 1,
|
||||
"CORE_POINT_MAX_VALUE": 60.0,
|
||||
"CORE_POINTS_MAX": 3,
|
||||
"CORE_POINTS_MIN": 1,
|
||||
"BORN_POISTS_FREE_ONLY_FAREST_BOT": false,
|
||||
"BORN_POINSTS_FREE_ONLY_FAREST_PLAYER": false,
|
||||
"SCAV_GROUPS_TOGETHER": true,
|
||||
"LAY_DOWN_ANG_SHOOT": 40.0,
|
||||
"HOLD_REQUEST_TIME_SEC": 240.0,
|
||||
"TRIGGERS_DOWN_TO_RUN_WHEN_MOVE": 10,
|
||||
"MIN_DIST_TO_RUN_WHILE_ATTACK_MOVING": 7.5,
|
||||
"MIN_DIST_TO_RUN_WHILE_ATTACK_MOVING_OTHER_ENEMIS": 12.0,
|
||||
"MIN_DIST_TO_STOP_RUN": 23.5,
|
||||
"JUMP_SPREAD_DIST": 25.0,
|
||||
"LOOK_TIMES_TO_KILL": 4,
|
||||
"COME_INSIDE_TIMES": 5,
|
||||
"TOTAL_TIME_KILL": 50.0,
|
||||
"TOTAL_TIME_KILL_AFTER_WARN": 5.0,
|
||||
"MOVING_AIM_COEF": 0.23,
|
||||
"VERTICAL_DIST_TO_IGNORE_SOUND": 116.0,
|
||||
"DEFENCE_LEVEL_SHIFT": 0.0,
|
||||
"MIN_DIST_CLOSE_DEF": 2.2,
|
||||
"USE_ID_PRIOR_WHO_GO": false,
|
||||
"START_ACTIVE_FOLLOW_PLAYER_EVENT": true,
|
||||
"START_ACTIVE_FORCE_ATTACK_PLAYER_EVENT": false,
|
||||
"SMOKE_GRENADE_RADIUS_COEF": 2.0,
|
||||
"GRENADE_PRECISION": 4,
|
||||
"MAX_WARNS_BEFORE_KILL": 4,
|
||||
"CARE_ENEMY_ONLY_TIME": 30.0,
|
||||
"MIDDLE_POINT_COEF": 0.5,
|
||||
"MAIN_TACTIC_ONLY_ATTACK": true,
|
||||
"LAST_DAMAGE_ACTIVE": 5.0,
|
||||
"SHALL_DIE_IF_NOT_INITED": true,
|
||||
"CHECK_BOT_INIT_TIME_SEC": 20.0,
|
||||
"WEAPON_ROOT_Y_OFFSET": 0.175,
|
||||
"DELTA_SUPRESS_DISTANCE_SQRT": 25.0,
|
||||
"DELTA_SUPRESS_DISTANCE": 5.0,
|
||||
"WAVE_COEF_LOW": 1.0,
|
||||
"WAVE_COEF_MID": 1.0,
|
||||
"WAVE_COEF_HIGH": 1.0,
|
||||
"WAVE_COEF_HORDE": 2.0,
|
||||
"WAVE_ONLY_AS_ONLINE": false,
|
||||
"LOCAL_BOTS_COUNT": 100,
|
||||
"AXE_MAN_KILLS_END": 0
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user