diff --git a/Libraries/SPTarkov.Server.Assets/SPT_Data/configs/ragfair.json b/Libraries/SPTarkov.Server.Assets/SPT_Data/configs/ragfair.json
index 01c5c325..4f92c947 100644
--- a/Libraries/SPTarkov.Server.Assets/SPT_Data/configs/ragfair.json
+++ b/Libraries/SPTarkov.Server.Assets/SPT_Data/configs/ragfair.json
@@ -462,5 +462,6 @@
"5ac3b934156ae10c4430e83c": true,
"5c0647fdd443bc2504c2d371": true,
"6617beeaa9cfa777ca915b7c": true
- }
+ },
+ "offerListingTaxMultiplier": -1
}
diff --git a/Libraries/SPTarkov.Server.Core/Models/Spt/Config/RagfairConfig.cs b/Libraries/SPTarkov.Server.Core/Models/Spt/Config/RagfairConfig.cs
index 9c4d7dc9..fafb706f 100644
--- a/Libraries/SPTarkov.Server.Core/Models/Spt/Config/RagfairConfig.cs
+++ b/Libraries/SPTarkov.Server.Core/Models/Spt/Config/RagfairConfig.cs
@@ -26,17 +26,23 @@ public record RagfairConfig : BaseConfig
[JsonPropertyName("sell")]
public required Sell Sell { get; set; }
+ [JsonPropertyName("dynamic")]
+ public required Dynamic Dynamic { get; set; }
+
+ [JsonPropertyName("tieredFlea")]
+ public required TieredFlea TieredFlea { get; set; }
+
///
/// Trader ids + should their assorts be listed on flea
///
[JsonPropertyName("traders")]
public required Dictionary Traders { get; set; }
- [JsonPropertyName("dynamic")]
- public required Dynamic Dynamic { get; set; }
-
- [JsonPropertyName("tieredFlea")]
- public required TieredFlea TieredFlea { get; set; }
+ ///
+ /// Flea tax multi, default is off (-1)
+ ///
+ [JsonPropertyName("offerListingTaxMultiplier")]
+ public int OfferListingTaxMultiplier { get; set; }
}
public record Sell
diff --git a/Libraries/SPTarkov.Server.Core/Services/RagfairTaxService.cs b/Libraries/SPTarkov.Server.Core/Services/RagfairTaxService.cs
index 7b0dbbc0..5a1979ee 100644
--- a/Libraries/SPTarkov.Server.Core/Services/RagfairTaxService.cs
+++ b/Libraries/SPTarkov.Server.Core/Services/RagfairTaxService.cs
@@ -6,7 +6,9 @@ using SPTarkov.Server.Core.Models.Eft.Common;
using SPTarkov.Server.Core.Models.Eft.Common.Tables;
using SPTarkov.Server.Core.Models.Eft.Ragfair;
using SPTarkov.Server.Core.Models.Enums;
+using SPTarkov.Server.Core.Models.Spt.Config;
using SPTarkov.Server.Core.Models.Utils;
+using SPTarkov.Server.Core.Servers;
using SPTarkov.Server.Core.Utils.Cloners;
using LogLevel = SPTarkov.Server.Core.Models.Spt.Logging.LogLevel;
@@ -18,11 +20,14 @@ public class RagfairTaxService(
DatabaseService databaseService,
RagfairPriceService ragfairPriceService,
ItemHelper itemHelper,
+ ConfigServer configServer,
ICloner cloner
)
{
protected readonly Dictionary _playerOfferTaxCache = new();
+ protected readonly RagfairConfig RagfairConfig = configServer.GetConfig();
+
public void StoreClientOfferTaxValue(MongoId sessionId, StorePlayerOfferTaxAmountRequestData offer)
{
_playerOfferTaxCache[offer.Id.Value] = offer;
@@ -113,6 +118,11 @@ public class RagfairTaxService(
logger.Debug($"Tax Calculated to be: {taxValue}");
}
+ if (RagfairConfig.OfferListingTaxMultiplier != -1)
+ {
+ taxValue *= RagfairConfig.OfferListingTaxMultiplier;
+ }
+
return taxValue;
}